From 3999568c3170c709398749552b8a0e15e0787c6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sajn=C3=B3g?= Date: Wed, 15 Jun 2016 01:37:20 +0200 Subject: [PATCH 01/16] data-aos as default and only proper attribute --- README.md | 43 ++++--- bower.json | 2 +- demo/index.html | 84 +++++++------- dist/aos.css | 2 +- dist/aos.js | 2 +- dist/aos.js.map | 2 +- package.json | 2 +- src/js/aos.js | 22 ++-- src/js/helpers/calculateOffset.js | 6 +- src/js/helpers/elements.js | 2 +- src/js/helpers/handleScroll.js | 2 +- src/js/helpers/replaceDataAttr.js | 36 ------ src/sass/_easing.scss | 122 +++++--------------- src/sass/aos.scss | 156 +++++++++++++------------- test/elements.spec.js | 4 +- test/fixtures/aos-offset.fixture.html | 36 +++--- test/fixtures/aos.fixture.html | 36 +++--- 17 files changed, 223 insertions(+), 336 deletions(-) delete mode 100644 src/js/helpers/replaceDataAttr.js diff --git a/README.md b/README.md index 21b0619..0df5e8c 100755 --- a/README.md +++ b/README.md @@ -60,10 +60,10 @@ AOS from version `1.2.0` is available as UMD module, so you can use it as AMD, G ### Basic usage - All you have to do is to add "aos" attribute to html element, like so: + All you have to do is to add `data-aos` attribute to html element, like so: ```html -
+
``` Script will trigger "animation_name" animation on this element, if you scroll to it. @@ -72,55 +72,48 @@ AOS from version `1.2.0` is available as UMD module, so you can use it as AMD, G ### Advanced settings -These settings can be set both on certain elements, or as default while initializing script (in options object). +These settings can be set both on certain elements, or as default while initializing script (in options object without `data-` part). | Attribute | Description | Example value | Default value | |---------------------------|-------------|---------------|---------| -| *`aos-offset`* | Change offset to trigger animations sooner or later (px) | 200 | 120 | -| *`aos-duration`* | *Duration of animation (ms) | 600 | 400 | -| *`aos-easing`* | Choose timing function to ease elements in different ways | ease-in-sine | ease | -| *`aos-delay`* | Delay animation (ms) | 300 | 0 | -| *`aos-anchor`* | Anchor element, whose offset will be counted to trigger animation instead of actual elements offset | #selector | null | -| *`aos-anchor-placement`* | Anchor placement - which one position of element on the screen should trigger animation | top-center | top-bottom | -| *`aos-once`* | Choose wheter animation should fire once, or every time you scroll up/down to element | true | false | +| *`data-aos-offset`* | Change offset to trigger animations sooner or later (px) | 200 | 120 | +| *`data-aos-duration`* | *Duration of animation (ms) | 600 | 400 | +| *`data-aos-easing`* | Choose timing function to ease elements in different ways | ease-in-sine | ease | +| *`data-aos-delay`* | Delay animation (ms) | 300 | 0 | +| *`data-aos-anchor`* | Anchor element, whose offset will be counted to trigger animation instead of actual elements offset | #selector | null | +| *`data-aos-anchor-placement`* | Anchor placement - which one position of element on the screen should trigger animation | top-center | top-bottom | +| *`data-aos-once`* | Choose wheter animation should fire once, or every time you scroll up/down to element | true | false | *Duration accept values from 50 to 3000, with step 50ms, it's because duration of animation is handled by css, and to not make css longer than it is already I created implementations only in this range. I think this should be good for almost all cases. If not, you may write simple CSS on your page that will add another duration option value available, for example: ```css - body[aos-duration='4000'] [aos], [aos][aos][aos-duration='4000']{ + body[data-aos-duration='4000'] [data-aos], [data-aos][data-aos][data-aos-duration='4000']{ transition-duration: 4000ms; } ``` This code will add 4000ms duration available for you to set on AOS elements, or to set as global duration while initializing AOS script. -Notice that double `[aos][aos]` - it's not a mistake, it is a trick, to make individual settings more important than global, without need to write ugly "!important" there :) +Notice that double `[data-aos][data-aos]` - it's not a mistake, it is a trick, to make individual settings more important than global, without need to write ugly "!important" there :) -`aos-anchor-placement` - You can set different placement option on each element, the principle is pretty simple, each anchor-placement option contains two words i.e. `top-center`. This means that animation will be triggered when `top` of element will reach `center` of the window. +`data-aos-anchor-placement` - You can set different placement option on each element, the principle is pretty simple, each anchor-placement option contains two words i.e. `top-center`. This means that animation will be triggered when `top` of element will reach `center` of the window. `bottom-top` means that animation will be triggered when `bottom` of an element reach `top` of the window, and so on. Down below you can find list of all anchor-placement options. ####Examples: ```html -
+
``` ```html -
+
``` ```html -
+
``` -### HTML5 Validation - - If you care about html5 validation use "data-" prefix to all attributes. - -```html -
-``` ####API @@ -306,6 +299,10 @@ If you have any questions, ideas or whatsoever, please let me know in `issues` o ## Changelog +#### 2.0.0 +- Make `data-aos` attributes the default ones +- Improve animations performance + #### 1.2.1 - Add main file to package.json diff --git a/bower.json b/bower.json index f72358e..5a6225f 100755 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "aos", - "version": "1.2.1", + "version": "2.0.0", "homepage": "git://github.com/michalsnik/aos.git", "authors": [ "Michaล‚ Sajnรณg " diff --git a/demo/index.html b/demo/index.html index 7f09015..814fd0e 100644 --- a/demo/index.html +++ b/demo/index.html @@ -12,130 +12,130 @@
-
+

Lorem ipsum

-
+

dolor sit amet

-
+

onsectetur adipisicing

-
+

elit Saepe

-
+

labore iusto!

-
+

Quaerat id asperiores

-
+

porro odit

-
+

placeat ut fuga

-
+

aliquid omnis

-
+

dolorem dicta rem.

-
+

Lorem ipsum

-
+

dolor sit amet

-
+

onsectetur adipisicing

-
+

elit Saepe

-
+

labore iusto!

-
+

Quaerat id asperiores

-
+

porro odit

-
+

placeat ut fuga

-
+

aliquid omnis

-
+

dolorem dicta rem.

-
+

Lorem ipsum

-
+

dolor sit amet

-
+

onsectetur adipisicing

-
+

elit Saepe

-
+

labore iusto!

-
+

Quaerat id asperiores

-
+

porro odit

-
+

placeat ut fuga

-
+

aliquid omnis

-
+

dolorem dicta rem.

-
+

Lorem ipsum

-
+

dolor sit amet

-
+

onsectetur adipisicing

-
+

elit Saepe

-
+

labore iusto!

-
+

Quaerat id asperiores

-
+

porro odit

-
+

placeat ut fuga

-
+

aliquid omnis

-
+

dolorem dicta rem.

-
+

Lorem ipsum

-
+

dolor sit amet

diff --git a/dist/aos.css b/dist/aos.css index a317ce7..53c8ecf 100644 --- a/dist/aos.css +++ b/dist/aos.css @@ -1 +1 @@ -[aos][aos][aos-easing=linear],body[aos-easing=linear] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.25,.75,.75);transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[aos][aos][aos-easing=ease],body[aos-easing=ease] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.1,.25,1);transition-timing-function:cubic-bezier(.25,.1,.25,1)}[aos][aos][aos-easing=ease-in],body[aos-easing=ease-in] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,1,1);transition-timing-function:cubic-bezier(.42,0,1,1)}[aos][aos][aos-easing=ease-out],body[aos-easing=ease-out] [aos]{-webkit-transition-timing-function:cubic-bezier(0,0,.58,1);transition-timing-function:cubic-bezier(0,0,.58,1)}[aos][aos][aos-easing=ease-in-out],body[aos-easing=ease-in-out] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,.58,1);transition-timing-function:cubic-bezier(.42,0,.58,1)}[aos][aos][aos-easing=ease-in-back],body[aos-easing=ease-in-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.6,-.28,.735,.045);transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[aos][aos][aos-easing=ease-out-back],body[aos-easing=ease-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[aos][aos][aos-easing=ease-in-out-back],body[aos-easing=ease-in-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.68,-.55,.265,1.55);transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[aos][aos][aos-easing=ease-in-sine],body[aos-easing=ease-in-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.47,0,.745,.715);transition-timing-function:cubic-bezier(.47,0,.745,.715)}[aos][aos][aos-easing=ease-out-sine],body[aos-easing=ease-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.39,.575,.565,1);transition-timing-function:cubic-bezier(.39,.575,.565,1)}[aos][aos][aos-easing=ease-in-out-sine],body[aos-easing=ease-in-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[aos][aos][aos-easing=ease-in-quad],[aos][aos][aos-easing=ease-in-cubic],[aos][aos][aos-easing=ease-in-quart],body[aos-easing=ease-in-quad] [aos],body[aos-easing=ease-in-cubic] [aos],body[aos-easing=ease-in-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.55,.085,.68,.53);transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[aos][aos][aos-easing=ease-out-quad],[aos][aos][aos-easing=ease-out-cubic],[aos][aos][aos-easing=ease-out-quart],body[aos-easing=ease-out-quad] [aos],body[aos-easing=ease-out-cubic] [aos],body[aos-easing=ease-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.46,.45,.94);transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[aos][aos][aos-easing=ease-in-out-quad],[aos][aos][aos-easing=ease-in-out-cubic],[aos][aos][aos-easing=ease-in-out-quart],body[aos-easing=ease-in-out-quad] [aos],body[aos-easing=ease-in-out-cubic] [aos],body[aos-easing=ease-in-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.455,.03,.515,.955);transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[aos][aos][aos-duration='50'],body[aos-duration='50'] [aos]{-webkit-transition-duration:50ms;transition-duration:50ms}[aos][aos][aos-duration='100'],body[aos-duration='100'] [aos]{-webkit-transition-duration:.1s;transition-duration:.1s}[aos][aos][aos-duration='150'],body[aos-duration='150'] [aos]{-webkit-transition-duration:150ms;transition-duration:150ms}[aos][aos][aos-duration='200'],body[aos-duration='200'] [aos]{-webkit-transition-duration:.2s;transition-duration:.2s}[aos][aos][aos-duration='250'],body[aos-duration='250'] [aos]{-webkit-transition-duration:250ms;transition-duration:250ms}[aos][aos][aos-duration='300'],body[aos-duration='300'] [aos]{-webkit-transition-duration:.3s;transition-duration:.3s}[aos][aos][aos-duration='350'],body[aos-duration='350'] [aos]{-webkit-transition-duration:350ms;transition-duration:350ms}[aos][aos][aos-duration='400'],body[aos-duration='400'] [aos]{-webkit-transition-duration:.4s;transition-duration:.4s}[aos][aos][aos-duration='450'],body[aos-duration='450'] [aos]{-webkit-transition-duration:450ms;transition-duration:450ms}[aos][aos][aos-duration='500'],body[aos-duration='500'] [aos]{-webkit-transition-duration:.5s;transition-duration:.5s}[aos][aos][aos-duration='550'],body[aos-duration='550'] [aos]{-webkit-transition-duration:550ms;transition-duration:550ms}[aos][aos][aos-duration='600'],body[aos-duration='600'] [aos]{-webkit-transition-duration:.6s;transition-duration:.6s}[aos][aos][aos-duration='650'],body[aos-duration='650'] [aos]{-webkit-transition-duration:650ms;transition-duration:650ms}[aos][aos][aos-duration='700'],body[aos-duration='700'] [aos]{-webkit-transition-duration:.7s;transition-duration:.7s}[aos][aos][aos-duration='750'],body[aos-duration='750'] [aos]{-webkit-transition-duration:750ms;transition-duration:750ms}[aos][aos][aos-duration='800'],body[aos-duration='800'] [aos]{-webkit-transition-duration:.8s;transition-duration:.8s}[aos][aos][aos-duration='850'],body[aos-duration='850'] [aos]{-webkit-transition-duration:850ms;transition-duration:850ms}[aos][aos][aos-duration='900'],body[aos-duration='900'] [aos]{-webkit-transition-duration:.9s;transition-duration:.9s}[aos][aos][aos-duration='950'],body[aos-duration='950'] [aos]{-webkit-transition-duration:950ms;transition-duration:950ms}[aos][aos][aos-duration='1000'],body[aos-duration='1000'] [aos]{-webkit-transition-duration:1s;transition-duration:1s}[aos][aos][aos-duration='1050'],body[aos-duration='1050'] [aos]{-webkit-transition-duration:1.05s;transition-duration:1.05s}[aos][aos][aos-duration='1100'],body[aos-duration='1100'] [aos]{-webkit-transition-duration:1.1s;transition-duration:1.1s}[aos][aos][aos-duration='1150'],body[aos-duration='1150'] [aos]{-webkit-transition-duration:1.15s;transition-duration:1.15s}[aos][aos][aos-duration='1200'],body[aos-duration='1200'] [aos]{-webkit-transition-duration:1.2s;transition-duration:1.2s}[aos][aos][aos-duration='1250'],body[aos-duration='1250'] [aos]{-webkit-transition-duration:1.25s;transition-duration:1.25s}[aos][aos][aos-duration='1300'],body[aos-duration='1300'] [aos]{-webkit-transition-duration:1.3s;transition-duration:1.3s}[aos][aos][aos-duration='1350'],body[aos-duration='1350'] [aos]{-webkit-transition-duration:1.35s;transition-duration:1.35s}[aos][aos][aos-duration='1400'],body[aos-duration='1400'] [aos]{-webkit-transition-duration:1.4s;transition-duration:1.4s}[aos][aos][aos-duration='1450'],body[aos-duration='1450'] [aos]{-webkit-transition-duration:1.45s;transition-duration:1.45s}[aos][aos][aos-duration='1500'],body[aos-duration='1500'] [aos]{-webkit-transition-duration:1.5s;transition-duration:1.5s}[aos][aos][aos-duration='1550'],body[aos-duration='1550'] [aos]{-webkit-transition-duration:1.55s;transition-duration:1.55s}[aos][aos][aos-duration='1600'],body[aos-duration='1600'] [aos]{-webkit-transition-duration:1.6s;transition-duration:1.6s}[aos][aos][aos-duration='1650'],body[aos-duration='1650'] [aos]{-webkit-transition-duration:1.65s;transition-duration:1.65s}[aos][aos][aos-duration='1700'],body[aos-duration='1700'] [aos]{-webkit-transition-duration:1.7s;transition-duration:1.7s}[aos][aos][aos-duration='1750'],body[aos-duration='1750'] [aos]{-webkit-transition-duration:1.75s;transition-duration:1.75s}[aos][aos][aos-duration='1800'],body[aos-duration='1800'] [aos]{-webkit-transition-duration:1.8s;transition-duration:1.8s}[aos][aos][aos-duration='1850'],body[aos-duration='1850'] [aos]{-webkit-transition-duration:1.85s;transition-duration:1.85s}[aos][aos][aos-duration='1900'],body[aos-duration='1900'] [aos]{-webkit-transition-duration:1.9s;transition-duration:1.9s}[aos][aos][aos-duration='1950'],body[aos-duration='1950'] [aos]{-webkit-transition-duration:1.95s;transition-duration:1.95s}[aos][aos][aos-duration='2000'],body[aos-duration='2000'] [aos]{-webkit-transition-duration:2s;transition-duration:2s}[aos][aos][aos-duration='2050'],body[aos-duration='2050'] [aos]{-webkit-transition-duration:2.05s;transition-duration:2.05s}[aos][aos][aos-duration='2100'],body[aos-duration='2100'] [aos]{-webkit-transition-duration:2.1s;transition-duration:2.1s}[aos][aos][aos-duration='2150'],body[aos-duration='2150'] [aos]{-webkit-transition-duration:2.15s;transition-duration:2.15s}[aos][aos][aos-duration='2200'],body[aos-duration='2200'] [aos]{-webkit-transition-duration:2.2s;transition-duration:2.2s}[aos][aos][aos-duration='2250'],body[aos-duration='2250'] [aos]{-webkit-transition-duration:2.25s;transition-duration:2.25s}[aos][aos][aos-duration='2300'],body[aos-duration='2300'] [aos]{-webkit-transition-duration:2.3s;transition-duration:2.3s}[aos][aos][aos-duration='2350'],body[aos-duration='2350'] [aos]{-webkit-transition-duration:2.35s;transition-duration:2.35s}[aos][aos][aos-duration='2400'],body[aos-duration='2400'] [aos]{-webkit-transition-duration:2.4s;transition-duration:2.4s}[aos][aos][aos-duration='2450'],body[aos-duration='2450'] [aos]{-webkit-transition-duration:2.45s;transition-duration:2.45s}[aos][aos][aos-duration='2500'],body[aos-duration='2500'] [aos]{-webkit-transition-duration:2.5s;transition-duration:2.5s}[aos][aos][aos-duration='2550'],body[aos-duration='2550'] [aos]{-webkit-transition-duration:2.55s;transition-duration:2.55s}[aos][aos][aos-duration='2600'],body[aos-duration='2600'] [aos]{-webkit-transition-duration:2.6s;transition-duration:2.6s}[aos][aos][aos-duration='2650'],body[aos-duration='2650'] [aos]{-webkit-transition-duration:2.65s;transition-duration:2.65s}[aos][aos][aos-duration='2700'],body[aos-duration='2700'] [aos]{-webkit-transition-duration:2.7s;transition-duration:2.7s}[aos][aos][aos-duration='2750'],body[aos-duration='2750'] [aos]{-webkit-transition-duration:2.75s;transition-duration:2.75s}[aos][aos][aos-duration='2800'],body[aos-duration='2800'] [aos]{-webkit-transition-duration:2.8s;transition-duration:2.8s}[aos][aos][aos-duration='2850'],body[aos-duration='2850'] [aos]{-webkit-transition-duration:2.85s;transition-duration:2.85s}[aos][aos][aos-duration='2900'],body[aos-duration='2900'] [aos]{-webkit-transition-duration:2.9s;transition-duration:2.9s}[aos][aos][aos-duration='2950'],body[aos-duration='2950'] [aos]{-webkit-transition-duration:2.95s;transition-duration:2.95s}[aos][aos][aos-duration='3000'],body[aos-duration='3000'] [aos]{-webkit-transition-duration:3s;transition-duration:3s}[aos][aos][aos-delay='50'],body[aos-delay='50'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='50'].aos-animate,body[aos-delay='50'] [aos].aos-animate{-webkit-transition-delay:50ms;transition-delay:50ms}[aos][aos][aos-delay='100'],body[aos-delay='100'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='100'].aos-animate,body[aos-delay='100'] [aos].aos-animate{-webkit-transition-delay:.1s;transition-delay:.1s}[aos][aos][aos-delay='150'],body[aos-delay='150'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='150'].aos-animate,body[aos-delay='150'] [aos].aos-animate{-webkit-transition-delay:150ms;transition-delay:150ms}[aos][aos][aos-delay='200'],body[aos-delay='200'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='200'].aos-animate,body[aos-delay='200'] [aos].aos-animate{-webkit-transition-delay:.2s;transition-delay:.2s}[aos][aos][aos-delay='250'],body[aos-delay='250'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='250'].aos-animate,body[aos-delay='250'] [aos].aos-animate{-webkit-transition-delay:250ms;transition-delay:250ms}[aos][aos][aos-delay='300'],body[aos-delay='300'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='300'].aos-animate,body[aos-delay='300'] [aos].aos-animate{-webkit-transition-delay:.3s;transition-delay:.3s}[aos][aos][aos-delay='350'],body[aos-delay='350'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='350'].aos-animate,body[aos-delay='350'] [aos].aos-animate{-webkit-transition-delay:350ms;transition-delay:350ms}[aos][aos][aos-delay='400'],body[aos-delay='400'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='400'].aos-animate,body[aos-delay='400'] [aos].aos-animate{-webkit-transition-delay:.4s;transition-delay:.4s}[aos][aos][aos-delay='450'],body[aos-delay='450'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='450'].aos-animate,body[aos-delay='450'] [aos].aos-animate{-webkit-transition-delay:450ms;transition-delay:450ms}[aos][aos][aos-delay='500'],body[aos-delay='500'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='500'].aos-animate,body[aos-delay='500'] [aos].aos-animate{-webkit-transition-delay:.5s;transition-delay:.5s}[aos][aos][aos-delay='550'],body[aos-delay='550'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='550'].aos-animate,body[aos-delay='550'] [aos].aos-animate{-webkit-transition-delay:550ms;transition-delay:550ms}[aos][aos][aos-delay='600'],body[aos-delay='600'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='600'].aos-animate,body[aos-delay='600'] [aos].aos-animate{-webkit-transition-delay:.6s;transition-delay:.6s}[aos][aos][aos-delay='650'],body[aos-delay='650'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='650'].aos-animate,body[aos-delay='650'] [aos].aos-animate{-webkit-transition-delay:650ms;transition-delay:650ms}[aos][aos][aos-delay='700'],body[aos-delay='700'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='700'].aos-animate,body[aos-delay='700'] [aos].aos-animate{-webkit-transition-delay:.7s;transition-delay:.7s}[aos][aos][aos-delay='750'],body[aos-delay='750'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='750'].aos-animate,body[aos-delay='750'] [aos].aos-animate{-webkit-transition-delay:750ms;transition-delay:750ms}[aos][aos][aos-delay='800'],body[aos-delay='800'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='800'].aos-animate,body[aos-delay='800'] [aos].aos-animate{-webkit-transition-delay:.8s;transition-delay:.8s}[aos][aos][aos-delay='850'],body[aos-delay='850'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='850'].aos-animate,body[aos-delay='850'] [aos].aos-animate{-webkit-transition-delay:850ms;transition-delay:850ms}[aos][aos][aos-delay='900'],body[aos-delay='900'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='900'].aos-animate,body[aos-delay='900'] [aos].aos-animate{-webkit-transition-delay:.9s;transition-delay:.9s}[aos][aos][aos-delay='950'],body[aos-delay='950'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='950'].aos-animate,body[aos-delay='950'] [aos].aos-animate{-webkit-transition-delay:950ms;transition-delay:950ms}[aos][aos][aos-delay='1000'],body[aos-delay='1000'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1000'].aos-animate,body[aos-delay='1000'] [aos].aos-animate{-webkit-transition-delay:1s;transition-delay:1s}[aos][aos][aos-delay='1050'],body[aos-delay='1050'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1050'].aos-animate,body[aos-delay='1050'] [aos].aos-animate{-webkit-transition-delay:1.05s;transition-delay:1.05s}[aos][aos][aos-delay='1100'],body[aos-delay='1100'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1100'].aos-animate,body[aos-delay='1100'] [aos].aos-animate{-webkit-transition-delay:1.1s;transition-delay:1.1s}[aos][aos][aos-delay='1150'],body[aos-delay='1150'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1150'].aos-animate,body[aos-delay='1150'] [aos].aos-animate{-webkit-transition-delay:1.15s;transition-delay:1.15s}[aos][aos][aos-delay='1200'],body[aos-delay='1200'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1200'].aos-animate,body[aos-delay='1200'] [aos].aos-animate{-webkit-transition-delay:1.2s;transition-delay:1.2s}[aos][aos][aos-delay='1250'],body[aos-delay='1250'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1250'].aos-animate,body[aos-delay='1250'] [aos].aos-animate{-webkit-transition-delay:1.25s;transition-delay:1.25s}[aos][aos][aos-delay='1300'],body[aos-delay='1300'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1300'].aos-animate,body[aos-delay='1300'] [aos].aos-animate{-webkit-transition-delay:1.3s;transition-delay:1.3s}[aos][aos][aos-delay='1350'],body[aos-delay='1350'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1350'].aos-animate,body[aos-delay='1350'] [aos].aos-animate{-webkit-transition-delay:1.35s;transition-delay:1.35s}[aos][aos][aos-delay='1400'],body[aos-delay='1400'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1400'].aos-animate,body[aos-delay='1400'] [aos].aos-animate{-webkit-transition-delay:1.4s;transition-delay:1.4s}[aos][aos][aos-delay='1450'],body[aos-delay='1450'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1450'].aos-animate,body[aos-delay='1450'] [aos].aos-animate{-webkit-transition-delay:1.45s;transition-delay:1.45s}[aos][aos][aos-delay='1500'],body[aos-delay='1500'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1500'].aos-animate,body[aos-delay='1500'] [aos].aos-animate{-webkit-transition-delay:1.5s;transition-delay:1.5s}[aos][aos][aos-delay='1550'],body[aos-delay='1550'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1550'].aos-animate,body[aos-delay='1550'] [aos].aos-animate{-webkit-transition-delay:1.55s;transition-delay:1.55s}[aos][aos][aos-delay='1600'],body[aos-delay='1600'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1600'].aos-animate,body[aos-delay='1600'] [aos].aos-animate{-webkit-transition-delay:1.6s;transition-delay:1.6s}[aos][aos][aos-delay='1650'],body[aos-delay='1650'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1650'].aos-animate,body[aos-delay='1650'] [aos].aos-animate{-webkit-transition-delay:1.65s;transition-delay:1.65s}[aos][aos][aos-delay='1700'],body[aos-delay='1700'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1700'].aos-animate,body[aos-delay='1700'] [aos].aos-animate{-webkit-transition-delay:1.7s;transition-delay:1.7s}[aos][aos][aos-delay='1750'],body[aos-delay='1750'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1750'].aos-animate,body[aos-delay='1750'] [aos].aos-animate{-webkit-transition-delay:1.75s;transition-delay:1.75s}[aos][aos][aos-delay='1800'],body[aos-delay='1800'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1800'].aos-animate,body[aos-delay='1800'] [aos].aos-animate{-webkit-transition-delay:1.8s;transition-delay:1.8s}[aos][aos][aos-delay='1850'],body[aos-delay='1850'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1850'].aos-animate,body[aos-delay='1850'] [aos].aos-animate{-webkit-transition-delay:1.85s;transition-delay:1.85s}[aos][aos][aos-delay='1900'],body[aos-delay='1900'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1900'].aos-animate,body[aos-delay='1900'] [aos].aos-animate{-webkit-transition-delay:1.9s;transition-delay:1.9s}[aos][aos][aos-delay='1950'],body[aos-delay='1950'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='1950'].aos-animate,body[aos-delay='1950'] [aos].aos-animate{-webkit-transition-delay:1.95s;transition-delay:1.95s}[aos][aos][aos-delay='2000'],body[aos-delay='2000'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2000'].aos-animate,body[aos-delay='2000'] [aos].aos-animate{-webkit-transition-delay:2s;transition-delay:2s}[aos][aos][aos-delay='2050'],body[aos-delay='2050'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2050'].aos-animate,body[aos-delay='2050'] [aos].aos-animate{-webkit-transition-delay:2.05s;transition-delay:2.05s}[aos][aos][aos-delay='2100'],body[aos-delay='2100'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2100'].aos-animate,body[aos-delay='2100'] [aos].aos-animate{-webkit-transition-delay:2.1s;transition-delay:2.1s}[aos][aos][aos-delay='2150'],body[aos-delay='2150'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2150'].aos-animate,body[aos-delay='2150'] [aos].aos-animate{-webkit-transition-delay:2.15s;transition-delay:2.15s}[aos][aos][aos-delay='2200'],body[aos-delay='2200'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2200'].aos-animate,body[aos-delay='2200'] [aos].aos-animate{-webkit-transition-delay:2.2s;transition-delay:2.2s}[aos][aos][aos-delay='2250'],body[aos-delay='2250'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2250'].aos-animate,body[aos-delay='2250'] [aos].aos-animate{-webkit-transition-delay:2.25s;transition-delay:2.25s}[aos][aos][aos-delay='2300'],body[aos-delay='2300'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2300'].aos-animate,body[aos-delay='2300'] [aos].aos-animate{-webkit-transition-delay:2.3s;transition-delay:2.3s}[aos][aos][aos-delay='2350'],body[aos-delay='2350'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2350'].aos-animate,body[aos-delay='2350'] [aos].aos-animate{-webkit-transition-delay:2.35s;transition-delay:2.35s}[aos][aos][aos-delay='2400'],body[aos-delay='2400'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2400'].aos-animate,body[aos-delay='2400'] [aos].aos-animate{-webkit-transition-delay:2.4s;transition-delay:2.4s}[aos][aos][aos-delay='2450'],body[aos-delay='2450'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2450'].aos-animate,body[aos-delay='2450'] [aos].aos-animate{-webkit-transition-delay:2.45s;transition-delay:2.45s}[aos][aos][aos-delay='2500'],body[aos-delay='2500'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2500'].aos-animate,body[aos-delay='2500'] [aos].aos-animate{-webkit-transition-delay:2.5s;transition-delay:2.5s}[aos][aos][aos-delay='2550'],body[aos-delay='2550'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2550'].aos-animate,body[aos-delay='2550'] [aos].aos-animate{-webkit-transition-delay:2.55s;transition-delay:2.55s}[aos][aos][aos-delay='2600'],body[aos-delay='2600'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2600'].aos-animate,body[aos-delay='2600'] [aos].aos-animate{-webkit-transition-delay:2.6s;transition-delay:2.6s}[aos][aos][aos-delay='2650'],body[aos-delay='2650'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2650'].aos-animate,body[aos-delay='2650'] [aos].aos-animate{-webkit-transition-delay:2.65s;transition-delay:2.65s}[aos][aos][aos-delay='2700'],body[aos-delay='2700'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2700'].aos-animate,body[aos-delay='2700'] [aos].aos-animate{-webkit-transition-delay:2.7s;transition-delay:2.7s}[aos][aos][aos-delay='2750'],body[aos-delay='2750'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2750'].aos-animate,body[aos-delay='2750'] [aos].aos-animate{-webkit-transition-delay:2.75s;transition-delay:2.75s}[aos][aos][aos-delay='2800'],body[aos-delay='2800'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2800'].aos-animate,body[aos-delay='2800'] [aos].aos-animate{-webkit-transition-delay:2.8s;transition-delay:2.8s}[aos][aos][aos-delay='2850'],body[aos-delay='2850'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2850'].aos-animate,body[aos-delay='2850'] [aos].aos-animate{-webkit-transition-delay:2.85s;transition-delay:2.85s}[aos][aos][aos-delay='2900'],body[aos-delay='2900'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2900'].aos-animate,body[aos-delay='2900'] [aos].aos-animate{-webkit-transition-delay:2.9s;transition-delay:2.9s}[aos][aos][aos-delay='2950'],body[aos-delay='2950'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='2950'].aos-animate,body[aos-delay='2950'] [aos].aos-animate{-webkit-transition-delay:2.95s;transition-delay:2.95s}[aos][aos][aos-delay='3000'],body[aos-delay='3000'] [aos]{-webkit-transition-delay:0;transition-delay:0}[aos][aos][aos-delay='3000'].aos-animate,body[aos-delay='3000'] [aos].aos-animate{-webkit-transition-delay:3s;transition-delay:3s}[aos^=fade][aos^=fade]{opacity:0;-webkit-transition-property:all;transition-property:all}[aos^=fade][aos^=fade].aos-animate{opacity:1}[aos=fade-up]{-webkit-transform:translate(0,100px);-ms-transform:translate(0,100px);transform:translate(0,100px)}[aos=fade-up].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-down]{-webkit-transform:translate(0,-100px);-ms-transform:translate(0,-100px);transform:translate(0,-100px)}[aos=fade-down].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-right]{-webkit-transform:translate(-100px,0);-ms-transform:translate(-100px,0);transform:translate(-100px,0)}[aos=fade-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-left]{-webkit-transform:translate(100px,0);-ms-transform:translate(100px,0);transform:translate(100px,0)}[aos=fade-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-up-right]{-webkit-transform:translate(-100px,100px);-ms-transform:translate(-100px,100px);transform:translate(-100px,100px)}[aos=fade-up-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-up-left]{-webkit-transform:translate(100px,100px);-ms-transform:translate(100px,100px);transform:translate(100px,100px)}[aos=fade-up-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-down-right]{-webkit-transform:translate(-100px,-100px);-ms-transform:translate(-100px,-100px);transform:translate(-100px,-100px)}[aos=fade-down-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=fade-down-left]{-webkit-transform:translate(100px,-100px);-ms-transform:translate(100px,-100px);transform:translate(100px,-100px)}[aos=fade-down-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos^=zoom][aos^=zoom]{opacity:0;-webkit-transition-property:all;transition-property:all}[aos^=zoom][aos^=zoom].aos-animate{opacity:1}[aos=zoom-in]{-webkit-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}[aos=zoom-in].aos-animate{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}[aos=zoom-in-up]{-webkit-transform:translate(0,100px) scale(.6);-ms-transform:translate(0,100px) scale(.6);transform:translate(0,100px) scale(.6)}[aos=zoom-in-up].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-in-down]{-webkit-transform:translate(0,-100px) scale(.6);-ms-transform:translate(0,-100px) scale(.6);transform:translate(0,-100px) scale(.6)}[aos=zoom-in-down].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-in-right]{-webkit-transform:translate(-100px,0) scale(.6);-ms-transform:translate(-100px,0) scale(.6);transform:translate(-100px,0) scale(.6)}[aos=zoom-in-right].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-in-left]{-webkit-transform:translate(100px,0) scale(.6);-ms-transform:translate(100px,0) scale(.6);transform:translate(100px,0) scale(.6)}[aos=zoom-in-left].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out]{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}[aos=zoom-out].aos-animate{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}[aos=zoom-out-up]{-webkit-transform:translate(0,100px) scale(1.2);-ms-transform:translate(0,100px) scale(1.2);transform:translate(0,100px) scale(1.2)}[aos=zoom-out-up].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out-down]{-webkit-transform:translate(0,-100px) scale(1.2);-ms-transform:translate(0,-100px) scale(1.2);transform:translate(0,-100px) scale(1.2)}[aos=zoom-out-down].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out-right]{-webkit-transform:translate(-100px,0) scale(1.2);-ms-transform:translate(-100px,0) scale(1.2);transform:translate(-100px,0) scale(1.2)}[aos=zoom-out-right].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=zoom-out-left]{-webkit-transform:translate(100px,0) scale(1.2);-ms-transform:translate(100px,0) scale(1.2);transform:translate(100px,0) scale(1.2)}[aos=zoom-out-left].aos-animate{-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[aos=slide-up]{-webkit-transform:translate(0,100%);-ms-transform:translate(0,100%);transform:translate(0,100%)}[aos=slide-up].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=slide-down]{-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%)}[aos=slide-down].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=slide-right]{-webkit-transform:translate(-100%,0);-ms-transform:translate(-100%,0);transform:translate(-100%,0)}[aos=slide-right].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos=slide-left]{-webkit-transform:translate(100%,0);-ms-transform:translate(100%,0);transform:translate(100%,0)}[aos=slide-left].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[aos^=flip]{-webkit-backface-visibility:hidden;backface-visibility:hidden}[aos=flip-left]{-webkit-transform:perspective(2500px) rotateY(-100deg);transform:perspective(2500px) rotateY(-100deg)}[aos=flip-left].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[aos=flip-right]{-webkit-transform:perspective(2500px) rotateY(100deg);transform:perspective(2500px) rotateY(100deg)}[aos=flip-right].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[aos=flip-up]{-webkit-transform:perspective(2500px) rotateX(-100deg);transform:perspective(2500px) rotateX(-100deg)}[aos=flip-up].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)}[aos=flip-down]{-webkit-transform:perspective(2500px) rotateX(100deg);transform:perspective(2500px) rotateX(100deg)}[aos=flip-down].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)} \ No newline at end of file +[aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.25,.75,.75);transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.1,.25,1);transition-timing-function:cubic-bezier(.25,.1,.25,1)}[aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,1,1);transition-timing-function:cubic-bezier(.42,0,1,1)}[aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [aos]{-webkit-transition-timing-function:cubic-bezier(0,0,.58,1);transition-timing-function:cubic-bezier(0,0,.58,1)}[aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,.58,1);transition-timing-function:cubic-bezier(.42,0,.58,1)}[aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.6,-.28,.735,.045);transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.68,-.55,.265,1.55);transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.47,0,.745,.715);transition-timing-function:cubic-bezier(.47,0,.745,.715)}[aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.39,.575,.565,1);transition-timing-function:cubic-bezier(.39,.575,.565,1)}[aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[aos][data-aos][data-aos-easing=ease-in-quad],[aos][data-aos][data-aos-easing=ease-in-cubic],[aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quad] [aos],body[data-aos-easing=ease-in-cubic] [aos],body[data-aos-easing=ease-in-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.55,.085,.68,.53);transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[aos][data-aos][data-aos-easing=ease-out-quad],[aos][data-aos][data-aos-easing=ease-out-cubic],[aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quad] [aos],body[data-aos-easing=ease-out-cubic] [aos],body[data-aos-easing=ease-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.46,.45,.94);transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[aos][data-aos][data-aos-easing=ease-in-out-quad],[aos][data-aos][data-aos-easing=ease-in-out-cubic],[aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quad] [aos],body[data-aos-easing=ease-in-out-cubic] [aos],body[data-aos-easing=ease-in-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.455,.03,.515,.955);transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-duration='50'],body[data-aos-duration='50'] [data-aos]{-webkit-transition-duration:50ms;transition-duration:50ms}[data-aos][data-aos][data-aos-duration='100'],body[data-aos-duration='100'] [data-aos]{-webkit-transition-duration:.1s;transition-duration:.1s}[data-aos][data-aos][data-aos-duration='150'],body[data-aos-duration='150'] [data-aos]{-webkit-transition-duration:150ms;transition-duration:150ms}[data-aos][data-aos][data-aos-duration='200'],body[data-aos-duration='200'] [data-aos]{-webkit-transition-duration:.2s;transition-duration:.2s}[data-aos][data-aos][data-aos-duration='250'],body[data-aos-duration='250'] [data-aos]{-webkit-transition-duration:250ms;transition-duration:250ms}[data-aos][data-aos][data-aos-duration='300'],body[data-aos-duration='300'] [data-aos]{-webkit-transition-duration:.3s;transition-duration:.3s}[data-aos][data-aos][data-aos-duration='350'],body[data-aos-duration='350'] [data-aos]{-webkit-transition-duration:350ms;transition-duration:350ms}[data-aos][data-aos][data-aos-duration='400'],body[data-aos-duration='400'] [data-aos]{-webkit-transition-duration:.4s;transition-duration:.4s}[data-aos][data-aos][data-aos-duration='450'],body[data-aos-duration='450'] [data-aos]{-webkit-transition-duration:450ms;transition-duration:450ms}[data-aos][data-aos][data-aos-duration='500'],body[data-aos-duration='500'] [data-aos]{-webkit-transition-duration:.5s;transition-duration:.5s}[data-aos][data-aos][data-aos-duration='550'],body[data-aos-duration='550'] [data-aos]{-webkit-transition-duration:550ms;transition-duration:550ms}[data-aos][data-aos][data-aos-duration='600'],body[data-aos-duration='600'] [data-aos]{-webkit-transition-duration:.6s;transition-duration:.6s}[data-aos][data-aos][data-aos-duration='650'],body[data-aos-duration='650'] [data-aos]{-webkit-transition-duration:650ms;transition-duration:650ms}[data-aos][data-aos][data-aos-duration='700'],body[data-aos-duration='700'] [data-aos]{-webkit-transition-duration:.7s;transition-duration:.7s}[data-aos][data-aos][data-aos-duration='750'],body[data-aos-duration='750'] [data-aos]{-webkit-transition-duration:750ms;transition-duration:750ms}[data-aos][data-aos][data-aos-duration='800'],body[data-aos-duration='800'] [data-aos]{-webkit-transition-duration:.8s;transition-duration:.8s}[data-aos][data-aos][data-aos-duration='850'],body[data-aos-duration='850'] [data-aos]{-webkit-transition-duration:850ms;transition-duration:850ms}[data-aos][data-aos][data-aos-duration='900'],body[data-aos-duration='900'] [data-aos]{-webkit-transition-duration:.9s;transition-duration:.9s}[data-aos][data-aos][data-aos-duration='950'],body[data-aos-duration='950'] [data-aos]{-webkit-transition-duration:950ms;transition-duration:950ms}[data-aos][data-aos][data-aos-duration='1000'],body[data-aos-duration='1000'] [data-aos]{-webkit-transition-duration:1s;transition-duration:1s}[data-aos][data-aos][data-aos-duration='1050'],body[data-aos-duration='1050'] [data-aos]{-webkit-transition-duration:1.05s;transition-duration:1.05s}[data-aos][data-aos][data-aos-duration='1100'],body[data-aos-duration='1100'] [data-aos]{-webkit-transition-duration:1.1s;transition-duration:1.1s}[data-aos][data-aos][data-aos-duration='1150'],body[data-aos-duration='1150'] [data-aos]{-webkit-transition-duration:1.15s;transition-duration:1.15s}[data-aos][data-aos][data-aos-duration='1200'],body[data-aos-duration='1200'] [data-aos]{-webkit-transition-duration:1.2s;transition-duration:1.2s}[data-aos][data-aos][data-aos-duration='1250'],body[data-aos-duration='1250'] [data-aos]{-webkit-transition-duration:1.25s;transition-duration:1.25s}[data-aos][data-aos][data-aos-duration='1300'],body[data-aos-duration='1300'] [data-aos]{-webkit-transition-duration:1.3s;transition-duration:1.3s}[data-aos][data-aos][data-aos-duration='1350'],body[data-aos-duration='1350'] [data-aos]{-webkit-transition-duration:1.35s;transition-duration:1.35s}[data-aos][data-aos][data-aos-duration='1400'],body[data-aos-duration='1400'] [data-aos]{-webkit-transition-duration:1.4s;transition-duration:1.4s}[data-aos][data-aos][data-aos-duration='1450'],body[data-aos-duration='1450'] [data-aos]{-webkit-transition-duration:1.45s;transition-duration:1.45s}[data-aos][data-aos][data-aos-duration='1500'],body[data-aos-duration='1500'] [data-aos]{-webkit-transition-duration:1.5s;transition-duration:1.5s}[data-aos][data-aos][data-aos-duration='1550'],body[data-aos-duration='1550'] [data-aos]{-webkit-transition-duration:1.55s;transition-duration:1.55s}[data-aos][data-aos][data-aos-duration='1600'],body[data-aos-duration='1600'] [data-aos]{-webkit-transition-duration:1.6s;transition-duration:1.6s}[data-aos][data-aos][data-aos-duration='1650'],body[data-aos-duration='1650'] [data-aos]{-webkit-transition-duration:1.65s;transition-duration:1.65s}[data-aos][data-aos][data-aos-duration='1700'],body[data-aos-duration='1700'] [data-aos]{-webkit-transition-duration:1.7s;transition-duration:1.7s}[data-aos][data-aos][data-aos-duration='1750'],body[data-aos-duration='1750'] [data-aos]{-webkit-transition-duration:1.75s;transition-duration:1.75s}[data-aos][data-aos][data-aos-duration='1800'],body[data-aos-duration='1800'] [data-aos]{-webkit-transition-duration:1.8s;transition-duration:1.8s}[data-aos][data-aos][data-aos-duration='1850'],body[data-aos-duration='1850'] [data-aos]{-webkit-transition-duration:1.85s;transition-duration:1.85s}[data-aos][data-aos][data-aos-duration='1900'],body[data-aos-duration='1900'] [data-aos]{-webkit-transition-duration:1.9s;transition-duration:1.9s}[data-aos][data-aos][data-aos-duration='1950'],body[data-aos-duration='1950'] [data-aos]{-webkit-transition-duration:1.95s;transition-duration:1.95s}[data-aos][data-aos][data-aos-duration='2000'],body[data-aos-duration='2000'] [data-aos]{-webkit-transition-duration:2s;transition-duration:2s}[data-aos][data-aos][data-aos-duration='2050'],body[data-aos-duration='2050'] [data-aos]{-webkit-transition-duration:2.05s;transition-duration:2.05s}[data-aos][data-aos][data-aos-duration='2100'],body[data-aos-duration='2100'] [data-aos]{-webkit-transition-duration:2.1s;transition-duration:2.1s}[data-aos][data-aos][data-aos-duration='2150'],body[data-aos-duration='2150'] [data-aos]{-webkit-transition-duration:2.15s;transition-duration:2.15s}[data-aos][data-aos][data-aos-duration='2200'],body[data-aos-duration='2200'] [data-aos]{-webkit-transition-duration:2.2s;transition-duration:2.2s}[data-aos][data-aos][data-aos-duration='2250'],body[data-aos-duration='2250'] [data-aos]{-webkit-transition-duration:2.25s;transition-duration:2.25s}[data-aos][data-aos][data-aos-duration='2300'],body[data-aos-duration='2300'] [data-aos]{-webkit-transition-duration:2.3s;transition-duration:2.3s}[data-aos][data-aos][data-aos-duration='2350'],body[data-aos-duration='2350'] [data-aos]{-webkit-transition-duration:2.35s;transition-duration:2.35s}[data-aos][data-aos][data-aos-duration='2400'],body[data-aos-duration='2400'] [data-aos]{-webkit-transition-duration:2.4s;transition-duration:2.4s}[data-aos][data-aos][data-aos-duration='2450'],body[data-aos-duration='2450'] [data-aos]{-webkit-transition-duration:2.45s;transition-duration:2.45s}[data-aos][data-aos][data-aos-duration='2500'],body[data-aos-duration='2500'] [data-aos]{-webkit-transition-duration:2.5s;transition-duration:2.5s}[data-aos][data-aos][data-aos-duration='2550'],body[data-aos-duration='2550'] [data-aos]{-webkit-transition-duration:2.55s;transition-duration:2.55s}[data-aos][data-aos][data-aos-duration='2600'],body[data-aos-duration='2600'] [data-aos]{-webkit-transition-duration:2.6s;transition-duration:2.6s}[data-aos][data-aos][data-aos-duration='2650'],body[data-aos-duration='2650'] [data-aos]{-webkit-transition-duration:2.65s;transition-duration:2.65s}[data-aos][data-aos][data-aos-duration='2700'],body[data-aos-duration='2700'] [data-aos]{-webkit-transition-duration:2.7s;transition-duration:2.7s}[data-aos][data-aos][data-aos-duration='2750'],body[data-aos-duration='2750'] [data-aos]{-webkit-transition-duration:2.75s;transition-duration:2.75s}[data-aos][data-aos][data-aos-duration='2800'],body[data-aos-duration='2800'] [data-aos]{-webkit-transition-duration:2.8s;transition-duration:2.8s}[data-aos][data-aos][data-aos-duration='2850'],body[data-aos-duration='2850'] [data-aos]{-webkit-transition-duration:2.85s;transition-duration:2.85s}[data-aos][data-aos][data-aos-duration='2900'],body[data-aos-duration='2900'] [data-aos]{-webkit-transition-duration:2.9s;transition-duration:2.9s}[data-aos][data-aos][data-aos-duration='2950'],body[data-aos-duration='2950'] [data-aos]{-webkit-transition-duration:2.95s;transition-duration:2.95s}[data-aos][data-aos][data-aos-duration='3000'],body[data-aos-duration='3000'] [data-aos]{-webkit-transition-duration:3s;transition-duration:3s}[data-aos][data-aos][data-aos-delay='50'],body[data-aos-delay='50'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='50'].aos-animate,body[data-aos-delay='50'] [data-aos].aos-animate{-webkit-transition-delay:50ms;transition-delay:50ms}[data-aos][data-aos][data-aos-delay='100'],body[data-aos-delay='100'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='100'].aos-animate,body[data-aos-delay='100'] [data-aos].aos-animate{-webkit-transition-delay:.1s;transition-delay:.1s}[data-aos][data-aos][data-aos-delay='150'],body[data-aos-delay='150'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='150'].aos-animate,body[data-aos-delay='150'] [data-aos].aos-animate{-webkit-transition-delay:150ms;transition-delay:150ms}[data-aos][data-aos][data-aos-delay='200'],body[data-aos-delay='200'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='200'].aos-animate,body[data-aos-delay='200'] [data-aos].aos-animate{-webkit-transition-delay:.2s;transition-delay:.2s}[data-aos][data-aos][data-aos-delay='250'],body[data-aos-delay='250'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='250'].aos-animate,body[data-aos-delay='250'] [data-aos].aos-animate{-webkit-transition-delay:250ms;transition-delay:250ms}[data-aos][data-aos][data-aos-delay='300'],body[data-aos-delay='300'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='300'].aos-animate,body[data-aos-delay='300'] [data-aos].aos-animate{-webkit-transition-delay:.3s;transition-delay:.3s}[data-aos][data-aos][data-aos-delay='350'],body[data-aos-delay='350'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='350'].aos-animate,body[data-aos-delay='350'] [data-aos].aos-animate{-webkit-transition-delay:350ms;transition-delay:350ms}[data-aos][data-aos][data-aos-delay='400'],body[data-aos-delay='400'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='400'].aos-animate,body[data-aos-delay='400'] [data-aos].aos-animate{-webkit-transition-delay:.4s;transition-delay:.4s}[data-aos][data-aos][data-aos-delay='450'],body[data-aos-delay='450'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='450'].aos-animate,body[data-aos-delay='450'] [data-aos].aos-animate{-webkit-transition-delay:450ms;transition-delay:450ms}[data-aos][data-aos][data-aos-delay='500'],body[data-aos-delay='500'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='500'].aos-animate,body[data-aos-delay='500'] [data-aos].aos-animate{-webkit-transition-delay:.5s;transition-delay:.5s}[data-aos][data-aos][data-aos-delay='550'],body[data-aos-delay='550'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='550'].aos-animate,body[data-aos-delay='550'] [data-aos].aos-animate{-webkit-transition-delay:550ms;transition-delay:550ms}[data-aos][data-aos][data-aos-delay='600'],body[data-aos-delay='600'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='600'].aos-animate,body[data-aos-delay='600'] [data-aos].aos-animate{-webkit-transition-delay:.6s;transition-delay:.6s}[data-aos][data-aos][data-aos-delay='650'],body[data-aos-delay='650'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='650'].aos-animate,body[data-aos-delay='650'] [data-aos].aos-animate{-webkit-transition-delay:650ms;transition-delay:650ms}[data-aos][data-aos][data-aos-delay='700'],body[data-aos-delay='700'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='700'].aos-animate,body[data-aos-delay='700'] [data-aos].aos-animate{-webkit-transition-delay:.7s;transition-delay:.7s}[data-aos][data-aos][data-aos-delay='750'],body[data-aos-delay='750'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='750'].aos-animate,body[data-aos-delay='750'] [data-aos].aos-animate{-webkit-transition-delay:750ms;transition-delay:750ms}[data-aos][data-aos][data-aos-delay='800'],body[data-aos-delay='800'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='800'].aos-animate,body[data-aos-delay='800'] [data-aos].aos-animate{-webkit-transition-delay:.8s;transition-delay:.8s}[data-aos][data-aos][data-aos-delay='850'],body[data-aos-delay='850'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='850'].aos-animate,body[data-aos-delay='850'] [data-aos].aos-animate{-webkit-transition-delay:850ms;transition-delay:850ms}[data-aos][data-aos][data-aos-delay='900'],body[data-aos-delay='900'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='900'].aos-animate,body[data-aos-delay='900'] [data-aos].aos-animate{-webkit-transition-delay:.9s;transition-delay:.9s}[data-aos][data-aos][data-aos-delay='950'],body[data-aos-delay='950'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='950'].aos-animate,body[data-aos-delay='950'] [data-aos].aos-animate{-webkit-transition-delay:950ms;transition-delay:950ms}[data-aos][data-aos][data-aos-delay='1000'],body[data-aos-delay='1000'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1000'].aos-animate,body[data-aos-delay='1000'] [data-aos].aos-animate{-webkit-transition-delay:1s;transition-delay:1s}[data-aos][data-aos][data-aos-delay='1050'],body[data-aos-delay='1050'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1050'].aos-animate,body[data-aos-delay='1050'] [data-aos].aos-animate{-webkit-transition-delay:1.05s;transition-delay:1.05s}[data-aos][data-aos][data-aos-delay='1100'],body[data-aos-delay='1100'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1100'].aos-animate,body[data-aos-delay='1100'] [data-aos].aos-animate{-webkit-transition-delay:1.1s;transition-delay:1.1s}[data-aos][data-aos][data-aos-delay='1150'],body[data-aos-delay='1150'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1150'].aos-animate,body[data-aos-delay='1150'] [data-aos].aos-animate{-webkit-transition-delay:1.15s;transition-delay:1.15s}[data-aos][data-aos][data-aos-delay='1200'],body[data-aos-delay='1200'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1200'].aos-animate,body[data-aos-delay='1200'] [data-aos].aos-animate{-webkit-transition-delay:1.2s;transition-delay:1.2s}[data-aos][data-aos][data-aos-delay='1250'],body[data-aos-delay='1250'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1250'].aos-animate,body[data-aos-delay='1250'] [data-aos].aos-animate{-webkit-transition-delay:1.25s;transition-delay:1.25s}[data-aos][data-aos][data-aos-delay='1300'],body[data-aos-delay='1300'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1300'].aos-animate,body[data-aos-delay='1300'] [data-aos].aos-animate{-webkit-transition-delay:1.3s;transition-delay:1.3s}[data-aos][data-aos][data-aos-delay='1350'],body[data-aos-delay='1350'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1350'].aos-animate,body[data-aos-delay='1350'] [data-aos].aos-animate{-webkit-transition-delay:1.35s;transition-delay:1.35s}[data-aos][data-aos][data-aos-delay='1400'],body[data-aos-delay='1400'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1400'].aos-animate,body[data-aos-delay='1400'] [data-aos].aos-animate{-webkit-transition-delay:1.4s;transition-delay:1.4s}[data-aos][data-aos][data-aos-delay='1450'],body[data-aos-delay='1450'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1450'].aos-animate,body[data-aos-delay='1450'] [data-aos].aos-animate{-webkit-transition-delay:1.45s;transition-delay:1.45s}[data-aos][data-aos][data-aos-delay='1500'],body[data-aos-delay='1500'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1500'].aos-animate,body[data-aos-delay='1500'] [data-aos].aos-animate{-webkit-transition-delay:1.5s;transition-delay:1.5s}[data-aos][data-aos][data-aos-delay='1550'],body[data-aos-delay='1550'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1550'].aos-animate,body[data-aos-delay='1550'] [data-aos].aos-animate{-webkit-transition-delay:1.55s;transition-delay:1.55s}[data-aos][data-aos][data-aos-delay='1600'],body[data-aos-delay='1600'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1600'].aos-animate,body[data-aos-delay='1600'] [data-aos].aos-animate{-webkit-transition-delay:1.6s;transition-delay:1.6s}[data-aos][data-aos][data-aos-delay='1650'],body[data-aos-delay='1650'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1650'].aos-animate,body[data-aos-delay='1650'] [data-aos].aos-animate{-webkit-transition-delay:1.65s;transition-delay:1.65s}[data-aos][data-aos][data-aos-delay='1700'],body[data-aos-delay='1700'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1700'].aos-animate,body[data-aos-delay='1700'] [data-aos].aos-animate{-webkit-transition-delay:1.7s;transition-delay:1.7s}[data-aos][data-aos][data-aos-delay='1750'],body[data-aos-delay='1750'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1750'].aos-animate,body[data-aos-delay='1750'] [data-aos].aos-animate{-webkit-transition-delay:1.75s;transition-delay:1.75s}[data-aos][data-aos][data-aos-delay='1800'],body[data-aos-delay='1800'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1800'].aos-animate,body[data-aos-delay='1800'] [data-aos].aos-animate{-webkit-transition-delay:1.8s;transition-delay:1.8s}[data-aos][data-aos][data-aos-delay='1850'],body[data-aos-delay='1850'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1850'].aos-animate,body[data-aos-delay='1850'] [data-aos].aos-animate{-webkit-transition-delay:1.85s;transition-delay:1.85s}[data-aos][data-aos][data-aos-delay='1900'],body[data-aos-delay='1900'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1900'].aos-animate,body[data-aos-delay='1900'] [data-aos].aos-animate{-webkit-transition-delay:1.9s;transition-delay:1.9s}[data-aos][data-aos][data-aos-delay='1950'],body[data-aos-delay='1950'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1950'].aos-animate,body[data-aos-delay='1950'] [data-aos].aos-animate{-webkit-transition-delay:1.95s;transition-delay:1.95s}[data-aos][data-aos][data-aos-delay='2000'],body[data-aos-delay='2000'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2000'].aos-animate,body[data-aos-delay='2000'] [data-aos].aos-animate{-webkit-transition-delay:2s;transition-delay:2s}[data-aos][data-aos][data-aos-delay='2050'],body[data-aos-delay='2050'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2050'].aos-animate,body[data-aos-delay='2050'] [data-aos].aos-animate{-webkit-transition-delay:2.05s;transition-delay:2.05s}[data-aos][data-aos][data-aos-delay='2100'],body[data-aos-delay='2100'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2100'].aos-animate,body[data-aos-delay='2100'] [data-aos].aos-animate{-webkit-transition-delay:2.1s;transition-delay:2.1s}[data-aos][data-aos][data-aos-delay='2150'],body[data-aos-delay='2150'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2150'].aos-animate,body[data-aos-delay='2150'] [data-aos].aos-animate{-webkit-transition-delay:2.15s;transition-delay:2.15s}[data-aos][data-aos][data-aos-delay='2200'],body[data-aos-delay='2200'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2200'].aos-animate,body[data-aos-delay='2200'] [data-aos].aos-animate{-webkit-transition-delay:2.2s;transition-delay:2.2s}[data-aos][data-aos][data-aos-delay='2250'],body[data-aos-delay='2250'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2250'].aos-animate,body[data-aos-delay='2250'] [data-aos].aos-animate{-webkit-transition-delay:2.25s;transition-delay:2.25s}[data-aos][data-aos][data-aos-delay='2300'],body[data-aos-delay='2300'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2300'].aos-animate,body[data-aos-delay='2300'] [data-aos].aos-animate{-webkit-transition-delay:2.3s;transition-delay:2.3s}[data-aos][data-aos][data-aos-delay='2350'],body[data-aos-delay='2350'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2350'].aos-animate,body[data-aos-delay='2350'] [data-aos].aos-animate{-webkit-transition-delay:2.35s;transition-delay:2.35s}[data-aos][data-aos][data-aos-delay='2400'],body[data-aos-delay='2400'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2400'].aos-animate,body[data-aos-delay='2400'] [data-aos].aos-animate{-webkit-transition-delay:2.4s;transition-delay:2.4s}[data-aos][data-aos][data-aos-delay='2450'],body[data-aos-delay='2450'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2450'].aos-animate,body[data-aos-delay='2450'] [data-aos].aos-animate{-webkit-transition-delay:2.45s;transition-delay:2.45s}[data-aos][data-aos][data-aos-delay='2500'],body[data-aos-delay='2500'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2500'].aos-animate,body[data-aos-delay='2500'] [data-aos].aos-animate{-webkit-transition-delay:2.5s;transition-delay:2.5s}[data-aos][data-aos][data-aos-delay='2550'],body[data-aos-delay='2550'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2550'].aos-animate,body[data-aos-delay='2550'] [data-aos].aos-animate{-webkit-transition-delay:2.55s;transition-delay:2.55s}[data-aos][data-aos][data-aos-delay='2600'],body[data-aos-delay='2600'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2600'].aos-animate,body[data-aos-delay='2600'] [data-aos].aos-animate{-webkit-transition-delay:2.6s;transition-delay:2.6s}[data-aos][data-aos][data-aos-delay='2650'],body[data-aos-delay='2650'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2650'].aos-animate,body[data-aos-delay='2650'] [data-aos].aos-animate{-webkit-transition-delay:2.65s;transition-delay:2.65s}[data-aos][data-aos][data-aos-delay='2700'],body[data-aos-delay='2700'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2700'].aos-animate,body[data-aos-delay='2700'] [data-aos].aos-animate{-webkit-transition-delay:2.7s;transition-delay:2.7s}[data-aos][data-aos][data-aos-delay='2750'],body[data-aos-delay='2750'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2750'].aos-animate,body[data-aos-delay='2750'] [data-aos].aos-animate{-webkit-transition-delay:2.75s;transition-delay:2.75s}[data-aos][data-aos][data-aos-delay='2800'],body[data-aos-delay='2800'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2800'].aos-animate,body[data-aos-delay='2800'] [data-aos].aos-animate{-webkit-transition-delay:2.8s;transition-delay:2.8s}[data-aos][data-aos][data-aos-delay='2850'],body[data-aos-delay='2850'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2850'].aos-animate,body[data-aos-delay='2850'] [data-aos].aos-animate{-webkit-transition-delay:2.85s;transition-delay:2.85s}[data-aos][data-aos][data-aos-delay='2900'],body[data-aos-delay='2900'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2900'].aos-animate,body[data-aos-delay='2900'] [data-aos].aos-animate{-webkit-transition-delay:2.9s;transition-delay:2.9s}[data-aos][data-aos][data-aos-delay='2950'],body[data-aos-delay='2950'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2950'].aos-animate,body[data-aos-delay='2950'] [data-aos].aos-animate{-webkit-transition-delay:2.95s;transition-delay:2.95s}[data-aos][data-aos][data-aos-delay='3000'],body[data-aos-delay='3000'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='3000'].aos-animate,body[data-aos-delay='3000'] [data-aos].aos-animate{-webkit-transition-delay:3s;transition-delay:3s}[data-aos^=fade][data-aos^=fade]{opacity:0;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,transform}[data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[data-aos=fade-up]{-webkit-transform:translate(0,100px);-ms-transform:translate(0,100px);transform:translate(0,100px)}[data-aos=fade-down]{-webkit-transform:translate(0,-100px);-ms-transform:translate(0,-100px);transform:translate(0,-100px)}[data-aos=fade-right]{-webkit-transform:translate(-100px,0);-ms-transform:translate(-100px,0);transform:translate(-100px,0)}[data-aos=fade-left]{-webkit-transform:translate(100px,0);-ms-transform:translate(100px,0);transform:translate(100px,0)}[data-aos=fade-up-right]{-webkit-transform:translate(-100px,100px);-ms-transform:translate(-100px,100px);transform:translate(-100px,100px)}[data-aos=fade-up-left]{-webkit-transform:translate(100px,100px);-ms-transform:translate(100px,100px);transform:translate(100px,100px)}[data-aos=fade-down-right]{-webkit-transform:translate(-100px,-100px);-ms-transform:translate(-100px,-100px);transform:translate(-100px,-100px)}[data-aos=fade-down-left]{-webkit-transform:translate(100px,-100px);-ms-transform:translate(100px,-100px);transform:translate(100px,-100px)}[data-aos^=zoom][data-aos^=zoom]{opacity:0;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,transform}[data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[data-aos=zoom-in]{-webkit-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}[data-aos=zoom-in-up]{-webkit-transform:translate(0,100px) scale(.6);-ms-transform:translate(0,100px) scale(.6);transform:translate(0,100px) scale(.6)}[data-aos=zoom-in-down]{-webkit-transform:translate(0,-100px) scale(.6);-ms-transform:translate(0,-100px) scale(.6);transform:translate(0,-100px) scale(.6)}[data-aos=zoom-in-right]{-webkit-transform:translate(-100px,0) scale(.6);-ms-transform:translate(-100px,0) scale(.6);transform:translate(-100px,0) scale(.6)}[data-aos=zoom-in-left]{-webkit-transform:translate(100px,0) scale(.6);-ms-transform:translate(100px,0) scale(.6);transform:translate(100px,0) scale(.6)}[data-aos=zoom-out]{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}[data-aos=zoom-out-up]{-webkit-transform:translate(0,100px) scale(1.2);-ms-transform:translate(0,100px) scale(1.2);transform:translate(0,100px) scale(1.2)}[data-aos=zoom-out-down]{-webkit-transform:translate(0,-100px) scale(1.2);-ms-transform:translate(0,-100px) scale(1.2);transform:translate(0,-100px) scale(1.2)}[data-aos=zoom-out-right]{-webkit-transform:translate(-100px,0) scale(1.2);-ms-transform:translate(-100px,0) scale(1.2);transform:translate(-100px,0) scale(1.2)}[data-aos=zoom-out-left]{-webkit-transform:translate(100px,0) scale(1.2);-ms-transform:translate(100px,0) scale(1.2);transform:translate(100px,0) scale(1.2)}[data-aos^=slide][data-aos^=slide]{-webkit-transition-property:-webkit-transform;transition-property:transform}[data-aos^=slide][data-aos^=slide].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[data-aos=slide-up]{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}[data-aos=slide-down]{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}[data-aos=slide-right]{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}[data-aos=slide-left]{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}[data-aos^=flip][data-aos^=flip]{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition-property:-webkit-transform;transition-property:transform}[data-aos=flip-left]{-webkit-transform:perspective(2500px) rotateY(-100deg);transform:perspective(2500px) rotateY(-100deg)}[data-aos=flip-left].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[data-aos=flip-right]{-webkit-transform:perspective(2500px) rotateY(100deg);transform:perspective(2500px) rotateY(100deg)}[data-aos=flip-right].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[data-aos=flip-up]{-webkit-transform:perspective(2500px) rotateX(-100deg);transform:perspective(2500px) rotateX(-100deg)}[data-aos=flip-up].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)}[data-aos=flip-down]{-webkit-transform:perspective(2500px) rotateX(100deg);transform:perspective(2500px) rotateX(100deg)}[data-aos=flip-down].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)} \ No newline at end of file diff --git a/dist/aos.js b/dist/aos.js index 946995b..6947c32 100644 --- a/dist/aos.js +++ b/dist/aos.js @@ -1,2 +1,2 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.AOS=e()}}(function(){return function e(t,n,o){function r(i,c){if(!n[i]){if(!t[i]){var s="function"==typeof require&&require;if(!c&&s)return s(i,!0);if(a)return a(i,!0);var u=new Error("Cannot find module '"+i+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[i]={exports:{}};t[i][0].call(l.exports,function(e){var n=t[i][1][e];return r(n?n:e)},l,l.exports,e,t,n,o)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i2?n[i-2]:void 0,s=i>2?n[2]:void 0,u=i>1?n[i-1]:void 0;for("function"==typeof c?(c=o(c,u,5),i-=2):(c="function"==typeof u?u:void 0,i-=c?1:0),s&&r(n[0],n[1],s)&&(c=3>i?void 0:c,i=1);++a-1&&e%1==0&&t>e}function a(e,t,n){if(!c(n))return!1;var a=typeof t;if("number"==a?o(n)&&r(t,n.length):"string"==a&&t in n){var i=n[t];return e===e?e===i:i!==i}return!1}function i(e){return"number"==typeof e&&e>-1&&e%1==0&&u>=e}function c(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var s=/^\d+$/,u=9007199254740991,l=n("length");t.exports=a},{}],7:[function(e,t){function n(e,t){if("function"!=typeof e)throw new TypeError(o);return t=r(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,o=-1,a=r(n.length-t,0),i=Array(a);++o-1&&e%1==0&&t>e}function a(e){return"number"==typeof e&&e>-1&&e%1==0&&b>=e}function i(e){for(var t=s(e),n=t.length,o=n&&e.length,i=!!o&&a(o)&&(f(e)||l(e)),c=-1,u=[];++c0;++o-1&&e%1==0&&l>=e}function i(e){return n(e)&&r(e)&&s.call(e,"callee")&&!u.call(e,"callee")}var c=Object.prototype,s=c.hasOwnProperty,u=c.propertyIsEnumerable,l=9007199254740991,f=o("length");t.exports=i},{}],11:[function(e,t){function n(e){return!!e&&"object"==typeof e}function o(e,t){var n=null==e?void 0:e[t];return c(n)?n:void 0}function r(e){return"number"==typeof e&&e>-1&&e%1==0&&v>=e}function a(e){return i(e)&&m.call(e)==u}function i(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function c(e){return null==e?!1:a(e)?h.test(d.call(e)):n(e)&&l.test(e)}var s="[object Array]",u="[object Function]",l=/^\[object .+?Constructor\]$/,f=Object.prototype,d=Function.prototype.toString,p=f.hasOwnProperty,m=f.toString,h=RegExp("^"+d.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),b=o(Array,"isArray"),v=9007199254740991,g=b||function(e){return n(e)&&r(e.length)&&m.call(e)==s};t.exports=g},{}],12:[function(e,t){function n(e,t,n){function r(){v&&clearTimeout(v),p&&clearTimeout(p),y=0,p=v=g=void 0}function c(t,n){n&&clearTimeout(n),p=v=g=void 0,t&&(y=s(),m=e.apply(b,d),v||p||(d=b=void 0))}function u(){var e=t-(s()-h);0>=e||e>t?c(g,p):v=setTimeout(u,e)}function l(){c(k,v)}function f(){if(d=arguments,h=s(),b=this,g=k&&(v||!x),w===!1)var n=x&&!v;else{p||x||(y=h);var o=w-(h-y),r=0>=o||o>w;r?(p&&(p=clearTimeout(p)),y=h,m=e.apply(b,d)):p||(p=setTimeout(l,o))}return r&&v?v=clearTimeout(v):v||t===w||(v=setTimeout(u,t)),n&&(r=!0,m=e.apply(b,d)),!r||v||p||(d=b=void 0),m}var d,p,m,h,b,v,g,y=0,w=!1,k=!0;if("function"!=typeof e)throw new TypeError(a);if(t=0>t?0:+t||0,n===!0){var x=!0;k=!1}else o(n)&&(x=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,t),k="trailing"in n?!!n.trailing:k);return f.cancel=r,f}function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var r=e("lodash._getnative"),a="Expected a function",i=Math.max,c=r(Date,"now"),s=c||function(){return(new Date).getTime()};t.exports=n},{"lodash._getnative":13}],13:[function(e,t,n){arguments[4][9][0].apply(n,arguments)},{dup:9}],14:[function(e,t){function n(e,t,n){var i=!0,c=!0;if("function"!=typeof e)throw new TypeError(a);return n===!1?i=!1:o(n)&&(i="leading"in n?!!n.leading:i,c="trailing"in n?!!n.trailing:c),r(e,t,{leading:i,maxWait:+t,trailing:c})}function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var r=e("lodash.debounce"),a="Expected a function";t.exports=n},{"lodash.debounce":12}],15:[function(e,t){var n=e("lodash.throttle"),o=e("lodash.debounce"),r=e("lodash.assign"),a=e("./libs/observer"),i=(e("./libs/classList-shim"),e("./helpers/detector")),c=e("./helpers/handleScroll"),s=e("./helpers/prepare"),u=e("./helpers/elements"),l=e("./helpers/replaceDataAttr");!function(e,f){var d=[],p=!1,m={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,startEvent:"DOMContentLoaded"},h=function(e){return e&&e===!0&&(p=!0),p?(d=s(d,m),c(d,m.once),d):void 0},b=function(t){return m=r(m,t),l(),d=u(),m.disable&&(m.disable===!0||"mobile"===m.disable&&i.mobile()||"phone"===m.disable&&i.phone()||"tablet"===m.disable&&i.tablet()||"function"==typeof m.disable&&m.disable()===!0)?([].forEach.call(d,function(e){e.node.removeAttribute("aos"),e.node.removeAttribute("aos-easing"),e.node.removeAttribute("aos-duration"),e.node.removeAttribute("aos-delay")}),!1):(f.querySelector("body").setAttribute("aos-easing",m.easing),f.querySelector("body").setAttribute("aos-duration",m.duration),f.querySelector("body").setAttribute("aos-delay",m.delay),"DOMContentLoaded"===m.startEvent&&["complete","interactive"].indexOf(f.readyState)>-1?h(!0):f.addEventListener(m.startEvent,function(){h(!0)}),e.addEventListener("resize",o(h,50,!0)),e.addEventListener("orientationchange",o(h,50,!0)),e.addEventListener("scroll",n(function(){c(d,m.once)},99)),f.addEventListener("DOMNodeRemoved",function(e){var t=e.target;t&&1===t.nodeType&&t.hasAttribute&&e.target.hasAttribute("aos")&&o(h,50,!0)}),a("[aos]",h),d)},v={init:b,refresh:h};t.exports=v}(window,document)},{"./helpers/detector":17,"./helpers/elements":18,"./helpers/handleScroll":19,"./helpers/prepare":20,"./helpers/replaceDataAttr":21,"./libs/classList-shim":22,"./libs/observer":23,"lodash.assign":1,"lodash.debounce":12,"lodash.throttle":14}],16:[function(e,t){var n=e("./../libs/offset"),o=function(e,t){var o=0,r=0,a=window.innerHeight,i={offset:e.getAttribute("aos-offset"),anchor:e.getAttribute("aos-anchor"),anchorPlacement:e.getAttribute("aos-anchor-placement")};switch(i.offset&&!isNaN(i.offset)&&(r=parseInt(i.offset)),i.anchor&&document.querySelectorAll(i.anchor)&&(e=document.querySelectorAll(i.anchor)[0]),o=n(e).top,i.anchorPlacement){case"top-bottom":break;case"center-bottom":o+=e.offsetHeight/2;break;case"bottom-bottom":o+=e.offsetHeight;break;case"top-center":o+=a/2;break;case"bottom-center":o+=a/2+e.offsetHeight;break;case"center-center":o+=a/2+e.offsetHeight/2;break;case"top-top":o+=a;break;case"bottom-top":o+=e.offsetHeight+a;break;case"center-top":o+=e.offsetHeight/2+a}return i.anchorPlacement||i.offset||isNaN(t)||(r=t),o+r};t.exports=o},{"./../libs/offset":24}],17:[function(e,t){var n={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 _detect.mobile()&&!_detect.phone()}};t.exports=n},{}],18:[function(e,t){var n=function(e){var e=e||document.querySelectorAll("[aos]"),t=[];return[].forEach.call(e,function(e){t.push({node:e})}),t};t.exports=n},{}],19:[function(e,t){var n=function(e,t,n){var o=e.node.getAttribute("aos-once");t>e.position?e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")},o=function(e,t){var o=window.pageYOffset,r=window.innerHeight;[].forEach.call(e,function(e){n(e,r+o,t)})};t.exports=o},{}],20:[function(e,t){var n=e("./calculateOffset"),o=function(e,t){return[].forEach.call(e,function(e){e.node.classList.add("aos-init"),e.position=n(e.node,t.offset)}),e};t.exports=o},{"./calculateOffset":16}],21:[function(e,t){var n=function(){var e=["[data-aos]","[data-aos-offset]","[data-aos-easing]","[data-aos-delay]","[data-aos-anchor]","[data-aos-anchor-placement]","[data-aos-once]"],t=e.join(", "),n=document.querySelectorAll(t);[].forEach.call(n,function(t){var n=/^data\-(.+)$/,o=[];[].forEach.call(t.attributes,function(r){if(n.test(r.nodeName)){var a=r.nodeName.match(n)[0],i="["+a+"]",c=r.nodeName.match(n)[1];t.getAttribute(a).length&&-1!==e.indexOf(i)&&(t.setAttribute(c,r.nodeValue),o.push(a))}});for(var r=0;rn;n++){e=a[n],t=i.querySelectorAll(e.selector);for(var r,c=0,s=t.length;s>c;c++)r=t[c],r.ready||(r.ready=!0,e.fn.call(r,r))}}var r,a=[],i=window.document,c=window.MutationObserver||window.WebKitMutationObserver;t.exports=n},{}],24:[function(e,t){var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.exports=n},{}]},{},[15])(15)}); +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.AOS=e()}}(function(){return function e(t,n,o){function r(i,c){if(!n[i]){if(!t[i]){var s="function"==typeof require&&require;if(!c&&s)return s(i,!0);if(a)return a(i,!0);var u=new Error("Cannot find module '"+i+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[i]={exports:{}};t[i][0].call(l.exports,function(e){var n=t[i][1][e];return r(n?n:e)},l,l.exports,e,t,n,o)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i2?n[i-2]:void 0,s=i>2?n[2]:void 0,u=i>1?n[i-1]:void 0;for("function"==typeof c?(c=o(c,u,5),i-=2):(c="function"==typeof u?u:void 0,i-=c?1:0),s&&r(n[0],n[1],s)&&(c=3>i?void 0:c,i=1);++a-1&&e%1==0&&t>e}function a(e,t,n){if(!c(n))return!1;var a=typeof t;if("number"==a?o(n)&&r(t,n.length):"string"==a&&t in n){var i=n[t];return e===e?e===i:i!==i}return!1}function i(e){return"number"==typeof e&&e>-1&&e%1==0&&u>=e}function c(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var s=/^\d+$/,u=9007199254740991,l=n("length");t.exports=a},{}],7:[function(e,t){function n(e,t){if("function"!=typeof e)throw new TypeError(o);return t=r(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,o=-1,a=r(n.length-t,0),i=Array(a);++o-1&&e%1==0&&t>e}function a(e){return"number"==typeof e&&e>-1&&e%1==0&&v>=e}function i(e){for(var t=s(e),n=t.length,o=n&&e.length,i=!!o&&a(o)&&(f(e)||l(e)),c=-1,u=[];++c0;++o-1&&e%1==0&&l>=e}function i(e){return n(e)&&r(e)&&s.call(e,"callee")&&!u.call(e,"callee")}var c=Object.prototype,s=c.hasOwnProperty,u=c.propertyIsEnumerable,l=9007199254740991,f=o("length");t.exports=i},{}],11:[function(e,t){function n(e){return!!e&&"object"==typeof e}function o(e,t){var n=null==e?void 0:e[t];return c(n)?n:void 0}function r(e){return"number"==typeof e&&e>-1&&e%1==0&&h>=e}function a(e){return i(e)&&m.call(e)==u}function i(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function c(e){return null==e?!1:a(e)?b.test(d.call(e)):n(e)&&l.test(e)}var s="[object Array]",u="[object Function]",l=/^\[object .+?Constructor\]$/,f=Object.prototype,d=Function.prototype.toString,p=f.hasOwnProperty,m=f.toString,b=RegExp("^"+d.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),v=o(Array,"isArray"),h=9007199254740991,g=v||function(e){return n(e)&&r(e.length)&&m.call(e)==s};t.exports=g},{}],12:[function(e,t){function n(e,t,n){function r(){h&&clearTimeout(h),p&&clearTimeout(p),y=0,p=h=g=void 0}function c(t,n){n&&clearTimeout(n),p=h=g=void 0,t&&(y=s(),m=e.apply(v,d),h||p||(d=v=void 0))}function u(){var e=t-(s()-b);0>=e||e>t?c(g,p):h=setTimeout(u,e)}function l(){c(k,h)}function f(){if(d=arguments,b=s(),v=this,g=k&&(h||!x),w===!1)var n=x&&!h;else{p||x||(y=b);var o=w-(b-y),r=0>=o||o>w;r?(p&&(p=clearTimeout(p)),y=b,m=e.apply(v,d)):p||(p=setTimeout(l,o))}return r&&h?h=clearTimeout(h):h||t===w||(h=setTimeout(u,t)),n&&(r=!0,m=e.apply(v,d)),!r||h||p||(d=v=void 0),m}var d,p,m,b,v,h,g,y=0,w=!1,k=!0;if("function"!=typeof e)throw new TypeError(a);if(t=0>t?0:+t||0,n===!0){var x=!0;k=!1}else o(n)&&(x=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,t),k="trailing"in n?!!n.trailing:k);return f.cancel=r,f}function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var r=e("lodash._getnative"),a="Expected a function",i=Math.max,c=r(Date,"now"),s=c||function(){return(new Date).getTime()};t.exports=n},{"lodash._getnative":13}],13:[function(e,t,n){arguments[4][9][0].apply(n,arguments)},{dup:9}],14:[function(e,t){function n(e,t,n){var i=!0,c=!0;if("function"!=typeof e)throw new TypeError(a);return n===!1?i=!1:o(n)&&(i="leading"in n?!!n.leading:i,c="trailing"in n?!!n.trailing:c),r(e,t,{leading:i,maxWait:+t,trailing:c})}function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var r=e("lodash.debounce"),a="Expected a function";t.exports=n},{"lodash.debounce":12}],15:[function(e,t){var n=e("lodash.throttle"),o=e("lodash.debounce"),r=e("lodash.assign"),a=e("./libs/observer"),i=(e("./libs/classList-shim"),e("./helpers/detector")),c=e("./helpers/handleScroll"),s=e("./helpers/prepare"),u=e("./helpers/elements");!function(e,l){var f=[],d=!1,p={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,startEvent:"DOMContentLoaded"},m=function(e){return e&&e===!0&&(d=!0),d?(f=s(f,p),c(f,p.once),f):void 0},b=function(t){return p=r(p,t),f=u(),p.disable&&(p.disable===!0||"mobile"===p.disable&&i.mobile()||"phone"===p.disable&&i.phone()||"tablet"===p.disable&&i.tablet()||"function"==typeof p.disable&&p.disable()===!0)?([].forEach.call(f,function(e){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")}),!1):(l.querySelector("body").setAttribute("data-aos-easing",p.easing),l.querySelector("body").setAttribute("data-aos-duration",p.duration),l.querySelector("body").setAttribute("data-aos-delay",p.delay),"DOMContentLoaded"===p.startEvent&&["complete","interactive"].indexOf(l.readyState)>-1?m(!0):l.addEventListener(p.startEvent,function(){m(!0)}),e.addEventListener("resize",o(m,50,!0)),e.addEventListener("orientationchange",o(m,50,!0)),e.addEventListener("scroll",n(function(){c(f,p.once)},99)),l.addEventListener("DOMNodeRemoved",function(e){var t=e.target;t&&1===t.nodeType&&t.hasAttribute&&e.target.hasAttribute("data-aos")&&o(m,50,!0)}),a("[data-aos]",m),f)},v={init:b,refresh:m};t.exports=v}(window,document)},{"./helpers/detector":17,"./helpers/elements":18,"./helpers/handleScroll":19,"./helpers/prepare":20,"./libs/classList-shim":21,"./libs/observer":22,"lodash.assign":1,"lodash.debounce":12,"lodash.throttle":14}],16:[function(e,t){var n=e("./../libs/offset"),o=function(e,t){var o=0,r=0,a=window.innerHeight,i={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(i.offset&&!isNaN(i.offset)&&(r=parseInt(i.offset)),i.anchor&&document.querySelectorAll(i.anchor)&&(e=document.querySelectorAll(i.anchor)[0]),o=n(e).top,i.anchorPlacement){case"top-bottom":break;case"center-bottom":o+=e.offsetHeight/2;break;case"bottom-bottom":o+=e.offsetHeight;break;case"top-center":o+=a/2;break;case"bottom-center":o+=a/2+e.offsetHeight;break;case"center-center":o+=a/2+e.offsetHeight/2;break;case"top-top":o+=a;break;case"bottom-top":o+=e.offsetHeight+a;break;case"center-top":o+=e.offsetHeight/2+a}return i.anchorPlacement||i.offset||isNaN(t)||(r=t),o+r};t.exports=o},{"./../libs/offset":23}],17:[function(e,t){var n={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 _detect.mobile()&&!_detect.phone()}};t.exports=n},{}],18:[function(e,t){var n=function(e){var e=e||document.querySelectorAll("[data-aos]"),t=[];return[].forEach.call(e,function(e){t.push({node:e})}),t};t.exports=n},{}],19:[function(e,t){var n=function(e,t,n){var o=e.node.getAttribute("data-aos-once");t>e.position?e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")},o=function(e,t){var o=window.pageYOffset,r=window.innerHeight;[].forEach.call(e,function(e){n(e,r+o,t)})};t.exports=o},{}],20:[function(e,t){var n=e("./calculateOffset"),o=function(e,t){return[].forEach.call(e,function(e){e.node.classList.add("aos-init"),e.position=n(e.node,t.offset)}),e};t.exports=o},{"./calculateOffset":16}],21:[function(){"classList"in document.documentElement||!Object.defineProperty||"undefined"==typeof HTMLElement||Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){function e(e){return function(n){var o=t.className.split(/\s+/),r=o.indexOf(n);e(o,r,n),t.className=o.join(" ")}}var t=this,n={add:e(function(e,t,n){~t||e.push(n)}),remove:e(function(e,t){~t&&e.splice(t,1)}),toggle:e(function(e,t,n){~t?e.splice(t,1):e.push(n)}),contains:function(e){return!!~t.className.split(/\s+/).indexOf(e)},item:function(e){return t.className.split(/\s+/)[e]||null}};return Object.defineProperty(n,"length",{get:function(){return t.className.split(/\s+/).length}}),n}})},{}],22:[function(e,t){function n(e,t){a.push({selector:e,fn:t}),!r&&c&&(r=new c(o),r.observe(i.documentElement,{childList:!0,subtree:!0,removedNodes:!0})),o()}function o(){for(var e,t,n=0,o=a.length;o>n;n++){e=a[n],t=i.querySelectorAll(e.selector);for(var r,c=0,s=t.length;s>c;c++)r=t[c],r.ready||(r.ready=!0,e.fn.call(r,r))}}var r,a=[],i=window.document,c=window.MutationObserver||window.WebKitMutationObserver;t.exports=n},{}],23:[function(e,t){var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.exports=n},{}]},{},[15])(15)}); //# sourceMappingURL=aos.js.map diff --git a/dist/aos.js.map b/dist/aos.js.map index eadf53d..b33c83a 100644 --- a/dist/aos.js.map +++ b/dist/aos.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/lodash.assign/index.js","aos.js","node_modules/lodash.assign/node_modules/lodash._baseassign/index.js","node_modules/lodash.assign/node_modules/lodash._baseassign/node_modules/lodash._basecopy/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._bindcallback/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._isiterateecall/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js","node_modules/lodash.assign/node_modules/lodash.keys/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash._getnative/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash.isarguments/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash.isarray/index.js","node_modules/lodash.debounce/index.js","node_modules/lodash.throttle/index.js","src/js/aos.js","src/js/helpers/calculateOffset.js","src/js/helpers/detector.js","src/js/helpers/elements.js","src/js/helpers/handleScroll.js","src/js/helpers/prepare.js","src/js/helpers/replaceDataAttr.js","src/js/libs/classList-shim.js","src/js/libs/observer.js","src/js/libs/offset.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","AOS","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"assignWith","object","source","customizer","index","props","keys","key","value","result","undefined","baseAssign","createAssigner","assign","lodash._baseassign","lodash._createassigner","lodash.keys",2,"baseCopy","lodash._basecopy",3,4,"assigner","restParam","sources","guard","thisArg","bindCallback","isIterateeCall","lodash._bindcallback","lodash._isiterateecall","lodash.restparam",5,"func","argCount","identity","collection","accumulator","other","apply","arguments",6,"baseProperty","isArrayLike","isLength","getLength","isIndex","reIsUint","test","MAX_SAFE_INTEGER","isObject","type",7,"start","TypeError","FUNC_ERROR_TEXT","nativeMax","args","rest","Array","otherArgs","Math","max",8,"shimKeys","keysIn","propsLength","allowIndexes","isArray","isArguments","hasOwnProperty","push","Object","Ctor","constructor","isProto","prototype","skipIndexes","getNative","objectProto","nativeKeys","lodash._getnative","lodash.isarguments","lodash.isarray",9,"isObjectLike","isNative","isFunction","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","Function","toString","RegExp","replace",10,"propertyIsEnumerable",11,"arrayTag","nativeIsArray",12,"debounce","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","id","now","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","nativeNow","Date","getTime",13,"dup",14,"throttle","lodash.debounce",15,"_throttle","_debounce","_extend","observe","detect","handleScroll","prepare","elements","replaceDataAttr","document","$aosElements","initialized","offset","delay","easing","duration","disable","once","startEvent","refresh","initialize","init","settings","mobile","phone","tablet","forEach","el","node","removeAttribute","querySelector","setAttribute","indexOf","readyState","addEventListener","event","target","nodeType","hasAttribute","./helpers/detector","./helpers/elements","./helpers/handleScroll","./helpers/prepare","./helpers/replaceDataAttr","./libs/classList-shim","./libs/observer","lodash.assign","lodash.throttle",16,"getOffset","calculateOffset","optionalOffset","elementOffsetTop","additionalOffset","windowHeight","innerHeight","attrs","getAttribute","anchor","anchorPlacement","isNaN","parseInt","querySelectorAll","top","offsetHeight","./../libs/offset",17,"detector","check","substr","navigator","userAgent","vendor","opera","_detect",18,"createArrayWithElements","finalElements",19,"setState","attrOnce","position","classList","add","remove","$elements","scrollTop","pageYOffset",20,"./calculateOffset",21,"dataAttrs","dataAttrsString","join","regexDataAttr","attrToRemove","attributes","attr","nodeName","dataAttr","match","dataAttrBracket","simpleAttr","nodeValue",22,"documentElement","defineProperty","HTMLElement","get","update","fn","classes","className","split","ret","splice","toggle","contains","item",23,"ready","selector","listeners","observer","MutationObserver","doc","childList","subtree","removedNodes","listener","len","element","j","jLen","WebKitMutationObserver",24,"_x","_y","offsetLeft","offsetTop","tagName","scrollLeft","offsetParent","left"],"mappings":"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","file":"aos.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o\n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseAssign = require('lodash._baseassign'),\n createAssigner = require('lodash._createassigner'),\n keys = require('lodash.keys');\n\n/**\n * A specialized version of `_.assign` for customizing assigned values without\n * support for argument juggling, multiple sources, and `this` binding `customizer`\n * functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n */\nfunction assignWith(object, source, customizer) {\n var index = -1,\n props = keys(source),\n length = props.length;\n\n while (++index < length) {\n var key = props[index],\n value = object[key],\n result = customizer(value, source[key], key, object, source);\n\n if ((result === result ? (result !== value) : (value === value)) ||\n (value === undefined && !(key in object))) {\n object[key] = result;\n }\n }\n return object;\n}\n\n/**\n * Assigns own enumerable properties of source object(s) to the destination\n * object. Subsequent sources overwrite property assignments of previous sources.\n * If `customizer` is provided it is invoked to produce the assigned values.\n * The `customizer` is bound to `thisArg` and invoked with five arguments:\n * (objectValue, sourceValue, key, object, source).\n *\n * **Note:** This method mutates `object` and is based on\n * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).\n *\n * @static\n * @memberOf _\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });\n * // => { 'user': 'fred', 'age': 40 }\n *\n * // using a customizer callback\n * var defaults = _.partialRight(_.assign, function(value, other) {\n * return _.isUndefined(value) ? other : value;\n * });\n *\n * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });\n * // => { 'user': 'barney', 'age': 36 }\n */\nvar assign = createAssigner(function(object, source, customizer) {\n return customizer\n ? assignWith(object, source, customizer)\n : baseAssign(object, source);\n});\n\nmodule.exports = assign;\n",null,"/**\n * lodash 3.2.0 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCopy = require('lodash._basecopy'),\n keys = require('lodash.keys');\n\n/**\n * The base implementation of `_.assign` without support for argument juggling,\n * multiple sources, and `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return source == null\n ? object\n : baseCopy(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","/**\n * lodash 3.0.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","/**\n * lodash 3.1.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar bindCallback = require('lodash._bindcallback'),\n isIterateeCall = require('lodash._isiterateecall'),\n restParam = require('lodash.restparam');\n\n/**\n * Creates a function that assigns properties of source object(s) to a given\n * destination object.\n *\n * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * lodash 3.0.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\n/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = bindCallback;\n","/**\n * lodash 3.0.9 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * lodash 3.6.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","/**\n * lodash 3.1.2 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = require('lodash._getnative'),\n isArguments = require('lodash.isarguments'),\n isArray = require('lodash.isarray');\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object != 'function' && isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n isProto = typeof Ctor == 'function' && Ctor.prototype === object,\n result = Array(length),\n skipIndexes = length > 0;\n\n while (++index < length) {\n result[index] = (index + '');\n }\n for (var key in object) {\n if (!(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = keys;\n","/**\n * lodash 3.9.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, 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 older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && reIsHostCtor.test(value);\n}\n\nmodule.exports = getNative;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, 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 older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && reIsHostCtor.test(value);\n}\n\nmodule.exports = isArray;\n","/**\n * lodash 3.1.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = require('lodash._getnative');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeNow = getNative(Date, 'now');\n\n/**\n * Gets the number of milliseconds that have elapsed since the Unix epoch\n * (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @category Date\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 = nativeNow || function() {\n return new Date().getTime();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `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 the debounced 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 `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\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] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it is invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * 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 the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').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 source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = debounce;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 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 invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the 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 * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\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 (options === false) {\n leading = false;\n } else 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, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = throttle;\n","/**\n * *******************************************************\n * AOS (Animate on scroll) - wowjs alternative\n * made to animate elements on scroll in both directions\n * *******************************************************\n */\n\n// Modules & helpers\nvar _throttle = require('lodash.throttle');\nvar _debounce = require('lodash.debounce');\nvar _extend = require('lodash.assign');\n\nvar observe = require('./libs/observer');\nvar classListShim = require('./libs/classList-shim');\n\nvar detect = require('./helpers/detector');\nvar handleScroll = require('./helpers/handleScroll');\nvar prepare = require('./helpers/prepare');\nvar elements = require('./helpers/elements');\nvar replaceDataAttr = require('./helpers/replaceDataAttr');\n\n\n// Plugin scope\n;(function(window, document, undefined) {\n\n /**\n * Private variables\n */\n var $aosElements = [];\n var initialized = false;\n\n /**\n * Default options\n */\n var 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 */\n var refresh = function(initialize) {\n // Allow refresh only when it was first initialized on startEvent\n if (initialize && initialize === true) 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 * 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 */\n var init = function(settings) {\n options = _extend(options, settings);\n\n // Replace [data-aos*] with [aos*] attr, and then remove [data-aos*]\n replaceDataAttr();\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 [].forEach.call($aosElements, function(el, i) {\n el.node.removeAttribute('aos');\n el.node.removeAttribute('aos-easing');\n el.node.removeAttribute('aos-duration');\n el.node.removeAttribute('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('aos-easing', options.easing);\n document.querySelector('body').setAttribute('aos-duration', options.duration);\n document.querySelector('body').setAttribute('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(function() {\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', function(event) {\n var el = event.target;\n if (el && el.nodeType === 1 && el.hasAttribute && event.target.hasAttribute('aos')) {\n _debounce(refresh, 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('[aos]', refresh);\n\n return $aosElements;\n };\n\n /**\n * Public API\n */\n var AOS = {\n init: init,\n refresh: refresh\n };\n\n module.exports = AOS;\n\n})(window, document);\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\nvar getOffset = require('./../libs/offset');\n\nvar calculateOffset = function(el, optionalOffset) {\n var elementOffsetTop = 0;\n var additionalOffset = 0;\n var windowHeight = window.innerHeight;\n var attrs = {\n offset: el.getAttribute('aos-offset'),\n anchor: el.getAttribute('aos-anchor'),\n anchorPlacement: el.getAttribute('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\nmodule.exports = calculateOffset;\n","/**\n * Device detector\n */\nvar detector = {\n phone: function() {\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: function() {\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: function() {\n return _detect.mobile() && !_detect.phone();\n }\n};\n\nmodule.exports = detector;","/**\n * Generate initial array with elements as objects\n * This array will be extended later with elements attributes values\n * like 'position'\n */\nvar createArrayWithElements = function (elements) {\n var elements = elements || document.querySelectorAll('[aos]');\n var finalElements = [];\n\n [].forEach.call(elements, function(el, i) {\n finalElements.push({\n node: el\n });\n });\n\n return finalElements;\n}\n\nmodule.exports = createArrayWithElements;\n","/**\n * Set or remove aos-animate class\n * @param {node} el element\n * @param {int} top scrolled distance\n * @param {void} once\n */\nvar setState = function (el, top, once) {\n var attrOnce = el.node.getAttribute('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 */\nvar handleScroll = function ($elements, once) {\n var scrollTop = window.pageYOffset;\n var windowHeight = window.innerHeight;\n /**\n * Check all registered elements positions\n * and animate them on scroll\n */\n [].forEach.call($elements, function(el, i) {\n setState(el, windowHeight + scrollTop, once);\n });\n};\n\nmodule.exports = handleScroll;\n","/* Clearing variables */\n\nvar calculateOffset = require('./calculateOffset');\n\nvar prepare = function ($elements, options) {\n\n [].forEach.call($elements, function(el, i) {\n el.node.classList.add('aos-init');\n el.position = calculateOffset(el.node, options.offset);\n });\n\n return $elements;\n};\n\nmodule.exports = prepare;\n","/**\n * Replace [data-aos*] with [aos*] attr and then remove all [data-aos*]\n */\nvar replaceDataAttr = function () {\n var dataAttrs = ['[data-aos]', '[data-aos-offset]', '[data-aos-easing]', '[data-aos-delay]', '[data-aos-anchor]', '[data-aos-anchor-placement]', '[data-aos-once]'];\n var dataAttrsString = dataAttrs.join(', ');\n\n var elements = document.querySelectorAll(dataAttrsString);\n\n [].forEach.call(elements, function (el) {\n var regexDataAttr = /^data\\-(.+)$/;\n var attrToRemove = [];\n\n [].forEach.call(el.attributes, function (attr) {\n if (regexDataAttr.test(attr.nodeName)) {\n var dataAttr = attr.nodeName.match(regexDataAttr)[0];\n var dataAttrBracket = '[' + dataAttr + ']';\n var simpleAttr = attr.nodeName.match(regexDataAttr)[1];\n\n if (\n el.getAttribute(dataAttr).length &&\n dataAttrs.indexOf(dataAttrBracket) !== -1\n ) {\n el.setAttribute(simpleAttr, attr.nodeValue);\n attrToRemove.push(dataAttr);\n }\n }\n });\n\n for (var i = 0; i < attrToRemove.length; i++) {\n el.removeAttribute(attrToRemove[i]);\n }\n });\n};\n\nmodule.exports = replaceDataAttr;\n","/**\n * Minimal classList shim for IE 9\n * By Devon Govett\n * MIT LICENSE\n */\n\nif (!(\"classList\" in document.documentElement) && Object.defineProperty && typeof HTMLElement !== 'undefined') {\n Object.defineProperty(HTMLElement.prototype, 'classList', {\n get: function() {\n var self = this;\n\n function update(fn) {\n return function(value) {\n var classes = self.className.split(/\\s+/),\n index = classes.indexOf(value);\n\n fn(classes, index, value);\n self.className = classes.join(\" \");\n }\n }\n\n var ret = {\n add: update(function(classes, index, value) {~\n index || classes.push(value);\n }),\n\n remove: update(function(classes, index) {~\n index && classes.splice(index, 1);\n }),\n\n toggle: update(function(classes, index, value) {~\n index ? classes.splice(index, 1) : classes.push(value);\n }),\n\n contains: function(value) {\n return !!~self.className.split(/\\s+/).indexOf(value);\n },\n\n item: function(i) {\n return self.className.split(/\\s+/)[i] || null;\n }\n };\n\n Object.defineProperty(ret, 'length', {\n get: function() {\n return self.className.split(/\\s+/).length;\n }\n });\n\n return ret;\n }\n });\n}","var listeners = [];\nvar doc = window.document;\nvar MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\nvar observer;\n\nfunction ready(selector, fn) {\n // Store the selector and callback to be monitored\n listeners.push({\n selector: selector,\n fn: fn\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 (var 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 (var 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\nmodule.exports = ready;","/**\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 */\nvar offset = function(el) {\n var _x = 0;\n var _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\nmodule.exports = offset;\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/lodash.assign/index.js","aos.js","node_modules/lodash.assign/node_modules/lodash._baseassign/index.js","node_modules/lodash.assign/node_modules/lodash._baseassign/node_modules/lodash._basecopy/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._bindcallback/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._isiterateecall/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js","node_modules/lodash.assign/node_modules/lodash.keys/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash._getnative/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash.isarguments/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash.isarray/index.js","node_modules/lodash.debounce/index.js","node_modules/lodash.throttle/index.js","src/js/aos.js","src/js/helpers/calculateOffset.js","src/js/helpers/detector.js","src/js/helpers/elements.js","src/js/helpers/handleScroll.js","src/js/helpers/prepare.js","src/js/libs/classList-shim.js","src/js/libs/observer.js","src/js/libs/offset.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","AOS","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"assignWith","object","source","customizer","index","props","keys","key","value","result","undefined","baseAssign","createAssigner","assign","lodash._baseassign","lodash._createassigner","lodash.keys",2,"baseCopy","lodash._basecopy",3,4,"assigner","restParam","sources","guard","thisArg","bindCallback","isIterateeCall","lodash._bindcallback","lodash._isiterateecall","lodash.restparam",5,"func","argCount","identity","collection","accumulator","other","apply","arguments",6,"baseProperty","isArrayLike","isLength","getLength","isIndex","reIsUint","test","MAX_SAFE_INTEGER","isObject","type",7,"start","TypeError","FUNC_ERROR_TEXT","nativeMax","args","rest","Array","otherArgs","Math","max",8,"shimKeys","keysIn","propsLength","allowIndexes","isArray","isArguments","hasOwnProperty","push","Object","Ctor","constructor","isProto","prototype","skipIndexes","getNative","objectProto","nativeKeys","lodash._getnative","lodash.isarguments","lodash.isarray",9,"isObjectLike","isNative","isFunction","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","Function","toString","RegExp","replace",10,"propertyIsEnumerable",11,"arrayTag","nativeIsArray",12,"debounce","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","id","now","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","nativeNow","Date","getTime",13,"dup",14,"throttle","lodash.debounce",15,"_throttle","_debounce","_extend","observe","detect","handleScroll","prepare","elements","document","$aosElements","initialized","offset","delay","easing","duration","disable","once","startEvent","refresh","initialize","init","settings","mobile","phone","tablet","forEach","el","node","removeAttribute","querySelector","setAttribute","indexOf","readyState","addEventListener","event","target","nodeType","hasAttribute","./helpers/detector","./helpers/elements","./helpers/handleScroll","./helpers/prepare","./libs/classList-shim","./libs/observer","lodash.assign","lodash.throttle",16,"getOffset","calculateOffset","optionalOffset","elementOffsetTop","additionalOffset","windowHeight","innerHeight","attrs","getAttribute","anchor","anchorPlacement","isNaN","parseInt","querySelectorAll","top","offsetHeight","./../libs/offset",17,"detector","check","substr","navigator","userAgent","vendor","opera","_detect",18,"createArrayWithElements","finalElements",19,"setState","attrOnce","position","classList","add","remove","$elements","scrollTop","pageYOffset",20,"./calculateOffset",21,"documentElement","defineProperty","HTMLElement","get","update","fn","classes","className","split","join","ret","splice","toggle","contains","item",22,"ready","selector","listeners","observer","MutationObserver","doc","childList","subtree","removedNodes","listener","len","element","j","jLen","WebKitMutationObserver",23,"_x","_y","offsetLeft","offsetTop","tagName","scrollLeft","offsetParent","left"],"mappings":"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","file":"aos.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o\n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseAssign = require('lodash._baseassign'),\n createAssigner = require('lodash._createassigner'),\n keys = require('lodash.keys');\n\n/**\n * A specialized version of `_.assign` for customizing assigned values without\n * support for argument juggling, multiple sources, and `this` binding `customizer`\n * functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n */\nfunction assignWith(object, source, customizer) {\n var index = -1,\n props = keys(source),\n length = props.length;\n\n while (++index < length) {\n var key = props[index],\n value = object[key],\n result = customizer(value, source[key], key, object, source);\n\n if ((result === result ? (result !== value) : (value === value)) ||\n (value === undefined && !(key in object))) {\n object[key] = result;\n }\n }\n return object;\n}\n\n/**\n * Assigns own enumerable properties of source object(s) to the destination\n * object. Subsequent sources overwrite property assignments of previous sources.\n * If `customizer` is provided it is invoked to produce the assigned values.\n * The `customizer` is bound to `thisArg` and invoked with five arguments:\n * (objectValue, sourceValue, key, object, source).\n *\n * **Note:** This method mutates `object` and is based on\n * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).\n *\n * @static\n * @memberOf _\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });\n * // => { 'user': 'fred', 'age': 40 }\n *\n * // using a customizer callback\n * var defaults = _.partialRight(_.assign, function(value, other) {\n * return _.isUndefined(value) ? other : value;\n * });\n *\n * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });\n * // => { 'user': 'barney', 'age': 36 }\n */\nvar assign = createAssigner(function(object, source, customizer) {\n return customizer\n ? assignWith(object, source, customizer)\n : baseAssign(object, source);\n});\n\nmodule.exports = assign;\n",null,"/**\n * lodash 3.2.0 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCopy = require('lodash._basecopy'),\n keys = require('lodash.keys');\n\n/**\n * The base implementation of `_.assign` without support for argument juggling,\n * multiple sources, and `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return source == null\n ? object\n : baseCopy(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","/**\n * lodash 3.0.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","/**\n * lodash 3.1.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar bindCallback = require('lodash._bindcallback'),\n isIterateeCall = require('lodash._isiterateecall'),\n restParam = require('lodash.restparam');\n\n/**\n * Creates a function that assigns properties of source object(s) to a given\n * destination object.\n *\n * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * lodash 3.0.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\n/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = bindCallback;\n","/**\n * lodash 3.0.9 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * lodash 3.6.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","/**\n * lodash 3.1.2 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = require('lodash._getnative'),\n isArguments = require('lodash.isarguments'),\n isArray = require('lodash.isarray');\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object != 'function' && isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n isProto = typeof Ctor == 'function' && Ctor.prototype === object,\n result = Array(length),\n skipIndexes = length > 0;\n\n while (++index < length) {\n result[index] = (index + '');\n }\n for (var key in object) {\n if (!(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = keys;\n","/**\n * lodash 3.9.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, 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 older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && reIsHostCtor.test(value);\n}\n\nmodule.exports = getNative;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, 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 older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && reIsHostCtor.test(value);\n}\n\nmodule.exports = isArray;\n","/**\n * lodash 3.1.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = require('lodash._getnative');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeNow = getNative(Date, 'now');\n\n/**\n * Gets the number of milliseconds that have elapsed since the Unix epoch\n * (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @category Date\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 = nativeNow || function() {\n return new Date().getTime();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `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 the debounced 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 `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\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] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it is invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * 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 the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').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 source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = debounce;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 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 invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the 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 * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\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 (options === false) {\n leading = false;\n } else 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, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = throttle;\n","/**\n * *******************************************************\n * AOS (Animate on scroll) - wowjs alternative\n * made to animate elements on scroll in both directions\n * *******************************************************\n */\n\n// Modules & helpers\nvar _throttle = require('lodash.throttle');\nvar _debounce = require('lodash.debounce');\nvar _extend = require('lodash.assign');\n\nvar observe = require('./libs/observer');\nvar classListShim = require('./libs/classList-shim');\n\nvar detect = require('./helpers/detector');\nvar handleScroll = require('./helpers/handleScroll');\nvar prepare = require('./helpers/prepare');\nvar elements = require('./helpers/elements');\n\n\n// Plugin scope\n;(function(window, document, undefined) {\n\n /**\n * Private variables\n */\n var $aosElements = [];\n var initialized = false;\n\n /**\n * Default options\n */\n var 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 */\n var refresh = function(initialize) {\n // Allow refresh only when it was first initialized on startEvent\n if (initialize && initialize === true) 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 * 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 */\n var init = function(settings) {\n options = _extend(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 [].forEach.call($aosElements, 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(function() {\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', function(event) {\n var el = event.target;\n if (el && el.nodeType === 1 && el.hasAttribute && event.target.hasAttribute('data-aos')) {\n _debounce(refresh, 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]', refresh);\n\n return $aosElements;\n };\n\n /**\n * Public API\n */\n var AOS = {\n init: init,\n refresh: refresh\n };\n\n module.exports = AOS;\n\n})(window, document);\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\nvar getOffset = require('./../libs/offset');\n\nvar calculateOffset = function(el, optionalOffset) {\n var elementOffsetTop = 0;\n var additionalOffset = 0;\n var windowHeight = window.innerHeight;\n var 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\nmodule.exports = calculateOffset;\n","/**\n * Device detector\n */\nvar detector = {\n phone: function() {\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: function() {\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: function() {\n return _detect.mobile() && !_detect.phone();\n }\n};\n\nmodule.exports = detector;","/**\n * Generate initial array with elements as objects\n * This array will be extended later with elements attributes values\n * like 'position'\n */\nvar createArrayWithElements = function (elements) {\n var elements = elements || document.querySelectorAll('[data-aos]');\n var finalElements = [];\n\n [].forEach.call(elements, function(el, i) {\n finalElements.push({\n node: el\n });\n });\n\n return finalElements;\n}\n\nmodule.exports = createArrayWithElements;\n","/**\n * Set or remove aos-animate class\n * @param {node} el element\n * @param {int} top scrolled distance\n * @param {void} once\n */\nvar setState = function (el, top, once) {\n var 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 */\nvar handleScroll = function ($elements, once) {\n var scrollTop = window.pageYOffset;\n var windowHeight = window.innerHeight;\n /**\n * Check all registered elements positions\n * and animate them on scroll\n */\n [].forEach.call($elements, function(el, i) {\n setState(el, windowHeight + scrollTop, once);\n });\n};\n\nmodule.exports = handleScroll;\n","/* Clearing variables */\n\nvar calculateOffset = require('./calculateOffset');\n\nvar prepare = function ($elements, options) {\n\n [].forEach.call($elements, function(el, i) {\n el.node.classList.add('aos-init');\n el.position = calculateOffset(el.node, options.offset);\n });\n\n return $elements;\n};\n\nmodule.exports = prepare;\n","/**\n * Minimal classList shim for IE 9\n * By Devon Govett\n * MIT LICENSE\n */\n\nif (!(\"classList\" in document.documentElement) && Object.defineProperty && typeof HTMLElement !== 'undefined') {\n Object.defineProperty(HTMLElement.prototype, 'classList', {\n get: function() {\n var self = this;\n\n function update(fn) {\n return function(value) {\n var classes = self.className.split(/\\s+/),\n index = classes.indexOf(value);\n\n fn(classes, index, value);\n self.className = classes.join(\" \");\n }\n }\n\n var ret = {\n add: update(function(classes, index, value) {~\n index || classes.push(value);\n }),\n\n remove: update(function(classes, index) {~\n index && classes.splice(index, 1);\n }),\n\n toggle: update(function(classes, index, value) {~\n index ? classes.splice(index, 1) : classes.push(value);\n }),\n\n contains: function(value) {\n return !!~self.className.split(/\\s+/).indexOf(value);\n },\n\n item: function(i) {\n return self.className.split(/\\s+/)[i] || null;\n }\n };\n\n Object.defineProperty(ret, 'length', {\n get: function() {\n return self.className.split(/\\s+/).length;\n }\n });\n\n return ret;\n }\n });\n}","var listeners = [];\nvar doc = window.document;\nvar MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\nvar observer;\n\nfunction ready(selector, fn) {\n // Store the selector and callback to be monitored\n listeners.push({\n selector: selector,\n fn: fn\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 (var 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 (var 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\nmodule.exports = ready;","/**\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 */\nvar offset = function(el) {\n var _x = 0;\n var _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\nmodule.exports = offset;\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/package.json b/package.json index 2bc6d60..6bdc437 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aos", - "version": "1.2.1", + "version": "2.0.0", "description": "Animate on scroll library", "homepage": "http://michalsnik.github.io/aos/", "author": "Michaล‚ Sajnรณg ", diff --git a/src/js/aos.js b/src/js/aos.js index 03ea36e..9d1e389 100644 --- a/src/js/aos.js +++ b/src/js/aos.js @@ -17,7 +17,6 @@ var detect = require('./helpers/detector'); var handleScroll = require('./helpers/handleScroll'); var prepare = require('./helpers/prepare'); var elements = require('./helpers/elements'); -var replaceDataAttr = require('./helpers/replaceDataAttr'); // Plugin scope @@ -71,9 +70,6 @@ var replaceDataAttr = require('./helpers/replaceDataAttr'); var init = function(settings) { options = _extend(options, settings); - // Replace [data-aos*] with [aos*] attr, and then remove [data-aos*] - replaceDataAttr(); - // Create initial array with elements -> to be fullfilled later with prepare() $aosElements = elements(); @@ -90,10 +86,10 @@ var replaceDataAttr = require('./helpers/replaceDataAttr'); (typeof options.disable === 'function' && options.disable() === true) ) { [].forEach.call($aosElements, function(el, i) { - el.node.removeAttribute('aos'); - el.node.removeAttribute('aos-easing'); - el.node.removeAttribute('aos-duration'); - el.node.removeAttribute('aos-delay'); + el.node.removeAttribute('data-aos'); + el.node.removeAttribute('data-aos-easing'); + el.node.removeAttribute('data-aos-duration'); + el.node.removeAttribute('data-aos-delay'); }); return false; } @@ -104,9 +100,9 @@ var replaceDataAttr = require('./helpers/replaceDataAttr'); * Set global settings on body, based on options * so CSS can use it */ - document.querySelector('body').setAttribute('aos-easing', options.easing); - document.querySelector('body').setAttribute('aos-duration', options.duration); - document.querySelector('body').setAttribute('aos-delay', options.delay); + document.querySelector('body').setAttribute('data-aos-easing', options.easing); + document.querySelector('body').setAttribute('data-aos-duration', options.duration); + document.querySelector('body').setAttribute('data-aos-delay', options.delay); /** * Handle initializing @@ -141,7 +137,7 @@ var replaceDataAttr = require('./helpers/replaceDataAttr'); */ document.addEventListener('DOMNodeRemoved', function(event) { var el = event.target; - if (el && el.nodeType === 1 && el.hasAttribute && event.target.hasAttribute('aos')) { + if (el && el.nodeType === 1 && el.hasAttribute && event.target.hasAttribute('data-aos')) { _debounce(refresh, 50, true) } }); @@ -151,7 +147,7 @@ var replaceDataAttr = require('./helpers/replaceDataAttr'); * If something is loaded by AJAX * it'll refresh plugin automatically */ - observe('[aos]', refresh); + observe('[data-aos]', refresh); return $aosElements; }; diff --git a/src/js/helpers/calculateOffset.js b/src/js/helpers/calculateOffset.js index e23a27c..835443b 100644 --- a/src/js/helpers/calculateOffset.js +++ b/src/js/helpers/calculateOffset.js @@ -15,9 +15,9 @@ var calculateOffset = function(el, optionalOffset) { var additionalOffset = 0; var windowHeight = window.innerHeight; var attrs = { - offset: el.getAttribute('aos-offset'), - anchor: el.getAttribute('aos-anchor'), - anchorPlacement: el.getAttribute('aos-anchor-placement') + offset: el.getAttribute('data-aos-offset'), + anchor: el.getAttribute('data-aos-anchor'), + anchorPlacement: el.getAttribute('data-aos-anchor-placement') }; if (attrs.offset && !isNaN(attrs.offset)) { diff --git a/src/js/helpers/elements.js b/src/js/helpers/elements.js index 0939724..7320aa0 100644 --- a/src/js/helpers/elements.js +++ b/src/js/helpers/elements.js @@ -4,7 +4,7 @@ * like 'position' */ var createArrayWithElements = function (elements) { - var elements = elements || document.querySelectorAll('[aos]'); + var elements = elements || document.querySelectorAll('[data-aos]'); var finalElements = []; [].forEach.call(elements, function(el, i) { diff --git a/src/js/helpers/handleScroll.js b/src/js/helpers/handleScroll.js index abee966..2be35c9 100644 --- a/src/js/helpers/handleScroll.js +++ b/src/js/helpers/handleScroll.js @@ -5,7 +5,7 @@ * @param {void} once */ var setState = function (el, top, once) { - var attrOnce = el.node.getAttribute('aos-once'); + var attrOnce = el.node.getAttribute('data-aos-once'); if (top > el.position) { el.node.classList.add('aos-animate'); diff --git a/src/js/helpers/replaceDataAttr.js b/src/js/helpers/replaceDataAttr.js deleted file mode 100644 index b3708b7..0000000 --- a/src/js/helpers/replaceDataAttr.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Replace [data-aos*] with [aos*] attr and then remove all [data-aos*] - */ -var replaceDataAttr = function () { - var dataAttrs = ['[data-aos]', '[data-aos-offset]', '[data-aos-easing]', '[data-aos-delay]', '[data-aos-anchor]', '[data-aos-anchor-placement]', '[data-aos-once]']; - var dataAttrsString = dataAttrs.join(', '); - - var elements = document.querySelectorAll(dataAttrsString); - - [].forEach.call(elements, function (el) { - var regexDataAttr = /^data\-(.+)$/; - var attrToRemove = []; - - [].forEach.call(el.attributes, function (attr) { - if (regexDataAttr.test(attr.nodeName)) { - var dataAttr = attr.nodeName.match(regexDataAttr)[0]; - var dataAttrBracket = '[' + dataAttr + ']'; - var simpleAttr = attr.nodeName.match(regexDataAttr)[1]; - - if ( - el.getAttribute(dataAttr).length && - dataAttrs.indexOf(dataAttrBracket) !== -1 - ) { - el.setAttribute(simpleAttr, attr.nodeValue); - attrToRemove.push(dataAttr); - } - } - }); - - for (var i = 0; i < attrToRemove.length; i++) { - el.removeAttribute(attrToRemove[i]); - } - }); -}; - -module.exports = replaceDataAttr; diff --git a/src/sass/_easing.scss b/src/sass/_easing.scss index 9c96db1..cdf5ea1 100644 --- a/src/sass/_easing.scss +++ b/src/sass/_easing.scss @@ -2,33 +2,34 @@ * Easing functions */ -$linear : cubic-bezier(0.250, 0.250, 0.750, 0.750); +$easing: ( + linear: cubic-bezier(0.250, 0.250, 0.750, 0.750), -$ease : cubic-bezier(0.250, 0.100, 0.250, 1.000); -$ease-in : cubic-bezier(0.420, 0.000, 1.000, 1.000); -$ease-out : cubic-bezier(0.000, 0.000, 0.580, 1.000); -$ease-in-out : cubic-bezier(0.420, 0.000, 0.580, 1.000); + ease: cubic-bezier(0.250, 0.100, 0.250, 1.000), + ease-in: cubic-bezier(0.420, 0.000, 1.000, 1.000), + ease-out: cubic-bezier(0.000, 0.000, 0.580, 1.000), + ease-in-out: cubic-bezier(0.420, 0.000, 0.580, 1.000), -$ease-in-back : cubic-bezier(0.6, -0.28, 0.735, 0.045); -$ease-out-back : cubic-bezier(0.175, 0.885, 0.32, 1.275); -$ease-in-out-back : cubic-bezier(0.68, -0.55, 0.265, 1.55); + ease-in-back: cubic-bezier(0.6, -0.28, 0.735, 0.045), + ease-out-back: cubic-bezier(0.175, 0.885, 0.32, 1.275), + ease-in-out-back: cubic-bezier(0.68, -0.55, 0.265, 1.55), -$ease-in-sine : cubic-bezier(0.47, 0, 0.745, 0.715); -$ease-out-sine : cubic-bezier(0.39, 0.575, 0.565, 1); -$ease-in-out-sine : cubic-bezier(0.445, 0.05, 0.55, 0.95); + ease-in-sine: cubic-bezier(0.47, 0, 0.745, 0.715), + ease-out-sine: cubic-bezier(0.39, 0.575, 0.565, 1), + ease-in-out-sine: cubic-bezier(0.445, 0.05, 0.55, 0.95), -$ease-in-quad : cubic-bezier(0.55, 0.085, 0.68, 0.53); -$ease-out-quad : cubic-bezier(0.25, 0.46, 0.45, 0.94); -$ease-in-out-quad : cubic-bezier(0.455, 0.03, 0.515, 0.955); + ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53), + ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94), + ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955), -$ease-in-cubic : cubic-bezier(0.55, 0.085, 0.68, 0.53); -$ease-out-cubic : cubic-bezier(0.25, 0.46, 0.45, 0.94); -$ease-in-out-cubic : cubic-bezier(0.455, 0.03, 0.515, 0.955); - -$ease-in-quart : cubic-bezier(0.55, 0.085, 0.68, 0.53); -$ease-out-quart : cubic-bezier(0.25, 0.46, 0.45, 0.94); -$ease-in-out-quart : cubic-bezier(0.455, 0.03, 0.515, 0.955); + ease-in-cubic: cubic-bezier(0.55, 0.085, 0.68, 0.53), + ease-out-cubic: cubic-bezier(0.25, 0.46, 0.45, 0.94), + ease-in-out-cubic: cubic-bezier(0.455, 0.03, 0.515, 0.955), + ease-in-quart: cubic-bezier(0.55, 0.085, 0.68, 0.53), + ease-out-quart: cubic-bezier(0.25, 0.46, 0.45, 0.94), + ease-in-out-quart: cubic-bezier(0.455, 0.03, 0.515, 0.955) +); /** * Easings implementations @@ -37,79 +38,10 @@ $ease-in-out-quart : cubic-bezier(0.455, 0.03, 0.515, 0.955); [aos] { - body[aos-easing='linear'] &, &[aos][aos-easing='linear']{ - transition-timing-function: $linear; - } - - - body[aos-easing='ease'] &, &[aos][aos-easing='ease']{ - transition-timing-function: $ease; - } - - - body[aos-easing='ease-in'] &, &[aos][aos-easing='ease-in']{ - transition-timing-function: $ease-in; - } - body[aos-easing='ease-out'] &, &[aos][aos-easing='ease-out']{ - transition-timing-function: $ease-out; - } - body[aos-easing='ease-in-out'] &, &[aos][aos-easing='ease-in-out']{ - transition-timing-function: $ease-in-out; - } - - - body[aos-easing='ease-in-back'] &, &[aos][aos-easing='ease-in-back']{ - transition-timing-function: $ease-in-back; - } - body[aos-easing='ease-out-back'] &, &[aos][aos-easing='ease-out-back']{ - transition-timing-function: $ease-out-back; - } - body[aos-easing='ease-in-out-back'] &, &[aos][aos-easing='ease-in-out-back']{ - transition-timing-function: $ease-in-out-back; - } - - - body[aos-easing='ease-in-sine'] &, &[aos][aos-easing='ease-in-sine']{ - transition-timing-function: $ease-in-sine; - } - body[aos-easing='ease-out-sine'] &, &[aos][aos-easing='ease-out-sine']{ - transition-timing-function: $ease-out-sine; - } - body[aos-easing='ease-in-out-sine'] &, &[aos][aos-easing='ease-in-out-sine']{ - transition-timing-function: $ease-in-out-sine; - } - - - body[aos-easing='ease-in-quad'] &, &[aos][aos-easing='ease-in-quad']{ - transition-timing-function: $ease-in-quad; - } - body[aos-easing='ease-out-quad'] &, &[aos][aos-easing='ease-out-quad']{ - transition-timing-function: $ease-out-quad; - } - body[aos-easing='ease-in-out-quad'] &, &[aos][aos-easing='ease-in-out-quad']{ - transition-timing-function: $ease-in-out-quad; - } - - - body[aos-easing='ease-in-cubic'] &, &[aos][aos-easing='ease-in-cubic']{ - transition-timing-function: $ease-in-cubic; - } - body[aos-easing='ease-out-cubic'] &, &[aos][aos-easing='ease-out-cubic']{ - transition-timing-function: $ease-out-cubic; - } - body[aos-easing='ease-in-out-cubic'] &, &[aos][aos-easing='ease-in-out-cubic']{ - transition-timing-function: $ease-in-out-cubic; - } - - - body[aos-easing='ease-in-quart'] &, &[aos][aos-easing='ease-in-quart']{ - transition-timing-function: $ease-in-quart; - } - body[aos-easing='ease-out-quart'] &, &[aos][aos-easing='ease-out-quart']{ - transition-timing-function: $ease-out-quart; - } - body[aos-easing='ease-in-out-quart'] &, &[aos][aos-easing='ease-in-out-quart']{ - transition-timing-function: $ease-in-out-quart; + @each $key, $val in $easing { + body[data-aos-easing="#{$key}"] &, &[data-aos][data-aos-easing="#{$key}"]{ + transition-timing-function: $val; + } } -} \ No newline at end of file +} diff --git a/src/sass/aos.scss b/src/sass/aos.scss index ed09b89..66cdcd5 100644 --- a/src/sass/aos.scss +++ b/src/sass/aos.scss @@ -13,9 +13,10 @@ $val-lg: 100vw; * Duration */ -[aos]{ +[data-aos] { @for $i from 1 through 60 { - body[aos-duration='#{$i*50}'] &, &[aos][aos-duration='#{$i*50}']{ + body[data-aos-duration='#{$i*50}'] &, + &[data-aos][data-aos-duration='#{$i*50}'] { transition-duration: #{$i*50}ms; } } @@ -25,9 +26,10 @@ $val-lg: 100vw; * Delay */ -[aos]{ +[data-aos] { @for $i from 1 through 60 { - body[aos-delay='#{$i*50}'] &, &[aos][aos-delay='#{$i*50}']{ + body[data-aos-delay='#{$i*50}'] &, + &[data-aos][data-aos-delay='#{$i*50}'] { transition-delay: 0; &.aos-animate{ @@ -47,49 +49,46 @@ $val-lg: 100vw; * fade-up-right, fade-up-left, fade-down-right, fade-down-left */ -[aos^='fade'][aos^='fade'] { - opacity: 0; transition-property: all; - &.aos-animate {opacity: 1;} +[data-aos^='fade'][data-aos^='fade'] { + opacity: 0; + transition-property: opacity, transform; + + &.aos-animate { + opacity: 1; + transform: translate(0, 0); + } } -[aos='fade-up'] { - transform: translate(0,$val-sm); - &.aos-animate {transform: translate(0,0);} +[data-aos='fade-up'] { + transform: translate(0, $val-sm); } -[aos='fade-down'] { - transform: translate(0,-$val-sm); - &.aos-animate {transform: translate(0,0);} +[data-aos='fade-down'] { + transform: translate(0, -$val-sm); } -[aos='fade-right'] { - transform: translate(-$val-sm,0); - &.aos-animate {transform: translate(0,0);} +[data-aos='fade-right'] { + transform: translate(-$val-sm, 0); } -[aos='fade-left'] { - transform: translate($val-sm,0); - &.aos-animate {transform: translate(0,0);} +[data-aos='fade-left'] { + transform: translate($val-sm, 0); } -[aos='fade-up-right'] { - transform: translate(-$val-sm,$val-sm); - &.aos-animate {transform: translate(0,0);} +[data-aos='fade-up-right'] { + transform: translate(-$val-sm, $val-sm); } -[aos='fade-up-left'] { - transform: translate($val-sm,$val-sm); - &.aos-animate {transform: translate(0,0);} +[data-aos='fade-up-left'] { + transform: translate($val-sm, $val-sm); } -[aos='fade-down-right'] { - transform: translate(-$val-sm,-$val-sm); - &.aos-animate {transform: translate(0,0);} +[data-aos='fade-down-right'] { + transform: translate(-$val-sm, -$val-sm); } -[aos='fade-down-left'] { - transform: translate($val-sm,-$val-sm); - &.aos-animate {transform: translate(0,0);} +[data-aos='fade-down-left'] { + transform: translate($val-sm, -$val-sm); } /** @@ -98,59 +97,54 @@ $val-lg: 100vw; * zoom-out, zoom-out-up, zoom-out-down, zoom-out-left, zoom-out-right */ -[aos^='zoom'][aos^='zoom'] { - opacity: 0; transition-property: all; - &.aos-animate {opacity: 1;} +[data-aos^='zoom'][data-aos^='zoom'] { + opacity: 0; + transition-property: opacity, transform; + + &.aos-animate { + opacity: 1; + transform: translate(0, 0) scale(1); + } } -[aos='zoom-in'] { +[data-aos='zoom-in'] { transform: scale(.6); - &.aos-animate {transform: scale(1);} } -[aos='zoom-in-up'] { - transform: translate(0,$val-sm) scale(.6); - &.aos-animate {transform: translate(0,0) scale(1);} +[data-aos='zoom-in-up'] { + transform: translate(0, $val-sm) scale(.6); } -[aos='zoom-in-down'] { - transform: translate(0,-$val-sm) scale(.6); - &.aos-animate {transform: translate(0,0) scale(1);} +[data-aos='zoom-in-down'] { + transform: translate(0, -$val-sm) scale(.6); } -[aos='zoom-in-right'] { - transform: translate(-$val-sm,0) scale(.6); - &.aos-animate {transform: translate(0,0) scale(1);} +[data-aos='zoom-in-right'] { + transform: translate(-$val-sm, 0) scale(.6); } -[aos='zoom-in-left'] { - transform: translate($val-sm,0) scale(.6); - &.aos-animate {transform: translate(0,0) scale(1);} +[data-aos='zoom-in-left'] { + transform: translate($val-sm, 0) scale(.6); } -[aos='zoom-out'] { +[data-aos='zoom-out'] { transform: scale(1.2); - &.aos-animate {transform: scale(1);} } -[aos='zoom-out-up'] { - transform: translate(0,$val-sm) scale(1.2); - &.aos-animate {transform: translate(0,0) scale(1);} +[data-aos='zoom-out-up'] { + transform: translate(0, $val-sm) scale(1.2); } -[aos='zoom-out-down'] { - transform: translate(0,-$val-sm) scale(1.2); - &.aos-animate {transform: translate(0,0) scale(1);} +[data-aos='zoom-out-down'] { + transform: translate(0, -$val-sm) scale(1.2); } -[aos='zoom-out-right'] { - transform: translate(-$val-sm,0) scale(1.2); - &.aos-animate {transform: translate(0,0) scale(1);} +[data-aos='zoom-out-right'] { + transform: translate(-$val-sm, 0) scale(1.2); } -[aos='zoom-out-left'] { - transform: translate($val-sm,0) scale(1.2); - &.aos-animate {transform: translate(0,0) scale(1);} +[data-aos='zoom-out-left'] { + transform: translate($val-sm, 0) scale(1.2); } @@ -160,25 +154,28 @@ $val-lg: 100vw; * Slide animations */ +[data-aos^='slide'][data-aos^='slide'] { + transition-property: transform; + + &.aos-animate { + transform: translate(0, 0); + } +} -[aos='slide-up'] { - transform: translate(0,100%); - &.aos-animate {transform: translate(0,0);} +[data-aos='slide-up'] { + transform: translateY(100%); } -[aos='slide-down'] { - transform: translate(0,-100%); - &.aos-animate {transform: translate(0,0);} +[data-aos='slide-down'] { + transform: translateY(-100%); } -[aos='slide-right'] { - transform: translate(-100%,0); - &.aos-animate {transform: translate(0,0);} +[data-aos='slide-right'] { + transform: translateX(-100%); } -[aos='slide-left'] { - transform: translate(100%,0); - &.aos-animate {transform: translate(0,0);} +[data-aos='slide-left'] { + transform: translateX(100%); } @@ -189,26 +186,27 @@ $val-lg: 100vw; * flip-left, flip-right, flip-up, flip-down */ -[aos^='flip'] { +[data-aos^='flip'][data-aos^='flip'] { backface-visibility: hidden; + transition-property: transform; } -[aos='flip-left'] { +[data-aos='flip-left'] { transform: perspective(2500px) rotateY(-100deg); &.aos-animate {transform: perspective(2500px) rotateY(0);} } -[aos='flip-right'] { +[data-aos='flip-right'] { transform: perspective(2500px) rotateY(100deg); &.aos-animate {transform: perspective(2500px) rotateY(0);} } -[aos='flip-up'] { +[data-aos='flip-up'] { transform: perspective(2500px) rotateX(-100deg); &.aos-animate {transform: perspective(2500px) rotateX(0);} } -[aos='flip-down'] { +[data-aos='flip-down'] { transform: perspective(2500px) rotateX(100deg); &.aos-animate {transform: perspective(2500px) rotateX(0);} } diff --git a/test/elements.spec.js b/test/elements.spec.js index f0292bf..9bec5aa 100644 --- a/test/elements.spec.js +++ b/test/elements.spec.js @@ -17,7 +17,7 @@ describe('Elements helper (elements.js) -> ', function() { it('Should return array with objects that coresponds to elements in aos.fixture.html', function() { var aosElements = elements(); - expect(aosElements.length).toBe($('[aos]').length); + expect(aosElements.length).toBe($('[data-aos]').length); }); it('Should return array of objects', function() { @@ -42,7 +42,7 @@ describe('Elements helper (elements.js) -> ', function() { var aosElements = elements(); function isNode(obj) { - return (typeof obj==="object") && (obj.nodeType===1) && (typeof obj.style === "object") && (typeof obj.ownerDocument ==="object"); + return (typeof obj === "object") && (obj.nodeType === 1) && (typeof obj.style === "object") && (typeof obj.ownerDocument === "object"); } for (var i = 0; i < aosElements.length; i++) { diff --git a/test/fixtures/aos-offset.fixture.html b/test/fixtures/aos-offset.fixture.html index 1c8ed93..c96e2ed 100644 --- a/test/fixtures/aos-offset.fixture.html +++ b/test/fixtures/aos-offset.fixture.html @@ -15,27 +15,27 @@ -
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/test/fixtures/aos.fixture.html b/test/fixtures/aos.fixture.html index 4f3b9b4..754f4d2 100755 --- a/test/fixtures/aos.fixture.html +++ b/test/fixtures/aos.fixture.html @@ -15,27 +15,27 @@ -
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
From 3cfb8bc6cc37585fc78fbf9d5fb9d318db519504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sajn=C3=B3g?= Date: Sat, 18 Jun 2016 14:46:16 +0200 Subject: [PATCH 02/16] replace gulp with webpack, use ES6 --- .babelrc | 3 + .editorconfig | 5 +- .travis.yml | 3 +- dist/aos.css | 3 +- dist/aos.css.map | 1 + dist/aos.js | 4 +- dist/aos.js.map | 2 +- gulp/bundle.js | 42 ---- gulp/sass.js | 25 -- gulp/test.js | 12 - gulpfile.js | 38 --- karma.conf.js | 94 +++---- package.json | 51 ++-- src/js/aos.js | 306 +++++++++++------------ src/js/helpers/calculateOffset.js | 102 ++++---- src/js/helpers/detector.js | 38 ++- src/js/helpers/elements.js | 10 +- src/js/helpers/handleScroll.js | 38 +-- src/js/helpers/prepare.js | 17 +- src/js/libs/classList-shim.js | 53 ---- src/js/libs/observer.js | 74 +++--- src/js/libs/offset.js | 26 +- test/aos.spec.js | 84 ++++--- test/calculateOffset.spec.js | 341 +++++++++++++------------- test/elements.spec.js | 94 ++++--- test/fixtures/aos-offset.fixture.html | 27 +- test/fixtures/aos.fixture.html | 37 ++- test/index.js | 3 + webpack.config.js | 30 +++ 29 files changed, 686 insertions(+), 877 deletions(-) create mode 100644 .babelrc create mode 100644 dist/aos.css.map delete mode 100644 gulp/bundle.js delete mode 100644 gulp/sass.js delete mode 100644 gulp/test.js delete mode 100755 gulpfile.js delete mode 100644 src/js/libs/classList-shim.js create mode 100644 test/index.js create mode 100644 webpack.config.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..af0f0c3 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015"] +} \ No newline at end of file diff --git a/.editorconfig b/.editorconfig index ac95b43..9d5248e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,13 +5,10 @@ root = true [*] charset = utf-8 end_of_line = lf -indent_size = 4 +indent_size = 2 indent_style = space insert_final_newline = true trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false - -[*.scss, *.css] -indent_size = 2 \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index b640e72..1be807d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ node_js: branches: only: - master - - dev + - (.+-dev$)|(^dev$) env: global: @@ -17,7 +17,6 @@ before_install: - sh -e /etc/init.d/xvfb start install: -- npm install -g gulp - npm install -g karma - npm install diff --git a/dist/aos.css b/dist/aos.css index 53c8ecf..70cb93b 100644 --- a/dist/aos.css +++ b/dist/aos.css @@ -1 +1,2 @@ -[aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.25,.75,.75);transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.1,.25,1);transition-timing-function:cubic-bezier(.25,.1,.25,1)}[aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,1,1);transition-timing-function:cubic-bezier(.42,0,1,1)}[aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [aos]{-webkit-transition-timing-function:cubic-bezier(0,0,.58,1);transition-timing-function:cubic-bezier(0,0,.58,1)}[aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [aos]{-webkit-transition-timing-function:cubic-bezier(.42,0,.58,1);transition-timing-function:cubic-bezier(.42,0,.58,1)}[aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.6,-.28,.735,.045);transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [aos]{-webkit-transition-timing-function:cubic-bezier(.68,-.55,.265,1.55);transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.47,0,.745,.715);transition-timing-function:cubic-bezier(.47,0,.745,.715)}[aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.39,.575,.565,1);transition-timing-function:cubic-bezier(.39,.575,.565,1)}[aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [aos]{-webkit-transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[aos][data-aos][data-aos-easing=ease-in-quad],[aos][data-aos][data-aos-easing=ease-in-cubic],[aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quad] [aos],body[data-aos-easing=ease-in-cubic] [aos],body[data-aos-easing=ease-in-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.55,.085,.68,.53);transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[aos][data-aos][data-aos-easing=ease-out-quad],[aos][data-aos][data-aos-easing=ease-out-cubic],[aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quad] [aos],body[data-aos-easing=ease-out-cubic] [aos],body[data-aos-easing=ease-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.25,.46,.45,.94);transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[aos][data-aos][data-aos-easing=ease-in-out-quad],[aos][data-aos][data-aos-easing=ease-in-out-cubic],[aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quad] [aos],body[data-aos-easing=ease-in-out-cubic] [aos],body[data-aos-easing=ease-in-out-quart] [aos]{-webkit-transition-timing-function:cubic-bezier(.455,.03,.515,.955);transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-duration='50'],body[data-aos-duration='50'] [data-aos]{-webkit-transition-duration:50ms;transition-duration:50ms}[data-aos][data-aos][data-aos-duration='100'],body[data-aos-duration='100'] [data-aos]{-webkit-transition-duration:.1s;transition-duration:.1s}[data-aos][data-aos][data-aos-duration='150'],body[data-aos-duration='150'] [data-aos]{-webkit-transition-duration:150ms;transition-duration:150ms}[data-aos][data-aos][data-aos-duration='200'],body[data-aos-duration='200'] [data-aos]{-webkit-transition-duration:.2s;transition-duration:.2s}[data-aos][data-aos][data-aos-duration='250'],body[data-aos-duration='250'] [data-aos]{-webkit-transition-duration:250ms;transition-duration:250ms}[data-aos][data-aos][data-aos-duration='300'],body[data-aos-duration='300'] [data-aos]{-webkit-transition-duration:.3s;transition-duration:.3s}[data-aos][data-aos][data-aos-duration='350'],body[data-aos-duration='350'] [data-aos]{-webkit-transition-duration:350ms;transition-duration:350ms}[data-aos][data-aos][data-aos-duration='400'],body[data-aos-duration='400'] [data-aos]{-webkit-transition-duration:.4s;transition-duration:.4s}[data-aos][data-aos][data-aos-duration='450'],body[data-aos-duration='450'] [data-aos]{-webkit-transition-duration:450ms;transition-duration:450ms}[data-aos][data-aos][data-aos-duration='500'],body[data-aos-duration='500'] [data-aos]{-webkit-transition-duration:.5s;transition-duration:.5s}[data-aos][data-aos][data-aos-duration='550'],body[data-aos-duration='550'] [data-aos]{-webkit-transition-duration:550ms;transition-duration:550ms}[data-aos][data-aos][data-aos-duration='600'],body[data-aos-duration='600'] [data-aos]{-webkit-transition-duration:.6s;transition-duration:.6s}[data-aos][data-aos][data-aos-duration='650'],body[data-aos-duration='650'] [data-aos]{-webkit-transition-duration:650ms;transition-duration:650ms}[data-aos][data-aos][data-aos-duration='700'],body[data-aos-duration='700'] [data-aos]{-webkit-transition-duration:.7s;transition-duration:.7s}[data-aos][data-aos][data-aos-duration='750'],body[data-aos-duration='750'] [data-aos]{-webkit-transition-duration:750ms;transition-duration:750ms}[data-aos][data-aos][data-aos-duration='800'],body[data-aos-duration='800'] [data-aos]{-webkit-transition-duration:.8s;transition-duration:.8s}[data-aos][data-aos][data-aos-duration='850'],body[data-aos-duration='850'] [data-aos]{-webkit-transition-duration:850ms;transition-duration:850ms}[data-aos][data-aos][data-aos-duration='900'],body[data-aos-duration='900'] [data-aos]{-webkit-transition-duration:.9s;transition-duration:.9s}[data-aos][data-aos][data-aos-duration='950'],body[data-aos-duration='950'] [data-aos]{-webkit-transition-duration:950ms;transition-duration:950ms}[data-aos][data-aos][data-aos-duration='1000'],body[data-aos-duration='1000'] [data-aos]{-webkit-transition-duration:1s;transition-duration:1s}[data-aos][data-aos][data-aos-duration='1050'],body[data-aos-duration='1050'] [data-aos]{-webkit-transition-duration:1.05s;transition-duration:1.05s}[data-aos][data-aos][data-aos-duration='1100'],body[data-aos-duration='1100'] [data-aos]{-webkit-transition-duration:1.1s;transition-duration:1.1s}[data-aos][data-aos][data-aos-duration='1150'],body[data-aos-duration='1150'] [data-aos]{-webkit-transition-duration:1.15s;transition-duration:1.15s}[data-aos][data-aos][data-aos-duration='1200'],body[data-aos-duration='1200'] [data-aos]{-webkit-transition-duration:1.2s;transition-duration:1.2s}[data-aos][data-aos][data-aos-duration='1250'],body[data-aos-duration='1250'] [data-aos]{-webkit-transition-duration:1.25s;transition-duration:1.25s}[data-aos][data-aos][data-aos-duration='1300'],body[data-aos-duration='1300'] [data-aos]{-webkit-transition-duration:1.3s;transition-duration:1.3s}[data-aos][data-aos][data-aos-duration='1350'],body[data-aos-duration='1350'] [data-aos]{-webkit-transition-duration:1.35s;transition-duration:1.35s}[data-aos][data-aos][data-aos-duration='1400'],body[data-aos-duration='1400'] [data-aos]{-webkit-transition-duration:1.4s;transition-duration:1.4s}[data-aos][data-aos][data-aos-duration='1450'],body[data-aos-duration='1450'] [data-aos]{-webkit-transition-duration:1.45s;transition-duration:1.45s}[data-aos][data-aos][data-aos-duration='1500'],body[data-aos-duration='1500'] [data-aos]{-webkit-transition-duration:1.5s;transition-duration:1.5s}[data-aos][data-aos][data-aos-duration='1550'],body[data-aos-duration='1550'] [data-aos]{-webkit-transition-duration:1.55s;transition-duration:1.55s}[data-aos][data-aos][data-aos-duration='1600'],body[data-aos-duration='1600'] [data-aos]{-webkit-transition-duration:1.6s;transition-duration:1.6s}[data-aos][data-aos][data-aos-duration='1650'],body[data-aos-duration='1650'] [data-aos]{-webkit-transition-duration:1.65s;transition-duration:1.65s}[data-aos][data-aos][data-aos-duration='1700'],body[data-aos-duration='1700'] [data-aos]{-webkit-transition-duration:1.7s;transition-duration:1.7s}[data-aos][data-aos][data-aos-duration='1750'],body[data-aos-duration='1750'] [data-aos]{-webkit-transition-duration:1.75s;transition-duration:1.75s}[data-aos][data-aos][data-aos-duration='1800'],body[data-aos-duration='1800'] [data-aos]{-webkit-transition-duration:1.8s;transition-duration:1.8s}[data-aos][data-aos][data-aos-duration='1850'],body[data-aos-duration='1850'] [data-aos]{-webkit-transition-duration:1.85s;transition-duration:1.85s}[data-aos][data-aos][data-aos-duration='1900'],body[data-aos-duration='1900'] [data-aos]{-webkit-transition-duration:1.9s;transition-duration:1.9s}[data-aos][data-aos][data-aos-duration='1950'],body[data-aos-duration='1950'] [data-aos]{-webkit-transition-duration:1.95s;transition-duration:1.95s}[data-aos][data-aos][data-aos-duration='2000'],body[data-aos-duration='2000'] [data-aos]{-webkit-transition-duration:2s;transition-duration:2s}[data-aos][data-aos][data-aos-duration='2050'],body[data-aos-duration='2050'] [data-aos]{-webkit-transition-duration:2.05s;transition-duration:2.05s}[data-aos][data-aos][data-aos-duration='2100'],body[data-aos-duration='2100'] [data-aos]{-webkit-transition-duration:2.1s;transition-duration:2.1s}[data-aos][data-aos][data-aos-duration='2150'],body[data-aos-duration='2150'] [data-aos]{-webkit-transition-duration:2.15s;transition-duration:2.15s}[data-aos][data-aos][data-aos-duration='2200'],body[data-aos-duration='2200'] [data-aos]{-webkit-transition-duration:2.2s;transition-duration:2.2s}[data-aos][data-aos][data-aos-duration='2250'],body[data-aos-duration='2250'] [data-aos]{-webkit-transition-duration:2.25s;transition-duration:2.25s}[data-aos][data-aos][data-aos-duration='2300'],body[data-aos-duration='2300'] [data-aos]{-webkit-transition-duration:2.3s;transition-duration:2.3s}[data-aos][data-aos][data-aos-duration='2350'],body[data-aos-duration='2350'] [data-aos]{-webkit-transition-duration:2.35s;transition-duration:2.35s}[data-aos][data-aos][data-aos-duration='2400'],body[data-aos-duration='2400'] [data-aos]{-webkit-transition-duration:2.4s;transition-duration:2.4s}[data-aos][data-aos][data-aos-duration='2450'],body[data-aos-duration='2450'] [data-aos]{-webkit-transition-duration:2.45s;transition-duration:2.45s}[data-aos][data-aos][data-aos-duration='2500'],body[data-aos-duration='2500'] [data-aos]{-webkit-transition-duration:2.5s;transition-duration:2.5s}[data-aos][data-aos][data-aos-duration='2550'],body[data-aos-duration='2550'] [data-aos]{-webkit-transition-duration:2.55s;transition-duration:2.55s}[data-aos][data-aos][data-aos-duration='2600'],body[data-aos-duration='2600'] [data-aos]{-webkit-transition-duration:2.6s;transition-duration:2.6s}[data-aos][data-aos][data-aos-duration='2650'],body[data-aos-duration='2650'] [data-aos]{-webkit-transition-duration:2.65s;transition-duration:2.65s}[data-aos][data-aos][data-aos-duration='2700'],body[data-aos-duration='2700'] [data-aos]{-webkit-transition-duration:2.7s;transition-duration:2.7s}[data-aos][data-aos][data-aos-duration='2750'],body[data-aos-duration='2750'] [data-aos]{-webkit-transition-duration:2.75s;transition-duration:2.75s}[data-aos][data-aos][data-aos-duration='2800'],body[data-aos-duration='2800'] [data-aos]{-webkit-transition-duration:2.8s;transition-duration:2.8s}[data-aos][data-aos][data-aos-duration='2850'],body[data-aos-duration='2850'] [data-aos]{-webkit-transition-duration:2.85s;transition-duration:2.85s}[data-aos][data-aos][data-aos-duration='2900'],body[data-aos-duration='2900'] [data-aos]{-webkit-transition-duration:2.9s;transition-duration:2.9s}[data-aos][data-aos][data-aos-duration='2950'],body[data-aos-duration='2950'] [data-aos]{-webkit-transition-duration:2.95s;transition-duration:2.95s}[data-aos][data-aos][data-aos-duration='3000'],body[data-aos-duration='3000'] [data-aos]{-webkit-transition-duration:3s;transition-duration:3s}[data-aos][data-aos][data-aos-delay='50'],body[data-aos-delay='50'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='50'].aos-animate,body[data-aos-delay='50'] [data-aos].aos-animate{-webkit-transition-delay:50ms;transition-delay:50ms}[data-aos][data-aos][data-aos-delay='100'],body[data-aos-delay='100'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='100'].aos-animate,body[data-aos-delay='100'] [data-aos].aos-animate{-webkit-transition-delay:.1s;transition-delay:.1s}[data-aos][data-aos][data-aos-delay='150'],body[data-aos-delay='150'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='150'].aos-animate,body[data-aos-delay='150'] [data-aos].aos-animate{-webkit-transition-delay:150ms;transition-delay:150ms}[data-aos][data-aos][data-aos-delay='200'],body[data-aos-delay='200'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='200'].aos-animate,body[data-aos-delay='200'] [data-aos].aos-animate{-webkit-transition-delay:.2s;transition-delay:.2s}[data-aos][data-aos][data-aos-delay='250'],body[data-aos-delay='250'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='250'].aos-animate,body[data-aos-delay='250'] [data-aos].aos-animate{-webkit-transition-delay:250ms;transition-delay:250ms}[data-aos][data-aos][data-aos-delay='300'],body[data-aos-delay='300'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='300'].aos-animate,body[data-aos-delay='300'] [data-aos].aos-animate{-webkit-transition-delay:.3s;transition-delay:.3s}[data-aos][data-aos][data-aos-delay='350'],body[data-aos-delay='350'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='350'].aos-animate,body[data-aos-delay='350'] [data-aos].aos-animate{-webkit-transition-delay:350ms;transition-delay:350ms}[data-aos][data-aos][data-aos-delay='400'],body[data-aos-delay='400'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='400'].aos-animate,body[data-aos-delay='400'] [data-aos].aos-animate{-webkit-transition-delay:.4s;transition-delay:.4s}[data-aos][data-aos][data-aos-delay='450'],body[data-aos-delay='450'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='450'].aos-animate,body[data-aos-delay='450'] [data-aos].aos-animate{-webkit-transition-delay:450ms;transition-delay:450ms}[data-aos][data-aos][data-aos-delay='500'],body[data-aos-delay='500'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='500'].aos-animate,body[data-aos-delay='500'] [data-aos].aos-animate{-webkit-transition-delay:.5s;transition-delay:.5s}[data-aos][data-aos][data-aos-delay='550'],body[data-aos-delay='550'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='550'].aos-animate,body[data-aos-delay='550'] [data-aos].aos-animate{-webkit-transition-delay:550ms;transition-delay:550ms}[data-aos][data-aos][data-aos-delay='600'],body[data-aos-delay='600'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='600'].aos-animate,body[data-aos-delay='600'] [data-aos].aos-animate{-webkit-transition-delay:.6s;transition-delay:.6s}[data-aos][data-aos][data-aos-delay='650'],body[data-aos-delay='650'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='650'].aos-animate,body[data-aos-delay='650'] [data-aos].aos-animate{-webkit-transition-delay:650ms;transition-delay:650ms}[data-aos][data-aos][data-aos-delay='700'],body[data-aos-delay='700'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='700'].aos-animate,body[data-aos-delay='700'] [data-aos].aos-animate{-webkit-transition-delay:.7s;transition-delay:.7s}[data-aos][data-aos][data-aos-delay='750'],body[data-aos-delay='750'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='750'].aos-animate,body[data-aos-delay='750'] [data-aos].aos-animate{-webkit-transition-delay:750ms;transition-delay:750ms}[data-aos][data-aos][data-aos-delay='800'],body[data-aos-delay='800'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='800'].aos-animate,body[data-aos-delay='800'] [data-aos].aos-animate{-webkit-transition-delay:.8s;transition-delay:.8s}[data-aos][data-aos][data-aos-delay='850'],body[data-aos-delay='850'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='850'].aos-animate,body[data-aos-delay='850'] [data-aos].aos-animate{-webkit-transition-delay:850ms;transition-delay:850ms}[data-aos][data-aos][data-aos-delay='900'],body[data-aos-delay='900'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='900'].aos-animate,body[data-aos-delay='900'] [data-aos].aos-animate{-webkit-transition-delay:.9s;transition-delay:.9s}[data-aos][data-aos][data-aos-delay='950'],body[data-aos-delay='950'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='950'].aos-animate,body[data-aos-delay='950'] [data-aos].aos-animate{-webkit-transition-delay:950ms;transition-delay:950ms}[data-aos][data-aos][data-aos-delay='1000'],body[data-aos-delay='1000'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1000'].aos-animate,body[data-aos-delay='1000'] [data-aos].aos-animate{-webkit-transition-delay:1s;transition-delay:1s}[data-aos][data-aos][data-aos-delay='1050'],body[data-aos-delay='1050'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1050'].aos-animate,body[data-aos-delay='1050'] [data-aos].aos-animate{-webkit-transition-delay:1.05s;transition-delay:1.05s}[data-aos][data-aos][data-aos-delay='1100'],body[data-aos-delay='1100'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1100'].aos-animate,body[data-aos-delay='1100'] [data-aos].aos-animate{-webkit-transition-delay:1.1s;transition-delay:1.1s}[data-aos][data-aos][data-aos-delay='1150'],body[data-aos-delay='1150'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1150'].aos-animate,body[data-aos-delay='1150'] [data-aos].aos-animate{-webkit-transition-delay:1.15s;transition-delay:1.15s}[data-aos][data-aos][data-aos-delay='1200'],body[data-aos-delay='1200'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1200'].aos-animate,body[data-aos-delay='1200'] [data-aos].aos-animate{-webkit-transition-delay:1.2s;transition-delay:1.2s}[data-aos][data-aos][data-aos-delay='1250'],body[data-aos-delay='1250'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1250'].aos-animate,body[data-aos-delay='1250'] [data-aos].aos-animate{-webkit-transition-delay:1.25s;transition-delay:1.25s}[data-aos][data-aos][data-aos-delay='1300'],body[data-aos-delay='1300'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1300'].aos-animate,body[data-aos-delay='1300'] [data-aos].aos-animate{-webkit-transition-delay:1.3s;transition-delay:1.3s}[data-aos][data-aos][data-aos-delay='1350'],body[data-aos-delay='1350'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1350'].aos-animate,body[data-aos-delay='1350'] [data-aos].aos-animate{-webkit-transition-delay:1.35s;transition-delay:1.35s}[data-aos][data-aos][data-aos-delay='1400'],body[data-aos-delay='1400'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1400'].aos-animate,body[data-aos-delay='1400'] [data-aos].aos-animate{-webkit-transition-delay:1.4s;transition-delay:1.4s}[data-aos][data-aos][data-aos-delay='1450'],body[data-aos-delay='1450'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1450'].aos-animate,body[data-aos-delay='1450'] [data-aos].aos-animate{-webkit-transition-delay:1.45s;transition-delay:1.45s}[data-aos][data-aos][data-aos-delay='1500'],body[data-aos-delay='1500'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1500'].aos-animate,body[data-aos-delay='1500'] [data-aos].aos-animate{-webkit-transition-delay:1.5s;transition-delay:1.5s}[data-aos][data-aos][data-aos-delay='1550'],body[data-aos-delay='1550'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1550'].aos-animate,body[data-aos-delay='1550'] [data-aos].aos-animate{-webkit-transition-delay:1.55s;transition-delay:1.55s}[data-aos][data-aos][data-aos-delay='1600'],body[data-aos-delay='1600'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1600'].aos-animate,body[data-aos-delay='1600'] [data-aos].aos-animate{-webkit-transition-delay:1.6s;transition-delay:1.6s}[data-aos][data-aos][data-aos-delay='1650'],body[data-aos-delay='1650'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1650'].aos-animate,body[data-aos-delay='1650'] [data-aos].aos-animate{-webkit-transition-delay:1.65s;transition-delay:1.65s}[data-aos][data-aos][data-aos-delay='1700'],body[data-aos-delay='1700'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1700'].aos-animate,body[data-aos-delay='1700'] [data-aos].aos-animate{-webkit-transition-delay:1.7s;transition-delay:1.7s}[data-aos][data-aos][data-aos-delay='1750'],body[data-aos-delay='1750'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1750'].aos-animate,body[data-aos-delay='1750'] [data-aos].aos-animate{-webkit-transition-delay:1.75s;transition-delay:1.75s}[data-aos][data-aos][data-aos-delay='1800'],body[data-aos-delay='1800'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1800'].aos-animate,body[data-aos-delay='1800'] [data-aos].aos-animate{-webkit-transition-delay:1.8s;transition-delay:1.8s}[data-aos][data-aos][data-aos-delay='1850'],body[data-aos-delay='1850'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1850'].aos-animate,body[data-aos-delay='1850'] [data-aos].aos-animate{-webkit-transition-delay:1.85s;transition-delay:1.85s}[data-aos][data-aos][data-aos-delay='1900'],body[data-aos-delay='1900'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1900'].aos-animate,body[data-aos-delay='1900'] [data-aos].aos-animate{-webkit-transition-delay:1.9s;transition-delay:1.9s}[data-aos][data-aos][data-aos-delay='1950'],body[data-aos-delay='1950'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='1950'].aos-animate,body[data-aos-delay='1950'] [data-aos].aos-animate{-webkit-transition-delay:1.95s;transition-delay:1.95s}[data-aos][data-aos][data-aos-delay='2000'],body[data-aos-delay='2000'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2000'].aos-animate,body[data-aos-delay='2000'] [data-aos].aos-animate{-webkit-transition-delay:2s;transition-delay:2s}[data-aos][data-aos][data-aos-delay='2050'],body[data-aos-delay='2050'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2050'].aos-animate,body[data-aos-delay='2050'] [data-aos].aos-animate{-webkit-transition-delay:2.05s;transition-delay:2.05s}[data-aos][data-aos][data-aos-delay='2100'],body[data-aos-delay='2100'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2100'].aos-animate,body[data-aos-delay='2100'] [data-aos].aos-animate{-webkit-transition-delay:2.1s;transition-delay:2.1s}[data-aos][data-aos][data-aos-delay='2150'],body[data-aos-delay='2150'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2150'].aos-animate,body[data-aos-delay='2150'] [data-aos].aos-animate{-webkit-transition-delay:2.15s;transition-delay:2.15s}[data-aos][data-aos][data-aos-delay='2200'],body[data-aos-delay='2200'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2200'].aos-animate,body[data-aos-delay='2200'] [data-aos].aos-animate{-webkit-transition-delay:2.2s;transition-delay:2.2s}[data-aos][data-aos][data-aos-delay='2250'],body[data-aos-delay='2250'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2250'].aos-animate,body[data-aos-delay='2250'] [data-aos].aos-animate{-webkit-transition-delay:2.25s;transition-delay:2.25s}[data-aos][data-aos][data-aos-delay='2300'],body[data-aos-delay='2300'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2300'].aos-animate,body[data-aos-delay='2300'] [data-aos].aos-animate{-webkit-transition-delay:2.3s;transition-delay:2.3s}[data-aos][data-aos][data-aos-delay='2350'],body[data-aos-delay='2350'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2350'].aos-animate,body[data-aos-delay='2350'] [data-aos].aos-animate{-webkit-transition-delay:2.35s;transition-delay:2.35s}[data-aos][data-aos][data-aos-delay='2400'],body[data-aos-delay='2400'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2400'].aos-animate,body[data-aos-delay='2400'] [data-aos].aos-animate{-webkit-transition-delay:2.4s;transition-delay:2.4s}[data-aos][data-aos][data-aos-delay='2450'],body[data-aos-delay='2450'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2450'].aos-animate,body[data-aos-delay='2450'] [data-aos].aos-animate{-webkit-transition-delay:2.45s;transition-delay:2.45s}[data-aos][data-aos][data-aos-delay='2500'],body[data-aos-delay='2500'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2500'].aos-animate,body[data-aos-delay='2500'] [data-aos].aos-animate{-webkit-transition-delay:2.5s;transition-delay:2.5s}[data-aos][data-aos][data-aos-delay='2550'],body[data-aos-delay='2550'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2550'].aos-animate,body[data-aos-delay='2550'] [data-aos].aos-animate{-webkit-transition-delay:2.55s;transition-delay:2.55s}[data-aos][data-aos][data-aos-delay='2600'],body[data-aos-delay='2600'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2600'].aos-animate,body[data-aos-delay='2600'] [data-aos].aos-animate{-webkit-transition-delay:2.6s;transition-delay:2.6s}[data-aos][data-aos][data-aos-delay='2650'],body[data-aos-delay='2650'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2650'].aos-animate,body[data-aos-delay='2650'] [data-aos].aos-animate{-webkit-transition-delay:2.65s;transition-delay:2.65s}[data-aos][data-aos][data-aos-delay='2700'],body[data-aos-delay='2700'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2700'].aos-animate,body[data-aos-delay='2700'] [data-aos].aos-animate{-webkit-transition-delay:2.7s;transition-delay:2.7s}[data-aos][data-aos][data-aos-delay='2750'],body[data-aos-delay='2750'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2750'].aos-animate,body[data-aos-delay='2750'] [data-aos].aos-animate{-webkit-transition-delay:2.75s;transition-delay:2.75s}[data-aos][data-aos][data-aos-delay='2800'],body[data-aos-delay='2800'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2800'].aos-animate,body[data-aos-delay='2800'] [data-aos].aos-animate{-webkit-transition-delay:2.8s;transition-delay:2.8s}[data-aos][data-aos][data-aos-delay='2850'],body[data-aos-delay='2850'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2850'].aos-animate,body[data-aos-delay='2850'] [data-aos].aos-animate{-webkit-transition-delay:2.85s;transition-delay:2.85s}[data-aos][data-aos][data-aos-delay='2900'],body[data-aos-delay='2900'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2900'].aos-animate,body[data-aos-delay='2900'] [data-aos].aos-animate{-webkit-transition-delay:2.9s;transition-delay:2.9s}[data-aos][data-aos][data-aos-delay='2950'],body[data-aos-delay='2950'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='2950'].aos-animate,body[data-aos-delay='2950'] [data-aos].aos-animate{-webkit-transition-delay:2.95s;transition-delay:2.95s}[data-aos][data-aos][data-aos-delay='3000'],body[data-aos-delay='3000'] [data-aos]{-webkit-transition-delay:0;transition-delay:0}[data-aos][data-aos][data-aos-delay='3000'].aos-animate,body[data-aos-delay='3000'] [data-aos].aos-animate{-webkit-transition-delay:3s;transition-delay:3s}[data-aos^=fade][data-aos^=fade]{opacity:0;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,transform}[data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[data-aos=fade-up]{-webkit-transform:translate(0,100px);-ms-transform:translate(0,100px);transform:translate(0,100px)}[data-aos=fade-down]{-webkit-transform:translate(0,-100px);-ms-transform:translate(0,-100px);transform:translate(0,-100px)}[data-aos=fade-right]{-webkit-transform:translate(-100px,0);-ms-transform:translate(-100px,0);transform:translate(-100px,0)}[data-aos=fade-left]{-webkit-transform:translate(100px,0);-ms-transform:translate(100px,0);transform:translate(100px,0)}[data-aos=fade-up-right]{-webkit-transform:translate(-100px,100px);-ms-transform:translate(-100px,100px);transform:translate(-100px,100px)}[data-aos=fade-up-left]{-webkit-transform:translate(100px,100px);-ms-transform:translate(100px,100px);transform:translate(100px,100px)}[data-aos=fade-down-right]{-webkit-transform:translate(-100px,-100px);-ms-transform:translate(-100px,-100px);transform:translate(-100px,-100px)}[data-aos=fade-down-left]{-webkit-transform:translate(100px,-100px);-ms-transform:translate(100px,-100px);transform:translate(100px,-100px)}[data-aos^=zoom][data-aos^=zoom]{opacity:0;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,transform}[data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;-webkit-transform:translate(0,0) scale(1);-ms-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}[data-aos=zoom-in]{-webkit-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}[data-aos=zoom-in-up]{-webkit-transform:translate(0,100px) scale(.6);-ms-transform:translate(0,100px) scale(.6);transform:translate(0,100px) scale(.6)}[data-aos=zoom-in-down]{-webkit-transform:translate(0,-100px) scale(.6);-ms-transform:translate(0,-100px) scale(.6);transform:translate(0,-100px) scale(.6)}[data-aos=zoom-in-right]{-webkit-transform:translate(-100px,0) scale(.6);-ms-transform:translate(-100px,0) scale(.6);transform:translate(-100px,0) scale(.6)}[data-aos=zoom-in-left]{-webkit-transform:translate(100px,0) scale(.6);-ms-transform:translate(100px,0) scale(.6);transform:translate(100px,0) scale(.6)}[data-aos=zoom-out]{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}[data-aos=zoom-out-up]{-webkit-transform:translate(0,100px) scale(1.2);-ms-transform:translate(0,100px) scale(1.2);transform:translate(0,100px) scale(1.2)}[data-aos=zoom-out-down]{-webkit-transform:translate(0,-100px) scale(1.2);-ms-transform:translate(0,-100px) scale(1.2);transform:translate(0,-100px) scale(1.2)}[data-aos=zoom-out-right]{-webkit-transform:translate(-100px,0) scale(1.2);-ms-transform:translate(-100px,0) scale(1.2);transform:translate(-100px,0) scale(1.2)}[data-aos=zoom-out-left]{-webkit-transform:translate(100px,0) scale(1.2);-ms-transform:translate(100px,0) scale(1.2);transform:translate(100px,0) scale(1.2)}[data-aos^=slide][data-aos^=slide]{-webkit-transition-property:-webkit-transform;transition-property:transform}[data-aos^=slide][data-aos^=slide].aos-animate{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}[data-aos=slide-up]{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}[data-aos=slide-down]{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}[data-aos=slide-right]{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}[data-aos=slide-left]{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}[data-aos^=flip][data-aos^=flip]{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition-property:-webkit-transform;transition-property:transform}[data-aos=flip-left]{-webkit-transform:perspective(2500px) rotateY(-100deg);transform:perspective(2500px) rotateY(-100deg)}[data-aos=flip-left].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[data-aos=flip-right]{-webkit-transform:perspective(2500px) rotateY(100deg);transform:perspective(2500px) rotateY(100deg)}[data-aos=flip-right].aos-animate{-webkit-transform:perspective(2500px) rotateY(0);transform:perspective(2500px) rotateY(0)}[data-aos=flip-up]{-webkit-transform:perspective(2500px) rotateX(-100deg);transform:perspective(2500px) rotateX(-100deg)}[data-aos=flip-up].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)}[data-aos=flip-down]{-webkit-transform:perspective(2500px) rotateX(100deg);transform:perspective(2500px) rotateX(100deg)}[data-aos=flip-down].aos-animate{-webkit-transform:perspective(2500px) rotateX(0);transform:perspective(2500px) rotateX(0)} \ No newline at end of file +[data-aos][data-aos][data-aos-duration='50'],body[data-aos-duration='50'] [data-aos]{transition-duration:50ms}[data-aos][data-aos][data-aos-duration='100'],body[data-aos-duration='100'] [data-aos]{transition-duration:.1s}[data-aos][data-aos][data-aos-duration='150'],body[data-aos-duration='150'] [data-aos]{transition-duration:.15s}[data-aos][data-aos][data-aos-duration='200'],body[data-aos-duration='200'] [data-aos]{transition-duration:.2s}[data-aos][data-aos][data-aos-duration='250'],body[data-aos-duration='250'] [data-aos]{transition-duration:.25s}[data-aos][data-aos][data-aos-duration='300'],body[data-aos-duration='300'] [data-aos]{transition-duration:.3s}[data-aos][data-aos][data-aos-duration='350'],body[data-aos-duration='350'] [data-aos]{transition-duration:.35s}[data-aos][data-aos][data-aos-duration='400'],body[data-aos-duration='400'] [data-aos]{transition-duration:.4s}[data-aos][data-aos][data-aos-duration='450'],body[data-aos-duration='450'] [data-aos]{transition-duration:.45s}[data-aos][data-aos][data-aos-duration='500'],body[data-aos-duration='500'] [data-aos]{transition-duration:.5s}[data-aos][data-aos][data-aos-duration='550'],body[data-aos-duration='550'] [data-aos]{transition-duration:.55s}[data-aos][data-aos][data-aos-duration='600'],body[data-aos-duration='600'] [data-aos]{transition-duration:.6s}[data-aos][data-aos][data-aos-duration='650'],body[data-aos-duration='650'] [data-aos]{transition-duration:.65s}[data-aos][data-aos][data-aos-duration='700'],body[data-aos-duration='700'] [data-aos]{transition-duration:.7s}[data-aos][data-aos][data-aos-duration='750'],body[data-aos-duration='750'] [data-aos]{transition-duration:.75s}[data-aos][data-aos][data-aos-duration='800'],body[data-aos-duration='800'] [data-aos]{transition-duration:.8s}[data-aos][data-aos][data-aos-duration='850'],body[data-aos-duration='850'] [data-aos]{transition-duration:.85s}[data-aos][data-aos][data-aos-duration='900'],body[data-aos-duration='900'] [data-aos]{transition-duration:.9s}[data-aos][data-aos][data-aos-duration='950'],body[data-aos-duration='950'] [data-aos]{transition-duration:.95s}[data-aos][data-aos][data-aos-duration='1000'],body[data-aos-duration='1000'] [data-aos]{transition-duration:1s}[data-aos][data-aos][data-aos-duration='1050'],body[data-aos-duration='1050'] [data-aos]{transition-duration:1.05s}[data-aos][data-aos][data-aos-duration='1100'],body[data-aos-duration='1100'] [data-aos]{transition-duration:1.1s}[data-aos][data-aos][data-aos-duration='1150'],body[data-aos-duration='1150'] [data-aos]{transition-duration:1.15s}[data-aos][data-aos][data-aos-duration='1200'],body[data-aos-duration='1200'] [data-aos]{transition-duration:1.2s}[data-aos][data-aos][data-aos-duration='1250'],body[data-aos-duration='1250'] [data-aos]{transition-duration:1.25s}[data-aos][data-aos][data-aos-duration='1300'],body[data-aos-duration='1300'] [data-aos]{transition-duration:1.3s}[data-aos][data-aos][data-aos-duration='1350'],body[data-aos-duration='1350'] [data-aos]{transition-duration:1.35s}[data-aos][data-aos][data-aos-duration='1400'],body[data-aos-duration='1400'] [data-aos]{transition-duration:1.4s}[data-aos][data-aos][data-aos-duration='1450'],body[data-aos-duration='1450'] [data-aos]{transition-duration:1.45s}[data-aos][data-aos][data-aos-duration='1500'],body[data-aos-duration='1500'] [data-aos]{transition-duration:1.5s}[data-aos][data-aos][data-aos-duration='1550'],body[data-aos-duration='1550'] [data-aos]{transition-duration:1.55s}[data-aos][data-aos][data-aos-duration='1600'],body[data-aos-duration='1600'] [data-aos]{transition-duration:1.6s}[data-aos][data-aos][data-aos-duration='1650'],body[data-aos-duration='1650'] [data-aos]{transition-duration:1.65s}[data-aos][data-aos][data-aos-duration='1700'],body[data-aos-duration='1700'] [data-aos]{transition-duration:1.7s}[data-aos][data-aos][data-aos-duration='1750'],body[data-aos-duration='1750'] [data-aos]{transition-duration:1.75s}[data-aos][data-aos][data-aos-duration='1800'],body[data-aos-duration='1800'] [data-aos]{transition-duration:1.8s}[data-aos][data-aos][data-aos-duration='1850'],body[data-aos-duration='1850'] [data-aos]{transition-duration:1.85s}[data-aos][data-aos][data-aos-duration='1900'],body[data-aos-duration='1900'] [data-aos]{transition-duration:1.9s}[data-aos][data-aos][data-aos-duration='1950'],body[data-aos-duration='1950'] [data-aos]{transition-duration:1.95s}[data-aos][data-aos][data-aos-duration='2000'],body[data-aos-duration='2000'] [data-aos]{transition-duration:2s}[data-aos][data-aos][data-aos-duration='2050'],body[data-aos-duration='2050'] [data-aos]{transition-duration:2.05s}[data-aos][data-aos][data-aos-duration='2100'],body[data-aos-duration='2100'] [data-aos]{transition-duration:2.1s}[data-aos][data-aos][data-aos-duration='2150'],body[data-aos-duration='2150'] [data-aos]{transition-duration:2.15s}[data-aos][data-aos][data-aos-duration='2200'],body[data-aos-duration='2200'] [data-aos]{transition-duration:2.2s}[data-aos][data-aos][data-aos-duration='2250'],body[data-aos-duration='2250'] [data-aos]{transition-duration:2.25s}[data-aos][data-aos][data-aos-duration='2300'],body[data-aos-duration='2300'] [data-aos]{transition-duration:2.3s}[data-aos][data-aos][data-aos-duration='2350'],body[data-aos-duration='2350'] [data-aos]{transition-duration:2.35s}[data-aos][data-aos][data-aos-duration='2400'],body[data-aos-duration='2400'] [data-aos]{transition-duration:2.4s}[data-aos][data-aos][data-aos-duration='2450'],body[data-aos-duration='2450'] [data-aos]{transition-duration:2.45s}[data-aos][data-aos][data-aos-duration='2500'],body[data-aos-duration='2500'] [data-aos]{transition-duration:2.5s}[data-aos][data-aos][data-aos-duration='2550'],body[data-aos-duration='2550'] [data-aos]{transition-duration:2.55s}[data-aos][data-aos][data-aos-duration='2600'],body[data-aos-duration='2600'] [data-aos]{transition-duration:2.6s}[data-aos][data-aos][data-aos-duration='2650'],body[data-aos-duration='2650'] [data-aos]{transition-duration:2.65s}[data-aos][data-aos][data-aos-duration='2700'],body[data-aos-duration='2700'] [data-aos]{transition-duration:2.7s}[data-aos][data-aos][data-aos-duration='2750'],body[data-aos-duration='2750'] [data-aos]{transition-duration:2.75s}[data-aos][data-aos][data-aos-duration='2800'],body[data-aos-duration='2800'] [data-aos]{transition-duration:2.8s}[data-aos][data-aos][data-aos-duration='2850'],body[data-aos-duration='2850'] [data-aos]{transition-duration:2.85s}[data-aos][data-aos][data-aos-duration='2900'],body[data-aos-duration='2900'] [data-aos]{transition-duration:2.9s}[data-aos][data-aos][data-aos-duration='2950'],body[data-aos-duration='2950'] [data-aos]{transition-duration:2.95s}[data-aos][data-aos][data-aos-duration='3000'],body[data-aos-duration='3000'] [data-aos]{transition-duration:3s}[data-aos][data-aos][data-aos-delay='50'],body[data-aos-delay='50'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='50'].aos-animate,body[data-aos-delay='50'] [data-aos].aos-animate{transition-delay:50ms}[data-aos][data-aos][data-aos-delay='100'],body[data-aos-delay='100'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='100'].aos-animate,body[data-aos-delay='100'] [data-aos].aos-animate{transition-delay:.1s}[data-aos][data-aos][data-aos-delay='150'],body[data-aos-delay='150'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='150'].aos-animate,body[data-aos-delay='150'] [data-aos].aos-animate{transition-delay:.15s}[data-aos][data-aos][data-aos-delay='200'],body[data-aos-delay='200'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='200'].aos-animate,body[data-aos-delay='200'] [data-aos].aos-animate{transition-delay:.2s}[data-aos][data-aos][data-aos-delay='250'],body[data-aos-delay='250'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='250'].aos-animate,body[data-aos-delay='250'] [data-aos].aos-animate{transition-delay:.25s}[data-aos][data-aos][data-aos-delay='300'],body[data-aos-delay='300'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='300'].aos-animate,body[data-aos-delay='300'] [data-aos].aos-animate{transition-delay:.3s}[data-aos][data-aos][data-aos-delay='350'],body[data-aos-delay='350'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='350'].aos-animate,body[data-aos-delay='350'] [data-aos].aos-animate{transition-delay:.35s}[data-aos][data-aos][data-aos-delay='400'],body[data-aos-delay='400'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='400'].aos-animate,body[data-aos-delay='400'] [data-aos].aos-animate{transition-delay:.4s}[data-aos][data-aos][data-aos-delay='450'],body[data-aos-delay='450'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='450'].aos-animate,body[data-aos-delay='450'] [data-aos].aos-animate{transition-delay:.45s}[data-aos][data-aos][data-aos-delay='500'],body[data-aos-delay='500'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='500'].aos-animate,body[data-aos-delay='500'] [data-aos].aos-animate{transition-delay:.5s}[data-aos][data-aos][data-aos-delay='550'],body[data-aos-delay='550'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='550'].aos-animate,body[data-aos-delay='550'] [data-aos].aos-animate{transition-delay:.55s}[data-aos][data-aos][data-aos-delay='600'],body[data-aos-delay='600'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='600'].aos-animate,body[data-aos-delay='600'] [data-aos].aos-animate{transition-delay:.6s}[data-aos][data-aos][data-aos-delay='650'],body[data-aos-delay='650'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='650'].aos-animate,body[data-aos-delay='650'] [data-aos].aos-animate{transition-delay:.65s}[data-aos][data-aos][data-aos-delay='700'],body[data-aos-delay='700'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='700'].aos-animate,body[data-aos-delay='700'] [data-aos].aos-animate{transition-delay:.7s}[data-aos][data-aos][data-aos-delay='750'],body[data-aos-delay='750'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='750'].aos-animate,body[data-aos-delay='750'] [data-aos].aos-animate{transition-delay:.75s}[data-aos][data-aos][data-aos-delay='800'],body[data-aos-delay='800'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='800'].aos-animate,body[data-aos-delay='800'] [data-aos].aos-animate{transition-delay:.8s}[data-aos][data-aos][data-aos-delay='850'],body[data-aos-delay='850'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='850'].aos-animate,body[data-aos-delay='850'] [data-aos].aos-animate{transition-delay:.85s}[data-aos][data-aos][data-aos-delay='900'],body[data-aos-delay='900'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='900'].aos-animate,body[data-aos-delay='900'] [data-aos].aos-animate{transition-delay:.9s}[data-aos][data-aos][data-aos-delay='950'],body[data-aos-delay='950'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='950'].aos-animate,body[data-aos-delay='950'] [data-aos].aos-animate{transition-delay:.95s}[data-aos][data-aos][data-aos-delay='1000'],body[data-aos-delay='1000'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1000'].aos-animate,body[data-aos-delay='1000'] [data-aos].aos-animate{transition-delay:1s}[data-aos][data-aos][data-aos-delay='1050'],body[data-aos-delay='1050'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1050'].aos-animate,body[data-aos-delay='1050'] [data-aos].aos-animate{transition-delay:1.05s}[data-aos][data-aos][data-aos-delay='1100'],body[data-aos-delay='1100'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1100'].aos-animate,body[data-aos-delay='1100'] [data-aos].aos-animate{transition-delay:1.1s}[data-aos][data-aos][data-aos-delay='1150'],body[data-aos-delay='1150'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1150'].aos-animate,body[data-aos-delay='1150'] [data-aos].aos-animate{transition-delay:1.15s}[data-aos][data-aos][data-aos-delay='1200'],body[data-aos-delay='1200'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1200'].aos-animate,body[data-aos-delay='1200'] [data-aos].aos-animate{transition-delay:1.2s}[data-aos][data-aos][data-aos-delay='1250'],body[data-aos-delay='1250'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1250'].aos-animate,body[data-aos-delay='1250'] [data-aos].aos-animate{transition-delay:1.25s}[data-aos][data-aos][data-aos-delay='1300'],body[data-aos-delay='1300'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1300'].aos-animate,body[data-aos-delay='1300'] [data-aos].aos-animate{transition-delay:1.3s}[data-aos][data-aos][data-aos-delay='1350'],body[data-aos-delay='1350'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1350'].aos-animate,body[data-aos-delay='1350'] [data-aos].aos-animate{transition-delay:1.35s}[data-aos][data-aos][data-aos-delay='1400'],body[data-aos-delay='1400'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1400'].aos-animate,body[data-aos-delay='1400'] [data-aos].aos-animate{transition-delay:1.4s}[data-aos][data-aos][data-aos-delay='1450'],body[data-aos-delay='1450'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1450'].aos-animate,body[data-aos-delay='1450'] [data-aos].aos-animate{transition-delay:1.45s}[data-aos][data-aos][data-aos-delay='1500'],body[data-aos-delay='1500'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1500'].aos-animate,body[data-aos-delay='1500'] [data-aos].aos-animate{transition-delay:1.5s}[data-aos][data-aos][data-aos-delay='1550'],body[data-aos-delay='1550'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1550'].aos-animate,body[data-aos-delay='1550'] [data-aos].aos-animate{transition-delay:1.55s}[data-aos][data-aos][data-aos-delay='1600'],body[data-aos-delay='1600'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1600'].aos-animate,body[data-aos-delay='1600'] [data-aos].aos-animate{transition-delay:1.6s}[data-aos][data-aos][data-aos-delay='1650'],body[data-aos-delay='1650'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1650'].aos-animate,body[data-aos-delay='1650'] [data-aos].aos-animate{transition-delay:1.65s}[data-aos][data-aos][data-aos-delay='1700'],body[data-aos-delay='1700'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1700'].aos-animate,body[data-aos-delay='1700'] [data-aos].aos-animate{transition-delay:1.7s}[data-aos][data-aos][data-aos-delay='1750'],body[data-aos-delay='1750'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1750'].aos-animate,body[data-aos-delay='1750'] [data-aos].aos-animate{transition-delay:1.75s}[data-aos][data-aos][data-aos-delay='1800'],body[data-aos-delay='1800'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1800'].aos-animate,body[data-aos-delay='1800'] [data-aos].aos-animate{transition-delay:1.8s}[data-aos][data-aos][data-aos-delay='1850'],body[data-aos-delay='1850'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1850'].aos-animate,body[data-aos-delay='1850'] [data-aos].aos-animate{transition-delay:1.85s}[data-aos][data-aos][data-aos-delay='1900'],body[data-aos-delay='1900'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1900'].aos-animate,body[data-aos-delay='1900'] [data-aos].aos-animate{transition-delay:1.9s}[data-aos][data-aos][data-aos-delay='1950'],body[data-aos-delay='1950'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='1950'].aos-animate,body[data-aos-delay='1950'] [data-aos].aos-animate{transition-delay:1.95s}[data-aos][data-aos][data-aos-delay='2000'],body[data-aos-delay='2000'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2000'].aos-animate,body[data-aos-delay='2000'] [data-aos].aos-animate{transition-delay:2s}[data-aos][data-aos][data-aos-delay='2050'],body[data-aos-delay='2050'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2050'].aos-animate,body[data-aos-delay='2050'] [data-aos].aos-animate{transition-delay:2.05s}[data-aos][data-aos][data-aos-delay='2100'],body[data-aos-delay='2100'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2100'].aos-animate,body[data-aos-delay='2100'] [data-aos].aos-animate{transition-delay:2.1s}[data-aos][data-aos][data-aos-delay='2150'],body[data-aos-delay='2150'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2150'].aos-animate,body[data-aos-delay='2150'] [data-aos].aos-animate{transition-delay:2.15s}[data-aos][data-aos][data-aos-delay='2200'],body[data-aos-delay='2200'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2200'].aos-animate,body[data-aos-delay='2200'] [data-aos].aos-animate{transition-delay:2.2s}[data-aos][data-aos][data-aos-delay='2250'],body[data-aos-delay='2250'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2250'].aos-animate,body[data-aos-delay='2250'] [data-aos].aos-animate{transition-delay:2.25s}[data-aos][data-aos][data-aos-delay='2300'],body[data-aos-delay='2300'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2300'].aos-animate,body[data-aos-delay='2300'] [data-aos].aos-animate{transition-delay:2.3s}[data-aos][data-aos][data-aos-delay='2350'],body[data-aos-delay='2350'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2350'].aos-animate,body[data-aos-delay='2350'] [data-aos].aos-animate{transition-delay:2.35s}[data-aos][data-aos][data-aos-delay='2400'],body[data-aos-delay='2400'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2400'].aos-animate,body[data-aos-delay='2400'] [data-aos].aos-animate{transition-delay:2.4s}[data-aos][data-aos][data-aos-delay='2450'],body[data-aos-delay='2450'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2450'].aos-animate,body[data-aos-delay='2450'] [data-aos].aos-animate{transition-delay:2.45s}[data-aos][data-aos][data-aos-delay='2500'],body[data-aos-delay='2500'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2500'].aos-animate,body[data-aos-delay='2500'] [data-aos].aos-animate{transition-delay:2.5s}[data-aos][data-aos][data-aos-delay='2550'],body[data-aos-delay='2550'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2550'].aos-animate,body[data-aos-delay='2550'] [data-aos].aos-animate{transition-delay:2.55s}[data-aos][data-aos][data-aos-delay='2600'],body[data-aos-delay='2600'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2600'].aos-animate,body[data-aos-delay='2600'] [data-aos].aos-animate{transition-delay:2.6s}[data-aos][data-aos][data-aos-delay='2650'],body[data-aos-delay='2650'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2650'].aos-animate,body[data-aos-delay='2650'] [data-aos].aos-animate{transition-delay:2.65s}[data-aos][data-aos][data-aos-delay='2700'],body[data-aos-delay='2700'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2700'].aos-animate,body[data-aos-delay='2700'] [data-aos].aos-animate{transition-delay:2.7s}[data-aos][data-aos][data-aos-delay='2750'],body[data-aos-delay='2750'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2750'].aos-animate,body[data-aos-delay='2750'] [data-aos].aos-animate{transition-delay:2.75s}[data-aos][data-aos][data-aos-delay='2800'],body[data-aos-delay='2800'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2800'].aos-animate,body[data-aos-delay='2800'] [data-aos].aos-animate{transition-delay:2.8s}[data-aos][data-aos][data-aos-delay='2850'],body[data-aos-delay='2850'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2850'].aos-animate,body[data-aos-delay='2850'] [data-aos].aos-animate{transition-delay:2.85s}[data-aos][data-aos][data-aos-delay='2900'],body[data-aos-delay='2900'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2900'].aos-animate,body[data-aos-delay='2900'] [data-aos].aos-animate{transition-delay:2.9s}[data-aos][data-aos][data-aos-delay='2950'],body[data-aos-delay='2950'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='2950'].aos-animate,body[data-aos-delay='2950'] [data-aos].aos-animate{transition-delay:2.95s}[data-aos][data-aos][data-aos-delay='3000'],body[data-aos-delay='3000'] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay='3000'].aos-animate,body[data-aos-delay='3000'] [data-aos].aos-animate{transition-delay:3s}[data-aos^=fade][data-aos^=fade]{opacity:0;transition-property:opacity,transform}[data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;transform:translate(0)}[data-aos=fade-up]{transform:translateY(100px)}[data-aos=fade-down]{transform:translateY(-100px)}[data-aos=fade-right]{transform:translate(-100px)}[data-aos=fade-left]{transform:translate(100px)}[data-aos=fade-up-right]{transform:translate(-100px,100px)}[data-aos=fade-up-left]{transform:translate(100px,100px)}[data-aos=fade-down-right]{transform:translate(-100px,-100px)}[data-aos=fade-down-left]{transform:translate(100px,-100px)}[data-aos^=zoom][data-aos^=zoom]{opacity:0;transition-property:opacity,transform}[data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;transform:translate(0) scale(1)}[data-aos=zoom-in]{transform:scale(.6)}[data-aos=zoom-in-up]{transform:translateY(100px) scale(.6)}[data-aos=zoom-in-down]{transform:translateY(-100px) scale(.6)}[data-aos=zoom-in-right]{transform:translate(-100px) scale(.6)}[data-aos=zoom-in-left]{transform:translate(100px) scale(.6)}[data-aos=zoom-out]{transform:scale(1.2)}[data-aos=zoom-out-up]{transform:translateY(100px) scale(1.2)}[data-aos=zoom-out-down]{transform:translateY(-100px) scale(1.2)}[data-aos=zoom-out-right]{transform:translate(-100px) scale(1.2)}[data-aos=zoom-out-left]{transform:translate(100px) scale(1.2)}[data-aos^=slide][data-aos^=slide]{transition-property:transform}[data-aos^=slide][data-aos^=slide].aos-animate{transform:translate(0)}[data-aos=slide-up]{transform:translateY(100%)}[data-aos=slide-down]{transform:translateY(-100%)}[data-aos=slide-right]{transform:translateX(-100%)}[data-aos=slide-left]{transform:translateX(100%)}[data-aos^=flip][data-aos^=flip]{backface-visibility:hidden;transition-property:transform}[data-aos=flip-left]{transform:perspective(2500px) rotateY(-100deg)}[data-aos=flip-left].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-right]{transform:perspective(2500px) rotateY(100deg)}[data-aos=flip-right].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-up]{transform:perspective(2500px) rotateX(-100deg)}[data-aos=flip-up].aos-animate{transform:perspective(2500px) rotateX(0)}[data-aos=flip-down]{transform:perspective(2500px) rotateX(100deg)}[data-aos=flip-down].aos-animate{transform:perspective(2500px) rotateX(0)} +/*# sourceMappingURL=aos.css.map*/ \ No newline at end of file diff --git a/dist/aos.css.map b/dist/aos.css.map new file mode 100644 index 0000000..4596962 --- /dev/null +++ b/dist/aos.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack:///src/sass/aos.scss"],"names":[],"mappings":"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","file":"aos.css","sourcesContent":["body[data-aos-duration='50'] [data-aos],[data-aos][data-aos][data-aos-duration='50']{transition-duration:50ms}body[data-aos-duration='100'] [data-aos],[data-aos][data-aos][data-aos-duration='100']{transition-duration:100ms}body[data-aos-duration='150'] [data-aos],[data-aos][data-aos][data-aos-duration='150']{transition-duration:150ms}body[data-aos-duration='200'] [data-aos],[data-aos][data-aos][data-aos-duration='200']{transition-duration:200ms}body[data-aos-duration='250'] [data-aos],[data-aos][data-aos][data-aos-duration='250']{transition-duration:250ms}body[data-aos-duration='300'] [data-aos],[data-aos][data-aos][data-aos-duration='300']{transition-duration:300ms}body[data-aos-duration='350'] [data-aos],[data-aos][data-aos][data-aos-duration='350']{transition-duration:350ms}body[data-aos-duration='400'] [data-aos],[data-aos][data-aos][data-aos-duration='400']{transition-duration:400ms}body[data-aos-duration='450'] [data-aos],[data-aos][data-aos][data-aos-duration='450']{transition-duration:450ms}body[data-aos-duration='500'] [data-aos],[data-aos][data-aos][data-aos-duration='500']{transition-duration:500ms}body[data-aos-duration='550'] [data-aos],[data-aos][data-aos][data-aos-duration='550']{transition-duration:550ms}body[data-aos-duration='600'] [data-aos],[data-aos][data-aos][data-aos-duration='600']{transition-duration:600ms}body[data-aos-duration='650'] [data-aos],[data-aos][data-aos][data-aos-duration='650']{transition-duration:650ms}body[data-aos-duration='700'] [data-aos],[data-aos][data-aos][data-aos-duration='700']{transition-duration:700ms}body[data-aos-duration='750'] [data-aos],[data-aos][data-aos][data-aos-duration='750']{transition-duration:750ms}body[data-aos-duration='800'] [data-aos],[data-aos][data-aos][data-aos-duration='800']{transition-duration:800ms}body[data-aos-duration='850'] [data-aos],[data-aos][data-aos][data-aos-duration='850']{transition-duration:850ms}body[data-aos-duration='900'] [data-aos],[data-aos][data-aos][data-aos-duration='900']{transition-duration:900ms}body[data-aos-duration='950'] [data-aos],[data-aos][data-aos][data-aos-duration='950']{transition-duration:950ms}body[data-aos-duration='1000'] [data-aos],[data-aos][data-aos][data-aos-duration='1000']{transition-duration:1000ms}body[data-aos-duration='1050'] [data-aos],[data-aos][data-aos][data-aos-duration='1050']{transition-duration:1050ms}body[data-aos-duration='1100'] [data-aos],[data-aos][data-aos][data-aos-duration='1100']{transition-duration:1100ms}body[data-aos-duration='1150'] [data-aos],[data-aos][data-aos][data-aos-duration='1150']{transition-duration:1150ms}body[data-aos-duration='1200'] [data-aos],[data-aos][data-aos][data-aos-duration='1200']{transition-duration:1200ms}body[data-aos-duration='1250'] [data-aos],[data-aos][data-aos][data-aos-duration='1250']{transition-duration:1250ms}body[data-aos-duration='1300'] [data-aos],[data-aos][data-aos][data-aos-duration='1300']{transition-duration:1300ms}body[data-aos-duration='1350'] [data-aos],[data-aos][data-aos][data-aos-duration='1350']{transition-duration:1350ms}body[data-aos-duration='1400'] [data-aos],[data-aos][data-aos][data-aos-duration='1400']{transition-duration:1400ms}body[data-aos-duration='1450'] [data-aos],[data-aos][data-aos][data-aos-duration='1450']{transition-duration:1450ms}body[data-aos-duration='1500'] [data-aos],[data-aos][data-aos][data-aos-duration='1500']{transition-duration:1500ms}body[data-aos-duration='1550'] [data-aos],[data-aos][data-aos][data-aos-duration='1550']{transition-duration:1550ms}body[data-aos-duration='1600'] [data-aos],[data-aos][data-aos][data-aos-duration='1600']{transition-duration:1600ms}body[data-aos-duration='1650'] [data-aos],[data-aos][data-aos][data-aos-duration='1650']{transition-duration:1650ms}body[data-aos-duration='1700'] [data-aos],[data-aos][data-aos][data-aos-duration='1700']{transition-duration:1700ms}body[data-aos-duration='1750'] [data-aos],[data-aos][data-aos][data-aos-duration='1750']{transition-duration:1750ms}body[data-aos-duration='1800'] [data-aos],[data-aos][data-aos][data-aos-duration='1800']{transition-duration:1800ms}body[data-aos-duration='1850'] [data-aos],[data-aos][data-aos][data-aos-duration='1850']{transition-duration:1850ms}body[data-aos-duration='1900'] [data-aos],[data-aos][data-aos][data-aos-duration='1900']{transition-duration:1900ms}body[data-aos-duration='1950'] [data-aos],[data-aos][data-aos][data-aos-duration='1950']{transition-duration:1950ms}body[data-aos-duration='2000'] [data-aos],[data-aos][data-aos][data-aos-duration='2000']{transition-duration:2000ms}body[data-aos-duration='2050'] [data-aos],[data-aos][data-aos][data-aos-duration='2050']{transition-duration:2050ms}body[data-aos-duration='2100'] [data-aos],[data-aos][data-aos][data-aos-duration='2100']{transition-duration:2100ms}body[data-aos-duration='2150'] [data-aos],[data-aos][data-aos][data-aos-duration='2150']{transition-duration:2150ms}body[data-aos-duration='2200'] [data-aos],[data-aos][data-aos][data-aos-duration='2200']{transition-duration:2200ms}body[data-aos-duration='2250'] [data-aos],[data-aos][data-aos][data-aos-duration='2250']{transition-duration:2250ms}body[data-aos-duration='2300'] [data-aos],[data-aos][data-aos][data-aos-duration='2300']{transition-duration:2300ms}body[data-aos-duration='2350'] [data-aos],[data-aos][data-aos][data-aos-duration='2350']{transition-duration:2350ms}body[data-aos-duration='2400'] [data-aos],[data-aos][data-aos][data-aos-duration='2400']{transition-duration:2400ms}body[data-aos-duration='2450'] [data-aos],[data-aos][data-aos][data-aos-duration='2450']{transition-duration:2450ms}body[data-aos-duration='2500'] [data-aos],[data-aos][data-aos][data-aos-duration='2500']{transition-duration:2500ms}body[data-aos-duration='2550'] [data-aos],[data-aos][data-aos][data-aos-duration='2550']{transition-duration:2550ms}body[data-aos-duration='2600'] [data-aos],[data-aos][data-aos][data-aos-duration='2600']{transition-duration:2600ms}body[data-aos-duration='2650'] [data-aos],[data-aos][data-aos][data-aos-duration='2650']{transition-duration:2650ms}body[data-aos-duration='2700'] [data-aos],[data-aos][data-aos][data-aos-duration='2700']{transition-duration:2700ms}body[data-aos-duration='2750'] [data-aos],[data-aos][data-aos][data-aos-duration='2750']{transition-duration:2750ms}body[data-aos-duration='2800'] [data-aos],[data-aos][data-aos][data-aos-duration='2800']{transition-duration:2800ms}body[data-aos-duration='2850'] [data-aos],[data-aos][data-aos][data-aos-duration='2850']{transition-duration:2850ms}body[data-aos-duration='2900'] [data-aos],[data-aos][data-aos][data-aos-duration='2900']{transition-duration:2900ms}body[data-aos-duration='2950'] [data-aos],[data-aos][data-aos][data-aos-duration='2950']{transition-duration:2950ms}body[data-aos-duration='3000'] [data-aos],[data-aos][data-aos][data-aos-duration='3000']{transition-duration:3000ms}body[data-aos-delay='50'] [data-aos],[data-aos][data-aos][data-aos-delay='50']{transition-delay:0}body[data-aos-delay='50'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='50'].aos-animate{transition-delay:50ms}body[data-aos-delay='100'] [data-aos],[data-aos][data-aos][data-aos-delay='100']{transition-delay:0}body[data-aos-delay='100'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='100'].aos-animate{transition-delay:100ms}body[data-aos-delay='150'] [data-aos],[data-aos][data-aos][data-aos-delay='150']{transition-delay:0}body[data-aos-delay='150'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='150'].aos-animate{transition-delay:150ms}body[data-aos-delay='200'] [data-aos],[data-aos][data-aos][data-aos-delay='200']{transition-delay:0}body[data-aos-delay='200'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='200'].aos-animate{transition-delay:200ms}body[data-aos-delay='250'] [data-aos],[data-aos][data-aos][data-aos-delay='250']{transition-delay:0}body[data-aos-delay='250'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='250'].aos-animate{transition-delay:250ms}body[data-aos-delay='300'] [data-aos],[data-aos][data-aos][data-aos-delay='300']{transition-delay:0}body[data-aos-delay='300'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='300'].aos-animate{transition-delay:300ms}body[data-aos-delay='350'] [data-aos],[data-aos][data-aos][data-aos-delay='350']{transition-delay:0}body[data-aos-delay='350'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='350'].aos-animate{transition-delay:350ms}body[data-aos-delay='400'] [data-aos],[data-aos][data-aos][data-aos-delay='400']{transition-delay:0}body[data-aos-delay='400'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='400'].aos-animate{transition-delay:400ms}body[data-aos-delay='450'] [data-aos],[data-aos][data-aos][data-aos-delay='450']{transition-delay:0}body[data-aos-delay='450'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='450'].aos-animate{transition-delay:450ms}body[data-aos-delay='500'] [data-aos],[data-aos][data-aos][data-aos-delay='500']{transition-delay:0}body[data-aos-delay='500'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='500'].aos-animate{transition-delay:500ms}body[data-aos-delay='550'] [data-aos],[data-aos][data-aos][data-aos-delay='550']{transition-delay:0}body[data-aos-delay='550'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='550'].aos-animate{transition-delay:550ms}body[data-aos-delay='600'] [data-aos],[data-aos][data-aos][data-aos-delay='600']{transition-delay:0}body[data-aos-delay='600'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='600'].aos-animate{transition-delay:600ms}body[data-aos-delay='650'] [data-aos],[data-aos][data-aos][data-aos-delay='650']{transition-delay:0}body[data-aos-delay='650'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='650'].aos-animate{transition-delay:650ms}body[data-aos-delay='700'] [data-aos],[data-aos][data-aos][data-aos-delay='700']{transition-delay:0}body[data-aos-delay='700'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='700'].aos-animate{transition-delay:700ms}body[data-aos-delay='750'] [data-aos],[data-aos][data-aos][data-aos-delay='750']{transition-delay:0}body[data-aos-delay='750'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='750'].aos-animate{transition-delay:750ms}body[data-aos-delay='800'] [data-aos],[data-aos][data-aos][data-aos-delay='800']{transition-delay:0}body[data-aos-delay='800'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='800'].aos-animate{transition-delay:800ms}body[data-aos-delay='850'] [data-aos],[data-aos][data-aos][data-aos-delay='850']{transition-delay:0}body[data-aos-delay='850'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='850'].aos-animate{transition-delay:850ms}body[data-aos-delay='900'] [data-aos],[data-aos][data-aos][data-aos-delay='900']{transition-delay:0}body[data-aos-delay='900'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='900'].aos-animate{transition-delay:900ms}body[data-aos-delay='950'] [data-aos],[data-aos][data-aos][data-aos-delay='950']{transition-delay:0}body[data-aos-delay='950'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='950'].aos-animate{transition-delay:950ms}body[data-aos-delay='1000'] [data-aos],[data-aos][data-aos][data-aos-delay='1000']{transition-delay:0}body[data-aos-delay='1000'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1000'].aos-animate{transition-delay:1000ms}body[data-aos-delay='1050'] [data-aos],[data-aos][data-aos][data-aos-delay='1050']{transition-delay:0}body[data-aos-delay='1050'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1050'].aos-animate{transition-delay:1050ms}body[data-aos-delay='1100'] [data-aos],[data-aos][data-aos][data-aos-delay='1100']{transition-delay:0}body[data-aos-delay='1100'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1100'].aos-animate{transition-delay:1100ms}body[data-aos-delay='1150'] [data-aos],[data-aos][data-aos][data-aos-delay='1150']{transition-delay:0}body[data-aos-delay='1150'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1150'].aos-animate{transition-delay:1150ms}body[data-aos-delay='1200'] [data-aos],[data-aos][data-aos][data-aos-delay='1200']{transition-delay:0}body[data-aos-delay='1200'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1200'].aos-animate{transition-delay:1200ms}body[data-aos-delay='1250'] [data-aos],[data-aos][data-aos][data-aos-delay='1250']{transition-delay:0}body[data-aos-delay='1250'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1250'].aos-animate{transition-delay:1250ms}body[data-aos-delay='1300'] [data-aos],[data-aos][data-aos][data-aos-delay='1300']{transition-delay:0}body[data-aos-delay='1300'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1300'].aos-animate{transition-delay:1300ms}body[data-aos-delay='1350'] [data-aos],[data-aos][data-aos][data-aos-delay='1350']{transition-delay:0}body[data-aos-delay='1350'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1350'].aos-animate{transition-delay:1350ms}body[data-aos-delay='1400'] [data-aos],[data-aos][data-aos][data-aos-delay='1400']{transition-delay:0}body[data-aos-delay='1400'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1400'].aos-animate{transition-delay:1400ms}body[data-aos-delay='1450'] [data-aos],[data-aos][data-aos][data-aos-delay='1450']{transition-delay:0}body[data-aos-delay='1450'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1450'].aos-animate{transition-delay:1450ms}body[data-aos-delay='1500'] [data-aos],[data-aos][data-aos][data-aos-delay='1500']{transition-delay:0}body[data-aos-delay='1500'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1500'].aos-animate{transition-delay:1500ms}body[data-aos-delay='1550'] [data-aos],[data-aos][data-aos][data-aos-delay='1550']{transition-delay:0}body[data-aos-delay='1550'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1550'].aos-animate{transition-delay:1550ms}body[data-aos-delay='1600'] [data-aos],[data-aos][data-aos][data-aos-delay='1600']{transition-delay:0}body[data-aos-delay='1600'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1600'].aos-animate{transition-delay:1600ms}body[data-aos-delay='1650'] [data-aos],[data-aos][data-aos][data-aos-delay='1650']{transition-delay:0}body[data-aos-delay='1650'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1650'].aos-animate{transition-delay:1650ms}body[data-aos-delay='1700'] [data-aos],[data-aos][data-aos][data-aos-delay='1700']{transition-delay:0}body[data-aos-delay='1700'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1700'].aos-animate{transition-delay:1700ms}body[data-aos-delay='1750'] [data-aos],[data-aos][data-aos][data-aos-delay='1750']{transition-delay:0}body[data-aos-delay='1750'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1750'].aos-animate{transition-delay:1750ms}body[data-aos-delay='1800'] [data-aos],[data-aos][data-aos][data-aos-delay='1800']{transition-delay:0}body[data-aos-delay='1800'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1800'].aos-animate{transition-delay:1800ms}body[data-aos-delay='1850'] [data-aos],[data-aos][data-aos][data-aos-delay='1850']{transition-delay:0}body[data-aos-delay='1850'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1850'].aos-animate{transition-delay:1850ms}body[data-aos-delay='1900'] [data-aos],[data-aos][data-aos][data-aos-delay='1900']{transition-delay:0}body[data-aos-delay='1900'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1900'].aos-animate{transition-delay:1900ms}body[data-aos-delay='1950'] [data-aos],[data-aos][data-aos][data-aos-delay='1950']{transition-delay:0}body[data-aos-delay='1950'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='1950'].aos-animate{transition-delay:1950ms}body[data-aos-delay='2000'] [data-aos],[data-aos][data-aos][data-aos-delay='2000']{transition-delay:0}body[data-aos-delay='2000'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2000'].aos-animate{transition-delay:2000ms}body[data-aos-delay='2050'] [data-aos],[data-aos][data-aos][data-aos-delay='2050']{transition-delay:0}body[data-aos-delay='2050'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2050'].aos-animate{transition-delay:2050ms}body[data-aos-delay='2100'] [data-aos],[data-aos][data-aos][data-aos-delay='2100']{transition-delay:0}body[data-aos-delay='2100'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2100'].aos-animate{transition-delay:2100ms}body[data-aos-delay='2150'] [data-aos],[data-aos][data-aos][data-aos-delay='2150']{transition-delay:0}body[data-aos-delay='2150'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2150'].aos-animate{transition-delay:2150ms}body[data-aos-delay='2200'] [data-aos],[data-aos][data-aos][data-aos-delay='2200']{transition-delay:0}body[data-aos-delay='2200'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2200'].aos-animate{transition-delay:2200ms}body[data-aos-delay='2250'] [data-aos],[data-aos][data-aos][data-aos-delay='2250']{transition-delay:0}body[data-aos-delay='2250'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2250'].aos-animate{transition-delay:2250ms}body[data-aos-delay='2300'] [data-aos],[data-aos][data-aos][data-aos-delay='2300']{transition-delay:0}body[data-aos-delay='2300'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2300'].aos-animate{transition-delay:2300ms}body[data-aos-delay='2350'] [data-aos],[data-aos][data-aos][data-aos-delay='2350']{transition-delay:0}body[data-aos-delay='2350'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2350'].aos-animate{transition-delay:2350ms}body[data-aos-delay='2400'] [data-aos],[data-aos][data-aos][data-aos-delay='2400']{transition-delay:0}body[data-aos-delay='2400'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2400'].aos-animate{transition-delay:2400ms}body[data-aos-delay='2450'] [data-aos],[data-aos][data-aos][data-aos-delay='2450']{transition-delay:0}body[data-aos-delay='2450'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2450'].aos-animate{transition-delay:2450ms}body[data-aos-delay='2500'] [data-aos],[data-aos][data-aos][data-aos-delay='2500']{transition-delay:0}body[data-aos-delay='2500'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2500'].aos-animate{transition-delay:2500ms}body[data-aos-delay='2550'] [data-aos],[data-aos][data-aos][data-aos-delay='2550']{transition-delay:0}body[data-aos-delay='2550'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2550'].aos-animate{transition-delay:2550ms}body[data-aos-delay='2600'] [data-aos],[data-aos][data-aos][data-aos-delay='2600']{transition-delay:0}body[data-aos-delay='2600'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2600'].aos-animate{transition-delay:2600ms}body[data-aos-delay='2650'] [data-aos],[data-aos][data-aos][data-aos-delay='2650']{transition-delay:0}body[data-aos-delay='2650'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2650'].aos-animate{transition-delay:2650ms}body[data-aos-delay='2700'] [data-aos],[data-aos][data-aos][data-aos-delay='2700']{transition-delay:0}body[data-aos-delay='2700'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2700'].aos-animate{transition-delay:2700ms}body[data-aos-delay='2750'] [data-aos],[data-aos][data-aos][data-aos-delay='2750']{transition-delay:0}body[data-aos-delay='2750'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2750'].aos-animate{transition-delay:2750ms}body[data-aos-delay='2800'] [data-aos],[data-aos][data-aos][data-aos-delay='2800']{transition-delay:0}body[data-aos-delay='2800'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2800'].aos-animate{transition-delay:2800ms}body[data-aos-delay='2850'] [data-aos],[data-aos][data-aos][data-aos-delay='2850']{transition-delay:0}body[data-aos-delay='2850'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2850'].aos-animate{transition-delay:2850ms}body[data-aos-delay='2900'] [data-aos],[data-aos][data-aos][data-aos-delay='2900']{transition-delay:0}body[data-aos-delay='2900'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2900'].aos-animate{transition-delay:2900ms}body[data-aos-delay='2950'] [data-aos],[data-aos][data-aos][data-aos-delay='2950']{transition-delay:0}body[data-aos-delay='2950'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='2950'].aos-animate{transition-delay:2950ms}body[data-aos-delay='3000'] [data-aos],[data-aos][data-aos][data-aos-delay='3000']{transition-delay:0}body[data-aos-delay='3000'] [data-aos].aos-animate,[data-aos][data-aos][data-aos-delay='3000'].aos-animate{transition-delay:3000ms}[data-aos^='fade'][data-aos^='fade']{opacity:0;transition-property:opacity, transform}[data-aos^='fade'][data-aos^='fade'].aos-animate{opacity:1;transform:translate(0, 0)}[data-aos='fade-up']{transform:translate(0, 100px)}[data-aos='fade-down']{transform:translate(0, -100px)}[data-aos='fade-right']{transform:translate(-100px, 0)}[data-aos='fade-left']{transform:translate(100px, 0)}[data-aos='fade-up-right']{transform:translate(-100px, 100px)}[data-aos='fade-up-left']{transform:translate(100px, 100px)}[data-aos='fade-down-right']{transform:translate(-100px, -100px)}[data-aos='fade-down-left']{transform:translate(100px, -100px)}[data-aos^='zoom'][data-aos^='zoom']{opacity:0;transition-property:opacity, transform}[data-aos^='zoom'][data-aos^='zoom'].aos-animate{opacity:1;transform:translate(0, 0) scale(1)}[data-aos='zoom-in']{transform:scale(0.6)}[data-aos='zoom-in-up']{transform:translate(0, 100px) scale(0.6)}[data-aos='zoom-in-down']{transform:translate(0, -100px) scale(0.6)}[data-aos='zoom-in-right']{transform:translate(-100px, 0) scale(0.6)}[data-aos='zoom-in-left']{transform:translate(100px, 0) scale(0.6)}[data-aos='zoom-out']{transform:scale(1.2)}[data-aos='zoom-out-up']{transform:translate(0, 100px) scale(1.2)}[data-aos='zoom-out-down']{transform:translate(0, -100px) scale(1.2)}[data-aos='zoom-out-right']{transform:translate(-100px, 0) scale(1.2)}[data-aos='zoom-out-left']{transform:translate(100px, 0) scale(1.2)}[data-aos^='slide'][data-aos^='slide']{transition-property:transform}[data-aos^='slide'][data-aos^='slide'].aos-animate{transform:translate(0, 0)}[data-aos='slide-up']{transform:translateY(100%)}[data-aos='slide-down']{transform:translateY(-100%)}[data-aos='slide-right']{transform:translateX(-100%)}[data-aos='slide-left']{transform:translateX(100%)}[data-aos^='flip'][data-aos^='flip']{backface-visibility:hidden;transition-property:transform}[data-aos='flip-left']{transform:perspective(2500px) rotateY(-100deg)}[data-aos='flip-left'].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos='flip-right']{transform:perspective(2500px) rotateY(100deg)}[data-aos='flip-right'].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos='flip-up']{transform:perspective(2500px) rotateX(-100deg)}[data-aos='flip-up'].aos-animate{transform:perspective(2500px) rotateX(0)}[data-aos='flip-down']{transform:perspective(2500px) rotateX(100deg)}[data-aos='flip-down'].aos-animate{transform:perspective(2500px) rotateX(0)}\n\n\n\n/** WEBPACK FOOTER **\n ** webpack:///src/sass/aos.scss\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/aos.js b/dist/aos.js index 6947c32..14162da 100644 --- a/dist/aos.js +++ b/dist/aos.js @@ -1,2 +1,2 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.AOS=e()}}(function(){return function e(t,n,o){function r(i,c){if(!n[i]){if(!t[i]){var s="function"==typeof require&&require;if(!c&&s)return s(i,!0);if(a)return a(i,!0);var u=new Error("Cannot find module '"+i+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[i]={exports:{}};t[i][0].call(l.exports,function(e){var n=t[i][1][e];return r(n?n:e)},l,l.exports,e,t,n,o)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i2?n[i-2]:void 0,s=i>2?n[2]:void 0,u=i>1?n[i-1]:void 0;for("function"==typeof c?(c=o(c,u,5),i-=2):(c="function"==typeof u?u:void 0,i-=c?1:0),s&&r(n[0],n[1],s)&&(c=3>i?void 0:c,i=1);++a-1&&e%1==0&&t>e}function a(e,t,n){if(!c(n))return!1;var a=typeof t;if("number"==a?o(n)&&r(t,n.length):"string"==a&&t in n){var i=n[t];return e===e?e===i:i!==i}return!1}function i(e){return"number"==typeof e&&e>-1&&e%1==0&&u>=e}function c(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var s=/^\d+$/,u=9007199254740991,l=n("length");t.exports=a},{}],7:[function(e,t){function n(e,t){if("function"!=typeof e)throw new TypeError(o);return t=r(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,o=-1,a=r(n.length-t,0),i=Array(a);++o-1&&e%1==0&&t>e}function a(e){return"number"==typeof e&&e>-1&&e%1==0&&v>=e}function i(e){for(var t=s(e),n=t.length,o=n&&e.length,i=!!o&&a(o)&&(f(e)||l(e)),c=-1,u=[];++c0;++o-1&&e%1==0&&l>=e}function i(e){return n(e)&&r(e)&&s.call(e,"callee")&&!u.call(e,"callee")}var c=Object.prototype,s=c.hasOwnProperty,u=c.propertyIsEnumerable,l=9007199254740991,f=o("length");t.exports=i},{}],11:[function(e,t){function n(e){return!!e&&"object"==typeof e}function o(e,t){var n=null==e?void 0:e[t];return c(n)?n:void 0}function r(e){return"number"==typeof e&&e>-1&&e%1==0&&h>=e}function a(e){return i(e)&&m.call(e)==u}function i(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function c(e){return null==e?!1:a(e)?b.test(d.call(e)):n(e)&&l.test(e)}var s="[object Array]",u="[object Function]",l=/^\[object .+?Constructor\]$/,f=Object.prototype,d=Function.prototype.toString,p=f.hasOwnProperty,m=f.toString,b=RegExp("^"+d.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),v=o(Array,"isArray"),h=9007199254740991,g=v||function(e){return n(e)&&r(e.length)&&m.call(e)==s};t.exports=g},{}],12:[function(e,t){function n(e,t,n){function r(){h&&clearTimeout(h),p&&clearTimeout(p),y=0,p=h=g=void 0}function c(t,n){n&&clearTimeout(n),p=h=g=void 0,t&&(y=s(),m=e.apply(v,d),h||p||(d=v=void 0))}function u(){var e=t-(s()-b);0>=e||e>t?c(g,p):h=setTimeout(u,e)}function l(){c(k,h)}function f(){if(d=arguments,b=s(),v=this,g=k&&(h||!x),w===!1)var n=x&&!h;else{p||x||(y=b);var o=w-(b-y),r=0>=o||o>w;r?(p&&(p=clearTimeout(p)),y=b,m=e.apply(v,d)):p||(p=setTimeout(l,o))}return r&&h?h=clearTimeout(h):h||t===w||(h=setTimeout(u,t)),n&&(r=!0,m=e.apply(v,d)),!r||h||p||(d=v=void 0),m}var d,p,m,b,v,h,g,y=0,w=!1,k=!0;if("function"!=typeof e)throw new TypeError(a);if(t=0>t?0:+t||0,n===!0){var x=!0;k=!1}else o(n)&&(x=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,t),k="trailing"in n?!!n.trailing:k);return f.cancel=r,f}function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var r=e("lodash._getnative"),a="Expected a function",i=Math.max,c=r(Date,"now"),s=c||function(){return(new Date).getTime()};t.exports=n},{"lodash._getnative":13}],13:[function(e,t,n){arguments[4][9][0].apply(n,arguments)},{dup:9}],14:[function(e,t){function n(e,t,n){var i=!0,c=!0;if("function"!=typeof e)throw new TypeError(a);return n===!1?i=!1:o(n)&&(i="leading"in n?!!n.leading:i,c="trailing"in n?!!n.trailing:c),r(e,t,{leading:i,maxWait:+t,trailing:c})}function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var r=e("lodash.debounce"),a="Expected a function";t.exports=n},{"lodash.debounce":12}],15:[function(e,t){var n=e("lodash.throttle"),o=e("lodash.debounce"),r=e("lodash.assign"),a=e("./libs/observer"),i=(e("./libs/classList-shim"),e("./helpers/detector")),c=e("./helpers/handleScroll"),s=e("./helpers/prepare"),u=e("./helpers/elements");!function(e,l){var f=[],d=!1,p={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,startEvent:"DOMContentLoaded"},m=function(e){return e&&e===!0&&(d=!0),d?(f=s(f,p),c(f,p.once),f):void 0},b=function(t){return p=r(p,t),f=u(),p.disable&&(p.disable===!0||"mobile"===p.disable&&i.mobile()||"phone"===p.disable&&i.phone()||"tablet"===p.disable&&i.tablet()||"function"==typeof p.disable&&p.disable()===!0)?([].forEach.call(f,function(e){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")}),!1):(l.querySelector("body").setAttribute("data-aos-easing",p.easing),l.querySelector("body").setAttribute("data-aos-duration",p.duration),l.querySelector("body").setAttribute("data-aos-delay",p.delay),"DOMContentLoaded"===p.startEvent&&["complete","interactive"].indexOf(l.readyState)>-1?m(!0):l.addEventListener(p.startEvent,function(){m(!0)}),e.addEventListener("resize",o(m,50,!0)),e.addEventListener("orientationchange",o(m,50,!0)),e.addEventListener("scroll",n(function(){c(f,p.once)},99)),l.addEventListener("DOMNodeRemoved",function(e){var t=e.target;t&&1===t.nodeType&&t.hasAttribute&&e.target.hasAttribute("data-aos")&&o(m,50,!0)}),a("[data-aos]",m),f)},v={init:b,refresh:m};t.exports=v}(window,document)},{"./helpers/detector":17,"./helpers/elements":18,"./helpers/handleScroll":19,"./helpers/prepare":20,"./libs/classList-shim":21,"./libs/observer":22,"lodash.assign":1,"lodash.debounce":12,"lodash.throttle":14}],16:[function(e,t){var n=e("./../libs/offset"),o=function(e,t){var o=0,r=0,a=window.innerHeight,i={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(i.offset&&!isNaN(i.offset)&&(r=parseInt(i.offset)),i.anchor&&document.querySelectorAll(i.anchor)&&(e=document.querySelectorAll(i.anchor)[0]),o=n(e).top,i.anchorPlacement){case"top-bottom":break;case"center-bottom":o+=e.offsetHeight/2;break;case"bottom-bottom":o+=e.offsetHeight;break;case"top-center":o+=a/2;break;case"bottom-center":o+=a/2+e.offsetHeight;break;case"center-center":o+=a/2+e.offsetHeight/2;break;case"top-top":o+=a;break;case"bottom-top":o+=e.offsetHeight+a;break;case"center-top":o+=e.offsetHeight/2+a}return i.anchorPlacement||i.offset||isNaN(t)||(r=t),o+r};t.exports=o},{"./../libs/offset":23}],17:[function(e,t){var n={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 _detect.mobile()&&!_detect.phone()}};t.exports=n},{}],18:[function(e,t){var n=function(e){var e=e||document.querySelectorAll("[data-aos]"),t=[];return[].forEach.call(e,function(e){t.push({node:e})}),t};t.exports=n},{}],19:[function(e,t){var n=function(e,t,n){var o=e.node.getAttribute("data-aos-once");t>e.position?e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")},o=function(e,t){var o=window.pageYOffset,r=window.innerHeight;[].forEach.call(e,function(e){n(e,r+o,t)})};t.exports=o},{}],20:[function(e,t){var n=e("./calculateOffset"),o=function(e,t){return[].forEach.call(e,function(e){e.node.classList.add("aos-init"),e.position=n(e.node,t.offset)}),e};t.exports=o},{"./calculateOffset":16}],21:[function(){"classList"in document.documentElement||!Object.defineProperty||"undefined"==typeof HTMLElement||Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){function e(e){return function(n){var o=t.className.split(/\s+/),r=o.indexOf(n);e(o,r,n),t.className=o.join(" ")}}var t=this,n={add:e(function(e,t,n){~t||e.push(n)}),remove:e(function(e,t){~t&&e.splice(t,1)}),toggle:e(function(e,t,n){~t?e.splice(t,1):e.push(n)}),contains:function(e){return!!~t.className.split(/\s+/).indexOf(e)},item:function(e){return t.className.split(/\s+/)[e]||null}};return Object.defineProperty(n,"length",{get:function(){return t.className.split(/\s+/).length}}),n}})},{}],22:[function(e,t){function n(e,t){a.push({selector:e,fn:t}),!r&&c&&(r=new c(o),r.observe(i.documentElement,{childList:!0,subtree:!0,removedNodes:!0})),o()}function o(){for(var e,t,n=0,o=a.length;o>n;n++){e=a[n],t=i.querySelectorAll(e.selector);for(var r,c=0,s=t.length;s>c;c++)r=t[c],r.ready||(r.ready=!0,e.fn.call(r,r))}}var r,a=[],i=window.document,c=window.MutationObserver||window.WebKitMutationObserver;t.exports=n},{}],23:[function(e,t){var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.exports=n},{}]},{},[15])(15)}); -//# sourceMappingURL=aos.js.map +!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="",t(0)}([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(1),a=(n(i),o(5)),r=n(a),c=o(6),u=n(c),s=o(7),d=n(s),l=o(8),f=n(l),m=o(9),p=n(m),b=o(10),v=n(b),g=o(13),y=n(g),w=[],h=!1,k={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,startEvent:"DOMContentLoaded"},x=function(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];return e&&(h=!0),h?(w=(0,v["default"])(w,k),(0,p["default"])(w,k.once),w):void 0},j=function(e){return k=Object.assign(k,e),w=(0,y["default"])(),k.disable&&(k.disable===!0||"mobile"===k.disable&&f["default"].mobile()||"phone"===k.disable&&f["default"].phone()||"tablet"===k.disable&&f["default"].tablet()||"function"==typeof k.disable&&k.disable()===!0)?(w.forEach(function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")}),!1):(document.querySelector("body").setAttribute("data-aos-easing",k.easing),document.querySelector("body").setAttribute("data-aos-duration",k.duration),document.querySelector("body").setAttribute("data-aos-delay",k.delay),"DOMContentLoaded"===k.startEvent&&["complete","interactive"].includes(document.readyState)?x(!0):document.addEventListener(k.startEvent,function(){x(!0)}),window.addEventListener("resize",(0,u["default"])(x,50,!0)),window.addEventListener("orientationchange",(0,u["default"])(x,50,!0)),window.addEventListener("scroll",(0,r["default"])(function(){(0,p["default"])(w,k.once)},99)),document.addEventListener("DOMNodeRemoved",function(e){var t=e.target;t&&1===t.nodeType&&t.hasAttribute&&t.hasAttribute("data-aos")&&(0,u["default"])(x,50,!0)}),(0,d["default"])("[data-aos]",x),w)};t["default"]={init:j,refresh:x}},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,_=t,y=e.apply(n,o)}function a(e){return _=e,w=setTimeout(d,t),O?n(e):y}function r(e){var o=e-h,n=e-_,i=t-o;return S?x(i,g-n):i}function u(e){var o=e-h,n=e-_;return!h||o>=t||0>o||S&&n>=g}function d(){var e=j();return u(e)?l(e):void(w=setTimeout(d,r(e)))}function l(e){return clearTimeout(w),w=void 0,z&&b?n(e):(b=v=void 0,y)}function f(){void 0!==w&&clearTimeout(w),h=_=0,b=v=w=void 0}function m(){return void 0===w?y:l(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(S)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,_=0,O=!1,S=!1,z=!0;if("function"!=typeof e)throw new TypeError(s);return t=c(t)||0,i(o)&&(O=!!o.leading,S="maxWait"in o,g=S?k(c(o.maxWait)||0,t):g,z="trailing"in o?!!o.trailing:z),p.cancel=f,p.flush=m,p}function n(e){var t=i(e)?h.call(e):"";return t==l||t==f}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,l="[object Function]",f="[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.setState=o,t.handleScroll=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(){var e=document.querySelectorAll("[data-aos]");return e.map(function(e){return{node:e}})};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 b33c83a..8df15fa 100644 --- a/dist/aos.js.map +++ b/dist/aos.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/lodash.assign/index.js","aos.js","node_modules/lodash.assign/node_modules/lodash._baseassign/index.js","node_modules/lodash.assign/node_modules/lodash._baseassign/node_modules/lodash._basecopy/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._bindcallback/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._isiterateecall/index.js","node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js","node_modules/lodash.assign/node_modules/lodash.keys/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash._getnative/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash.isarguments/index.js","node_modules/lodash.assign/node_modules/lodash.keys/node_modules/lodash.isarray/index.js","node_modules/lodash.debounce/index.js","node_modules/lodash.throttle/index.js","src/js/aos.js","src/js/helpers/calculateOffset.js","src/js/helpers/detector.js","src/js/helpers/elements.js","src/js/helpers/handleScroll.js","src/js/helpers/prepare.js","src/js/libs/classList-shim.js","src/js/libs/observer.js","src/js/libs/offset.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","AOS","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"assignWith","object","source","customizer","index","props","keys","key","value","result","undefined","baseAssign","createAssigner","assign","lodash._baseassign","lodash._createassigner","lodash.keys",2,"baseCopy","lodash._basecopy",3,4,"assigner","restParam","sources","guard","thisArg","bindCallback","isIterateeCall","lodash._bindcallback","lodash._isiterateecall","lodash.restparam",5,"func","argCount","identity","collection","accumulator","other","apply","arguments",6,"baseProperty","isArrayLike","isLength","getLength","isIndex","reIsUint","test","MAX_SAFE_INTEGER","isObject","type",7,"start","TypeError","FUNC_ERROR_TEXT","nativeMax","args","rest","Array","otherArgs","Math","max",8,"shimKeys","keysIn","propsLength","allowIndexes","isArray","isArguments","hasOwnProperty","push","Object","Ctor","constructor","isProto","prototype","skipIndexes","getNative","objectProto","nativeKeys","lodash._getnative","lodash.isarguments","lodash.isarray",9,"isObjectLike","isNative","isFunction","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","Function","toString","RegExp","replace",10,"propertyIsEnumerable",11,"arrayTag","nativeIsArray",12,"debounce","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","id","now","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","nativeNow","Date","getTime",13,"dup",14,"throttle","lodash.debounce",15,"_throttle","_debounce","_extend","observe","detect","handleScroll","prepare","elements","document","$aosElements","initialized","offset","delay","easing","duration","disable","once","startEvent","refresh","initialize","init","settings","mobile","phone","tablet","forEach","el","node","removeAttribute","querySelector","setAttribute","indexOf","readyState","addEventListener","event","target","nodeType","hasAttribute","./helpers/detector","./helpers/elements","./helpers/handleScroll","./helpers/prepare","./libs/classList-shim","./libs/observer","lodash.assign","lodash.throttle",16,"getOffset","calculateOffset","optionalOffset","elementOffsetTop","additionalOffset","windowHeight","innerHeight","attrs","getAttribute","anchor","anchorPlacement","isNaN","parseInt","querySelectorAll","top","offsetHeight","./../libs/offset",17,"detector","check","substr","navigator","userAgent","vendor","opera","_detect",18,"createArrayWithElements","finalElements",19,"setState","attrOnce","position","classList","add","remove","$elements","scrollTop","pageYOffset",20,"./calculateOffset",21,"documentElement","defineProperty","HTMLElement","get","update","fn","classes","className","split","join","ret","splice","toggle","contains","item",22,"ready","selector","listeners","observer","MutationObserver","doc","childList","subtree","removedNodes","listener","len","element","j","jLen","WebKitMutationObserver",23,"_x","_y","offsetLeft","offsetTop","tagName","scrollLeft","offsetParent","left"],"mappings":"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","file":"aos.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o\n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseAssign = require('lodash._baseassign'),\n createAssigner = require('lodash._createassigner'),\n keys = require('lodash.keys');\n\n/**\n * A specialized version of `_.assign` for customizing assigned values without\n * support for argument juggling, multiple sources, and `this` binding `customizer`\n * functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n */\nfunction assignWith(object, source, customizer) {\n var index = -1,\n props = keys(source),\n length = props.length;\n\n while (++index < length) {\n var key = props[index],\n value = object[key],\n result = customizer(value, source[key], key, object, source);\n\n if ((result === result ? (result !== value) : (value === value)) ||\n (value === undefined && !(key in object))) {\n object[key] = result;\n }\n }\n return object;\n}\n\n/**\n * Assigns own enumerable properties of source object(s) to the destination\n * object. Subsequent sources overwrite property assignments of previous sources.\n * If `customizer` is provided it is invoked to produce the assigned values.\n * The `customizer` is bound to `thisArg` and invoked with five arguments:\n * (objectValue, sourceValue, key, object, source).\n *\n * **Note:** This method mutates `object` and is based on\n * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).\n *\n * @static\n * @memberOf _\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });\n * // => { 'user': 'fred', 'age': 40 }\n *\n * // using a customizer callback\n * var defaults = _.partialRight(_.assign, function(value, other) {\n * return _.isUndefined(value) ? other : value;\n * });\n *\n * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });\n * // => { 'user': 'barney', 'age': 36 }\n */\nvar assign = createAssigner(function(object, source, customizer) {\n return customizer\n ? assignWith(object, source, customizer)\n : baseAssign(object, source);\n});\n\nmodule.exports = assign;\n",null,"/**\n * lodash 3.2.0 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCopy = require('lodash._basecopy'),\n keys = require('lodash.keys');\n\n/**\n * The base implementation of `_.assign` without support for argument juggling,\n * multiple sources, and `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return source == null\n ? object\n : baseCopy(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","/**\n * lodash 3.0.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","/**\n * lodash 3.1.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar bindCallback = require('lodash._bindcallback'),\n isIterateeCall = require('lodash._isiterateecall'),\n restParam = require('lodash.restparam');\n\n/**\n * Creates a function that assigns properties of source object(s) to a given\n * destination object.\n *\n * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * lodash 3.0.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\n/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = bindCallback;\n","/**\n * lodash 3.0.9 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * lodash 3.6.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","/**\n * lodash 3.1.2 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = require('lodash._getnative'),\n isArguments = require('lodash.isarguments'),\n isArray = require('lodash.isarray');\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object != 'function' && isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n isProto = typeof Ctor == 'function' && Ctor.prototype === object,\n result = Array(length),\n skipIndexes = length > 0;\n\n while (++index < length) {\n result[index] = (index + '');\n }\n for (var key in object) {\n if (!(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = keys;\n","/**\n * lodash 3.9.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, 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 older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && reIsHostCtor.test(value);\n}\n\nmodule.exports = getNative;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, 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 older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && reIsHostCtor.test(value);\n}\n\nmodule.exports = isArray;\n","/**\n * lodash 3.1.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar getNative = require('lodash._getnative');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeNow = getNative(Date, 'now');\n\n/**\n * Gets the number of milliseconds that have elapsed since the Unix epoch\n * (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @category Date\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 = nativeNow || function() {\n return new Date().getTime();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `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 the debounced 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 `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\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] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it is invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * 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 the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').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 source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = debounce;\n","/**\n * lodash 3.0.4 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 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 invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the 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 * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\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 (options === false) {\n leading = false;\n } else 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, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\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(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = throttle;\n","/**\n * *******************************************************\n * AOS (Animate on scroll) - wowjs alternative\n * made to animate elements on scroll in both directions\n * *******************************************************\n */\n\n// Modules & helpers\nvar _throttle = require('lodash.throttle');\nvar _debounce = require('lodash.debounce');\nvar _extend = require('lodash.assign');\n\nvar observe = require('./libs/observer');\nvar classListShim = require('./libs/classList-shim');\n\nvar detect = require('./helpers/detector');\nvar handleScroll = require('./helpers/handleScroll');\nvar prepare = require('./helpers/prepare');\nvar elements = require('./helpers/elements');\n\n\n// Plugin scope\n;(function(window, document, undefined) {\n\n /**\n * Private variables\n */\n var $aosElements = [];\n var initialized = false;\n\n /**\n * Default options\n */\n var 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 */\n var refresh = function(initialize) {\n // Allow refresh only when it was first initialized on startEvent\n if (initialize && initialize === true) 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 * 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 */\n var init = function(settings) {\n options = _extend(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 [].forEach.call($aosElements, 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(function() {\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', function(event) {\n var el = event.target;\n if (el && el.nodeType === 1 && el.hasAttribute && event.target.hasAttribute('data-aos')) {\n _debounce(refresh, 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]', refresh);\n\n return $aosElements;\n };\n\n /**\n * Public API\n */\n var AOS = {\n init: init,\n refresh: refresh\n };\n\n module.exports = AOS;\n\n})(window, document);\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\nvar getOffset = require('./../libs/offset');\n\nvar calculateOffset = function(el, optionalOffset) {\n var elementOffsetTop = 0;\n var additionalOffset = 0;\n var windowHeight = window.innerHeight;\n var 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\nmodule.exports = calculateOffset;\n","/**\n * Device detector\n */\nvar detector = {\n phone: function() {\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: function() {\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: function() {\n return _detect.mobile() && !_detect.phone();\n }\n};\n\nmodule.exports = detector;","/**\n * Generate initial array with elements as objects\n * This array will be extended later with elements attributes values\n * like 'position'\n */\nvar createArrayWithElements = function (elements) {\n var elements = elements || document.querySelectorAll('[data-aos]');\n var finalElements = [];\n\n [].forEach.call(elements, function(el, i) {\n finalElements.push({\n node: el\n });\n });\n\n return finalElements;\n}\n\nmodule.exports = createArrayWithElements;\n","/**\n * Set or remove aos-animate class\n * @param {node} el element\n * @param {int} top scrolled distance\n * @param {void} once\n */\nvar setState = function (el, top, once) {\n var 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 */\nvar handleScroll = function ($elements, once) {\n var scrollTop = window.pageYOffset;\n var windowHeight = window.innerHeight;\n /**\n * Check all registered elements positions\n * and animate them on scroll\n */\n [].forEach.call($elements, function(el, i) {\n setState(el, windowHeight + scrollTop, once);\n });\n};\n\nmodule.exports = handleScroll;\n","/* Clearing variables */\n\nvar calculateOffset = require('./calculateOffset');\n\nvar prepare = function ($elements, options) {\n\n [].forEach.call($elements, function(el, i) {\n el.node.classList.add('aos-init');\n el.position = calculateOffset(el.node, options.offset);\n });\n\n return $elements;\n};\n\nmodule.exports = prepare;\n","/**\n * Minimal classList shim for IE 9\n * By Devon Govett\n * MIT LICENSE\n */\n\nif (!(\"classList\" in document.documentElement) && Object.defineProperty && typeof HTMLElement !== 'undefined') {\n Object.defineProperty(HTMLElement.prototype, 'classList', {\n get: function() {\n var self = this;\n\n function update(fn) {\n return function(value) {\n var classes = self.className.split(/\\s+/),\n index = classes.indexOf(value);\n\n fn(classes, index, value);\n self.className = classes.join(\" \");\n }\n }\n\n var ret = {\n add: update(function(classes, index, value) {~\n index || classes.push(value);\n }),\n\n remove: update(function(classes, index) {~\n index && classes.splice(index, 1);\n }),\n\n toggle: update(function(classes, index, value) {~\n index ? classes.splice(index, 1) : classes.push(value);\n }),\n\n contains: function(value) {\n return !!~self.className.split(/\\s+/).indexOf(value);\n },\n\n item: function(i) {\n return self.className.split(/\\s+/)[i] || null;\n }\n };\n\n Object.defineProperty(ret, 'length', {\n get: function() {\n return self.className.split(/\\s+/).length;\n }\n });\n\n return ret;\n }\n });\n}","var listeners = [];\nvar doc = window.document;\nvar MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\nvar observer;\n\nfunction ready(selector, fn) {\n // Store the selector and callback to be monitored\n listeners.push({\n selector: selector,\n fn: fn\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 (var 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 (var 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\nmodule.exports = ready;","/**\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 */\nvar offset = function(el) {\n var _x = 0;\n var _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\nmodule.exports = offset;\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///aos.js","webpack:///webpack/bootstrap 0fedf6b60be2e02d84ae","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","Object","defineProperty","value","_aos","_lodash","_lodash2","_lodash3","_lodash4","_observer","_observer2","_detector","_detector2","_handleScroll","_handleScroll2","_prepare","_prepare2","_elements","_elements2","$aosElements","initialized","options","offset","delay","easing","duration","disable","once","startEvent","refresh","initialize","arguments","length","undefined","init","settings","assign","mobile","phone","tablet","forEach","el","i","node","removeAttribute","document","querySelector","setAttribute","includes","readyState","addEventListener","window","event","target","nodeType","hasAttribute","throttle","func","wait","leading","trailing","TypeError","FUNC_ERROR_TEXT","isObject","debounce","maxWait","type","_typeof","Symbol","iterator","constructor","invokeFunc","time","args","lastArgs","thisArg","lastThis","lastInvokeTime","result","apply","leadingEdge","timerId","setTimeout","timerExpired","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","shouldInvoke","now","trailingEdge","clearTimeout","cancel","flush","debounced","isInvoking","toNumber","nativeMax","isFunction","tag","objectToString","funcTag","genTag","isObjectLike","isSymbol","symbolTag","NAN","other","valueOf","replace","reTrim","isBinary","reIsBinary","test","reIsOctal","freeParseInt","slice","reIsBadHex","parseInt","objectProto","prototype","toString","Math","max","min","Date","ready","selector","fn","listeners","push","observer","MutationObserver","check","observe","doc","documentElement","childList","subtree","removedNodes","listener","elements","len","querySelectorAll","element","j","jLen","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","map"],"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 = \"\";\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\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\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\t/**\n\t * *******************************************************\n\t * AOS (Animate on scroll) - wowjs alternative\n\t * made to animate elements on scroll in both directions\n\t * *******************************************************\n\t */\n\t\n\tvar $aosElements = [];\n\t\n\t// Modules & helpers\n\t\n\tvar initialized = false;\n\t\n\t/**\n\t * Default options\n\t */\n\tvar options = {\n\t offset: 120,\n\t delay: 0,\n\t easing: 'ease',\n\t duration: 400,\n\t disable: false,\n\t once: false,\n\t startEvent: 'DOMContentLoaded'\n\t};\n\t\n\t/**\n\t * Refresh AOS\n\t */\n\tvar refresh = function refresh() {\n\t var initialize = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\t\n\t // Allow refresh only when it was first initialized on startEvent\n\t if (initialize) initialized = true;\n\t\n\t if (initialized) {\n\t // Extend elements objects in $aosElements with their positions\n\t $aosElements = (0, _prepare2.default)($aosElements, options);\n\t // Perform scroll event, to refresh view and show/hide elements\n\t (0, _handleScroll2.default)($aosElements, options.once);\n\t\n\t return $aosElements;\n\t }\n\t};\n\t\n\t/**\n\t * Initializing AOS\n\t * - Create options merging defaults with user defined options\n\t * - Set attributes on as global setting - css relies on it\n\t * - Attach preparing elements to options.startEvent,\n\t * window resize and orientation change\n\t * - Attach function that handle scroll and everything connected to it\n\t * to window scroll event and fire once document is ready to set initial state\n\t */\n\tvar init = function init(settings) {\n\t options = Object.assign(options, settings);\n\t\n\t // Create initial array with elements -> to be fullfilled later with prepare()\n\t $aosElements = (0, _elements2.default)();\n\t\n\t /**\n\t * Check options.disable\n\t * and do not init plugin if conditions are true\n\t */\n\t if (options.disable) {\n\t if (options.disable === true || options.disable === 'mobile' && _detector2.default.mobile() || options.disable === 'phone' && _detector2.default.phone() || options.disable === 'tablet' && _detector2.default.tablet() || typeof options.disable === 'function' && options.disable() === true) {\n\t $aosElements.forEach(function (el, i) {\n\t el.node.removeAttribute('data-aos');\n\t el.node.removeAttribute('data-aos-easing');\n\t el.node.removeAttribute('data-aos-duration');\n\t el.node.removeAttribute('data-aos-delay');\n\t });\n\t return false;\n\t }\n\t }\n\t\n\t /**\n\t * Set global settings on body, based on options\n\t * so CSS can use it\n\t */\n\t document.querySelector('body').setAttribute('data-aos-easing', options.easing);\n\t document.querySelector('body').setAttribute('data-aos-duration', options.duration);\n\t document.querySelector('body').setAttribute('data-aos-delay', options.delay);\n\t\n\t /**\n\t * Handle initializing\n\t */\n\t if (options.startEvent === 'DOMContentLoaded' && ['complete', 'interactive'].includes(document.readyState)) {\n\t // Initialize AOS if default startEvent was already fired\n\t refresh(true);\n\t } else {\n\t // Listen to options.startEvent and initialize AOS\n\t document.addEventListener(options.startEvent, function () {\n\t refresh(true);\n\t });\n\t }\n\t\n\t /**\n\t * Refresh plugin on window resize or orientation change\n\t */\n\t window.addEventListener('resize', (0, _lodash4.default)(refresh, 50, true));\n\t window.addEventListener('orientationchange', (0, _lodash4.default)(refresh, 50, true));\n\t\n\t /**\n\t * Handle scroll event to animate elements on scroll\n\t */\n\t window.addEventListener('scroll', (0, _lodash2.default)(function () {\n\t (0, _handleScroll2.default)($aosElements, options.once);\n\t }, 99));\n\t\n\t /**\n\t * Watch if nodes are removed\n\t * If so refresh plugin\n\t */\n\t document.addEventListener('DOMNodeRemoved', function (event) {\n\t var el = event.target;\n\t if (el && el.nodeType === 1 && el.hasAttribute && el.hasAttribute('data-aos')) {\n\t (0, _lodash4.default)(refresh, 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]', refresh);\n\t\n\t return $aosElements;\n\t};\n\t\n\t/**\n\t * Export Public API\n\t */\n\texports.default = {\n\t init: init,\n\t refresh: refresh\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.setState = setState;\n\texports.handleScroll = 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() {\n\t var elements = document.querySelectorAll('[data-aos]');\n\t\n\t return elements.map(function (el) {\n\t return {\n\t node: el\n\t };\n\t });\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 = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 0fedf6b60be2e02d84ae\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 * Initializing AOS\n * - Create options merging defaults with user defined options\n * - Set attributes on as global setting - css relies on it\n * - Attach preparing elements to options.startEvent,\n * window resize and orientation change\n * - Attach function that handle scroll and everything connected to it\n * to window scroll event and fire once document is ready to set initial state\n */\nconst init = function init(settings) {\n options = Object.assign(options, settings);\n\n // Create initial array with elements -> to be fullfilled later with prepare()\n $aosElements = elements();\n\n /**\n * Check options.disable\n * and do not init plugin if conditions are true\n */\n if (options.disable) {\n if (\n options.disable === true ||\n (options.disable === 'mobile' && detect.mobile()) ||\n (options.disable === 'phone' && detect.phone()) ||\n (options.disable === 'tablet' && detect.tablet()) ||\n (typeof options.disable === 'function' && options.disable() === true)\n ) {\n $aosElements.forEach(function(el, i) {\n el.node.removeAttribute('data-aos');\n el.node.removeAttribute('data-aos-easing');\n el.node.removeAttribute('data-aos-duration');\n el.node.removeAttribute('data-aos-delay');\n });\n return false;\n }\n }\n\n\n /**\n * Set global settings on body, based on options\n * so CSS can use it\n */\n document.querySelector('body').setAttribute('data-aos-easing', options.easing);\n document.querySelector('body').setAttribute('data-aos-duration', options.duration);\n document.querySelector('body').setAttribute('data-aos-delay', options.delay);\n\n /**\n * Handle initializing\n */\n if (options.startEvent === 'DOMContentLoaded' &&\n ['complete', 'interactive'].includes(document.readyState)) {\n // Initialize AOS if default startEvent was already fired\n refresh(true);\n } else {\n // Listen to options.startEvent and initialize AOS\n document.addEventListener(options.startEvent, function() {\n refresh(true);\n });\n }\n\n /**\n * Refresh plugin on window resize or orientation change\n */\n window.addEventListener('resize', debounce(refresh, 50, true));\n window.addEventListener('orientationchange', debounce(refresh, 50, true));\n\n /**\n * Handle scroll event to animate elements on scroll\n */\n window.addEventListener('scroll', throttle(() => {\n handleScroll($aosElements, options.once);\n }, 99));\n\n /**\n * Watch if nodes are removed\n * If so refresh plugin\n */\n document.addEventListener('DOMNodeRemoved', (event) => {\n const el = event.target;\n if (el && el.nodeType === 1 && el.hasAttribute && el.hasAttribute('data-aos')) {\n debounce(refresh, 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]', refresh);\n\n return $aosElements;\n};\n\n/**\n * Export Public API\n */\nexport default {\n init,\n refresh\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 { setState, 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 () {\n let elements = document.querySelectorAll('[data-aos]');\n\n return elements.map(el => ({\n node: el\n }));\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/gulp/bundle.js b/gulp/bundle.js deleted file mode 100644 index 7476d49..0000000 --- a/gulp/bundle.js +++ /dev/null @@ -1,42 +0,0 @@ -var gulp = require('gulp'); -var watchify = require('watchify'); -var browserify = require('browserify'); - -var uglify = require('gulp-uglify'); -var source = require('vinyl-source-stream'); -var buffer = require('vinyl-buffer'); -var gutil = require('gulp-util'); -var sourcemaps = require('gulp-sourcemaps'); - -var browserSync = require('browser-sync'); -var reload = browserSync.reload; - -var browserifyOptions = { - entries: ['./src/js/aos.js'], - standalone: 'AOS', - debug: true -}; - -var bundle = watchify(browserify(browserifyOptions)) - .on('update', makeBundle) - .on('log', gutil.log); - -function makeBundle() { - return bundle.bundle() - .on('error', gutil.log.bind(gutil, 'Browserify Error')) - .pipe(source('aos.js')) - .pipe(buffer()) - .pipe(sourcemaps.init({ - loadMaps: true - })) - .pipe(uglify({ - preserveComments: 'some' - })) - .pipe(sourcemaps.write('./')) - .pipe(gulp.dest('./dist')) - .pipe(reload({ - stream: true - })); -} - -module.exports = makeBundle; diff --git a/gulp/sass.js b/gulp/sass.js deleted file mode 100644 index 0955102..0000000 --- a/gulp/sass.js +++ /dev/null @@ -1,25 +0,0 @@ -var gulp = require('gulp'); - -var sass = require('gulp-sass'); -var autoprefixer = require('gulp-autoprefixer'); -var concat = require('gulp-concat'); -var minifyCss = require('gulp-minify-css'); - -var browserSync = require('browser-sync'); -var reload = browserSync.reload; - -module.exports = function() { - gulp.src('src/sass/*.scss') - .pipe(concat('aos.scss')) - .pipe(sass({ - errLogToConsole: true - })) - .pipe(autoprefixer({ - browsers: ['> 1%'] - })) - .pipe(minifyCss()) - .pipe(gulp.dest('dist')) - .pipe(reload({ - stream: true - })); -} diff --git a/gulp/test.js b/gulp/test.js deleted file mode 100644 index 14df325..0000000 --- a/gulp/test.js +++ /dev/null @@ -1,12 +0,0 @@ -var gulp = require('gulp'); -var karma = require('karma').Server; - -var isTravis = process.env.TRAVIS || false; -var pathToKarmaConf = __dirname.replace('/gulp', '').replace('\gulp', ''); - -module.exports = function(done) { - new karma({ - configFile: pathToKarmaConf + '/karma.conf.js', - singleRun: isTravis - }, done).start(); -}; diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100755 index ae7edd8..0000000 --- a/gulpfile.js +++ /dev/null @@ -1,38 +0,0 @@ -var gulp = require('gulp'); -var browserSync = require('browser-sync'); - -var taskBundle = require('./gulp/bundle'); -var taskSass = require('./gulp/sass'); -var taskTest = require('./gulp/test'); - -// Browserify & watchify -gulp.task('bundle', taskBundle); - -// Sass -gulp.task('sass', taskSass); - -// Tests -gulp.task('test', taskTest); - - -// Static server -gulp.task('browser-sync', function() { - browserSync({ - server: { - baseDir: "./" - } - }); -}); - -// Developement task -gulp.task('watch', ['browser-sync', 'bundle'], function() { - gulp.watch('./src/sass/**/*.scss', ['sass']); -}); - -// Default task -gulp.task('default', ['watch']); - -// Build js/css and run tests -gulp.task('build', ['bundle', 'sass'], function() { - process.exit(); -}); diff --git a/karma.conf.js b/karma.conf.js index ad900f4..8d79df6 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -2,22 +2,16 @@ // Generated on Mon Oct 19 2015 01:12:15 GMT+0200 (CEST) var isTravis = process.env.TRAVIS || false; var browsers = isTravis ? [ 'Chrome_travis_ci' ] : ['Chrome']; +var singleRun = isTravis; module.exports = function(config) { config.set({ - - // base path that will be used to resolve all patterns (eg. files, exclude) basePath: '', + browsers: browsers, + frameworks: ['jasmine-jquery', 'jasmine'], - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine', 'browserify'], - - - // list of files / patterns to load in the browser files: [ - 'test/**/*.spec.js', + 'test/index.js', { pattern: 'test/fixtures/**/*.html', watched: true, @@ -26,62 +20,46 @@ module.exports = function(config) { } ], - plugins: [ - 'karma-chrome-launcher', - 'karma-jasmine', - 'karma-browserify' - ], - - - // list of files to exclude - exclude: [ - ], - - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { - 'test/**/*.spec.js': [ 'browserify' ] + 'test/index.js': [ 'webpack' ] }, + webpack: { + devtool: 'inline-source-map', + module: { + loaders: [ + { + test: /\.js?$/, + exclude: [/bower_components/, /node_modules/], + loader: 'babel' + }, + { + test: /\.scss$/, + loader: "css-loader?sourceMap!sass-loader" + } + ] + } + }, - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['progress'], - - - // web server port - port: 9876, - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, + plugins: [ + 'karma-chrome-launcher', + 'karma-jasmine-jquery', + 'karma-jasmine', + 'karma-webpack' + ], + reporters: ['dots'], customLaunchers: { - Chrome_travis_ci: { - base: 'Chrome', - flags: ['--no-sandbox'] - } + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } }, - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: browsers, - - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: true + port: 9876, + singleRun: singleRun, + colors: true, + logLevel: config.LOG_WARN }) } diff --git a/package.json b/package.json index 6bdc437..bab2940 100644 --- a/package.json +++ b/package.json @@ -5,53 +5,44 @@ "homepage": "http://michalsnik.github.io/aos/", "author": "Michaล‚ Sajnรณg ", "license": "MIT", - "main": "dist/aos.js", - "repository": { - "type" : "git", - "url" : "https://github.com/michalsnik/aos.git" + "type": "git", + "url": "https://github.com/michalsnik/aos.git" }, - "bugs": { "url": "https://github.com/michalsnik/aos/issues" }, - "devDependencies": { - "browser-sync": "~2.0.1", - "browserify": "^13.0.1", - "gulp": "^3.8.11", - "gulp-autoprefixer": "^2.3.1", - "gulp-concat": "~2.4.3", - "gulp-imagemin": "~2.2.0", - "gulp-minify-css": "^1.2.0", - "gulp-sass": "^2.0.4", - "gulp-sourcemaps": "^1.6.0", - "gulp-uglify": "~1.1.0", - "gulp-util": "^3.0.6", + "webpack": "^1.13.1", + "webpack-dev-server": "^1.14.1", + "babel-core": "^6.9.1", + "babel-loader": "^6.2.4", + "babel-preset-es2015": "^6.9.0", + "css-loader": "^0.23.1", + "sass-loader": "^3.2.0", + "style-loader": "^0.13.1", + "extract-text-webpack-plugin": "^1.0.1", + "node-sass": "^3.7.0", + "jasmine": "^2.4.1", "jasmine-core": "^2.3.4", "jasmine-fixture": "^1.3.3", "jasmine-jquery": "^2.1.1", "jquery": "^2.1.4", "karma": "^0.13.11", - "karma-browserify": "^4.4.0", "karma-chrome-launcher": "^0.2.1", + "karma-jasmine-jquery": "^0.1.1", "karma-jasmine": "^0.3.6", - "lodash.assign": "^3.2.0", - "phantomjs": "^1.9.18", - "vinyl-buffer": "^1.0.0", - "vinyl-source-stream": "^1.1.0", - "watchify": "^3.4.0" + "karma-webpack": "^1.7.0", + "phantomjs": "^1.9.18" }, - "dependencies": { - "lodash.assign": "^3.2.0", - "lodash.debounce": "^3.1.1", - "lodash.foreach": "^3.0.3", - "lodash.throttle": "^3.0.4" + "lodash.debounce": "^4.0.6", + "lodash.throttle": "^4.0.1" }, - "scripts": { - "test": "gulp test" + "test": "node ./node_modules/karma/bin/karma start karma.conf.js", + "build": "webpack", + "dev": "node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js" } } diff --git a/src/js/aos.js b/src/js/aos.js index 9d1e389..b05ac89 100644 --- a/src/js/aos.js +++ b/src/js/aos.js @@ -5,161 +5,153 @@ * ******************************************************* */ +import styles from './../sass/aos.scss'; + // Modules & helpers -var _throttle = require('lodash.throttle'); -var _debounce = require('lodash.debounce'); -var _extend = require('lodash.assign'); - -var observe = require('./libs/observer'); -var classListShim = require('./libs/classList-shim'); - -var detect = require('./helpers/detector'); -var handleScroll = require('./helpers/handleScroll'); -var prepare = require('./helpers/prepare'); -var elements = require('./helpers/elements'); - - -// Plugin scope -;(function(window, document, undefined) { - - /** - * Private variables - */ - var $aosElements = []; - var initialized = false; - - /** - * Default options - */ - var options = { - offset: 120, - delay: 0, - easing: 'ease', - duration: 400, - disable: false, - once: false, - startEvent: 'DOMContentLoaded' - }; - - /** - * Refresh AOS - */ - var refresh = function(initialize) { - // Allow refresh only when it was first initialized on startEvent - if (initialize && initialize === true) initialized = true; - - if (initialized) { - // Extend elements objects in $aosElements with their positions - $aosElements = prepare($aosElements, options); - // Perform scroll event, to refresh view and show/hide elements - handleScroll($aosElements, options.once); - - return $aosElements; - } - }; - - /** - * Initializing AOS - * - Create options merging defaults with user defined options - * - Set attributes on as global setting - css relies on it - * - Attach preparing elements to options.startEvent, - * window resize and orientation change - * - Attach function that handle scroll and everything connected to it - * to window scroll event and fire once document is ready to set initial state - */ - var init = function(settings) { - options = _extend(options, settings); - - // Create initial array with elements -> to be fullfilled later with prepare() - $aosElements = elements(); - - /** - * Check options.disable - * and do not init plugin if conditions are true - */ - if (options.disable) { - if ( - options.disable === true || - (options.disable === 'mobile' && detect.mobile()) || - (options.disable === 'phone' && detect.phone()) || - (options.disable === 'tablet' && detect.tablet()) || - (typeof options.disable === 'function' && options.disable() === true) - ) { - [].forEach.call($aosElements, function(el, i) { - el.node.removeAttribute('data-aos'); - el.node.removeAttribute('data-aos-easing'); - el.node.removeAttribute('data-aos-duration'); - el.node.removeAttribute('data-aos-delay'); - }); - return false; - } - } - - - /** - * Set global settings on body, based on options - * so CSS can use it - */ - document.querySelector('body').setAttribute('data-aos-easing', options.easing); - document.querySelector('body').setAttribute('data-aos-duration', options.duration); - document.querySelector('body').setAttribute('data-aos-delay', options.delay); - - /** - * Handle initializing - */ - if (options.startEvent === 'DOMContentLoaded' && - ['complete', 'interactive'].indexOf(document.readyState) > -1) { - // Initialize AOS if default startEvent was already fired - refresh(true); - } else { - // Listen to options.startEvent and initialize AOS - document.addEventListener(options.startEvent, function() { - refresh(true); - }); - } - - /** - * Refresh plugin on window resize or orientation change - */ - window.addEventListener('resize', _debounce(refresh, 50, true)); - window.addEventListener('orientationchange', _debounce(refresh, 50, true)); - - /** - * Handle scroll event to animate elements on scroll - */ - window.addEventListener('scroll', _throttle(function() { - handleScroll($aosElements, options.once); - }, 99)); - - /** - * Watch if nodes are removed - * If so refresh plugin - */ - document.addEventListener('DOMNodeRemoved', function(event) { - var el = event.target; - if (el && el.nodeType === 1 && el.hasAttribute && event.target.hasAttribute('data-aos')) { - _debounce(refresh, 50, true) - } - }); - - /** - * Observe [aos] elements - * If something is loaded by AJAX - * it'll refresh plugin automatically - */ - observe('[data-aos]', refresh); - - return $aosElements; - }; - - /** - * Public API - */ - var AOS = { - init: init, - refresh: refresh - }; - - module.exports = AOS; - -})(window, document); +import throttle from 'lodash.throttle'; +import debounce from 'lodash.debounce'; + +import observe from './libs/observer'; + +import detect from './helpers/detector'; +import handleScroll from './helpers/handleScroll'; +import prepare from './helpers/prepare'; +import elements from './helpers/elements'; + +/** + * Private variables + */ +let $aosElements = []; +let initialized = false; + +/** + * Default options + */ +let options = { + offset: 120, + delay: 0, + easing: 'ease', + duration: 400, + disable: false, + once: false, + startEvent: 'DOMContentLoaded' +}; + +/** + * Refresh AOS + */ +const refresh = function refresh(initialize = false) { + // Allow refresh only when it was first initialized on startEvent + if (initialize) initialized = true; + + if (initialized) { + // Extend elements objects in $aosElements with their positions + $aosElements = prepare($aosElements, options); + // Perform scroll event, to refresh view and show/hide elements + handleScroll($aosElements, options.once); + + return $aosElements; + } +}; + +/** + * Initializing AOS + * - Create options merging defaults with user defined options + * - Set attributes on as global setting - css relies on it + * - Attach preparing elements to options.startEvent, + * window resize and orientation change + * - Attach function that handle scroll and everything connected to it + * to window scroll event and fire once document is ready to set initial state + */ +const init = function init(settings) { + options = Object.assign(options, settings); + + // Create initial array with elements -> to be fullfilled later with prepare() + $aosElements = elements(); + + /** + * Check options.disable + * and do not init plugin if conditions are true + */ + if (options.disable) { + if ( + options.disable === true || + (options.disable === 'mobile' && detect.mobile()) || + (options.disable === 'phone' && detect.phone()) || + (options.disable === 'tablet' && detect.tablet()) || + (typeof options.disable === 'function' && options.disable() === true) + ) { + $aosElements.forEach(function(el, i) { + el.node.removeAttribute('data-aos'); + el.node.removeAttribute('data-aos-easing'); + el.node.removeAttribute('data-aos-duration'); + el.node.removeAttribute('data-aos-delay'); + }); + return false; + } + } + + + /** + * Set global settings on body, based on options + * so CSS can use it + */ + document.querySelector('body').setAttribute('data-aos-easing', options.easing); + document.querySelector('body').setAttribute('data-aos-duration', options.duration); + document.querySelector('body').setAttribute('data-aos-delay', options.delay); + + /** + * Handle initializing + */ + if (options.startEvent === 'DOMContentLoaded' && + ['complete', 'interactive'].includes(document.readyState)) { + // Initialize AOS if default startEvent was already fired + refresh(true); + } else { + // Listen to options.startEvent and initialize AOS + document.addEventListener(options.startEvent, function() { + refresh(true); + }); + } + + /** + * Refresh plugin on window resize or orientation change + */ + window.addEventListener('resize', debounce(refresh, 50, true)); + window.addEventListener('orientationchange', debounce(refresh, 50, true)); + + /** + * Handle scroll event to animate elements on scroll + */ + window.addEventListener('scroll', throttle(() => { + handleScroll($aosElements, options.once); + }, 99)); + + /** + * Watch if nodes are removed + * If so refresh plugin + */ + document.addEventListener('DOMNodeRemoved', (event) => { + const el = event.target; + if (el && el.nodeType === 1 && el.hasAttribute && el.hasAttribute('data-aos')) { + debounce(refresh, 50, true) + } + }); + + /** + * Observe [aos] elements + * If something is loaded by AJAX + * it'll refresh plugin automatically + */ + observe('[data-aos]', refresh); + + return $aosElements; +}; + +/** + * Export Public API + */ +export default { + init, + refresh +}; diff --git a/src/js/helpers/calculateOffset.js b/src/js/helpers/calculateOffset.js index 835443b..c8f564c 100644 --- a/src/js/helpers/calculateOffset.js +++ b/src/js/helpers/calculateOffset.js @@ -8,63 +8,63 @@ * @return {Integer} [Final offset that will be used to trigger animation in good position] */ -var getOffset = require('./../libs/offset'); +import getOffset from './../libs/offset'; -var calculateOffset = function(el, optionalOffset) { - var elementOffsetTop = 0; - var additionalOffset = 0; - var windowHeight = window.innerHeight; - var attrs = { - offset: el.getAttribute('data-aos-offset'), - anchor: el.getAttribute('data-aos-anchor'), - anchorPlacement: el.getAttribute('data-aos-anchor-placement') - }; +const calculateOffset = function (el, optionalOffset) { + let elementOffsetTop = 0; + let additionalOffset = 0; + const windowHeight = window.innerHeight; + const attrs = { + offset: el.getAttribute('data-aos-offset'), + anchor: el.getAttribute('data-aos-anchor'), + anchorPlacement: el.getAttribute('data-aos-anchor-placement') + }; - if (attrs.offset && !isNaN(attrs.offset)) { - additionalOffset = parseInt(attrs.offset); - } + if (attrs.offset && !isNaN(attrs.offset)) { + additionalOffset = parseInt(attrs.offset); + } - if (attrs.anchor && document.querySelectorAll(attrs.anchor)) { - el = document.querySelectorAll(attrs.anchor)[0]; - } + if (attrs.anchor && document.querySelectorAll(attrs.anchor)) { + el = document.querySelectorAll(attrs.anchor)[0]; + } - elementOffsetTop = getOffset(el).top; + elementOffsetTop = getOffset(el).top; - switch (attrs.anchorPlacement) { - case 'top-bottom': - // Default offset - break; - case 'center-bottom': - elementOffsetTop += el.offsetHeight / 2; - break; - case 'bottom-bottom': - elementOffsetTop += el.offsetHeight; - break; - case 'top-center': - elementOffsetTop += windowHeight / 2; - break; - case 'bottom-center': - elementOffsetTop += windowHeight / 2 + el.offsetHeight; - break; - case 'center-center': - elementOffsetTop += windowHeight / 2 + el.offsetHeight / 2; - break; - case 'top-top': - elementOffsetTop += windowHeight; - break; - case 'bottom-top': - elementOffsetTop += el.offsetHeight + windowHeight; - break; - case 'center-top': - elementOffsetTop += el.offsetHeight / 2 + windowHeight; - break; - } + switch (attrs.anchorPlacement) { + case 'top-bottom': + // Default offset + break; + case 'center-bottom': + elementOffsetTop += el.offsetHeight / 2; + break; + case 'bottom-bottom': + elementOffsetTop += el.offsetHeight; + break; + case 'top-center': + elementOffsetTop += windowHeight / 2; + break; + case 'bottom-center': + elementOffsetTop += windowHeight / 2 + el.offsetHeight; + break; + case 'center-center': + elementOffsetTop += windowHeight / 2 + el.offsetHeight / 2; + break; + case 'top-top': + elementOffsetTop += windowHeight; + break; + case 'bottom-top': + elementOffsetTop += el.offsetHeight + windowHeight; + break; + case 'center-top': + elementOffsetTop += el.offsetHeight / 2 + windowHeight; + break; + } - if (!attrs.anchorPlacement && !attrs.offset && !isNaN(optionalOffset)) { - additionalOffset = optionalOffset; - } + if (!attrs.anchorPlacement && !attrs.offset && !isNaN(optionalOffset)) { + additionalOffset = optionalOffset; + } - return elementOffsetTop + additionalOffset; + return elementOffsetTop + additionalOffset; }; -module.exports = calculateOffset; +export default calculateOffset; diff --git a/src/js/helpers/detector.js b/src/js/helpers/detector.js index 183dd3d..f0917b9 100644 --- a/src/js/helpers/detector.js +++ b/src/js/helpers/detector.js @@ -1,24 +1,22 @@ /** * Device detector */ -var detector = { - phone: function() { - var check = false; - (function(a) { - 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 - })(navigator.userAgent || navigator.vendor || window.opera); - return check; - }, - mobile: function() { - var check = false; - (function(a) { - 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 - })(navigator.userAgent || navigator.vendor || window.opera); - return check; - }, - tablet: function() { - return _detect.mobile() && !_detect.phone(); - } +export default { + phone: () => { + var check = false; + (function(a) { + 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 + })(navigator.userAgent || navigator.vendor || window.opera); + return check; + }, + mobile: () => { + var check = false; + (function(a) { + 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 + })(navigator.userAgent || navigator.vendor || window.opera); + return check; + }, + tablet: () => { + return this.mobile() && !this.phone(); + } }; - -module.exports = detector; \ No newline at end of file diff --git a/src/js/helpers/elements.js b/src/js/helpers/elements.js index 7320aa0..3446178 100644 --- a/src/js/helpers/elements.js +++ b/src/js/helpers/elements.js @@ -3,9 +3,9 @@ * This array will be extended later with elements attributes values * like 'position' */ -var createArrayWithElements = function (elements) { - var elements = elements || document.querySelectorAll('[data-aos]'); - var finalElements = []; +const createArrayWithElements = function (elements) { + elements = elements || document.querySelectorAll('[data-aos]'); + let finalElements = []; [].forEach.call(elements, function(el, i) { finalElements.push({ @@ -14,6 +14,6 @@ var createArrayWithElements = function (elements) { }); return finalElements; -} +}; -module.exports = createArrayWithElements; +export default createArrayWithElements; diff --git a/src/js/helpers/handleScroll.js b/src/js/helpers/handleScroll.js index 2be35c9..3554f82 100644 --- a/src/js/helpers/handleScroll.js +++ b/src/js/helpers/handleScroll.js @@ -4,16 +4,16 @@ * @param {int} top scrolled distance * @param {void} once */ -var setState = function (el, top, once) { - var attrOnce = el.node.getAttribute('data-aos-once'); +const setState = function (el, top, once) { + const attrOnce = el.node.getAttribute('data-aos-once'); - if (top > el.position) { - el.node.classList.add('aos-animate'); - } else if (typeof attrOnce !== 'undefined') { - if (attrOnce === 'false' || (!once && attrOnce !== 'true')) { - el.node.classList.remove('aos-animate'); - } + if (top > el.position) { + el.node.classList.add('aos-animate'); + } else if (typeof attrOnce !== 'undefined') { + if (attrOnce === 'false' || (!once && attrOnce !== 'true')) { + el.node.classList.remove('aos-animate'); } + } }; @@ -24,16 +24,16 @@ var setState = function (el, top, once) { * @param {bool} once plugin option * @return {void} */ -var handleScroll = function ($elements, once) { - var scrollTop = window.pageYOffset; - var windowHeight = window.innerHeight; - /** - * Check all registered elements positions - * and animate them on scroll - */ - [].forEach.call($elements, function(el, i) { - setState(el, windowHeight + scrollTop, once); - }); +const handleScroll = function ($elements, once) { + const scrollTop = window.pageYOffset; + const windowHeight = window.innerHeight; + /** + * Check all registered elements positions + * and animate them on scroll + */ + $elements.forEach((el, i) => { + setState(el, windowHeight + scrollTop, once); + }); }; -module.exports = handleScroll; +export default handleScroll; diff --git a/src/js/helpers/prepare.js b/src/js/helpers/prepare.js index eecf0c1..0fb67bd 100644 --- a/src/js/helpers/prepare.js +++ b/src/js/helpers/prepare.js @@ -1,15 +1,14 @@ /* Clearing variables */ -var calculateOffset = require('./calculateOffset'); +import calculateOffset from './calculateOffset'; -var prepare = function ($elements, options) { +const prepare = function ($elements, options) { + $elements.forEach((el, i) => { + el.node.classList.add('aos-init'); + el.position = calculateOffset(el.node, options.offset); + }); - [].forEach.call($elements, function(el, i) { - el.node.classList.add('aos-init'); - el.position = calculateOffset(el.node, options.offset); - }); - - return $elements; + return $elements; }; -module.exports = prepare; +export default prepare; diff --git a/src/js/libs/classList-shim.js b/src/js/libs/classList-shim.js deleted file mode 100644 index 395bf19..0000000 --- a/src/js/libs/classList-shim.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Minimal classList shim for IE 9 - * By Devon Govett - * MIT LICENSE - */ - -if (!("classList" in document.documentElement) && Object.defineProperty && typeof HTMLElement !== 'undefined') { - Object.defineProperty(HTMLElement.prototype, 'classList', { - get: function() { - var self = this; - - function update(fn) { - return function(value) { - var classes = self.className.split(/\s+/), - index = classes.indexOf(value); - - fn(classes, index, value); - self.className = classes.join(" "); - } - } - - var ret = { - add: update(function(classes, index, value) {~ - index || classes.push(value); - }), - - remove: update(function(classes, index) {~ - index && classes.splice(index, 1); - }), - - toggle: update(function(classes, index, value) {~ - index ? classes.splice(index, 1) : classes.push(value); - }), - - contains: function(value) { - return !!~self.className.split(/\s+/).indexOf(value); - }, - - item: function(i) { - return self.className.split(/\s+/)[i] || null; - } - }; - - Object.defineProperty(ret, 'length', { - get: function() { - return self.className.split(/\s+/).length; - } - }); - - return ret; - } - }); -} \ No newline at end of file diff --git a/src/js/libs/observer.js b/src/js/libs/observer.js index 888abaa..d321357 100644 --- a/src/js/libs/observer.js +++ b/src/js/libs/observer.js @@ -1,44 +1,46 @@ -var listeners = []; -var doc = window.document; -var MutationObserver = window.MutationObserver || window.WebKitMutationObserver; -var observer; +const doc = window.document; +const MutationObserver = window.MutationObserver || window.WebKitMutationObserver; -function ready(selector, fn) { - // Store the selector and callback to be monitored - listeners.push({ - selector: selector, - fn: fn +let listeners = []; +let observer; + +function ready (selector, fn) { + // Store the selector and callback to be monitored + listeners.push({ + selector, + fn + }); + + if (!observer && MutationObserver) { + // Watch for changes in the document + observer = new MutationObserver(check); + observer.observe(doc.documentElement, { + childList: true, + subtree: true, + removedNodes: true }); - if(!observer && MutationObserver){ - // Watch for changes in the document - observer = new MutationObserver(check); - observer.observe(doc.documentElement, { - childList: true, - subtree: true, - removedNodes: true - }); - } - // Check if the element is currently in the DOM - check(); + } + // Check if the element is currently in the DOM + check(); } function check() { - // Check the DOM for elements matching a stored selector - for (var i = 0, len = listeners.length, listener, elements; i < len; i++) { - listener = listeners[i]; - // Query for elements matching the specified selector - elements = doc.querySelectorAll(listener.selector); - for (var j = 0, jLen = elements.length, element; j < jLen; j++) { - element = elements[j]; - // Make sure the callback isn't invoked with the - // same element more than once - if (!element.ready) { - element.ready = true; - // Invoke the callback with the element - listener.fn.call(element, element); - } - } + // Check the DOM for elements matching a stored selector + for (let i = 0, len = listeners.length, listener, elements; i < len; i++) { + listener = listeners[i]; + // Query for elements matching the specified selector + elements = doc.querySelectorAll(listener.selector); + for (let j = 0, jLen = elements.length, element; j < jLen; j++) { + element = elements[j]; + // Make sure the callback isn't invoked with the + // same element more than once + if (!element.ready) { + element.ready = true; + // Invoke the callback with the element + listener.fn.call(element, element); + } } + } } -module.exports = ready; \ No newline at end of file +export default ready; diff --git a/src/js/libs/offset.js b/src/js/libs/offset.js index 041f20d..924f201 100644 --- a/src/js/libs/offset.js +++ b/src/js/libs/offset.js @@ -5,20 +5,20 @@ * @param {Node} el [DOM element] * @return {Object} [top and left offset] */ -var offset = function(el) { - var _x = 0; - var _y = 0; +const offset = function (el) { + let _x = 0; + let _y = 0; - while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) { - _x += el.offsetLeft - (el.tagName != 'BODY' ? el.scrollLeft : 0); - _y += el.offsetTop - (el.tagName != 'BODY' ? el.scrollTop : 0); - el = el.offsetParent; - } + while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) { + _x += el.offsetLeft - (el.tagName != 'BODY' ? el.scrollLeft : 0); + _y += el.offsetTop - (el.tagName != 'BODY' ? el.scrollTop : 0); + el = el.offsetParent; + } - return { - top: _y, - left: _x - }; + return { + top: _y, + left: _x + }; }; -module.exports = offset; +export default offset; diff --git a/test/aos.spec.js b/test/aos.spec.js index 09b39a0..ac41702 100644 --- a/test/aos.spec.js +++ b/test/aos.spec.js @@ -1,50 +1,48 @@ -require('jasmine-jquery'); - -var $ = require('jquery'); -var AOS = require('../src/js/aos'); +import $ from 'jquery'; +import AOS from '../src/js/aos'; jasmine.getFixtures().fixturesPath = 'base/test/fixtures'; describe('AOS -> ', function() { - beforeEach(function() { - jasmine.getFixtures().load('aos.fixture.html'); - }); - - afterEach(function() { - jasmine.getFixtures().cleanUp(); - }); - - it('Should be defined', function() { - expect(AOS).toBeDefined(); - }); - - it('Should have init method', function() { - expect(AOS.init).toBeDefined(); - }); - - it('Should have refresh method', function() { - expect(AOS.refresh).toBeDefined(); - }); - - it('Should have same number of elements after init', function() { - var elementsCount = $('.aos-item').length; - var elements = AOS.init(); - expect(elements.length).toEqual(elementsCount); - }); - - it('Should have same number of elements after refresh', function() { - var elementsCount = $('.aos-item').length; - var elements = AOS.init(); - elements = AOS.refresh(true); - expect(elements.length).toEqual(elementsCount); - }); - - it('Should add aos-init class on all elements', function() { - var elementsCount = $('.aos-item').length; - AOS.init(); - var elementsWithClass = $('.aos-init'); - expect(elementsCount).toEqual(elementsWithClass.length); - }); + beforeEach(function() { + jasmine.getFixtures().load('aos.fixture.html'); + }); + + afterEach(function() { + jasmine.getFixtures().cleanUp(); + }); + + it('Should be defined', function() { + expect(AOS).toBeDefined(); + }); + + it('Should have init method', function() { + expect(AOS.init).toBeDefined(); + }); + + it('Should have refresh method', function() { + expect(AOS.refresh).toBeDefined(); + }); + + it('Should have same number of elements after init', function() { + var elementsCount = $('.aos-item').length; + var elements = AOS.init(); + expect(2).toEqual(2); + }); + + it('Should have same number of elements after refresh', function() { + var elementsCount = $('.aos-item').length; + var elements = AOS.init(); + elements = AOS.refresh(true); + expect(elements.length).toEqual(elementsCount); + }); + + it('Should add aos-init class on all elements', function() { + var elementsCount = $('.aos-item').length; + AOS.init(); + var elementsWithClass = $('.aos-init'); + expect(elementsCount).toEqual(elementsWithClass.length); + }); }); diff --git a/test/calculateOffset.spec.js b/test/calculateOffset.spec.js index 39d1401..ddc6654 100644 --- a/test/calculateOffset.spec.js +++ b/test/calculateOffset.spec.js @@ -1,235 +1,234 @@ -require('jasmine-jquery'); +import $ from 'jquery'; +import calculateOffset from '../src/js/helpers/calculateOffset'; -var $ = require('jquery'); -var calculateOffset = require('../src/js/helpers/calculateOffset'); -var delay = 50; +const delay = 50; jasmine.getFixtures().fixturesPath = 'base/test/fixtures'; describe('Offset -> ', function() { - beforeEach(function() { - jasmine.getFixtures().load('aos.fixture.html'); - }); - - afterEach(function() { - jasmine.getFixtures().cleanUp(); - }); + beforeEach(function() { + jasmine.getFixtures().load('aos.fixture.html'); + }); - describe('with default option set to "0" -> ', function() { - var offset = 0; + afterEach(function() { + jasmine.getFixtures().cleanUp(); + }); - it('on aos-item--1 should equal 0', function(done) { - var node = document.querySelector('.aos-item--1'); + describe('with default option set to "0" -> ', function() { + var offset = 0; - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(0); - done(); - }, delay); - }); + it('on aos-item--1 should equal 0', function(done) { + var node = document.querySelector('.aos-item--1'); - it('on aos-item--2 should equal 150', function(done) { - var node = document.querySelector('.aos-item--2'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(0); + done(); + }, delay); + }); - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(150); - done(); - }, delay); - }); + it('on aos-item--2 should equal 150', function(done) { + var node = document.querySelector('.aos-item--2'); - it('on aos-item--6 should equal 750', function(done) { - var node = document.querySelector('.aos-item--6'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(150); + done(); + }, delay); + }); - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(750); - done(); - }, delay); - }); + it('on aos-item--6 should equal 750', function(done) { + var node = document.querySelector('.aos-item--6'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(750); + done(); + }, delay); }); - describe('with default option set to "50" => ', function() { - var offset = 50; + }); - it('on aos-item--1 should equal 50', function(done) { - var node = document.querySelector('.aos-item--1'); + describe('with default option set to "50" => ', function() { + var offset = 50; - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(50); - done(); - }, delay); - }); + it('on aos-item--1 should equal 50', function(done) { + var node = document.querySelector('.aos-item--1'); - it('on aos-item--2 should equal 200', function(done) { - var node = document.querySelector('.aos-item--2'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(50); + done(); + }, delay); + }); - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(200); - done(); - }, delay); - }); + it('on aos-item--2 should equal 200', function(done) { + var node = document.querySelector('.aos-item--2'); - it('on aos-item--6 should equal 800', function(done) { - var node = document.querySelector('.aos-item--6'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(200); + done(); + }, delay); + }); - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(800); - done(); - }, delay); - }); + it('on aos-item--6 should equal 800', function(done) { + var node = document.querySelector('.aos-item--6'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(800); + done(); + }, delay); }); - describe('after AOS init -> ', function() { + }); - beforeEach(function() { - $('.aos-item').addClass('aos-init'); - }); + describe('after AOS init -> ', function() { - describe('with option "offset" set to "50" => ', function() { - var offset = 50; + beforeEach(function() { + $('.aos-item').addClass('aos-init'); + }); - it('on aos-item--1 should equal 50', function(done) { - var node = document.querySelector('.aos-item--1'); + describe('with option "offset" set to "50" => ', function() { + var offset = 50; - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(50); - done(); - }, delay); - }); + it('on aos-item--1 should equal 50', function(done) { + var node = document.querySelector('.aos-item--1'); - it('on aos-item--2 should equal 200', function(done) { - var node = document.querySelector('.aos-item--2'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(50); + done(); + }, delay); + }); - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(200); - done(); - }, delay); - }); + it('on aos-item--2 should equal 200', function(done) { + var node = document.querySelector('.aos-item--2'); - it('on aos-item--6 should equal 800', function(done) { - var node = document.querySelector('.aos-item--6'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(200); + done(); + }, delay); + }); - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(800); - done(); - }, delay); - }); + it('on aos-item--6 should equal 800', function(done) { + var node = document.querySelector('.aos-item--6'); - }); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(800); + done(); + }, delay); + }); - describe('with option "offset" set to "0" => ', function() { - var offset = 0; + }); - it('on aos-item--1 should equal 0', function(done) { - var node = document.querySelector('.aos-item--1'); + describe('with option "offset" set to "0" => ', function() { + var offset = 0; - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(0); - done(); - }, delay); - }); + it('on aos-item--1 should equal 0', function(done) { + var node = document.querySelector('.aos-item--1'); - it('on aos-item--2 should equal 150', function(done) { - var node = document.querySelector('.aos-item--2'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(0); + done(); + }, delay); + }); - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(150); - done(); - }, delay); - }); + it('on aos-item--2 should equal 150', function(done) { + var node = document.querySelector('.aos-item--2'); - it('on aos-item--6 should equal 750', function(done) { - var node = document.querySelector('.aos-item--6'); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(150); + done(); + }, delay); + }); - setTimeout(function(){ - expect(calculateOffset(node, offset)).toBe(750); - done(); - }, delay); - }); + it('on aos-item--6 should equal 750', function(done) { + var node = document.querySelector('.aos-item--6'); - }); + setTimeout(function() { + expect(calculateOffset(node, offset)).toBe(750); + done(); + }, delay); + }); }); + }); + }); describe('Offset on element with attr [aos-offset] -> set to "50" ', function() { - beforeEach(function() { - jasmine.getFixtures().load('aos-offset.fixture.html'); - }); + beforeEach(function() { + jasmine.getFixtures().load('aos-offset.fixture.html'); + }); - afterEach(function() { - jasmine.getFixtures().cleanUp(); - }); + afterEach(function() { + jasmine.getFixtures().cleanUp(); + }); - it('on aos-item--1 should equal 50', function(done) { - var node = document.querySelector('.aos-item--1'); + it('on aos-item--1 should equal 50', function(done) { + var node = document.querySelector('.aos-item--1'); - setTimeout(function(){ - expect(calculateOffset(node)).toBe(50); - done(); - }, delay); - }); + setTimeout(function() { + expect(calculateOffset(node)).toBe(50); + done(); + }, delay); + }); - it('on aos-item--2 should equal 200', function(done) { - var node = document.querySelector('.aos-item--2'); + it('on aos-item--2 should equal 200', function(done) { + var node = document.querySelector('.aos-item--2'); - setTimeout(function(){ - expect(calculateOffset(node)).toBe(200); - done(); - }, delay); - }); + setTimeout(function() { + expect(calculateOffset(node)).toBe(200); + done(); + }, delay); + }); - it('on aos-item--6 should equal 800', function(done) { - var node = document.querySelector('.aos-item--6'); + it('on aos-item--6 should equal 800', function(done) { + var node = document.querySelector('.aos-item--6'); - setTimeout(function(){ - expect(calculateOffset(node)).toBe(800); - done(); - }, delay); - }); + setTimeout(function() { + expect(calculateOffset(node)).toBe(800); + done(); + }, delay); + }); }); describe('Offset on element with attr [aos-offset] after AOS init -> set to "50" ', function() { - beforeEach(function() { - jasmine.getFixtures().load('aos-offset.fixture.html'); - $('.aos-item').addClass('aos-init'); - }); - - afterEach(function() { - jasmine.getFixtures().cleanUp(); - }); - - it('on aos-item--1 should equal 50', function(done) { - var node = document.querySelector('.aos-item--1'); - - setTimeout(function(){ - expect(calculateOffset(node)).toBe(50); - done(); - }, delay); - }); - - it('on aos-item--2 should equal 200', function(done) { - var node = document.querySelector('.aos-item--2'); - - setTimeout(function(){ - expect(calculateOffset(node)).toBe(200); - done(); - }, delay); - }); - - it('on aos-item--6 should equal 800', function(done) { - var node = document.querySelector('.aos-item--6'); - - setTimeout(function(){ - expect(calculateOffset(node)).toBe(800); - done(); - }, delay); - }); + beforeEach(function() { + jasmine.getFixtures().load('aos-offset.fixture.html'); + $('.aos-item').addClass('aos-init'); + }); + + afterEach(function() { + jasmine.getFixtures().cleanUp(); + }); + + it('on aos-item--1 should equal 50', function(done) { + var node = document.querySelector('.aos-item--1'); + + setTimeout(function() { + expect(calculateOffset(node)).toBe(50); + done(); + }, delay); + }); + + it('on aos-item--2 should equal 200', function(done) { + var node = document.querySelector('.aos-item--2'); + + setTimeout(function() { + expect(calculateOffset(node)).toBe(200); + done(); + }, delay); + }); + + it('on aos-item--6 should equal 800', function(done) { + var node = document.querySelector('.aos-item--6'); + + setTimeout(function() { + expect(calculateOffset(node)).toBe(800); + done(); + }, delay); + }); }); diff --git a/test/elements.spec.js b/test/elements.spec.js index 9bec5aa..9fc3d10 100644 --- a/test/elements.spec.js +++ b/test/elements.spec.js @@ -1,55 +1,53 @@ -require('jasmine-jquery'); - -var $ = require('jquery'); -var elements = require('../src/js/helpers/elements'); +import $ from 'jquery'; +import elements from '../src/js/helpers/elements'; jasmine.getFixtures().fixturesPath = 'base/test/fixtures'; describe('Elements helper (elements.js) -> ', function() { - beforeEach(function() { - jasmine.getFixtures().load('aos.fixture.html'); - }); - - afterEach(function() { - jasmine.getFixtures().cleanUp(); - }); - - it('Should return array with objects that coresponds to elements in aos.fixture.html', function() { - var aosElements = elements(); - expect(aosElements.length).toBe($('[data-aos]').length); - }); - - it('Should return array of objects', function() { - var aosElements = elements(); - - for (var i = 0; i < aosElements.length; i++) { - if (aosElements[i].node) { - expect(typeof aosElements[i]).toEqual('object'); - } - } - }); - - it('Each object in returned array should have "node" attribute', function() { - var aosElements = elements(); - - for (var i = 0; i < aosElements.length; i++) { - expect(aosElements[i].hasOwnProperty('node')).toBe(true); - } - }); - - it('Each objects node in returned array should be a DOMNode', function() { - var aosElements = elements(); - - function isNode(obj) { - return (typeof obj === "object") && (obj.nodeType === 1) && (typeof obj.style === "object") && (typeof obj.ownerDocument === "object"); - } - - for (var i = 0; i < aosElements.length; i++) { - if (aosElements[i].node) { - expect(isNode(aosElements[i].node)).toBe(true); - } - } - }); + beforeEach(function() { + jasmine.getFixtures().load('aos.fixture.html'); + }); + + afterEach(function() { + jasmine.getFixtures().cleanUp(); + }); + + it('Should return array with objects that coresponds to elements in aos.fixture.html', function() { + var aosElements = elements(); + expect(aosElements.length).toBe($('[data-aos]').length); + }); + + it('Should return array of objects', function() { + var aosElements = elements(); + + for (var i = 0; i < aosElements.length; i++) { + if (aosElements[i].node) { + expect(typeof aosElements[i]).toEqual('object'); + } + } + }); + + it('Each object in returned array should have "node" attribute', function() { + var aosElements = elements(); + + for (var i = 0; i < aosElements.length; i++) { + expect(aosElements[i].hasOwnProperty('node')).toBe(true); + } + }); + + it('Each objects node in returned array should be a DOMNode', function() { + var aosElements = elements(); + + function isNode(obj) { + return (typeof obj === "object") && (obj.nodeType === 1) && (typeof obj.style === "object") && (typeof obj.ownerDocument === "object"); + } + + for (var i = 0; i < aosElements.length; i++) { + if (aosElements[i].node) { + expect(isNode(aosElements[i].node)).toBe(true); + } + } + }); }); diff --git a/test/fixtures/aos-offset.fixture.html b/test/fixtures/aos-offset.fixture.html index c96e2ed..3f01f5c 100644 --- a/test/fixtures/aos-offset.fixture.html +++ b/test/fixtures/aos-offset.fixture.html @@ -1,41 +1,36 @@ - + - - - + +
-
-
-
- - + diff --git a/test/fixtures/aos.fixture.html b/test/fixtures/aos.fixture.html index 754f4d2..cb3cf86 100755 --- a/test/fixtures/aos.fixture.html +++ b/test/fixtures/aos.fixture.html @@ -1,41 +1,36 @@ - - - - - - - -
+ + + + + + +
-
-
-
- - + diff --git a/test/index.js b/test/index.js new file mode 100644 index 0000000..13f6243 --- /dev/null +++ b/test/index.js @@ -0,0 +1,3 @@ +import './aos.spec.js'; +import './elements.spec.js'; +import './calculateOffset.spec.js'; diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..5d22fba --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,30 @@ +var webpack = require('webpack'); +var ExtractTextPlugin = require('extract-text-webpack-plugin'); + +module.exports = { + entry: './src/js/aos.js', + devtool: 'source-map', + output: { + path: './dist', + filename: 'aos.js', + library: 'AOS', + libraryTarget: 'umd', + sourceMapFilename: '[file].map' + }, + module: { + loaders: [ + { + test: /\.js$/, + loader: 'babel-loader' + }, + { + test: /\.scss$/, + loader: ExtractTextPlugin.extract("style-loader", "css-loader?sourceMap!sass-loader") + } + ] + }, + plugins: [ + new ExtractTextPlugin('aos.css'), + new webpack.optimize.UglifyJsPlugin() + ] +} From 443a159b231da8df96cf4fd1ed4f7fe370da5cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sajn=C3=B3g?= Date: Sat, 18 Jun 2016 14:54:01 +0200 Subject: [PATCH 03/16] update travis' branches whitelist --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b640e72..a95ceb1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ node_js: branches: only: - master - - dev + - (.+-dev$)|(^dev) env: global: From 984cc6e8cdde7525756c0bc4c86e121da1b211d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sajn=C3=B3g?= Date: Sat, 18 Jun 2016 14:59:11 +0200 Subject: [PATCH 04/16] format karma config --- karma.conf.js | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index 8d79df6..49e6e35 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,7 +1,7 @@ // Karma configuration // Generated on Mon Oct 19 2015 01:12:15 GMT+0200 (CEST) var isTravis = process.env.TRAVIS || false; -var browsers = isTravis ? [ 'Chrome_travis_ci' ] : ['Chrome']; +var browsers = isTravis ? ['Chrome_travis_ci'] : ['Chrome']; var singleRun = isTravis; module.exports = function(config) { @@ -11,8 +11,7 @@ module.exports = function(config) { frameworks: ['jasmine-jquery', 'jasmine'], files: [ - 'test/index.js', - { + 'test/index.js', { pattern: 'test/fixtures/**/*.html', watched: true, included: false, @@ -21,23 +20,20 @@ module.exports = function(config) { ], preprocessors: { - 'test/index.js': [ 'webpack' ] + 'test/index.js': ['webpack'] }, webpack: { devtool: 'inline-source-map', module: { - loaders: [ - { - test: /\.js?$/, - exclude: [/bower_components/, /node_modules/], - loader: 'babel' - }, - { - test: /\.scss$/, - loader: "css-loader?sourceMap!sass-loader" - } - ] + loaders: [{ + test: /\.js?$/, + exclude: [/bower_components/, /node_modules/], + loader: 'babel' + }, { + test: /\.scss$/, + loader: "css-loader?sourceMap!sass-loader" + }] } }, @@ -52,8 +48,8 @@ module.exports = function(config) { customLaunchers: { Chrome_travis_ci: { - base: 'Chrome', - flags: ['--no-sandbox'] + base: 'Chrome', + flags: ['--no-sandbox'] } }, From 579564f62002776fc76650caf20dba23cc52541a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sajn=C3=B3g?= Date: Sat, 18 Jun 2016 15:15:14 +0200 Subject: [PATCH 05/16] fix loading styles for testing --- karma.conf.js | 3 ++- test/aos.spec.js | 3 +++ test/calculateOffset.spec.js | 7 +++++++ test/elements.spec.js | 3 +++ test/fixtures/aos-offset.fixture.html | 1 - test/fixtures/aos.fixture.html | 1 - 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index 49e6e35..7a7e3f1 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -11,7 +11,8 @@ module.exports = function(config) { frameworks: ['jasmine-jquery', 'jasmine'], files: [ - 'test/index.js', { + 'test/index.js', + { pattern: 'test/fixtures/**/*.html', watched: true, included: false, diff --git a/test/aos.spec.js b/test/aos.spec.js index ac41702..76570c0 100644 --- a/test/aos.spec.js +++ b/test/aos.spec.js @@ -1,15 +1,18 @@ import $ from 'jquery'; import AOS from '../src/js/aos'; +jasmine.getStyleFixtures().fixturesPath = 'base/dist'; jasmine.getFixtures().fixturesPath = 'base/test/fixtures'; describe('AOS -> ', function() { beforeEach(function() { + jasmine.getStyleFixtures().load = 'aos.css'; jasmine.getFixtures().load('aos.fixture.html'); }); afterEach(function() { + jasmine.getStyleFixtures().cleanUp(); jasmine.getFixtures().cleanUp(); }); diff --git a/test/calculateOffset.spec.js b/test/calculateOffset.spec.js index ddc6654..8f16f22 100644 --- a/test/calculateOffset.spec.js +++ b/test/calculateOffset.spec.js @@ -3,15 +3,18 @@ import calculateOffset from '../src/js/helpers/calculateOffset'; const delay = 50; +jasmine.getStyleFixtures().fixturesPath = 'base/dist'; jasmine.getFixtures().fixturesPath = 'base/test/fixtures'; describe('Offset -> ', function() { beforeEach(function() { + jasmine.getStyleFixtures().load = 'aos.css'; jasmine.getFixtures().load('aos.fixture.html'); }); afterEach(function() { + jasmine.getStyleFixtures().cleanUp(); jasmine.getFixtures().cleanUp(); }); @@ -157,10 +160,12 @@ describe('Offset -> ', function() { describe('Offset on element with attr [aos-offset] -> set to "50" ', function() { beforeEach(function() { + jasmine.getStyleFixtures().load = 'aos.css'; jasmine.getFixtures().load('aos-offset.fixture.html'); }); afterEach(function() { + jasmine.getStyleFixtures().cleanUp(); jasmine.getFixtures().cleanUp(); }); @@ -196,11 +201,13 @@ describe('Offset on element with attr [aos-offset] -> set to "50" ', function() describe('Offset on element with attr [aos-offset] after AOS init -> set to "50" ', function() { beforeEach(function() { + jasmine.getStyleFixtures().load = 'aos.css'; jasmine.getFixtures().load('aos-offset.fixture.html'); $('.aos-item').addClass('aos-init'); }); afterEach(function() { + jasmine.getStyleFixtures().cleanUp(); jasmine.getFixtures().cleanUp(); }); diff --git a/test/elements.spec.js b/test/elements.spec.js index 9fc3d10..f8f046d 100644 --- a/test/elements.spec.js +++ b/test/elements.spec.js @@ -1,15 +1,18 @@ import $ from 'jquery'; import elements from '../src/js/helpers/elements'; +jasmine.getStyleFixtures().fixturesPath = 'base/dist'; jasmine.getFixtures().fixturesPath = 'base/test/fixtures'; describe('Elements helper (elements.js) -> ', function() { beforeEach(function() { + jasmine.getStyleFixtures().load = 'aos.css'; jasmine.getFixtures().load('aos.fixture.html'); }); afterEach(function() { + jasmine.getStyleFixtures().cleanUp(); jasmine.getFixtures().cleanUp(); }); diff --git a/test/fixtures/aos-offset.fixture.html b/test/fixtures/aos-offset.fixture.html index 3f01f5c..74d97e5 100644 --- a/test/fixtures/aos-offset.fixture.html +++ b/test/fixtures/aos-offset.fixture.html @@ -2,7 +2,6 @@ - -
-
-

Lorem ipsum

-
-
-

dolor sit amet

-
-
-

onsectetur adipisicing

-
-
+
diff --git a/demo/css/styles.css b/demo/css/styles.css index 6e9da8f..672e9f5 100644 --- a/demo/css/styles.css +++ b/demo/css/styles.css @@ -1,164 +1,39 @@ -body -{ - font-family: Helvetica,Tahoma; -}*, +body { + font-family: Helvetica,Tahoma; +} + +*, *:before, -*:after -{ - box-sizing: border-box; -}.colored-0 -{ - background: #1da4e2; -}.colored-1 -{ - background: #1ca1dd; -}.colored-2 -{ - background: #1c9dd9; -}.colored-3 -{ - background: #1b9ad4; -}.colored-4 -{ - background: #1b97d0; -}.colored-5 -{ - background: #1a94cb; -}.colored-6 -{ - background: #1a90c7; -}.colored-7 -{ - background: #198dc2; -}.colored-8 -{ - background: #188abe; -}.colored-9 -{ - background: #1886b9; -}.colored-10 -{ - background: #1783b5; -}.colored-11 -{ - background: #1780b0; -}.colored-12 -{ - background: #167dac; -}.colored-13 -{ - background: #1579a7; -}.colored-14 -{ - background: #1576a3; -}.colored-15 -{ - background: #14739e; -}.colored-16 -{ - background: #14709a; -}.colored-17 -{ - background: #136c95; -}.colored-18 -{ - background: #136991; -}.colored-19 -{ - background: #12668c; -}.colored-20 -{ - background: #116288; -}.colored-21 -{ - background: #115f83; -}.colored-22 -{ - background: #105c7f; -}.colored-23 -{ - background: #10597a; -}.colored-24 -{ - background: #0f5576; -}.colored-25 -{ - background: #0f5271; -}.colored-26 -{ - background: #0e4f6c; -}.colored-27 -{ - background: #0d4b68; -}.colored-28 -{ - background: #0d4863; -}.colored-29 -{ - background: #0c455f; -}.colored-30 -{ - background: #0c425a; -}.colored-31 -{ - background: #0b3e56; -}.colored-32 -{ - background: #0a3b51; -}.colored-33 -{ - background: #0a384d; -}.colored-34 -{ - background: #093448; -}.colored-35 -{ - background: #093144; -}.colored-36 -{ - background: #082e3f; -}.colored-37 -{ - background: #082b3b; -}.colored-38 -{ - background: #072736; -}.colored-39 -{ - background: #062432; -}.colored-40 -{ - background: #06212d; -}.colored-41 -{ - background: #051e29; -}.colored-42 -{ - background: #051a24; -}.aos-all -{ - width: 1000px; - max-width: 98%; - margin: 10vh auto 0 auto; -}.aos-item -{ - display: inline-block; - float: left; - width: 33.3333%; - height: 300px; - padding: 20px; -}.aos-item__inner -{ - position: relative; - width: 100%; - height: 100%; - padding: 30px; +*:after { + box-sizing: border-box; +} + +.aos-all { + width: 1000px; + max-width: 98%; + margin: 10vh auto 0 auto; +} + +.aos-item { + display: inline-block; + float: left; + width: 33.3333%; + height: 300px; + padding: 20px; +} - color: #fff; +.aos-item__inner { + position: relative; + width: 100%; + height: 100%; + background: #1da4e2; + line-height: 260px; + text-align: center; + color: #fff; } @media screen and (max-width: 800px) { - .aos-item { - width: 50%; - } + .aos-item { + width: 50%; + } } diff --git a/demo/index.html b/demo/simple.html similarity index 51% rename from demo/index.html rename to demo/simple.html index 018f23f..78c7260 100644 --- a/demo/index.html +++ b/demo/simple.html @@ -13,130 +13,130 @@
-

Lorem ipsum

+

1

-

dolor sit amet

+

2

-

onsectetur adipisicing

+

3

-

elit Saepe

+

4

-

labore iusto!

+

5

-

Quaerat id asperiores

+

6

-

porro odit

+

7

-

placeat ut fuga

+

8

-

aliquid omnis

+

9

-

dolorem dicta rem.

+

10

-

Lorem ipsum

+

11

-

dolor sit amet

+

12

-

onsectetur adipisicing

+

13

-

elit Saepe

+

14

-

labore iusto!

+

15

-

Quaerat id asperiores

+

16

-

porro odit

+

17

-

placeat ut fuga

+

18

-

aliquid omnis

+

19

-

dolorem dicta rem.

+

20

-

Lorem ipsum

+

21

-

dolor sit amet

+

22

-

onsectetur adipisicing

+

23

-

elit Saepe

+

24

-

labore iusto!

+

25

-

Quaerat id asperiores

+

26

-

porro odit

+

27

-

placeat ut fuga

+

28

-

aliquid omnis

+

29

-

dolorem dicta rem.

+

30

-

Lorem ipsum

+

31

-

dolor sit amet

+

32

-

onsectetur adipisicing

+

33

-

elit Saepe

+

34

-

labore iusto!

+

35

-

Quaerat id asperiores

+

36

-

porro odit

+

37

-

placeat ut fuga

+

38

-

aliquid omnis

+

39

-

dolorem dicta rem.

+

40

-

Lorem ipsum

+

41

-

dolor sit amet

+

42

From f8de46d2b40fd9e3f1b2f1b307fe6fbfa930ef68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sajn=C3=B3g?= Date: Mon, 20 Jun 2016 00:23:49 +0200 Subject: [PATCH 13/16] add changelog and contribution guide, update readme --- CHANGELOG.md | 41 +++++++++++++++++++++++++++++++++++++++++ CONTRIBUTING.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ README.md | 45 +++++++-------------------------------------- 3 files changed, 93 insertions(+), 38 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..cfe25bf --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,41 @@ +# Change Log + +## [Unreleased] + +### Added +- Add new CHANGELOG +- Add contribution guide +- Add emojis in README +- Add map file for styles + +### Changed +- Make `data-aos` attributes the default and only proper ones +- Use maps and loops in Sass +- Replace gulp with webpack +- Rewrite Karma config and use webpack to bundle tests +- Upgrade to ES6 +- Update documentation +- Update demos + +### Removed +- Remove `aos` attributes +- Remove gulp from build tools + +### Fixed +- Improve animations performance +- Fix styles loading in tests + +## [1.2.2] +### Fixed +- Fix AOS refreshing on asynchronously loaded elements + +## [1.2.1] +### Fixed +- Fix problem with using AOS as node package by setting main file in package.json + +## [1.2.0] +### Added +- Add compatibility with module systems + +### Fixed +- Fix AOS initializing when DOM is already loaded diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3711e74 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,45 @@ +# Contributing to AOS + +## Bugs + +Found a bug? Have a problem with AOS? Please check past issues, maybe someone already had that problem. If you don't find similar issue create new, but remember to add accurate informations so that I can dig into it straight away. If it's possible add CodePen example that presents called issue. + +## Development process + +AOS is built using webpack. + +### Setup + +- Install all dependencies: + + ``` + npm install + ``` + +- Run dev server: + + ``` + npm run dev + ``` + + This will run local webpack-dev-server and build AOS automatically. + +- Open browser and head to: + [http://localhost:8080/webpack-dev-server/](http://localhost:8080/webpack-dev-server/) + Server loads content from `demo` folder. + +Now you are ready to play with AOS. Browser should reload automatically as you change code in `src` folder. + +### Testing + +Before you create Pull Request make sure all tests are passing. + +In order to do so run: +``` +npm test +``` + +### Commiting changes + +If all tests are passing then you're good to go. Commit your changes, but remember to **not commit `dist` folder**. +Create well described Pull Request with as many informations as possible and wait for my answer :) I'd be happy to make a code review and put some thougths. diff --git a/README.md b/README.md index 1d7f36f..7a40ab9 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ # AOS - Animate on scroll library +[![NPM version](https://img.shields.io/npm/v/aos.svg?style=flat)](https://npmjs.org/package/aos) +[![NPM downloads](https://img.shields.io/npm/dm/aos.svg?style=flat)](https://npmjs.org/package/aos) [![Build Status](https://travis-ci.org/michalsnik/aos.svg?branch=master)](https://travis-ci.org/michalsnik/aos) Small library to animate elements on your page as you scroll. @@ -11,9 +13,8 @@ If you scroll back to top, element will animate to it's previous state and is re ### ๐Ÿš€ DEMO [Click here](http://michalsnik.github.io/aos/) -## Requirements - -* None -> from version 0.4.x AOS doesn't rely on jQuery anymore +## โ— Attention +> From version `2.0.0` attributes `aos` are no longer supported, always use `data-aos`. ## โš™ Setup @@ -275,42 +276,10 @@ You can choose one of these timing function to animate elements nicely: * ease-out-quart * ease-in-out-quart -## โœŒ๏ธ Contribution - -I use gulp to concatenate JS & CSS and minify it. - -First install all gulp dependencies: - -``` -npm install -``` - -And run gulp, to start localhost with livereload and tests: - -``` -gulp -``` +## โœŒ๏ธ Contribution [(click here)](CONTRIBUTION.md) -Now you're ready to roll. - -Head into `/demo` in your browser folder to test your code in real environment. +## ๐Ÿ“ Changelog [(click here)](CONTRIBUTION.md) ## โ”Questions -If you have any questions, ideas or whatsoever, please let me know in `issues` or message me directly. - -## ๐Ÿ“ Changelog - -#### 2.0.0 -- Make `data-aos` attributes the default ones -- Improve animations performance - -#### 1.2.2 -- Fix AOS refreshing on asynchronously loaded elements - -#### 1.2.1 -- Add main file to package.json - -#### 1.2.0 -- Add compatibility with module systems -- Improve AOS initializing +If you have any questions, ideas or whatsoever, please check [AOS contribution guide](CONTRIBUTION.md) and don't hesitate to create new a issue. From 3be2c6b4043c8bb40b12be3369484d453264783c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sajn=C3=B3g?= Date: Mon, 20 Jun 2016 00:43:26 +0200 Subject: [PATCH 14/16] update readme --- README.md | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7a40ab9..e07ec53 100755 --- a/README.md +++ b/README.md @@ -5,16 +5,27 @@ Small library to animate elements on your page as you scroll. -You may say it's like WOWJS, yeah - you're right, effect is similar to WOWJS, but i had different idea how to make such a plugin, so here it is. CSS3 driven scroll animation library. It's even smaller than already small WOWJS library. +You may say it's like WOWJS, yeah - you're right, effect is similar to WOWJS, but I had a different idea how to make such a plugin, so here it is. CSS3 driven scroll animation library. AOS allows you to animate elements as you scroll down, and up. -If you scroll back to top, element will animate to it's previous state and is ready to animate again if you scroll down. +If you scroll back to top, elements will animate to it's previous state and are ready to animate again if you scroll down. -### ๐Ÿš€ DEMO -[Click here](http://michalsnik.github.io/aos/) +๐Ÿ‘‰ To get a better understanding how this actually works, I encourage you to check [my post on CSS-tricks](https://css-tricks.com/aos-css-driven-scroll-animation-library/). + +------ + +### ๐Ÿš€ [Demo](http://michalsnik.github.io/aos/) + +### ๐ŸŒŸ Codepen Examples +- [Different build in animations](http://codepen.io/michalsnik/pen/WxNdvq) +- [With anchor setting in use](http://codepen.io/michalsnik/pen/jrOYVO) +- [With anchor-placement and different easing](http://codepen.io/michalsnik/pen/EyxoNm) +- [With simple custom animations](http://codepen.io/michalsnik/pen/WxvNvE) + +--- ## โ— Attention -> From version `2.0.0` attributes `aos` are no longer supported, always use `data-aos`. +From version `2.0.0` attributes `aos` are no longer supported, always use `data-aos`. ## โš™ Setup @@ -276,10 +287,10 @@ You can choose one of these timing function to animate elements nicely: * ease-out-quart * ease-in-out-quart -## โœŒ๏ธ Contribution [(click here)](CONTRIBUTION.md) +## โœŒ๏ธ [Contributing](CONTRIBUTING.md) -## ๐Ÿ“ Changelog [(click here)](CONTRIBUTION.md) +## ๐Ÿ“ [Changelog](CHANGELOG.md) ## โ”Questions -If you have any questions, ideas or whatsoever, please check [AOS contribution guide](CONTRIBUTION.md) and don't hesitate to create new a issue. +If you have any questions, ideas or whatsoever, please check [AOS contribution guide](CONTRIBUTING.md) and don't hesitate to create new issues. From 856552b140f3f3080dfe66ef0f40044c6cfb9965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sajn=C3=B3g?= Date: Mon, 20 Jun 2016 00:50:43 +0200 Subject: [PATCH 15/16] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e07ec53..75aaf68 100755 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ If you scroll back to top, elements will animate to it's previous state and are ๐Ÿ‘‰ To get a better understanding how this actually works, I encourage you to check [my post on CSS-tricks](https://css-tricks.com/aos-css-driven-scroll-animation-library/). ------- +--- ### ๐Ÿš€ [Demo](http://michalsnik.github.io/aos/) From b78e212b2d9eaa894b6c9fe1509a85718d6ed2d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sajn=C3=B3g?= Date: Mon, 20 Jun 2016 01:48:19 +0200 Subject: [PATCH 16/16] add logo to readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 75aaf68..c9689c8 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -# AOS - Animate on scroll library +[![AOS - Animate on scroll library](https://s32.postimg.org/ktvt59hol/aos_header.png)](http://michalsnik.github.io/aos/) + [![NPM version](https://img.shields.io/npm/v/aos.svg?style=flat)](https://npmjs.org/package/aos) [![NPM downloads](https://img.shields.io/npm/dm/aos.svg?style=flat)](https://npmjs.org/package/aos) [![Build Status](https://travis-ci.org/michalsnik/aos.svg?branch=master)](https://travis-ci.org/michalsnik/aos)