Latest repo

This commit is contained in:
Marc
2025-06-02 16:42:16 +00:00
parent 53ddf1a329
commit cde5fae175
27907 changed files with 3875388 additions and 1 deletions

4
node_modules/aos/.babelrc generated vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"presets": ["es2015"],
"plugins": ["transform-object-assign"]
}

14
node_modules/aos/.editorconfig generated vendored Normal file
View File

@@ -0,0 +1,14 @@
# editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false

10
node_modules/aos/.gitattributes generated vendored Normal file
View File

@@ -0,0 +1,10 @@
# Enforce Unix newlines
*.css text eol=lf
*.scss text eol=lf
*.html text eol=lf
*.js text eol=lf
*.md text eol=lf
*.svg text eol=lf
*.yml text eol=lf
# Don't diff or textually merge source maps
*.map binary

21
node_modules/aos/.travis.yml generated vendored Normal file
View File

@@ -0,0 +1,21 @@
language: node_js
sudo: false
node_js:
- '8'
env:
global:
before_install:
- export CHROME_BIN=chromium-browser
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
install:
- npm config set registry http://registry.npmjs.org/
- npm install -g karma
- npm install
cache:
directories:
- "$HOME/.nvm"

72
node_modules/aos/CHANGELOG.md generated vendored Normal file
View File

@@ -0,0 +1,72 @@
# Change Log
## [2.1.1]
- Clean styles, prefix variables, use !default, separate files for core and animations
## [2.1.0]
- Attach event listener to window instead of document for event `load`
## [2.0.4]
### Fixed
- Fix device detector (tablet setting)
### Changed
- Disable AOS on not supported browsers (<= IE9)
- Clean code around `disable` option
- Rewrite device detector using ES6 Class
## [2.0.3]
### Added
- Add `transform-object-assign` plugin for babel, so Object.assign works in IE
## [2.0.2]
### Fixed
- Fix include in arrays, so it works in IE
## [2.0.1]
### Fixed
- Add easings, after they were accidentaly ignored
## [2.0.0]
### 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

45
node_modules/aos/CONTRIBUTING.md generated vendored Normal file
View File

@@ -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.

22
node_modules/aos/LICENSE generated vendored Executable file
View File

@@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2015 Michał Sajnóg
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

303
node_modules/aos/README.md generated vendored Executable file
View File

@@ -0,0 +1,303 @@
[![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)
[![Gitter](https://badges.gitter.im/michalsnik/aos.svg)](https://gitter.im/michalsnik/aos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![Twitter Follow](https://img.shields.io/twitter/follow/michalsnik.svg?style=social)](https://twitter.com/michalsnik) [![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/home?status=AOS%20-%20Animate%20on%20Scroll%20library%0Ahttps%3A//github.com/michalsnik/aos)
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 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, elements will animate to it's previous state and are ready to animate again if you scroll down.
👉 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`.
## ⚙ Setup
### Install AOS
- Using `bower`
```bash
bower install aos --save
```
- Using `npm`
```bash
npm install aos --save
```
- Direct download -> [click here](https://github.com/michalsnik/aos/archive/master.zip)
### Link styles
```html
<link rel="stylesheet" href="bower_components/aos/dist/aos.css" />
```
### Add scripts
```html
<script src="bower_components/aos/dist/aos.js"></script>
```
AOS from version `1.2.0` is available as UMD module, so you can use it as AMD, Global, Node or ES6 module.
### Init AOS
```javascript
<script>
AOS.init();
</script>
```
## 🤔 How to use it?
### Basic usage
All you have to do is to add `data-aos` attribute to html element, like so:
```html
<div data-aos="animation_name">
```
Script will trigger "animation_name" animation on this element, if you scroll to it.
[Down below](https://github.com/michalsnik/aos#-animations) is a list of all available animations for now :)
### 🔥 Advanced settings
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 |
|---------------------------|-------------|---------------|---------|
| *`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[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 `[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 :)
`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
<div data-aos="fade-zoom-in" data-aos-offset="200" data-aos-easing="ease-in-sine" data-aos-duration="600">
```
```html
<div data-aos="flip-left" data-aos-delay="100" data-aos-anchor=".example-selector">
```
```html
<div data-aos="fade-up" data-aos-anchor-placement="top-center">
```
#### API
AOS object is exposed as a global variable, for now there are three methods available:
* `init` - initialize AOS
* `refresh` - recalculate all offsets and positions of elements (called on window resize)
* `refreshHard` - reinit array with AOS elements and trigger `refresh` (called on DOM changes that are related to `aos` elements)
Example execution:
```javascript
AOS.refresh();
```
By default AOS is watching for DOM changes and if there are any new elements loaded asynchronously or when something is removed from DOM it calls `refreshHard` automatically. In browsers that don't support `MutationObserver` like IE you might need to call `AOS.refreshHard()` by yourself.
`refresh` method is called on window resize and so on, as it doesn't require to build new store with AOS elements and should be as light as possible.
### Global settings
If you don't want to change setting for each element separately, you can change it globally.
To do this, pass options object to `init()` function, like so:
```javascript
<script>
AOS.init({
offset: 200,
duration: 600,
easing: 'ease-in-sine',
delay: 100,
});
</script>
```
#### Additional configuration
These settings can be set only in options object while initializing AOS.
| Setting | Description | Example value | Default value |
|---------------------------|-------------|---------------|---------|
| *`disable`* | Condition when AOS should be disabled | mobile | false |
| *`startEvent`* | Name of event, on which AOS should be initialized | exampleEvent | DOMContentLoaded |
##### Disabling AOS
If you want to disable AOS on certain device or under any statement you can set `disable` option. Like so:
```javascript
<script>
AOS.init({
disable: 'mobile'
});
</script>
```
There are several options that you can use to fit AOS perfectly into your project, you can pass one of three device types:
`mobile` (phones and tablets), `phone` or `tablet`. This will disable AOS on those certains devices. But if you want make your own condition, simple type your statement instead of device type name:
```javascript
disable: window.innerWidth < 1024
```
There is also posibility to pass a `function`, which should at the end return `true` or `false`:
```javascript
disable: function () {
var maxWidth = 1024;
return window.innerWidth < maxWidth;
}
```
##### Start event
If you don't want to initialize AOS on `DOMContentLoaded` event, you can pass your own event name and trigger it whenever you want. AOS is listening for this event on `document` element.
```javascript
<script>
AOS.init({
startEvent: 'someCoolEvent'
});
</script>
```
**Important note:** If you set `startEvent: 'load'` it will add event listener on `window` instead of `document`.
### 👻 Animations
There are serveral predefined animations you can use already:
* Fade animations:
* fade
* fade-up
* fade-down
* fade-left
* fade-right
* fade-up-right
* fade-up-left
* fade-down-right
* fade-down-left
* Flip animations:
* flip-up
* flip-down
* flip-left
* flip-right
* Slide animations:
* slide-up
* slide-down
* slide-left
* slide-right
* Zoom animations:
* zoom-in
* zoom-in-up
* zoom-in-down
* zoom-in-left
* zoom-in-right
* zoom-out
* zoom-out-up
* zoom-out-down
* zoom-out-left
* zoom-out-right
### Anchor placement:
* top-bottom
* top-center
* top-top
* center-bottom
* center-center
* center-top
* bottom-bottom
* bottom-center
* bottom-top
### Easing functions:
You can choose one of these timing function to animate elements nicely:
* linear
* ease
* ease-in
* ease-out
* ease-in-out
* ease-in-back
* ease-out-back
* ease-in-out-back
* ease-in-sine
* ease-out-sine
* ease-in-out-sine
* ease-in-quad
* ease-out-quad
* ease-in-out-quad
* ease-in-cubic
* ease-out-cubic
* ease-in-out-cubic
* ease-in-quart
* ease-out-quart
* ease-in-out-quart
## ✌️ [Contributing](CONTRIBUTING.md)
## 📝 [Changelog](CHANGELOG.md)
## ❔Questions
If you have any questions, ideas or whatsoever, please check [AOS contribution guide](CONTRIBUTING.md) and don't hesitate to create new issues.

40
node_modules/aos/bower.json generated vendored Executable file
View File

@@ -0,0 +1,40 @@
{
"name": "aos",
"version": "2.1.1",
"homepage": "git://github.com/michalsnik/aos.git",
"authors": [
"Michał Sajnóg <michal.sajnog@hotmail.com>"
],
"main": [
"dist/aos.js",
"dist/aos.css"
],
"moduleType": [
"amd",
"globals",
"node",
"es6"
],
"keywords": [
"scroll",
"css3",
"transition",
"transform",
"mousewheel",
"smooth",
"wow",
"animate"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests",
".gitignore",
"gulpfile.js",
"package.json"
],
"dependencies": {}
}

35
node_modules/aos/demo/async.html generated vendored Normal file
View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>AOS - Animate on scroll library</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="../dist/aos.css" />
</head>
<body>
<div id="aos-demo" class="aos-all"></div>
<script src="../dist/aos.js"></script>
<script>
AOS.init({
easing: 'ease-in-out-sine'
});
setInterval(addItem, 300);
var itemsCounter = 1;
var container = document.getElementById('aos-demo');
function addItem () {
if (itemsCounter > 42) return;
var item = document.createElement('div');
item.classList.add('aos-item');
item.setAttribute('data-aos', 'fade-up');
item.innerHTML = '<div class="aos-item__inner"><h3>' + itemsCounter + '</h3></div>';
container.appendChild(item);
itemsCounter++;
}
</script>
</body>
</html>

40
node_modules/aos/demo/css/styles.css generated vendored Normal file
View File

@@ -0,0 +1,40 @@
body {
font-family: Helvetica,Tahoma;
}
*,
*:before,
*: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;
}
.aos-item__inner {
position: relative;
width: 100%;
height: 100%;
float: left;
background: #1da4e2;
line-height: 260px;
text-align: center;
color: #fff;
}
@media screen and (max-width: 800px) {
.aos-item {
width: 50%;
}
}

163
node_modules/aos/demo/simple.html generated vendored Normal file
View File

@@ -0,0 +1,163 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>AOS - Animate on scroll library</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="../dist/aos.css" />
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div id="transcroller-body" class="aos-all">
<div class="aos-item" data-aos="fade-up">
<div class="aos-item__inner"><h3>1</h3></div>
</div>
<div class="aos-item" data-aos="fade-down">
<div class="aos-item__inner"><h3>2</h3></div>
</div>
<div class="aos-item" data-aos="zoom-out-down">
<div class="aos-item__inner"><h3>3</h3></div>
</div>
<div class="aos-item" data-aos="flip-down">
<div class="aos-item__inner"><h3>4</h3></div>
</div>
<div class="aos-item" data-aos="flip-up">
<div class="aos-item__inner"><h3>5</h3></div>
</div>
<div class="aos-item" data-aos="fade-down">
<div class="aos-item__inner"><h3>6</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>7</h3></div>
</div>
<div class="aos-item" data-aos="fade-down">
<div class="aos-item__inner"><h3>8</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>9</h3></div>
</div>
<div class="aos-item" data-aos="fade-down">
<div class="aos-item__inner"><h3>10</h3></div>
</div>
<div class="aos-item" data-aos="fade-up">
<div class="aos-item__inner"><h3>11</h3></div>
</div>
<div class="aos-item" data-aos="fade-down">
<div class="aos-item__inner"><h3>12</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>13</h3></div>
</div>
<div class="aos-item" data-aos="fade-up">
<div class="aos-item__inner"><h3>14</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>15</h3></div>
</div>
<div class="aos-item" data-aos="fade-up">
<div class="aos-item__inner"><h3>16</h3></div>
</div>
<div class="aos-item" data-aos="fade-down">
<div class="aos-item__inner"><h3>17</h3></div>
</div>
<div class="aos-item" data-aos="fade-up">
<div class="aos-item__inner"><h3>18</h3></div>
</div>
<div class="aos-item" data-aos="zoom-out">
<div class="aos-item__inner"><h3>19</h3></div>
</div>
<div class="aos-item" data-aos="fade-up">
<div class="aos-item__inner"><h3>20</h3></div>
</div>
<div class="aos-item" data-aos="zoom-out">
<div class="aos-item__inner"><h3>21</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>22</h3></div>
</div>
<div class="aos-item" data-aos="zoom-out-up">
<div class="aos-item__inner"><h3>23</h3></div>
</div>
<div class="aos-item" data-aos="zoom-out-down">
<div class="aos-item__inner"><h3>24</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>25</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>26</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>27</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>28</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>29</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>30</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>31</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>32</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>33</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>34</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>35</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>36</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>37</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>38</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>39</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>40</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>41</h3></div>
</div>
<div class="aos-item" data-aos="fade-in">
<div class="aos-item__inner"><h3>42</h3></div>
</div>
</div>
<script src="../dist/aos.js"></script>
<script>
AOS.init({
easing: 'ease-in-out-sine'
});
</script>
<!-- <script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.11/require.min.js"></script>
<script>
requirejs.config({
baseUrl: '../dist',
});
require(['aos'], function(AOS){
AOS.init({
easing: 'ease-in-out-sine'
});
});
</script> -->
</body>
</html>

1
node_modules/aos/dist/aos.css generated vendored Normal file

File diff suppressed because one or more lines are too long

1
node_modules/aos/dist/aos.js generated vendored Normal file

File diff suppressed because one or more lines are too long

63
node_modules/aos/karma.conf.js generated vendored Normal file
View File

@@ -0,0 +1,63 @@
// 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 singleRun = isTravis;
module.exports = function(config) {
config.set({
basePath: '',
browsers: browsers,
frameworks: ['jasmine-jquery', 'jasmine'],
files: [
'node_modules/babel-polyfill/dist/polyfill.js',
'test/index.js',
{
pattern: 'test/fixtures/**/*.html',
watched: true,
included: false,
served: true
}
],
preprocessors: {
'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"
}]
}
},
plugins: [
'karma-chrome-launcher',
'karma-jasmine-jquery',
'karma-jasmine',
'karma-webpack'
],
reporters: ['dots'],
customLaunchers: {
Chrome_travis_ci: {
base: 'Chrome',
flags: ['--no-sandbox']
}
},
port: 9876,
singleRun: singleRun,
colors: true,
logLevel: config.LOG_WARN
})
}

52
node_modules/aos/package.json generated vendored Normal file
View File

@@ -0,0 +1,52 @@
{
"name": "aos",
"version": "2.3.4",
"description": "Animate on scroll library",
"homepage": "https://michalsnik.github.io/aos/",
"author": "Michał Sajnóg <michal.sajnog@hotmail.com>",
"license": "MIT",
"main": "dist/aos.js",
"repository": {
"type": "git",
"url": "https://github.com/michalsnik/aos.git"
},
"bugs": {
"url": "https://github.com/michalsnik/aos/issues"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.9.1",
"babel-loader": "^6.2.4",
"babel-plugin-transform-object-assign": "^6.8.0",
"babel-polyfill": "^6.9.1",
"babel-preset-es2015": "^6.9.0",
"css-loader": "^0.28.0",
"extract-text-webpack-plugin": "^1.0.1",
"jasmine-core": "^2.3.4",
"jasmine-fixture": "^2.0.0",
"jasmine-jquery": "^2.1.1",
"jquery": "^3.1.1",
"karma": "^1.4.0",
"karma-chrome-launcher": "^2.0.0",
"karma-jasmine": "^1.1.0",
"karma-jasmine-jquery": "^0.1.1",
"karma-webpack": "^2.0.1",
"node-sass": "^4.3.0",
"phantomjs": "^2.1.7",
"postcss-loader": "^2.0.6",
"sass-loader": "^4.1.1",
"style-loader": "^0.18.2",
"webpack": "^1.13.1",
"webpack-dev-server": "^1.14.1"
},
"dependencies": {
"classlist-polyfill": "^1.0.3",
"lodash.debounce": "^4.0.6",
"lodash.throttle": "^4.0.1"
},
"scripts": {
"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"
}
}

5
node_modules/aos/postcss.config.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
module.exports = {
plugins: [
require('autoprefixer')
]
}

193
node_modules/aos/src/js/aos.js generated vendored Normal file
View File

@@ -0,0 +1,193 @@
/**
* *******************************************************
* AOS (Animate on scroll) - wowjs alternative
* made to animate elements on scroll in both directions
* *******************************************************
*/
import styles from './../sass/aos.scss';
// Modules & helpers
import throttle from 'lodash.throttle';
import debounce from 'lodash.debounce';
import observer 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',
throttleDelay: 99,
debounceDelay: 50,
disableMutationObserver: false,
};
/**
* 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;
}
};
/**
* Hard refresh
* create array with new elements and trigger refresh
*/
const refreshHard = function refreshHard() {
$aosElements = elements();
refresh();
};
/**
* Disable AOS
* Remove all attributes to reset applied styles
*/
const disable = function() {
$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');
});
};
/**
* Check if AOS should be disabled based on provided setting
*/
const isDisabled = function(optionDisable) {
return optionDisable === true ||
(optionDisable === 'mobile' && detect.mobile()) ||
(optionDisable === 'phone' && detect.phone()) ||
(optionDisable === 'tablet' && detect.tablet()) ||
(typeof optionDisable === 'function' && optionDisable() === true);
};
/**
* Initializing AOS
* - Create options merging defaults with user defined options
* - Set attributes on <body> 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();
// Detect not supported browsers (<=IE9)
// http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
const browserNotSupported = document.all && !window.atob;
/**
* Don't init plugin if option `disable` is set
* or when browser is not supported
*/
if (isDisabled(options.disable) || browserNotSupported) {
return disable();
}
/**
* Disable mutation observing if not supported
*/
if (!options.disableMutationObserver && !observer.isSupported()) {
console.info(`
aos: MutationObserver is not supported on this browser,
code mutations observing has been disabled.
You may have to call "refreshHard()" by yourself.
`);
options.disableMutationObserver = true;
}
/**
* 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 if (options.startEvent === 'load') {
// If start event is 'Load' - attach listener to window
window.addEventListener(options.startEvent, function() {
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, options.debounceDelay, true));
window.addEventListener('orientationchange', debounce(refresh, options.debounceDelay, true));
/**
* Handle scroll event to animate elements on scroll
*/
window.addEventListener('scroll', throttle(() => {
handleScroll($aosElements, options.once);
}, options.throttleDelay));
/**
* Observe [aos] elements
* If something is loaded by AJAX
* it'll refresh plugin automatically
*/
if (!options.disableMutationObserver) {
observer.ready('[data-aos]', refreshHard);
}
return $aosElements;
};
/**
* Export Public API
*/
module.exports = {
init,
refresh,
refreshHard
};

70
node_modules/aos/src/js/helpers/calculateOffset.js generated vendored Normal file
View File

@@ -0,0 +1,70 @@
/**
* Calculate offset
* basing on element's settings like:
* - anchor
* - offset
*
* @param {Node} el [Dom element]
* @return {Integer} [Final offset that will be used to trigger animation in good position]
*/
import getOffset from './../libs/offset';
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.anchor && document.querySelectorAll(attrs.anchor)) {
el = document.querySelectorAll(attrs.anchor)[0];
}
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;
}
if (!attrs.anchorPlacement && !attrs.offset && !isNaN(optionalOffset)) {
additionalOffset = optionalOffset;
}
return elementOffsetTop + additionalOffset;
};
export default calculateOffset;

33
node_modules/aos/src/js/helpers/detector.js generated vendored Normal file
View File

@@ -0,0 +1,33 @@
/**
* Device detector
*/
const fullNameRe = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;
const prefixRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i;
const fullNameMobileRe = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i;
const prefixMobileRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i;
function ua() {
return navigator.userAgent || navigator.vendor || window.opera || '';
}
class Detector {
phone() {
const a = ua();
return !!(fullNameRe.test(a) || prefixRe.test(a.substr(0, 4)));
}
mobile() {
const a = ua();
return !!(fullNameMobileRe.test(a) || prefixMobileRe.test(a.substr(0, 4)));
}
tablet() {
return this.mobile() && !this.phone();
}
};
export default new Detector;

11
node_modules/aos/src/js/helpers/elements.js generated vendored Normal file
View File

@@ -0,0 +1,11 @@
/**
* Generate initial array with elements as objects
* This array will be extended later with elements attributes values
* like 'position'
*/
const createArrayWithElements = function (elements) {
elements = elements || document.querySelectorAll('[data-aos]');
return Array.prototype.map.call(elements, node => ({ node }));
};
export default createArrayWithElements;

39
node_modules/aos/src/js/helpers/handleScroll.js generated vendored Normal file
View File

@@ -0,0 +1,39 @@
/**
* Set or remove aos-animate class
* @param {node} el element
* @param {int} top scrolled distance
* @param {void} 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');
}
}
};
/**
* Scroll logic - add or remove 'aos-animate' class on scroll
*
* @param {array} $elements array of elements nodes
* @param {bool} once plugin option
* @return {void}
*/
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);
});
};
export default handleScroll;

13
node_modules/aos/src/js/helpers/prepare.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
/* Clearing variables */
import calculateOffset from './calculateOffset';
const prepare = function ($elements, options) {
$elements.forEach((el, i) => {
el.node.classList.add('aos-init');
el.position = calculateOffset(el.node, options.offset);
});
return $elements;
};
export default prepare;

61
node_modules/aos/src/js/libs/observer.js generated vendored Normal file
View File

@@ -0,0 +1,61 @@
let callback = () => {};
function containsAOSNode(nodes) {
let i, currentNode, result;
for (i = 0; i < nodes.length; i += 1) {
currentNode = nodes[i];
if (currentNode.dataset && currentNode.dataset.aos) {
return true;
}
result = currentNode.children && containsAOSNode(currentNode.children);
if (result) {
return true;
}
}
return false;
}
function getMutationObserver() {
return window.MutationObserver ||
window.WebKitMutationObserver ||
window.MozMutationObserver;
}
function isSupported() {
return !!getMutationObserver();
}
function ready(selector, fn) {
const doc = window.document;
const MutationObserver = getMutationObserver();
const observer = new MutationObserver(check);
callback = fn;
observer.observe(doc.documentElement, {
childList: true,
subtree: true,
removedNodes: true
});
}
function check(mutations) {
if (!mutations) return;
mutations.forEach(mutation => {
const addedNodes = Array.prototype.slice.call(mutation.addedNodes);
const removedNodes = Array.prototype.slice.call(mutation.removedNodes);
const allNodes = addedNodes.concat(removedNodes);
if (containsAOSNode(allNodes)) {
return callback();
}
});
}
export default { isSupported, ready };

24
node_modules/aos/src/js/libs/offset.js generated vendored Normal file
View File

@@ -0,0 +1,24 @@
/**
* Get offset of DOM element Helper
* including these with translation
*
* @param {Node} el [DOM element]
* @return {Object} [top and left offset]
*/
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;
}
return {
top: _y,
left: _x
};
};
export default offset;

177
node_modules/aos/src/sass/_animations.scss generated vendored Normal file
View File

@@ -0,0 +1,177 @@
// Animations variables
$aos-distance: 100px !default;
/**
* Fade animations:
* fade
* fade-up, fade-down, fade-left, fade-right
* fade-up-right, fade-up-left, fade-down-right, fade-down-left
*/
[data-aos^='fade'][data-aos^='fade'] {
opacity: 0;
transition-property: opacity, transform;
&.aos-animate {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
[data-aos='fade-up'] {
transform: translate3d(0, $aos-distance, 0);
}
[data-aos='fade-down'] {
transform: translate3d(0, -$aos-distance, 0);
}
[data-aos='fade-right'] {
transform: translate3d(-$aos-distance, 0, 0);
}
[data-aos='fade-left'] {
transform: translate3d($aos-distance, 0, 0);
}
[data-aos='fade-up-right'] {
transform: translate3d(-$aos-distance, $aos-distance, 0);
}
[data-aos='fade-up-left'] {
transform: translate3d($aos-distance, $aos-distance, 0);
}
[data-aos='fade-down-right'] {
transform: translate3d(-$aos-distance, -$aos-distance, 0);
}
[data-aos='fade-down-left'] {
transform: translate3d($aos-distance, -$aos-distance, 0);
}
/**
* Zoom animations:
* zoom-in, zoom-in-up, zoom-in-down, zoom-in-left, zoom-in-right
* zoom-out, zoom-out-up, zoom-out-down, zoom-out-left, zoom-out-right
*/
[data-aos^='zoom'][data-aos^='zoom'] {
opacity: 0;
transition-property: opacity, transform;
&.aos-animate {
opacity: 1;
transform: translate3d(0, 0, 0) scale(1);
}
}
[data-aos='zoom-in'] {
transform: scale(.6);
}
[data-aos='zoom-in-up'] {
transform: translate3d(0, $aos-distance, 0) scale(.6);
}
[data-aos='zoom-in-down'] {
transform: translate3d(0, -$aos-distance, 0) scale(.6);
}
[data-aos='zoom-in-right'] {
transform: translate3d(-$aos-distance, 0, 0) scale(.6);
}
[data-aos='zoom-in-left'] {
transform: translate3d($aos-distance, 0, 0) scale(.6);
}
[data-aos='zoom-out'] {
transform: scale(1.2);
}
[data-aos='zoom-out-up'] {
transform: translate3d(0, $aos-distance, 0) scale(1.2);
}
[data-aos='zoom-out-down'] {
transform: translate3d(0, -$aos-distance, 0) scale(1.2);
}
[data-aos='zoom-out-right'] {
transform: translate3d(-$aos-distance, 0, 0) scale(1.2);
}
[data-aos='zoom-out-left'] {
transform: translate3d($aos-distance, 0, 0) scale(1.2);
}
/**
* Slide animations
*/
[data-aos^='slide'][data-aos^='slide'] {
transition-property: transform;
&.aos-animate {
transform: translate3d(0, 0, 0);
}
}
[data-aos='slide-up'] {
transform: translate3d(0, 100%, 0);
}
[data-aos='slide-down'] {
transform: translate3d(0, -100%, 0);
}
[data-aos='slide-right'] {
transform: translate3d(-100%, 0, 0);
}
[data-aos='slide-left'] {
transform: translate3d(100%, 0, 0);
}
/**
* Flip animations:
* flip-left, flip-right, flip-up, flip-down
*/
[data-aos^='flip'][data-aos^='flip'] {
backface-visibility: hidden;
transition-property: transform;
}
[data-aos='flip-left'] {
transform: perspective(2500px) rotateY(-100deg);
&.aos-animate {transform: perspective(2500px) rotateY(0);}
}
[data-aos='flip-right'] {
transform: perspective(2500px) rotateY(100deg);
&.aos-animate {transform: perspective(2500px) rotateY(0);}
}
[data-aos='flip-up'] {
transform: perspective(2500px) rotateX(-100deg);
&.aos-animate {transform: perspective(2500px) rotateX(0);}
}
[data-aos='flip-down'] {
transform: perspective(2500px) rotateX(100deg);
&.aos-animate {transform: perspective(2500px) rotateX(0);}
}

18
node_modules/aos/src/sass/_core.scss generated vendored Normal file
View File

@@ -0,0 +1,18 @@
// Generate Duration && Delay
[data-aos] {
@for $i from 1 through 60 {
body[data-aos-duration='#{$i * 50}'] &,
&[data-aos][data-aos-duration='#{$i * 50}'] {
transition-duration: #{$i * 50}ms;
}
body[data-aos-delay='#{$i * 50}'] &,
&[data-aos][data-aos-delay='#{$i * 50}'] {
transition-delay: 0;
&.aos-animate {
transition-delay: #{$i * 50}ms;
}
}
}
}

40
node_modules/aos/src/sass/_easing.scss generated vendored Normal file
View File

@@ -0,0 +1,40 @@
$aos-easing: (
linear: cubic-bezier(.250, .250, .750, .750),
ease: cubic-bezier(.250, .100, .250, 1),
ease-in: cubic-bezier(.420, 0, 1, 1),
ease-out: cubic-bezier(.000, 0, .580, 1),
ease-in-out: cubic-bezier(.420, 0, .580, 1),
ease-in-back: cubic-bezier(.6, -.28, .735, .045),
ease-out-back: cubic-bezier(.175, .885, .32, 1.275),
ease-in-out-back: cubic-bezier(.68, -.55, .265, 1.55),
ease-in-sine: cubic-bezier(.47, 0, .745, .715),
ease-out-sine: cubic-bezier(.39, .575, .565, 1),
ease-in-out-sine: cubic-bezier(.445, .05, .55, .95),
ease-in-quad: cubic-bezier(.55, .085, .68, .53),
ease-out-quad: cubic-bezier(.25, .46, .45, .94),
ease-in-out-quad: cubic-bezier(.455, .03, .515, .955),
ease-in-cubic: cubic-bezier(.55, .085, .68, .53),
ease-out-cubic: cubic-bezier(.25, .46, .45, .94),
ease-in-out-cubic: cubic-bezier(.455, .03, .515, .955),
ease-in-quart: cubic-bezier(.55, .085, .68, .53),
ease-out-quart: cubic-bezier(.25, .46, .45, .94),
ease-in-out-quart: cubic-bezier(.455, .03, .515, .955)
);
// Easings implementations
// Default timing function: 'ease'
[data-aos] {
@each $key, $val in $aos-easing {
body[data-aos-easing="#{$key}"] &,
&[data-aos][data-aos-easing="#{$key}"] {
transition-timing-function: $val;
}
}
}

3
node_modules/aos/src/sass/aos.scss generated vendored Normal file
View File

@@ -0,0 +1,3 @@
@import 'core';
@import 'easing';
@import 'animations';

51
node_modules/aos/test/aos.spec.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
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();
});
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(elementsCount).toEqual(elements.length);
});
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);
});
});

241
node_modules/aos/test/calculateOffset.spec.js generated vendored Normal file
View File

@@ -0,0 +1,241 @@
import $ from 'jquery';
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();
});
describe('with default option set to "0" -> ', function() {
var offset = 0;
it('on aos-item--1 should equal 0', function(done) {
var node = document.querySelector('.aos-item--1');
setTimeout(function() {
expect(calculateOffset(node, offset)).toBe(0);
done();
}, delay);
});
it('on aos-item--2 should equal 150', function(done) {
var node = document.querySelector('.aos-item--2');
setTimeout(function() {
expect(calculateOffset(node, offset)).toBe(150);
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');
setTimeout(function() {
expect(calculateOffset(node, offset)).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, offset)).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, offset)).toBe(800);
done();
}, delay);
});
});
describe('after AOS init -> ', function() {
beforeEach(function() {
$('.aos-item').addClass('aos-init');
});
describe('with option "offset" set to "50" => ', function() {
var offset = 50;
it('on aos-item--1 should equal 50', function(done) {
var node = document.querySelector('.aos-item--1');
setTimeout(function() {
expect(calculateOffset(node, offset)).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, offset)).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, 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');
setTimeout(function() {
expect(calculateOffset(node, offset)).toBe(0);
done();
}, delay);
});
it('on aos-item--2 should equal 150', function(done) {
var node = document.querySelector('.aos-item--2');
setTimeout(function() {
expect(calculateOffset(node, offset)).toBe(150);
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.getStyleFixtures().load = 'aos.css';
jasmine.getFixtures().load('aos-offset.fixture.html');
});
afterEach(function() {
jasmine.getStyleFixtures().cleanUp();
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);
});
});
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();
});
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);
});
});

56
node_modules/aos/test/elements.spec.js generated vendored Normal file
View File

@@ -0,0 +1,56 @@
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();
});
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);
}
}
});
});

35
node_modules/aos/test/fixtures/aos-offset.fixture.html generated vendored Normal file
View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
* {box-sizing: border-box;}
body {
margin: 0; padding: 0 20px; text-align: center;
}
.aos-item {
width: 100%; height: 130px; margin: 0 0 20px 0; background: #ccc;
}
</style>
</head>
<body class="body">
<div class="aos-item aos-item--1" data-aos-offset="50" data-aos="fade"></div>
<div class="aos-item aos-item--2" data-aos-offset="50" data-aos="fade-up"></div>
<div class="aos-item aos-item--3" data-aos-offset="50" data-aos="fade-down"></div>
<div class="aos-item aos-item--4" data-aos-offset="50" data-aos="fade-left"></div>
<div class="aos-item aos-item--5" data-aos-offset="50" data-aos="fade-right"></div>
<div class="aos-item aos-item--6" data-aos-offset="50" data-aos="flip-up"></div>
<div class="aos-item aos-item--7" data-aos-offset="50" data-aos="flip-down"></div>
<div class="aos-item aos-item--8" data-aos-offset="50" data-aos="flip-left"></div>
<div class="aos-item aos-item--9" data-aos-offset="50" data-aos="flip-right"></div>
<div class="aos-item aos-item--10" data-aos-offset="50" data-aos="zoom-in"></div>
<div class="aos-item aos-item--11" data-aos-offset="50" data-aos="zoom-in-up"></div>
<div class="aos-item aos-item--12" data-aos-offset="50" data-aos="zoom-in-down"></div>
<div class="aos-item aos-item--13" data-aos-offset="50" data-aos="zoom-in-left"></div>
<div class="aos-item aos-item--14" data-aos-offset="50" data-aos="zoom-in-right"></div>
<div class="aos-item aos-item--15" data-aos-offset="50" data-aos="slide-up"></div>
<div class="aos-item aos-item--16" data-aos-offset="50" data-aos="slide-down"></div>
<div class="aos-item aos-item--17" data-aos-offset="50" data-aos="slide-left"></div>
<div class="aos-item aos-item--18" data-aos-offset="50" data-aos="slide-right"></div>
</body>
</html>

35
node_modules/aos/test/fixtures/aos.fixture.html generated vendored Executable file
View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
* {box-sizing: border-box;}
body {
margin: 0; padding: 0 20px; text-align: center;
}
.aos-item {
width: 100%; height: 130px; margin: 0 0 20px 0; background: #ccc;
}
</style>
</head>
<body class="body">
<div class="aos-item aos-item--1" data-aos="fade"></div>
<div class="aos-item aos-item--2" data-aos="fade-up"></div>
<div class="aos-item aos-item--3" data-aos="fade-down"></div>
<div class="aos-item aos-item--4" data-aos="fade-left"></div>
<div class="aos-item aos-item--5" data-aos="fade-right"></div>
<div class="aos-item aos-item--6" data-aos="flip-up"></div>
<div class="aos-item aos-item--7" data-aos="flip-down"></div>
<div class="aos-item aos-item--8" data-aos="flip-left"></div>
<div class="aos-item aos-item--9" data-aos="flip-right"></div>
<div class="aos-item aos-item--10" data-aos="zoom-in"></div>
<div class="aos-item aos-item--11" data-aos="zoom-in-up"></div>
<div class="aos-item aos-item--12" data-aos="zoom-in-down"></div>
<div class="aos-item aos-item--13" data-aos="zoom-in-left"></div>
<div class="aos-item aos-item--14" data-aos="zoom-in-right"></div>
<div class="aos-item aos-item--15" data-aos="slide-up"></div>
<div class="aos-item aos-item--16" data-aos="slide-down"></div>
<div class="aos-item aos-item--17" data-aos="slide-left"></div>
<div class="aos-item aos-item--18" data-aos="slide-right"></div>
</body>
</html>

3
node_modules/aos/test/index.js generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import './aos.spec.js';
import './elements.spec.js';
import './calculateOffset.spec.js';

33
node_modules/aos/webpack.config.js generated vendored Normal file
View File

@@ -0,0 +1,33 @@
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var autoprefixer = require('autoprefixer');
module.exports = {
entry: './src/js/aos.js',
output: {
path: './dist',
publicPath: 'dist/',
filename: 'aos.js',
library: 'AOS',
libraryTarget: 'umd',
},
devServer: {
contentBase: 'demo/'
},
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader'
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract("style-loader", "css-loader?sourceMap!sass-loader!postcss-loader")
}
]
},
plugins: [
new ExtractTextPlugin('aos.css'),
new webpack.optimize.UglifyJsPlugin()
]
}

5660
node_modules/aos/yarn.lock generated vendored Normal file

File diff suppressed because it is too large Load Diff