diff --git a/CHANGELOG.md b/CHANGELOG.md index b5ced66..13a7e2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Change Log +## [2.0.4] + +### Fixed +- Fix device detector (tablet setting) + +### Changed +- Disable AOS on not supported browsers (<= IE9) +- Clean code around `disable` option +- Rewrite device detector using ES6 Class + ## [2.0.3] ### Added diff --git a/bower.json b/bower.json index 2a72d80..6511af6 100755 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "aos", - "version": "2.0.3", + "version": "2.0.4", "homepage": "git://github.com/michalsnik/aos.git", "authors": [ "Michał Sajnóg " diff --git a/dist/aos.js b/dist/aos.js index 72e429c..fc849cb 100644 --- a/dist/aos.js +++ b/dist/aos.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(n){if(o[n])return o[n].exports;var i=o[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var o={};return t.m=e,t.c=o,t.p="dist/",t(0)}([function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var i=Object.assign||function(e){for(var t=1;t-1?j(!0):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener("resize",(0,s["default"])(j,50,!0)),window.addEventListener("orientationchange",(0,s["default"])(j,50,!0)),window.addEventListener("scroll",(0,c["default"])(function(){(0,b["default"])(h,x.once)},99)),document.addEventListener("DOMNodeRemoved",function(e){var t=e.target;t&&1===t.nodeType&&t.hasAttribute&&t.hasAttribute("data-aos")&&(0,s["default"])(O,50,!0)}),(0,f["default"])("[data-aos]",O),h)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,function(e,t,o){"use strict";function n(e,t,o){var n=!0,a=!0;if("function"!=typeof e)throw new TypeError(c);return i(o)&&(n="leading"in o?!!o.leading:n,a="trailing"in o?!!o.trailing:a),r(e,t,{leading:n,maxWait:t,trailing:a})}function i(e){var t="undefined"==typeof e?"undefined":a(e);return!!e&&("object"==t||"function"==t)}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},r=o(6),c="Expected a function";e.exports=n},function(e,t){"use strict";function o(e,t,o){function n(t){var o=b,n=v;return b=v=void 0,O=t,y=e.apply(n,o)}function a(e){return O=e,w=setTimeout(d,t),_?n(e):y}function r(e){var o=e-h,n=e-O,i=t-o;return z?x(i,g-n):i}function u(e){var o=e-h,n=e-O;return!h||o>=t||0>o||z&&n>=g}function d(){var e=j();return u(e)?f(e):void(w=setTimeout(d,r(e)))}function f(e){return clearTimeout(w),w=void 0,A&&b?n(e):(b=v=void 0,y)}function l(){void 0!==w&&clearTimeout(w),h=O=0,b=v=w=void 0}function m(){return void 0===w?y:f(j())}function p(){var e=j(),o=u(e);if(b=arguments,v=this,h=e,o){if(void 0===w)return a(h);if(z)return clearTimeout(w),w=setTimeout(d,t),n(h)}return void 0===w&&(w=setTimeout(d,t)),y}var b,v,g,y,w,h=0,O=0,_=!1,z=!1,A=!0;if("function"!=typeof e)throw new TypeError(s);return t=c(t)||0,i(o)&&(_=!!o.leading,z="maxWait"in o,g=z?k(c(o.maxWait)||0,t):g,A="trailing"in o?!!o.trailing:A),p.cancel=l,p.flush=m,p}function n(e){var t=i(e)?h.call(e):"";return t==f||t==l}function i(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function a(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function r(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||a(e)&&h.call(e)==m}function c(e){if("number"==typeof e)return e;if(r(e))return d;if(i(e)){var t=n(e.valueOf)?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(p,"");var o=v.test(e);return o||g.test(e)?y(e.slice(2),o?2:8):b.test(e)?d:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},s="Expected a function",d=NaN,f="[object Function]",l="[object GeneratorFunction]",m="[object Symbol]",p=/^\s+|\s+$/g,b=/^[-+]0x[0-9a-f]+$/i,v=/^0b[01]+$/i,g=/^0o[0-7]+$/i,y=parseInt,w=Object.prototype,h=w.toString,k=Math.max,x=Math.min,j=Date.now;e.exports=o},function(e,t){"use strict";function o(e,t){r.push({selector:e,fn:t}),!c&&a&&(c=new a(n),c.observe(i.documentElement,{childList:!0,subtree:!0,removedNodes:!0})),n()}function n(){for(var e,t,o=0,n=r.length;n>o;o++){e=r[o],t=i.querySelectorAll(e.selector);for(var a,c=0,u=t.length;u>c;c++)a=t[c],a.ready||(a.ready=!0,e.fn.call(a,a))}}Object.defineProperty(t,"__esModule",{value:!0});var i=window.document,a=window.MutationObserver||window.WebKitMutationObserver,r=[],c=void 0;t["default"]=o},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t["default"]={phone:function(){var e=!1;return function(t){(/(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(t)||/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(t.substr(0,4)))&&(e=!0)}(navigator.userAgent||navigator.vendor||window.opera),e},mobile:function(){var e=!1;return function(t){(/(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(t)||/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(t.substr(0,4)))&&(e=!0)}(navigator.userAgent||navigator.vendor||window.opera),e},tablet:function(){return(void 0).mobile()&&!(void 0).phone()}}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e,t,o){var n=e.node.getAttribute("data-aos-once");t>e.position?e.node.classList.add("aos-animate"):"undefined"!=typeof n&&("false"===n||!o&&"true"!==n)&&e.node.classList.remove("aos-animate")},n=function(e,t){var n=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,a){o(e,i+n,t)})};t["default"]=n},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var i=o(11),a=n(i),r=function(e,t){return e.forEach(function(e,o){e.node.classList.add("aos-init"),e.position=(0,a["default"])(e.node,t.offset)}),e};t["default"]=r},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var i=o(12),a=n(i),r=function(e,t){var o=0,n=0,i=window.innerHeight,r={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(r.offset&&!isNaN(r.offset)&&(n=parseInt(r.offset)),r.anchor&&document.querySelectorAll(r.anchor)&&(e=document.querySelectorAll(r.anchor)[0]),o=(0,a["default"])(e).top,r.anchorPlacement){case"top-bottom":break;case"center-bottom":o+=e.offsetHeight/2;break;case"bottom-bottom":o+=e.offsetHeight;break;case"top-center":o+=i/2;break;case"bottom-center":o+=i/2+e.offsetHeight;break;case"center-center":o+=i/2+e.offsetHeight/2;break;case"top-top":o+=i;break;case"bottom-top":o+=e.offsetHeight+i;break;case"center-top":o+=e.offsetHeight/2+i}return r.anchorPlacement||r.offset||isNaN(t)||(n=t),o+n};t["default"]=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){for(var t=0,o=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),o+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:o,left:t}};t["default"]=o},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){e=e||document.querySelectorAll("[data-aos]");var t=[];return[].forEach.call(e,function(e,o){t.push({node:e})}),t};t["default"]=o}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(n){if(o[n])return o[n].exports;var i=o[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var o={};return t.m=e,t.c=o,t.p="dist/",t(0)}([function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var i=Object.assign||function(e){for(var t=1;t-1?O(!0):document.addEventListener(j.startEvent,function(){O(!0)}),window.addEventListener("resize",(0,s["default"])(O,50,!0)),window.addEventListener("orientationchange",(0,s["default"])(O,50,!0)),window.addEventListener("scroll",(0,c["default"])(function(){(0,b["default"])(h,j.once)},99)),document.addEventListener("DOMNodeRemoved",function(e){var t=e.target;t&&1===t.nodeType&&t.hasAttribute&&t.hasAttribute("data-aos")&&(0,s["default"])(_,50,!0)}),(0,f["default"])("[data-aos]",_),h)};e.exports={init:S,refresh:O,refreshHard:_}},function(e,t){},,,,function(e,t,o){"use strict";function n(e,t,o){var n=!0,a=!0;if("function"!=typeof e)throw new TypeError(c);return i(o)&&(n="leading"in o?!!o.leading:n,a="trailing"in o?!!o.trailing:a),r(e,t,{leading:n,maxWait:t,trailing:a})}function i(e){var t="undefined"==typeof e?"undefined":a(e);return!!e&&("object"==t||"function"==t)}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},r=o(6),c="Expected a function";e.exports=n},function(e,t){"use strict";function o(e,t,o){function n(t){var o=b,n=v;return b=v=void 0,O=t,y=e.apply(n,o)}function a(e){return O=e,w=setTimeout(d,t),_?n(e):y}function r(e){var o=e-h,n=e-O,i=t-o;return z?x(i,g-n):i}function u(e){var o=e-h,n=e-O;return!h||o>=t||0>o||z&&n>=g}function d(){var e=j();return u(e)?f(e):void(w=setTimeout(d,r(e)))}function f(e){return clearTimeout(w),w=void 0,A&&b?n(e):(b=v=void 0,y)}function l(){void 0!==w&&clearTimeout(w),h=O=0,b=v=w=void 0}function m(){return void 0===w?y:f(j())}function p(){var e=j(),o=u(e);if(b=arguments,v=this,h=e,o){if(void 0===w)return a(h);if(z)return clearTimeout(w),w=setTimeout(d,t),n(h)}return void 0===w&&(w=setTimeout(d,t)),y}var b,v,g,y,w,h=0,O=0,_=!1,z=!1,A=!0;if("function"!=typeof e)throw new TypeError(s);return t=c(t)||0,i(o)&&(_=!!o.leading,z="maxWait"in o,g=z?k(c(o.maxWait)||0,t):g,A="trailing"in o?!!o.trailing:A),p.cancel=l,p.flush=m,p}function n(e){var t=i(e)?h.call(e):"";return t==f||t==l}function i(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function a(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function r(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||a(e)&&h.call(e)==m}function c(e){if("number"==typeof e)return e;if(r(e))return d;if(i(e)){var t=n(e.valueOf)?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(p,"");var o=v.test(e);return o||g.test(e)?y(e.slice(2),o?2:8):b.test(e)?d:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},s="Expected a function",d=NaN,f="[object Function]",l="[object GeneratorFunction]",m="[object Symbol]",p=/^\s+|\s+$/g,b=/^[-+]0x[0-9a-f]+$/i,v=/^0b[01]+$/i,g=/^0o[0-7]+$/i,y=parseInt,w=Object.prototype,h=w.toString,k=Math.max,x=Math.min,j=Date.now;e.exports=o},function(e,t){"use strict";function o(e,t){r.push({selector:e,fn:t}),!c&&a&&(c=new a(n),c.observe(i.documentElement,{childList:!0,subtree:!0,removedNodes:!0})),n()}function n(){for(var e,t,o=0,n=r.length;n>o;o++){e=r[o],t=i.querySelectorAll(e.selector);for(var a,c=0,u=t.length;u>c;c++)a=t[c],a.ready||(a.ready=!0,e.fn.call(a,a))}}Object.defineProperty(t,"__esModule",{value:!0});var i=window.document,a=window.MutationObserver||window.WebKitMutationObserver,r=[],c=void 0;t["default"]=o},function(e,t){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var o=0;oe.position?e.node.classList.add("aos-animate"):"undefined"!=typeof n&&("false"===n||!o&&"true"!==n)&&e.node.classList.remove("aos-animate")},n=function(e,t){var n=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,a){o(e,i+n,t)})};t["default"]=n},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var i=o(11),a=n(i),r=function(e,t){return e.forEach(function(e,o){e.node.classList.add("aos-init"),e.position=(0,a["default"])(e.node,t.offset)}),e};t["default"]=r},function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var i=o(12),a=n(i),r=function(e,t){var o=0,n=0,i=window.innerHeight,r={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(r.offset&&!isNaN(r.offset)&&(n=parseInt(r.offset)),r.anchor&&document.querySelectorAll(r.anchor)&&(e=document.querySelectorAll(r.anchor)[0]),o=(0,a["default"])(e).top,r.anchorPlacement){case"top-bottom":break;case"center-bottom":o+=e.offsetHeight/2;break;case"bottom-bottom":o+=e.offsetHeight;break;case"top-center":o+=i/2;break;case"bottom-center":o+=i/2+e.offsetHeight;break;case"center-center":o+=i/2+e.offsetHeight/2;break;case"top-top":o+=i;break;case"bottom-top":o+=e.offsetHeight+i;break;case"center-top":o+=e.offsetHeight/2+i}return r.anchorPlacement||r.offset||isNaN(t)||(n=t),o+n};t["default"]=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){for(var t=0,o=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),o+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:o,left:t}};t["default"]=o},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){e=e||document.querySelectorAll("[data-aos]");var t=[];return[].forEach.call(e,function(e,o){t.push({node:e})}),t};t["default"]=o}])}); //# sourceMappingURL=aos.js.map \ No newline at end of file diff --git a/dist/aos.js.map b/dist/aos.js.map index 49c51e7..99cbf75 100644 --- a/dist/aos.js.map +++ b/dist/aos.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///aos.js","webpack:///webpack/bootstrap 5cf572353a615914f9bc","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","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","_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","undefined","refreshHard","init","settings","mobile","phone","tablet","forEach","el","node","removeAttribute","document","querySelector","setAttribute","indexOf","readyState","addEventListener","window","event","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","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 _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\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\t// Modules & helpers\n\t\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\tvar $aosElements = [];\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 = _extends(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'].indexOf(document.readyState) > -1) {\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 5cf572353a615914f9bc\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'].indexOf(document.readyState) > -1) {\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":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///aos.js","webpack:///webpack/bootstrap 1ac75d44d9bd1cf1ea1b","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","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","_aos","_lodash","_lodash2","_lodash3","_lodash4","_observer","_observer2","_detector","_detector2","_handleScroll","_handleScroll2","_prepare","_prepare2","_elements","_elements2","$aosElements","initialized","browserNotSupported","document","all","window","atob","options","offset","delay","easing","duration","disable","once","startEvent","refresh","initialize","undefined","refreshHard","forEach","el","node","removeAttribute","isDisabled","optionDisable","mobile","phone","tablet","init","settings","querySelector","setAttribute","indexOf","readyState","addEventListener","event","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","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","_classCallCheck","instance","Constructor","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","Detector","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 _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\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\t// Modules & helpers\n\t\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\tvar $aosElements = [];\n\tvar initialized = false;\n\t\n\t// Detect not supported browsers (<=IE9)\n\t// http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\tvar browserNotSupported = document.all && !window.atob;\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 * Disable AOS\n\t * Remove all attributes to reset applied styles\n\t */\n\tvar disable = function disable() {\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};\n\t\n\t/**\n\t * Check if AOS should be disabled based on provided setting\n\t */\n\tvar isDisabled = function isDisabled(optionDisable) {\n\t return optionDisable === true || optionDisable === 'mobile' && _detector2.default.mobile() || optionDisable === 'phone' && _detector2.default.phone() || optionDisable === 'tablet' && _detector2.default.tablet() || typeof optionDisable === 'function' && optionDisable() === true;\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 = _extends(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 * Don't init plugin if option `disable` is set\n\t * or when browser is not supported\n\t */\n\t if (isDisabled(options.disable) || browserNotSupported) {\n\t return disable();\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'].indexOf(document.readyState) > -1) {\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\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/**\n\t * Device detector\n\t */\n\t\n\tvar Detector = function () {\n\t function Detector() {\n\t _classCallCheck(this, Detector);\n\t }\n\t\n\t _createClass(Detector, [{\n\t key: \"phone\",\n\t value: 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 }, {\n\t key: \"mobile\",\n\t value: 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 }, {\n\t key: \"tablet\",\n\t value: function tablet() {\n\t return this.mobile() && !this.phone();\n\t }\n\t }]);\n\t\n\t return Detector;\n\t}();\n\t\n\t;\n\t\n\texports.default = new Detector();\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 1ac75d44d9bd1cf1ea1b\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// Detect not supported browsers (<=IE9)\n// http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\nconst browserNotSupported = document.all && !window.atob;\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 * 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};\n\n\n/**\n * Check if AOS should be disabled based on provided setting\n */\nconst isDisabled = function(optionDisable) {\n return 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 * 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 * Don't init plugin if option `disable` is set\n * or when browser is not supported\n */\n if (isDisabled(options.disable) || browserNotSupported) {\n return disable();\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'].indexOf(document.readyState) > -1) {\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 */\nclass Detector {\n\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\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\n tablet() {\n return this.mobile() && !this.phone();\n }\n};\n\nexport default new Detector;\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":""} \ No newline at end of file diff --git a/package.json b/package.json index 2440ff9..cf7243b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aos", - "version": "2.0.3", + "version": "2.0.4", "description": "Animate on scroll library", "homepage": "http://michalsnik.github.io/aos/", "author": "Michał Sajnóg ", @@ -38,6 +38,7 @@ "webpack-dev-server": "^1.14.1" }, "dependencies": { + "classlist-polyfill": "^1.0.3", "lodash.debounce": "^4.0.6", "lodash.throttle": "^4.0.1" },