adding initial fast-api
This commit is contained in:
47
fast-api/bower_components/Morphext/.bower.json
vendored
Normal file
47
fast-api/bower_components/Morphext/.bower.json
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"name": "Morphext",
|
||||
"version": "2.4.4",
|
||||
"description": "A simple, high-performance and cross-browser jQuery rotating / carousel plugin for text phrases powered by Animate.css.",
|
||||
"authors": [
|
||||
"Ian Lai <ian@fyianlai.com>"
|
||||
],
|
||||
"main": [
|
||||
"dist/morphext.min.js",
|
||||
"dist/morphext.css"
|
||||
],
|
||||
"keywords": [
|
||||
"jquery",
|
||||
"text rotator",
|
||||
"rotating text",
|
||||
"ticker",
|
||||
"cycle",
|
||||
"animate.css",
|
||||
"text animation",
|
||||
"carousel",
|
||||
"inline"
|
||||
],
|
||||
"license": "http://ian.mit-license.org/",
|
||||
"private": false,
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"test",
|
||||
"tests"
|
||||
],
|
||||
"dependencies": {
|
||||
"animate.css": "~3.2.5",
|
||||
"jquery": "~2.1.4"
|
||||
},
|
||||
"homepage": "https://github.com/MrSaints/Morphext",
|
||||
"_release": "2.4.4",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "2.4.4",
|
||||
"commit": "5e534f48aaadfc7cc8ce415c472e56b9badf7c15"
|
||||
},
|
||||
"_source": "https://github.com/MrSaints/Morphext.git",
|
||||
"_target": "^2.4.4",
|
||||
"_originalSource": "Morphext",
|
||||
"_direct": true
|
||||
}
|
||||
20
fast-api/bower_components/Morphext/Gruntfile.coffee
vendored
Normal file
20
fast-api/bower_components/Morphext/Gruntfile.coffee
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
module.exports = (grunt) ->
|
||||
grunt.initConfig
|
||||
pkg: grunt.file.readJSON 'package.json'
|
||||
|
||||
uglify:
|
||||
options:
|
||||
banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
|
||||
'<%= grunt.template.today("yyyy-mm-dd") %> */'
|
||||
dist:
|
||||
files:
|
||||
'dist/morphext.min.js': ['dist/morphext.js']
|
||||
|
||||
eslint:
|
||||
all: ['dist/morphext.js']
|
||||
|
||||
grunt.loadNpmTasks 'grunt-contrib-uglify'
|
||||
grunt.loadNpmTasks 'grunt-eslint'
|
||||
|
||||
grunt.registerTask 'default', ['test', 'uglify']
|
||||
grunt.registerTask 'test', ['eslint']
|
||||
20
fast-api/bower_components/Morphext/LICENSE
vendored
Normal file
20
fast-api/bower_components/Morphext/LICENSE
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
Copyright © 2014 Ian Lai <ian@fyianlai.com>
|
||||
|
||||
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.
|
||||
128
fast-api/bower_components/Morphext/README.md
vendored
Normal file
128
fast-api/bower_components/Morphext/README.md
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
Morphext
|
||||
========
|
||||
|
||||
[](https://david-dm.org/MrSaints/Morphext#info=devDependencies)
|
||||
|
||||
A simple, high-performance and cross-browser [jQuery][jquery] rotating / carousel plugin for text phrases powered by [Animate.css][animatecss]. It is more succinctly described by [Softpedia](http://webscripts.softpedia.com/script/Text-Management/Text-Tools/Morphext-82875.html) as:
|
||||
|
||||
> A [jQuery][jquery] plugin for creating text-based carousels, rotating small or large pieces of text one after the other, just like a slider does with images... This can be a great tool for displaying catch phrases, mission statements, tag lines, and so on.
|
||||
|
||||
If you would like to achieve a similar effect with more flexibility (e.g. out animation) and with HTML objects rather than text phrases (e.g. unordered list items), please check out [Morphist][morphist].
|
||||
|
||||
[Website][website] / [Demo][demo]
|
||||
|
||||
|
||||
Install
|
||||
-------
|
||||
|
||||
Download from the [project page][downloads].
|
||||
|
||||
Install with [Bower][bower]: `bower install --save Morphext`
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
1. Import the latest [Animate.css][animatecss] and [jQuery][jquery] library into your HTML.
|
||||
|
||||
2. Import `morphext.css` and include `morphext.min.js` in your HTML document.
|
||||
|
||||
3. Encapsulate your rotating phrases in an element and separate each phrase with a comma or a separator of your choice:
|
||||
|
||||
```html
|
||||
I am a <span id="js-rotating">So Simple, Very Doge, Much Wow, Such Cool</span> Text Rotator
|
||||
```
|
||||
|
||||
4. Trigger the plugin by calling Morphext() on the element containing the rotating phrases:
|
||||
|
||||
```js
|
||||
$("#js-rotating").Morphext();
|
||||
```
|
||||
|
||||
A demo titled `index.html` is included in this repository. Open it to see the end-result.
|
||||
|
||||
|
||||
Options
|
||||
-------
|
||||
|
||||
Morphext exposes the following options to alter the behaviour of the plugin:
|
||||
|
||||
Option | Type | Default | Description
|
||||
--- | --- | --- | ---
|
||||
animation | `string` | `bounceIn` | The [in] animation type. Refer to [Animate.css][animatecss] for a list of available animations.
|
||||
separator | `string` | `,` | An array of phrases to rotate are created based on this separator. Change it if you wish to separate the phrases differently (e.g. So Simple / Very Doge / Much Wow / Such Cool).
|
||||
speed | `int` | `2000` | The delay between the changing of each phrase in milliseconds.
|
||||
complete | `object Function` | `null` | A callback that is executed after an item is animated in.
|
||||
|
||||
They may be used like so:
|
||||
|
||||
```js
|
||||
$("#js-rotating").Morphext({
|
||||
animation: "fadeIn", // Overrides default "bounceIn"
|
||||
separator: "|", // Overrides default ","
|
||||
speed: 3000, // Overrides default 2000
|
||||
complete: function () {
|
||||
// Overrides default empty function
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
The plugin relies heavily on [Animate.css][animatecss] for its [smooth, high performance animations](http://www.html5rocks.com/en/tutorials/speed/high-performance-animations/) to transition between each phrase. Thus, the default animation speed (different from the interval between each phrase as described above) may be altered via CSS:
|
||||
|
||||
```css
|
||||
#yourElement, .yourClass {
|
||||
/* Overrides Animate.css 1s duration */
|
||||
-vendor-animation-duration: 3s;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
"Issues"
|
||||
----------
|
||||
|
||||
Issue | Description | Solution
|
||||
--- | --- | ---
|
||||
Viewport | Certain animations (e.g. "up" and "down") by [Animate.css][animatecss] involves translating the element beyond the viewport thereby leading to unintended vertical and/or horizontal whitespace (further evident by the scrollbar "following" the animation effect. This is not a bug. | It may be eradicated by applying `overflow: hidden;` (CSS) to the parent of the element being animated.
|
||||
JavaScript | JavaScript is required for the addition / removal of elements with [Animate.css][animatecss] [CSS animation] classes thereby creating the "transitioning effect". If JavaScript is disabled or unavailable, nothing will happen. All the phrases and its separator will be shown as it is (graceful degradation). | N/A
|
||||
CSS3 | [Animate.css][animatecss] relies on CSS3 animations and transformations (available in most modern browsers). If CSS3 is disabled or unavailable, the phrases will continue to transition from one to another (assuming JavaScript is enabled), but there will be no animation effect. | No fallback is provided by this plugin. You may however, handle the fallback through the use of [Modernizr](http://modernizr.com/) (for feature detection) and [polyfills](http://html5polyfill.com/).
|
||||
|
||||
Should you encounter any problems or require assistance with this plugin, simply open a GitHub issue in this repository or you may contact [me via Twitter][twitter].
|
||||
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
- [jQuery][jquery]
|
||||
- [Animate.css][animatecss]
|
||||
|
||||
|
||||
Others
|
||||
------
|
||||
|
||||
Native ports of Morphext have been developed in other JavaScript frameworks (e.g. [React](http://facebook.github.io/react/) and [Polymer](http://www.polymer-project.org/)):
|
||||
|
||||
- [Morphext React][morphext-react]
|
||||
- [Morphext Polymer][morphext-polymer]
|
||||
|
||||
They are not part of the official plugin development and the approach used in developing these ports may not be idiomatic. Please use them at your own risk.
|
||||
|
||||
Issues and pull requests are welcomed.
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
Morphext is licensed under the MIT license [(http://ian.mit-license.org/)](http://ian.mit-license.org/).
|
||||
|
||||
[website]: http://morphext.fyianlai.com/
|
||||
[twitter]: https://www.twitter.com/MrSaints
|
||||
[demo]: http://www.enactuslse.co.uk/
|
||||
[downloads]: https://github.com/MrSaints/Morphext/releases
|
||||
|
||||
[bower]: http://bower.io/
|
||||
[jquery]: https://www.jquery.com/
|
||||
[animatecss]: //daneden.github.io/animate.css/
|
||||
|
||||
[morphist]: https://github.com/MrSaints/Morphist
|
||||
[morphext-react]: https://gist.github.com/MrSaints/7e84c68c086d5a6a3ee2#file-morphext-react-jsx
|
||||
[morphext-polymer]: https://gist.github.com/MrSaints/7e84c68c086d5a6a3ee2#file-morphext-polymer-html
|
||||
36
fast-api/bower_components/Morphext/bower.json
vendored
Normal file
36
fast-api/bower_components/Morphext/bower.json
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "Morphext",
|
||||
"version": "2.4.4",
|
||||
"description": "A simple, high-performance and cross-browser jQuery rotating / carousel plugin for text phrases powered by Animate.css.",
|
||||
"authors": [
|
||||
"Ian Lai <ian@fyianlai.com>"
|
||||
],
|
||||
"main": [
|
||||
"dist/morphext.min.js",
|
||||
"dist/morphext.css"
|
||||
],
|
||||
"keywords": [
|
||||
"jquery",
|
||||
"text rotator",
|
||||
"rotating text",
|
||||
"ticker",
|
||||
"cycle",
|
||||
"animate.css",
|
||||
"text animation",
|
||||
"carousel",
|
||||
"inline"
|
||||
],
|
||||
"license": "http://ian.mit-license.org/",
|
||||
"private": false,
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"test",
|
||||
"tests"
|
||||
],
|
||||
"dependencies": {
|
||||
"animate.css": "~3.2.5",
|
||||
"jquery": "~2.1.4"
|
||||
}
|
||||
}
|
||||
3
fast-api/bower_components/Morphext/dist/morphext.css
vendored
Normal file
3
fast-api/bower_components/Morphext/dist/morphext.css
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
.morphext > .animated {
|
||||
display: inline-block;
|
||||
}
|
||||
77
fast-api/bower_components/Morphext/dist/morphext.js
vendored
Normal file
77
fast-api/bower_components/Morphext/dist/morphext.js
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
/*!
|
||||
* Morphext - Text Rotating Plugin for jQuery
|
||||
* https://github.com/MrSaints/Morphext
|
||||
*
|
||||
* Built on jQuery Boilerplate
|
||||
* http://jqueryboilerplate.com/
|
||||
*
|
||||
* Copyright 2014 Ian Lai and other contributors
|
||||
* Released under the MIT license
|
||||
* http://ian.mit-license.org/
|
||||
*/
|
||||
|
||||
/*eslint-env browser */
|
||||
/*global jQuery:false */
|
||||
/*eslint-disable no-underscore-dangle */
|
||||
|
||||
(function ($) {
|
||||
"use strict";
|
||||
|
||||
var pluginName = "Morphext",
|
||||
defaults = {
|
||||
animation: "bounceIn",
|
||||
separator: ",",
|
||||
speed: 2000,
|
||||
complete: $.noop
|
||||
};
|
||||
|
||||
function Plugin (element, options) {
|
||||
this.element = $(element);
|
||||
|
||||
this.settings = $.extend({}, defaults, options);
|
||||
this._defaults = defaults;
|
||||
this._init();
|
||||
}
|
||||
|
||||
Plugin.prototype = {
|
||||
_init: function () {
|
||||
var $that = this;
|
||||
this.phrases = [];
|
||||
|
||||
this.element.addClass("morphext");
|
||||
|
||||
$.each(this.element.text().split(this.settings.separator), function (key, value) {
|
||||
$that.phrases.push($.trim(value));
|
||||
});
|
||||
|
||||
this.index = -1;
|
||||
this.animate();
|
||||
this.start();
|
||||
},
|
||||
animate: function () {
|
||||
this.index = ++this.index % this.phrases.length;
|
||||
this.element[0].innerHTML = "<span class=\"animated " + this.settings.animation + "\">" + this.phrases[this.index] + "</span>";
|
||||
|
||||
if ($.isFunction(this.settings.complete)) {
|
||||
this.settings.complete.call(this);
|
||||
}
|
||||
},
|
||||
start: function () {
|
||||
var $that = this;
|
||||
this._interval = setInterval(function () {
|
||||
$that.animate();
|
||||
}, this.settings.speed);
|
||||
},
|
||||
stop: function () {
|
||||
this._interval = clearInterval(this._interval);
|
||||
}
|
||||
};
|
||||
|
||||
$.fn[pluginName] = function (options) {
|
||||
return this.each(function() {
|
||||
if (!$.data(this, "plugin_" + pluginName)) {
|
||||
$.data(this, "plugin_" + pluginName, new Plugin(this, options));
|
||||
}
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
||||
1
fast-api/bower_components/Morphext/dist/morphext.min.js
vendored
Normal file
1
fast-api/bower_components/Morphext/dist/morphext.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/*! Morphext - v2.4.4 - 2015-05-21 */!function(a){"use strict";function b(b,c){this.element=a(b),this.settings=a.extend({},d,c),this._defaults=d,this._init()}var c="Morphext",d={animation:"bounceIn",separator:",",speed:2e3,complete:a.noop};b.prototype={_init:function(){var b=this;this.phrases=[],this.element.addClass("morphext"),a.each(this.element.text().split(this.settings.separator),function(c,d){b.phrases.push(a.trim(d))}),this.index=-1,this.animate(),this.start()},animate:function(){this.index=++this.index%this.phrases.length,this.element[0].innerHTML='<span class="animated '+this.settings.animation+'">'+this.phrases[this.index]+"</span>",a.isFunction(this.settings.complete)&&this.settings.complete.call(this)},start:function(){var a=this;this._interval=setInterval(function(){a.animate()},this.settings.speed)},stop:function(){this._interval=clearInterval(this._interval)}},a.fn[c]=function(d){return this.each(function(){a.data(this,"plugin_"+c)||a.data(this,"plugin_"+c,new b(this,d))})}}(jQuery);
|
||||
29
fast-api/bower_components/Morphext/index.html
vendored
Normal file
29
fast-api/bower_components/Morphext/index.html
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="no-js">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Morphext Example / Demo</title>
|
||||
<meta name="description" content="A simple, high-performance and cross-browser jQuery rotating / carousel plugin for text phrases powered by Animate.css.">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="bower_components/animate.css/animate.min.css">
|
||||
<link rel="stylesheet" href="dist/morphext.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="text-align:center">
|
||||
I am a <span id="js-rotating">So Simple, Very Doge, Much Wow, Such Cool</span> Text Rotator
|
||||
</div>
|
||||
|
||||
<script src="//cdn.jsdelivr.net/jquery/2.1.3/jquery.min.js"></script>
|
||||
<script>window.jQuery || document.write('<script src="bower_components/jquery/jquery.min.js"><\/script>')</script>
|
||||
<script src="dist/morphext.js"></script>
|
||||
<script>
|
||||
$("#js-rotating").Morphext({
|
||||
animation: "rotateIn",
|
||||
complete: function () {
|
||||
console.log("This is called after a phrase is animated in! Current phrase index: " + this.index);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
29
fast-api/bower_components/Morphext/package.json
vendored
Normal file
29
fast-api/bower_components/Morphext/package.json
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "Morphext",
|
||||
"version": "2.4.4",
|
||||
"description": "A simple, high-performance and cross-browser jQuery rotating / carousel plugin for text phrases powered by Animate.css.",
|
||||
"main": "Gruntfile.coffee",
|
||||
"scripts": {
|
||||
"test": "grunt test"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/MrSaints/Morphext.git"
|
||||
},
|
||||
"author": "Ian Lai <ian@fyianlai.com>",
|
||||
"licenses": [
|
||||
{
|
||||
"type": "MIT",
|
||||
"url": "http://ian.mit-license.org/"
|
||||
}
|
||||
],
|
||||
"bugs": {
|
||||
"url": "https://github.com/MrSaints/Morphext/issues"
|
||||
},
|
||||
"homepage": "https://github.com/MrSaints/Morphext",
|
||||
"devDependencies": {
|
||||
"grunt": "^0.4.5",
|
||||
"grunt-contrib-uglify": "^0.9.1",
|
||||
"grunt-eslint": "^13.0.0"
|
||||
}
|
||||
}
|
||||
23
fast-api/bower_components/animate.css/.bower.json
vendored
Normal file
23
fast-api/bower_components/animate.css/.bower.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "animate.css",
|
||||
"version": "3.2.6",
|
||||
"main": "./animate.css",
|
||||
"ignore": [
|
||||
".*",
|
||||
"src",
|
||||
"*.yml",
|
||||
"Gemfile",
|
||||
"Gemfile.lock",
|
||||
"*.md"
|
||||
],
|
||||
"homepage": "https://github.com/daneden/animate.css",
|
||||
"_release": "3.2.6",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "3.2.6",
|
||||
"commit": "64d14c1b65c89d588aefe6fccd3a8b76eefd534a"
|
||||
},
|
||||
"_source": "https://github.com/daneden/animate.css.git",
|
||||
"_target": "~3.2.5",
|
||||
"_originalSource": "animate.css"
|
||||
}
|
||||
79
fast-api/bower_components/animate.css/Gruntfile.js
vendored
Normal file
79
fast-api/bower_components/animate.css/Gruntfile.js
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
module.exports = function(grunt) {
|
||||
|
||||
require('load-grunt-tasks')(grunt);
|
||||
|
||||
var concatAnim;
|
||||
|
||||
grunt.initConfig({
|
||||
|
||||
pkg: grunt.file.readJSON('package.json'),
|
||||
|
||||
concat: {
|
||||
dist: {
|
||||
src: [ 'source/_base.css', 'source/**/*.css' ], // _base.css required for .animated helper class
|
||||
dest: 'animate.css'
|
||||
}
|
||||
},
|
||||
|
||||
autoprefixer: { // https://github.com/nDmitry/grunt-autoprefixer
|
||||
options: {
|
||||
browsers: ['last 2 versions', 'bb 10']
|
||||
},
|
||||
no_dest: {
|
||||
src: 'animate.css' // output file
|
||||
}
|
||||
},
|
||||
|
||||
cssmin: {
|
||||
minify: {
|
||||
src: ['animate.css'],
|
||||
dest: 'animate.min.css',
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
css: {
|
||||
files: [ 'source/**/*', 'animate-config.json' ],
|
||||
tasks: ['default']
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// fuction to perform custom task
|
||||
concatAnim = function () {
|
||||
|
||||
var categories = grunt.file.readJSON('animate-config.json'),
|
||||
category, files, file,
|
||||
target = [ 'source/_base.css' ],
|
||||
count = 0;
|
||||
|
||||
for ( category in categories ) {
|
||||
if ( categories.hasOwnProperty(category) ) {
|
||||
files = categories[category]
|
||||
for (file in files) {
|
||||
if ( files.hasOwnProperty(file) && files[file] ) {
|
||||
target.push('source/' + category + '/' + file + '.css');
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!count) {
|
||||
grunt.log.writeln('No animations activated.');
|
||||
} else {
|
||||
grunt.log.writeln(count + (count > 1 ? ' animations' : ' animation') + ' activated.');
|
||||
}
|
||||
|
||||
grunt.config('concat', { 'animate.css': target });
|
||||
grunt.task.run('concat');
|
||||
|
||||
};
|
||||
|
||||
// register task
|
||||
grunt.registerTask('concat-anim', 'Concatenates activated animations', concatAnim); // custom task
|
||||
grunt.registerTask('default', ['concat-anim', 'autoprefixer', 'cssmin']);
|
||||
grunt.registerTask('dev', ['watch']);
|
||||
|
||||
};
|
||||
118
fast-api/bower_components/animate.css/animate-config.json
vendored
Normal file
118
fast-api/bower_components/animate.css/animate-config.json
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
{
|
||||
|
||||
"attention_seekers": {
|
||||
"bounce": true,
|
||||
"flash": true,
|
||||
"pulse": true,
|
||||
"rubberBand": true,
|
||||
"shake": true,
|
||||
"swing": true,
|
||||
"tada": true,
|
||||
"wobble": true
|
||||
},
|
||||
|
||||
"bouncing_entrances": {
|
||||
"bounceIn": true,
|
||||
"bounceInDown": true,
|
||||
"bounceInLeft": true,
|
||||
"bounceInRight": true,
|
||||
"bounceInUp": true
|
||||
},
|
||||
|
||||
"bouncing_exits": {
|
||||
"bounceOut": true,
|
||||
"bounceOutDown": true,
|
||||
"bounceOutLeft": true,
|
||||
"bounceOutRight": true,
|
||||
"bounceOutUp": true
|
||||
},
|
||||
|
||||
"fading_entrances": {
|
||||
"fadeIn": true,
|
||||
"fadeInDown": true,
|
||||
"fadeInDownBig": true,
|
||||
"fadeInLeft": true,
|
||||
"fadeInLeftBig": true,
|
||||
"fadeInRight": true,
|
||||
"fadeInRightBig": true,
|
||||
"fadeInUp": true,
|
||||
"fadeInUpBig": true
|
||||
},
|
||||
|
||||
"fading_exits": {
|
||||
"fadeOut": true,
|
||||
"fadeOutDown": true,
|
||||
"fadeOutDownBig": true,
|
||||
"fadeOutLeft": true,
|
||||
"fadeOutLeftBig": true,
|
||||
"fadeOutRight": true,
|
||||
"fadeOutRightBig": true,
|
||||
"fadeOutUp": true,
|
||||
"fadeOutUpBig": true
|
||||
},
|
||||
|
||||
"flippers": {
|
||||
"flip": true,
|
||||
"flipInX": true,
|
||||
"flipInY": true,
|
||||
"flipOutX": true,
|
||||
"flipOutY": true
|
||||
},
|
||||
|
||||
"lightspeed": {
|
||||
"lightSpeedIn": true,
|
||||
"lightSpeedOut": true
|
||||
},
|
||||
|
||||
"rotating_entrances": {
|
||||
"rotateIn": true,
|
||||
"rotateInDownLeft": true,
|
||||
"rotateInDownRight": true,
|
||||
"rotateInUpLeft": true,
|
||||
"rotateInUpRight": true
|
||||
},
|
||||
|
||||
"rotating_exits": {
|
||||
"rotateOut": true,
|
||||
"rotateOutDownLeft": true,
|
||||
"rotateOutDownRight": true,
|
||||
"rotateOutUpLeft": true,
|
||||
"rotateOutUpRight": true
|
||||
},
|
||||
|
||||
"specials": {
|
||||
"hinge": true,
|
||||
"rollIn": true,
|
||||
"rollOut": true
|
||||
},
|
||||
|
||||
"zooming_entrances": {
|
||||
"zoomIn": true,
|
||||
"zoomInDown": true,
|
||||
"zoomInLeft": true,
|
||||
"zoomInRight": true,
|
||||
"zoomInUp": true
|
||||
},
|
||||
|
||||
"zooming_exits": {
|
||||
"zoomOut": true,
|
||||
"zoomOutDown": true,
|
||||
"zoomOutLeft": true,
|
||||
"zoomOutRight": true,
|
||||
"zoomOutUp": true
|
||||
},
|
||||
|
||||
"sliding_entrances": {
|
||||
"slideInDown": true,
|
||||
"slideInLeft": true,
|
||||
"slideInRight": true,
|
||||
"slideInUp": true
|
||||
},
|
||||
|
||||
"sliding_exits": {
|
||||
"slideOutDown": true,
|
||||
"slideOutLeft": true,
|
||||
"slideOutRight": true,
|
||||
"slideOutUp": true
|
||||
}
|
||||
}
|
||||
3181
fast-api/bower_components/animate.css/animate.css
vendored
Executable file
3181
fast-api/bower_components/animate.css/animate.css
vendored
Executable file
File diff suppressed because it is too large
Load Diff
6
fast-api/bower_components/animate.css/animate.min.css
vendored
Executable file
6
fast-api/bower_components/animate.css/animate.min.css
vendored
Executable file
File diff suppressed because one or more lines are too long
13
fast-api/bower_components/animate.css/bower.json
vendored
Normal file
13
fast-api/bower_components/animate.css/bower.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "animate.css",
|
||||
"version": "3.2.6",
|
||||
"main": "./animate.css",
|
||||
"ignore": [
|
||||
".*",
|
||||
"src",
|
||||
"*.yml",
|
||||
"Gemfile",
|
||||
"Gemfile.lock",
|
||||
"*.md"
|
||||
]
|
||||
}
|
||||
19
fast-api/bower_components/animate.css/package.json
vendored
Normal file
19
fast-api/bower_components/animate.css/package.json
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "animate.css",
|
||||
"version": "3.2.6",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/daneden/animate.css.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "~0.4.1",
|
||||
"grunt-autoprefixer": "~0.4.0",
|
||||
"grunt-contrib-watch": "~0.5.3",
|
||||
"grunt-contrib-concat": "~0.3.0",
|
||||
"grunt-contrib-cssmin": "~0.8.0",
|
||||
"load-grunt-tasks": "~0.2.0"
|
||||
},
|
||||
"spm": {
|
||||
"main": "./animate.css"
|
||||
}
|
||||
}
|
||||
30
fast-api/bower_components/animate.css/source/_base.css
vendored
Normal file
30
fast-api/bower_components/animate.css/source/_base.css
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
@charset "UTF-8";
|
||||
/*!
|
||||
Animate.css - http://daneden.me/animate
|
||||
Licensed under the MIT license - http://opensource.org/licenses/MIT
|
||||
|
||||
Copyright (c) 2015 Daniel Eden
|
||||
*/
|
||||
|
||||
.animated {
|
||||
animation-duration: 1s;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.animated.infinite {
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.animated.hinge {
|
||||
animation-duration: 2s;
|
||||
}
|
||||
|
||||
.animated.bounceIn,
|
||||
.animated.bounceOut {
|
||||
animation-duration: .75s;
|
||||
}
|
||||
|
||||
.animated.flipOutX,
|
||||
.animated.flipOutY {
|
||||
animation-duration: .75s;
|
||||
}
|
||||
25
fast-api/bower_components/animate.css/source/attention_seekers/bounce.css
vendored
Normal file
25
fast-api/bower_components/animate.css/source/attention_seekers/bounce.css
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
@keyframes bounce {
|
||||
0%, 20%, 53%, 80%, 100% {
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
40%, 43% {
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transform: translate3d(0, -30px, 0);
|
||||
}
|
||||
|
||||
70% {
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transform: translate3d(0, -15px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translate3d(0,-4px,0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounce {
|
||||
animation-name: bounce;
|
||||
transform-origin: center bottom;
|
||||
}
|
||||
13
fast-api/bower_components/animate.css/source/attention_seekers/flash.css
vendored
Normal file
13
fast-api/bower_components/animate.css/source/attention_seekers/flash.css
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
@keyframes flash {
|
||||
0%, 50%, 100% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
25%, 75% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.flash {
|
||||
animation-name: flash;
|
||||
}
|
||||
19
fast-api/bower_components/animate.css/source/attention_seekers/pulse.css
vendored
Normal file
19
fast-api/bower_components/animate.css/source/attention_seekers/pulse.css
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
|
||||
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scale3d(1.05, 1.05, 1.05);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.pulse {
|
||||
animation-name: pulse;
|
||||
}
|
||||
33
fast-api/bower_components/animate.css/source/attention_seekers/rubberBand.css
vendored
Normal file
33
fast-api/bower_components/animate.css/source/attention_seekers/rubberBand.css
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
@keyframes rubberBand {
|
||||
0% {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: scale3d(1.25, 0.75, 1);
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: scale3d(0.75, 1.25, 1);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scale3d(1.15, 0.85, 1);
|
||||
}
|
||||
|
||||
65% {
|
||||
transform: scale3d(.95, 1.05, 1);
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: scale3d(1.05, .95, 1);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.rubberBand {
|
||||
animation-name: rubberBand;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/attention_seekers/shake.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/attention_seekers/shake.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes shake {
|
||||
0%, 100% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
10%, 30%, 50%, 70%, 90% {
|
||||
transform: translate3d(-10px, 0, 0);
|
||||
}
|
||||
|
||||
20%, 40%, 60%, 80% {
|
||||
transform: translate3d(10px, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.shake {
|
||||
animation-name: shake;
|
||||
}
|
||||
26
fast-api/bower_components/animate.css/source/attention_seekers/swing.css
vendored
Normal file
26
fast-api/bower_components/animate.css/source/attention_seekers/swing.css
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
@keyframes swing {
|
||||
20% {
|
||||
transform: rotate3d(0, 0, 1, 15deg);
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
|
||||
60% {
|
||||
transform: rotate3d(0, 0, 1, 5deg);
|
||||
}
|
||||
|
||||
80% {
|
||||
transform: rotate3d(0, 0, 1, -5deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate3d(0, 0, 1, 0deg);
|
||||
}
|
||||
}
|
||||
|
||||
.swing {
|
||||
transform-origin: top center;
|
||||
animation-name: swing;
|
||||
}
|
||||
25
fast-api/bower_components/animate.css/source/attention_seekers/tada.css
vendored
Normal file
25
fast-api/bower_components/animate.css/source/attention_seekers/tada.css
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
@keyframes tada {
|
||||
0% {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
|
||||
10%, 20% {
|
||||
transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
|
||||
}
|
||||
|
||||
30%, 50%, 70%, 90% {
|
||||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
||||
}
|
||||
|
||||
40%, 60%, 80% {
|
||||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.tada {
|
||||
animation-name: tada;
|
||||
}
|
||||
35
fast-api/bower_components/animate.css/source/attention_seekers/wobble.css
vendored
Normal file
35
fast-api/bower_components/animate.css/source/attention_seekers/wobble.css
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
|
||||
|
||||
@keyframes wobble {
|
||||
0% {
|
||||
transform: none;
|
||||
}
|
||||
|
||||
15% {
|
||||
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
||||
}
|
||||
|
||||
45% {
|
||||
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
||||
}
|
||||
|
||||
60% {
|
||||
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.wobble {
|
||||
animation-name: wobble;
|
||||
}
|
||||
36
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceIn.css
vendored
Normal file
36
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceIn.css
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
@keyframes bounceIn {
|
||||
0%, 20%, 40%, 60%, 80%, 100% {
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
}
|
||||
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.3, .3, .3);
|
||||
}
|
||||
|
||||
20% {
|
||||
transform: scale3d(1.1, 1.1, 1.1);
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: scale3d(.9, .9, .9);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: scale3d(1.03, 1.03, 1.03);
|
||||
}
|
||||
|
||||
80% {
|
||||
transform: scale3d(.97, .97, .97);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.bounceIn {
|
||||
animation-name: bounceIn;
|
||||
}
|
||||
31
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceInDown.css
vendored
Normal file
31
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceInDown.css
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
@keyframes bounceInDown {
|
||||
0%, 60%, 75%, 90%, 100% {
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
}
|
||||
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, -3000px, 0);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: translate3d(0, 25px, 0);
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: translate3d(0, -10px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translate3d(0, 5px, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.bounceInDown {
|
||||
animation-name: bounceInDown;
|
||||
}
|
||||
31
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceInLeft.css
vendored
Normal file
31
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceInLeft.css
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
@keyframes bounceInLeft {
|
||||
0%, 60%, 75%, 90%, 100% {
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
}
|
||||
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(-3000px, 0, 0);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: translate3d(25px, 0, 0);
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: translate3d(-10px, 0, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translate3d(5px, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.bounceInLeft {
|
||||
animation-name: bounceInLeft;
|
||||
}
|
||||
31
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceInRight.css
vendored
Normal file
31
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceInRight.css
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
@keyframes bounceInRight {
|
||||
0%, 60%, 75%, 90%, 100% {
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
}
|
||||
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(3000px, 0, 0);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: translate3d(-25px, 0, 0);
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: translate3d(10px, 0, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translate3d(-5px, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.bounceInRight {
|
||||
animation-name: bounceInRight;
|
||||
}
|
||||
31
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceInUp.css
vendored
Normal file
31
fast-api/bower_components/animate.css/source/bouncing_entrances/bounceInUp.css
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
@keyframes bounceInUp {
|
||||
0%, 60%, 75%, 90%, 100% {
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
}
|
||||
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, 3000px, 0);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: translate3d(0, -20px, 0);
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: translate3d(0, 10px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translate3d(0, -5px, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounceInUp {
|
||||
animation-name: bounceInUp;
|
||||
}
|
||||
19
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOut.css
vendored
Normal file
19
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOut.css
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
@keyframes bounceOut {
|
||||
20% {
|
||||
transform: scale3d(.9, .9, .9);
|
||||
}
|
||||
|
||||
50%, 55% {
|
||||
opacity: 1;
|
||||
transform: scale3d(1.1, 1.1, 1.1);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.3, .3, .3);
|
||||
}
|
||||
}
|
||||
|
||||
.bounceOut {
|
||||
animation-name: bounceOut;
|
||||
}
|
||||
19
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOutDown.css
vendored
Normal file
19
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOutDown.css
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
@keyframes bounceOutDown {
|
||||
20% {
|
||||
transform: translate3d(0, 10px, 0);
|
||||
}
|
||||
|
||||
40%, 45% {
|
||||
opacity: 1;
|
||||
transform: translate3d(0, -20px, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, 2000px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounceOutDown {
|
||||
animation-name: bounceOutDown;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOutLeft.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOutLeft.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes bounceOutLeft {
|
||||
20% {
|
||||
opacity: 1;
|
||||
transform: translate3d(20px, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(-2000px, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounceOutLeft {
|
||||
animation-name: bounceOutLeft;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOutRight.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOutRight.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes bounceOutRight {
|
||||
20% {
|
||||
opacity: 1;
|
||||
transform: translate3d(-20px, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(2000px, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounceOutRight {
|
||||
animation-name: bounceOutRight;
|
||||
}
|
||||
19
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOutUp.css
vendored
Normal file
19
fast-api/bower_components/animate.css/source/bouncing_exits/bounceOutUp.css
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
@keyframes bounceOutUp {
|
||||
20% {
|
||||
transform: translate3d(0, -10px, 0);
|
||||
}
|
||||
|
||||
40%, 45% {
|
||||
opacity: 1;
|
||||
transform: translate3d(0, 20px, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, -2000px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounceOutUp {
|
||||
animation-name: bounceOutUp;
|
||||
}
|
||||
8
fast-api/bower_components/animate.css/source/fading_entrances/fadeIn.css
vendored
Normal file
8
fast-api/bower_components/animate.css/source/fading_entrances/fadeIn.css
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
@keyframes fadeIn {
|
||||
0% {opacity: 0;}
|
||||
100% {opacity: 1;}
|
||||
}
|
||||
|
||||
.fadeIn {
|
||||
animation-name: fadeIn;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInDown.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInDown.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes fadeInDown {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, -100%, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.fadeInDown {
|
||||
animation-name: fadeInDown;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInDownBig.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInDownBig.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes fadeInDownBig {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, -2000px, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.fadeInDownBig {
|
||||
animation-name: fadeInDownBig;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInLeft.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInLeft.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes fadeInLeft {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.fadeInLeft {
|
||||
animation-name: fadeInLeft;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInLeftBig.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInLeftBig.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes fadeInLeftBig {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(-2000px, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.fadeInLeftBig {
|
||||
animation-name: fadeInLeftBig;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInRight.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInRight.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes fadeInRight {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.fadeInRight {
|
||||
animation-name: fadeInRight;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInRightBig.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInRightBig.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes fadeInRightBig {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(2000px, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.fadeInRightBig {
|
||||
animation-name: fadeInRightBig;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInUp.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInUp.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes fadeInUp {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.fadeInUp {
|
||||
animation-name: fadeInUp;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInUpBig.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/fading_entrances/fadeInUpBig.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes fadeInUpBig {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, 2000px, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.fadeInUpBig {
|
||||
animation-name: fadeInUpBig;
|
||||
}
|
||||
8
fast-api/bower_components/animate.css/source/fading_exits/fadeOut.css
vendored
Normal file
8
fast-api/bower_components/animate.css/source/fading_exits/fadeOut.css
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
@keyframes fadeOut {
|
||||
0% {opacity: 1;}
|
||||
100% {opacity: 0;}
|
||||
}
|
||||
|
||||
.fadeOut {
|
||||
animation-name: fadeOut;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutDown.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutDown.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes fadeOutDown {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.fadeOutDown {
|
||||
animation-name: fadeOutDown;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutDownBig.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutDownBig.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes fadeOutDownBig {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, 2000px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.fadeOutDownBig {
|
||||
animation-name: fadeOutDownBig;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutLeft.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutLeft.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes fadeOutLeft {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.fadeOutLeft {
|
||||
animation-name: fadeOutLeft;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutLeftBig.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutLeftBig.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes fadeOutLeftBig {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(-2000px, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.fadeOutLeftBig {
|
||||
animation-name: fadeOutLeftBig;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutRight.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutRight.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes fadeOutRight {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.fadeOutRight {
|
||||
animation-name: fadeOutRight;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutRightBig.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutRightBig.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes fadeOutRightBig {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(2000px, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.fadeOutRightBig {
|
||||
animation-name: fadeOutRightBig;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutUp.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutUp.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes fadeOutUp {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, -100%, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.fadeOutUp {
|
||||
animation-name: fadeOutUp;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutUpBig.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/fading_exits/fadeOutUpBig.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes fadeOutUpBig {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, -2000px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.fadeOutUpBig {
|
||||
animation-name: fadeOutUpBig;
|
||||
}
|
||||
31
fast-api/bower_components/animate.css/source/flippers/flip.css
vendored
Normal file
31
fast-api/bower_components/animate.css/source/flippers/flip.css
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
@keyframes flip {
|
||||
0% {
|
||||
transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
|
||||
animation-timing-function: ease-out;
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
|
||||
animation-timing-function: ease-out;
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
|
||||
animation-timing-function: ease-in;
|
||||
}
|
||||
|
||||
80% {
|
||||
transform: perspective(400px) scale3d(.95, .95, .95);
|
||||
animation-timing-function: ease-in;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: perspective(400px);
|
||||
animation-timing-function: ease-in;
|
||||
}
|
||||
}
|
||||
|
||||
.animated.flip {
|
||||
backface-visibility: visible;
|
||||
animation-name: flip;
|
||||
}
|
||||
30
fast-api/bower_components/animate.css/source/flippers/flipInX.css
vendored
Normal file
30
fast-api/bower_components/animate.css/source/flippers/flipInX.css
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
@keyframes flipInX {
|
||||
0% {
|
||||
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
||||
transition-timing-function: ease-in;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
||||
transition-timing-function: ease-in;
|
||||
}
|
||||
|
||||
60% {
|
||||
transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
80% {
|
||||
transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: perspective(400px);
|
||||
}
|
||||
}
|
||||
|
||||
.flipInX {
|
||||
backface-visibility: visible !important;
|
||||
animation-name: flipInX;
|
||||
}
|
||||
30
fast-api/bower_components/animate.css/source/flippers/flipInY.css
vendored
Normal file
30
fast-api/bower_components/animate.css/source/flippers/flipInY.css
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
@keyframes flipInY {
|
||||
0% {
|
||||
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
||||
transition-timing-function: ease-in;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
|
||||
transition-timing-function: ease-in;
|
||||
}
|
||||
|
||||
60% {
|
||||
transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
80% {
|
||||
transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: perspective(400px);
|
||||
}
|
||||
}
|
||||
|
||||
.flipInY {
|
||||
backface-visibility: visible !important;
|
||||
animation-name: flipInY;
|
||||
}
|
||||
20
fast-api/bower_components/animate.css/source/flippers/flipOutX.css
vendored
Normal file
20
fast-api/bower_components/animate.css/source/flippers/flipOutX.css
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
@keyframes flipOutX {
|
||||
0% {
|
||||
transform: perspective(400px);
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.flipOutX {
|
||||
animation-name: flipOutX;
|
||||
backface-visibility: visible !important;
|
||||
}
|
||||
20
fast-api/bower_components/animate.css/source/flippers/flipOutY.css
vendored
Normal file
20
fast-api/bower_components/animate.css/source/flippers/flipOutY.css
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
@keyframes flipOutY {
|
||||
0% {
|
||||
transform: perspective(400px);
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.flipOutY {
|
||||
backface-visibility: visible !important;
|
||||
animation-name: flipOutY;
|
||||
}
|
||||
26
fast-api/bower_components/animate.css/source/lightspeed/lightSpeedIn.css
vendored
Normal file
26
fast-api/bower_components/animate.css/source/lightspeed/lightSpeedIn.css
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
@keyframes lightSpeedIn {
|
||||
0% {
|
||||
transform: translate3d(100%, 0, 0) skewX(-30deg);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
60% {
|
||||
transform: skewX(20deg);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
80% {
|
||||
transform: skewX(-5deg);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: none;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.lightSpeedIn {
|
||||
animation-name: lightSpeedIn;
|
||||
animation-timing-function: ease-out;
|
||||
}
|
||||
15
fast-api/bower_components/animate.css/source/lightspeed/lightSpeedOut.css
vendored
Normal file
15
fast-api/bower_components/animate.css/source/lightspeed/lightSpeedOut.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@keyframes lightSpeedOut {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate3d(100%, 0, 0) skewX(30deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.lightSpeedOut {
|
||||
animation-name: lightSpeedOut;
|
||||
animation-timing-function: ease-in;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateIn.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateIn.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes rotateIn {
|
||||
0% {
|
||||
transform-origin: center;
|
||||
transform: rotate3d(0, 0, 1, -200deg);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: center;
|
||||
transform: none;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateIn {
|
||||
animation-name: rotateIn;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateInDownLeft.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateInDownLeft.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes rotateInDownLeft {
|
||||
0% {
|
||||
transform-origin: left bottom;
|
||||
transform: rotate3d(0, 0, 1, -45deg);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: left bottom;
|
||||
transform: none;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateInDownLeft {
|
||||
animation-name: rotateInDownLeft;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateInDownRight.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateInDownRight.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes rotateInDownRight {
|
||||
0% {
|
||||
transform-origin: right bottom;
|
||||
transform: rotate3d(0, 0, 1, 45deg);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: right bottom;
|
||||
transform: none;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateInDownRight {
|
||||
animation-name: rotateInDownRight;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateInUpLeft.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateInUpLeft.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes rotateInUpLeft {
|
||||
0% {
|
||||
transform-origin: left bottom;
|
||||
transform: rotate3d(0, 0, 1, 45deg);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: left bottom;
|
||||
transform: none;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateInUpLeft {
|
||||
animation-name: rotateInUpLeft;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateInUpRight.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/rotating_entrances/rotateInUpRight.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes rotateInUpRight {
|
||||
0% {
|
||||
transform-origin: right bottom;
|
||||
transform: rotate3d(0, 0, 1, -90deg);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: right bottom;
|
||||
transform: none;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateInUpRight {
|
||||
animation-name: rotateInUpRight;
|
||||
}
|
||||
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOut.css
vendored
Normal file
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOut.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@keyframes rotateOut {
|
||||
0% {
|
||||
transform-origin: center;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: center;
|
||||
transform: rotate3d(0, 0, 1, 200deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateOut {
|
||||
animation-name: rotateOut;
|
||||
}
|
||||
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOutDownLeft.css
vendored
Normal file
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOutDownLeft.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@keyframes rotateOutDownLeft {
|
||||
0% {
|
||||
transform-origin: left bottom;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: left bottom;
|
||||
transform: rotate3d(0, 0, 1, 45deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateOutDownLeft {
|
||||
animation-name: rotateOutDownLeft;
|
||||
}
|
||||
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOutDownRight.css
vendored
Normal file
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOutDownRight.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@keyframes rotateOutDownRight {
|
||||
0% {
|
||||
transform-origin: right bottom;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: right bottom;
|
||||
transform: rotate3d(0, 0, 1, -45deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateOutDownRight {
|
||||
animation-name: rotateOutDownRight;
|
||||
}
|
||||
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOutUpLeft.css
vendored
Normal file
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOutUpLeft.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@keyframes rotateOutUpLeft {
|
||||
0% {
|
||||
transform-origin: left bottom;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: left bottom;
|
||||
transform: rotate3d(0, 0, 1, -45deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateOutUpLeft {
|
||||
animation-name: rotateOutUpLeft;
|
||||
}
|
||||
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOutUpRight.css
vendored
Normal file
16
fast-api/bower_components/animate.css/source/rotating_exits/rotateOutUpRight.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@keyframes rotateOutUpRight {
|
||||
0% {
|
||||
transform-origin: right bottom;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform-origin: right bottom;
|
||||
transform: rotate3d(0, 0, 1, 90deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.rotateOutUpRight {
|
||||
animation-name: rotateOutUpRight;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/sliding_entrances/slideInDown.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/sliding_entrances/slideInDown.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes slideInDown {
|
||||
0% {
|
||||
transform: translate3d(0, -100%, 0);
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.slideInDown {
|
||||
animation-name: slideInDown;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/sliding_entrances/slideInLeft.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/sliding_entrances/slideInLeft.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes slideInLeft {
|
||||
0% {
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.slideInLeft {
|
||||
animation-name: slideInLeft;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/sliding_entrances/slideInRight.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/sliding_entrances/slideInRight.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes slideInRight {
|
||||
0% {
|
||||
transform: translate3d(100%, 0, 0);
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.slideInRight {
|
||||
animation-name: slideInRight;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/sliding_entrances/slideInUp.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/sliding_entrances/slideInUp.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes slideInUp {
|
||||
0% {
|
||||
transform: translate3d(0, 100%, 0);
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.slideInUp {
|
||||
animation-name: slideInUp;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/sliding_exits/slideOutDown.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/sliding_exits/slideOutDown.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes slideOutDown {
|
||||
0% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
visibility: hidden;
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.slideOutDown {
|
||||
animation-name: slideOutDown;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/sliding_exits/slideOutLeft.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/sliding_exits/slideOutLeft.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes slideOutLeft {
|
||||
0% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
visibility: hidden;
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.slideOutLeft {
|
||||
animation-name: slideOutLeft;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/sliding_exits/slideOutRight.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/sliding_exits/slideOutRight.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes slideOutRight {
|
||||
0% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
visibility: hidden;
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.slideOutRight {
|
||||
animation-name: slideOutRight;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/sliding_exits/slideOutUp.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/sliding_exits/slideOutUp.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes slideOutUp {
|
||||
0% {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
visibility: hidden;
|
||||
transform: translate3d(0, -100%, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.slideOutUp {
|
||||
animation-name: slideOutUp;
|
||||
}
|
||||
28
fast-api/bower_components/animate.css/source/specials/hinge.css
vendored
Normal file
28
fast-api/bower_components/animate.css/source/specials/hinge.css
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
@keyframes hinge {
|
||||
0% {
|
||||
transform-origin: top left;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
20%, 60% {
|
||||
transform: rotate3d(0, 0, 1, 80deg);
|
||||
transform-origin: top left;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
40%, 80% {
|
||||
transform: rotate3d(0, 0, 1, 60deg);
|
||||
transform-origin: top left;
|
||||
animation-timing-function: ease-in-out;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate3d(0, 700px, 0);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.hinge {
|
||||
animation-name: hinge;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/specials/rollIn.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/specials/rollIn.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
|
||||
|
||||
@keyframes rollIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
.rollIn {
|
||||
animation-name: rollIn;
|
||||
}
|
||||
16
fast-api/bower_components/animate.css/source/specials/rollOut.css
vendored
Normal file
16
fast-api/bower_components/animate.css/source/specials/rollOut.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
|
||||
|
||||
@keyframes rollOut {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
|
||||
}
|
||||
}
|
||||
|
||||
.rollOut {
|
||||
animation-name: rollOut;
|
||||
}
|
||||
14
fast-api/bower_components/animate.css/source/zooming_entrances/zoomIn.css
vendored
Normal file
14
fast-api/bower_components/animate.css/source/zooming_entrances/zoomIn.css
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
@keyframes zoomIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.3, .3, .3);
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.zoomIn {
|
||||
animation-name: zoomIn;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/zooming_entrances/zoomInDown.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/zooming_entrances/zoomInDown.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes zoomInDown {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
|
||||
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
||||
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.zoomInDown {
|
||||
animation-name: zoomInDown;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/zooming_entrances/zoomInLeft.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/zooming_entrances/zoomInLeft.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes zoomInLeft {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
|
||||
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
|
||||
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.zoomInLeft {
|
||||
animation-name: zoomInLeft;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/zooming_entrances/zoomInRight.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/zooming_entrances/zoomInRight.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes zoomInRight {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
|
||||
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
|
||||
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.zoomInRight {
|
||||
animation-name: zoomInRight;
|
||||
}
|
||||
17
fast-api/bower_components/animate.css/source/zooming_entrances/zoomInUp.css
vendored
Normal file
17
fast-api/bower_components/animate.css/source/zooming_entrances/zoomInUp.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@keyframes zoomInUp {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
|
||||
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
||||
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.zoomInUp {
|
||||
animation-name: zoomInUp;
|
||||
}
|
||||
18
fast-api/bower_components/animate.css/source/zooming_exits/zoomOut.css
vendored
Normal file
18
fast-api/bower_components/animate.css/source/zooming_exits/zoomOut.css
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
@keyframes zoomOut {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.3, .3, .3);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.zoomOut {
|
||||
animation-name: zoomOut;
|
||||
}
|
||||
18
fast-api/bower_components/animate.css/source/zooming_exits/zoomOutDown.css
vendored
Normal file
18
fast-api/bower_components/animate.css/source/zooming_exits/zoomOutDown.css
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
@keyframes zoomOutDown {
|
||||
40% {
|
||||
opacity: 1;
|
||||
transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
|
||||
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
|
||||
transform-origin: center bottom;
|
||||
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.zoomOutDown {
|
||||
animation-name: zoomOutDown;
|
||||
}
|
||||
16
fast-api/bower_components/animate.css/source/zooming_exits/zoomOutLeft.css
vendored
Normal file
16
fast-api/bower_components/animate.css/source/zooming_exits/zoomOutLeft.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@keyframes zoomOutLeft {
|
||||
40% {
|
||||
opacity: 1;
|
||||
transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(.1) translate3d(-2000px, 0, 0);
|
||||
transform-origin: left center;
|
||||
}
|
||||
}
|
||||
|
||||
.zoomOutLeft {
|
||||
animation-name: zoomOutLeft;
|
||||
}
|
||||
16
fast-api/bower_components/animate.css/source/zooming_exits/zoomOutRight.css
vendored
Normal file
16
fast-api/bower_components/animate.css/source/zooming_exits/zoomOutRight.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
@keyframes zoomOutRight {
|
||||
40% {
|
||||
opacity: 1;
|
||||
transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(.1) translate3d(2000px, 0, 0);
|
||||
transform-origin: right center;
|
||||
}
|
||||
}
|
||||
|
||||
.zoomOutRight {
|
||||
animation-name: zoomOutRight;
|
||||
}
|
||||
18
fast-api/bower_components/animate.css/source/zooming_exits/zoomOutUp.css
vendored
Normal file
18
fast-api/bower_components/animate.css/source/zooming_exits/zoomOutUp.css
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
@keyframes zoomOutUp {
|
||||
40% {
|
||||
opacity: 1;
|
||||
transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
|
||||
animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
|
||||
transform-origin: center bottom;
|
||||
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.zoomOutUp {
|
||||
animation-name: zoomOutUp;
|
||||
}
|
||||
38
fast-api/bower_components/jquery/.bower.json
vendored
Normal file
38
fast-api/bower_components/jquery/.bower.json
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"name": "jquery",
|
||||
"version": "2.1.4",
|
||||
"main": "dist/jquery.js",
|
||||
"license": "MIT",
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"build",
|
||||
"dist/cdn",
|
||||
"speed",
|
||||
"test",
|
||||
"*.md",
|
||||
"AUTHORS.txt",
|
||||
"Gruntfile.js",
|
||||
"package.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"sizzle": "2.1.1-jquery.2.1.2",
|
||||
"requirejs": "2.1.10",
|
||||
"qunit": "1.14.0",
|
||||
"sinon": "1.8.1"
|
||||
},
|
||||
"keywords": [
|
||||
"jquery",
|
||||
"javascript",
|
||||
"library"
|
||||
],
|
||||
"homepage": "https://github.com/jquery/jquery-dist",
|
||||
"_release": "2.1.4",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "2.1.4",
|
||||
"commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
|
||||
},
|
||||
"_source": "https://github.com/jquery/jquery-dist.git",
|
||||
"_target": "~2.1.4",
|
||||
"_originalSource": "jquery"
|
||||
}
|
||||
21
fast-api/bower_components/jquery/MIT-LICENSE.txt
vendored
Normal file
21
fast-api/bower_components/jquery/MIT-LICENSE.txt
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
Copyright 2014 jQuery Foundation and other contributors
|
||||
http://jquery.com/
|
||||
|
||||
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.
|
||||
28
fast-api/bower_components/jquery/bower.json
vendored
Normal file
28
fast-api/bower_components/jquery/bower.json
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "jquery",
|
||||
"version": "2.1.4",
|
||||
"main": "dist/jquery.js",
|
||||
"license": "MIT",
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"build",
|
||||
"dist/cdn",
|
||||
"speed",
|
||||
"test",
|
||||
"*.md",
|
||||
"AUTHORS.txt",
|
||||
"Gruntfile.js",
|
||||
"package.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"sizzle": "2.1.1-jquery.2.1.2",
|
||||
"requirejs": "2.1.10",
|
||||
"qunit": "1.14.0",
|
||||
"sinon": "1.8.1"
|
||||
},
|
||||
"keywords": [
|
||||
"jquery",
|
||||
"javascript",
|
||||
"library"
|
||||
]
|
||||
}
|
||||
9210
fast-api/bower_components/jquery/dist/jquery.js
vendored
Normal file
9210
fast-api/bower_components/jquery/dist/jquery.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5
fast-api/bower_components/jquery/dist/jquery.min.js
vendored
Normal file
5
fast-api/bower_components/jquery/dist/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
fast-api/bower_components/jquery/dist/jquery.min.map
vendored
Normal file
1
fast-api/bower_components/jquery/dist/jquery.min.map
vendored
Normal file
File diff suppressed because one or more lines are too long
786
fast-api/bower_components/jquery/src/ajax.js
vendored
Normal file
786
fast-api/bower_components/jquery/src/ajax.js
vendored
Normal file
@@ -0,0 +1,786 @@
|
||||
define([
|
||||
"./core",
|
||||
"./var/rnotwhite",
|
||||
"./ajax/var/nonce",
|
||||
"./ajax/var/rquery",
|
||||
"./core/init",
|
||||
"./ajax/parseJSON",
|
||||
"./ajax/parseXML",
|
||||
"./deferred"
|
||||
], function( jQuery, rnotwhite, nonce, rquery ) {
|
||||
|
||||
var
|
||||
rhash = /#.*$/,
|
||||
rts = /([?&])_=[^&]*/,
|
||||
rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
|
||||
// #7653, #8125, #8152: local protocol detection
|
||||
rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
|
||||
rnoContent = /^(?:GET|HEAD)$/,
|
||||
rprotocol = /^\/\//,
|
||||
rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
|
||||
|
||||
/* Prefilters
|
||||
* 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
|
||||
* 2) These are called:
|
||||
* - BEFORE asking for a transport
|
||||
* - AFTER param serialization (s.data is a string if s.processData is true)
|
||||
* 3) key is the dataType
|
||||
* 4) the catchall symbol "*" can be used
|
||||
* 5) execution will start with transport dataType and THEN continue down to "*" if needed
|
||||
*/
|
||||
prefilters = {},
|
||||
|
||||
/* Transports bindings
|
||||
* 1) key is the dataType
|
||||
* 2) the catchall symbol "*" can be used
|
||||
* 3) selection will start with transport dataType and THEN go to "*" if needed
|
||||
*/
|
||||
transports = {},
|
||||
|
||||
// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
|
||||
allTypes = "*/".concat( "*" ),
|
||||
|
||||
// Document location
|
||||
ajaxLocation = window.location.href,
|
||||
|
||||
// Segment location into parts
|
||||
ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
|
||||
|
||||
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
|
||||
function addToPrefiltersOrTransports( structure ) {
|
||||
|
||||
// dataTypeExpression is optional and defaults to "*"
|
||||
return function( dataTypeExpression, func ) {
|
||||
|
||||
if ( typeof dataTypeExpression !== "string" ) {
|
||||
func = dataTypeExpression;
|
||||
dataTypeExpression = "*";
|
||||
}
|
||||
|
||||
var dataType,
|
||||
i = 0,
|
||||
dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
|
||||
|
||||
if ( jQuery.isFunction( func ) ) {
|
||||
// For each dataType in the dataTypeExpression
|
||||
while ( (dataType = dataTypes[i++]) ) {
|
||||
// Prepend if requested
|
||||
if ( dataType[0] === "+" ) {
|
||||
dataType = dataType.slice( 1 ) || "*";
|
||||
(structure[ dataType ] = structure[ dataType ] || []).unshift( func );
|
||||
|
||||
// Otherwise append
|
||||
} else {
|
||||
(structure[ dataType ] = structure[ dataType ] || []).push( func );
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Base inspection function for prefilters and transports
|
||||
function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
|
||||
|
||||
var inspected = {},
|
||||
seekingTransport = ( structure === transports );
|
||||
|
||||
function inspect( dataType ) {
|
||||
var selected;
|
||||
inspected[ dataType ] = true;
|
||||
jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
|
||||
var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
|
||||
if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
|
||||
options.dataTypes.unshift( dataTypeOrTransport );
|
||||
inspect( dataTypeOrTransport );
|
||||
return false;
|
||||
} else if ( seekingTransport ) {
|
||||
return !( selected = dataTypeOrTransport );
|
||||
}
|
||||
});
|
||||
return selected;
|
||||
}
|
||||
|
||||
return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
|
||||
}
|
||||
|
||||
// A special extend for ajax options
|
||||
// that takes "flat" options (not to be deep extended)
|
||||
// Fixes #9887
|
||||
function ajaxExtend( target, src ) {
|
||||
var key, deep,
|
||||
flatOptions = jQuery.ajaxSettings.flatOptions || {};
|
||||
|
||||
for ( key in src ) {
|
||||
if ( src[ key ] !== undefined ) {
|
||||
( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
|
||||
}
|
||||
}
|
||||
if ( deep ) {
|
||||
jQuery.extend( true, target, deep );
|
||||
}
|
||||
|
||||
return target;
|
||||
}
|
||||
|
||||
/* Handles responses to an ajax request:
|
||||
* - finds the right dataType (mediates between content-type and expected dataType)
|
||||
* - returns the corresponding response
|
||||
*/
|
||||
function ajaxHandleResponses( s, jqXHR, responses ) {
|
||||
|
||||
var ct, type, finalDataType, firstDataType,
|
||||
contents = s.contents,
|
||||
dataTypes = s.dataTypes;
|
||||
|
||||
// Remove auto dataType and get content-type in the process
|
||||
while ( dataTypes[ 0 ] === "*" ) {
|
||||
dataTypes.shift();
|
||||
if ( ct === undefined ) {
|
||||
ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
|
||||
}
|
||||
}
|
||||
|
||||
// Check if we're dealing with a known content-type
|
||||
if ( ct ) {
|
||||
for ( type in contents ) {
|
||||
if ( contents[ type ] && contents[ type ].test( ct ) ) {
|
||||
dataTypes.unshift( type );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check to see if we have a response for the expected dataType
|
||||
if ( dataTypes[ 0 ] in responses ) {
|
||||
finalDataType = dataTypes[ 0 ];
|
||||
} else {
|
||||
// Try convertible dataTypes
|
||||
for ( type in responses ) {
|
||||
if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
|
||||
finalDataType = type;
|
||||
break;
|
||||
}
|
||||
if ( !firstDataType ) {
|
||||
firstDataType = type;
|
||||
}
|
||||
}
|
||||
// Or just use first one
|
||||
finalDataType = finalDataType || firstDataType;
|
||||
}
|
||||
|
||||
// If we found a dataType
|
||||
// We add the dataType to the list if needed
|
||||
// and return the corresponding response
|
||||
if ( finalDataType ) {
|
||||
if ( finalDataType !== dataTypes[ 0 ] ) {
|
||||
dataTypes.unshift( finalDataType );
|
||||
}
|
||||
return responses[ finalDataType ];
|
||||
}
|
||||
}
|
||||
|
||||
/* Chain conversions given the request and the original response
|
||||
* Also sets the responseXXX fields on the jqXHR instance
|
||||
*/
|
||||
function ajaxConvert( s, response, jqXHR, isSuccess ) {
|
||||
var conv2, current, conv, tmp, prev,
|
||||
converters = {},
|
||||
// Work with a copy of dataTypes in case we need to modify it for conversion
|
||||
dataTypes = s.dataTypes.slice();
|
||||
|
||||
// Create converters map with lowercased keys
|
||||
if ( dataTypes[ 1 ] ) {
|
||||
for ( conv in s.converters ) {
|
||||
converters[ conv.toLowerCase() ] = s.converters[ conv ];
|
||||
}
|
||||
}
|
||||
|
||||
current = dataTypes.shift();
|
||||
|
||||
// Convert to each sequential dataType
|
||||
while ( current ) {
|
||||
|
||||
if ( s.responseFields[ current ] ) {
|
||||
jqXHR[ s.responseFields[ current ] ] = response;
|
||||
}
|
||||
|
||||
// Apply the dataFilter if provided
|
||||
if ( !prev && isSuccess && s.dataFilter ) {
|
||||
response = s.dataFilter( response, s.dataType );
|
||||
}
|
||||
|
||||
prev = current;
|
||||
current = dataTypes.shift();
|
||||
|
||||
if ( current ) {
|
||||
|
||||
// There's only work to do if current dataType is non-auto
|
||||
if ( current === "*" ) {
|
||||
|
||||
current = prev;
|
||||
|
||||
// Convert response if prev dataType is non-auto and differs from current
|
||||
} else if ( prev !== "*" && prev !== current ) {
|
||||
|
||||
// Seek a direct converter
|
||||
conv = converters[ prev + " " + current ] || converters[ "* " + current ];
|
||||
|
||||
// If none found, seek a pair
|
||||
if ( !conv ) {
|
||||
for ( conv2 in converters ) {
|
||||
|
||||
// If conv2 outputs current
|
||||
tmp = conv2.split( " " );
|
||||
if ( tmp[ 1 ] === current ) {
|
||||
|
||||
// If prev can be converted to accepted input
|
||||
conv = converters[ prev + " " + tmp[ 0 ] ] ||
|
||||
converters[ "* " + tmp[ 0 ] ];
|
||||
if ( conv ) {
|
||||
// Condense equivalence converters
|
||||
if ( conv === true ) {
|
||||
conv = converters[ conv2 ];
|
||||
|
||||
// Otherwise, insert the intermediate dataType
|
||||
} else if ( converters[ conv2 ] !== true ) {
|
||||
current = tmp[ 0 ];
|
||||
dataTypes.unshift( tmp[ 1 ] );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Apply converter (if not an equivalence)
|
||||
if ( conv !== true ) {
|
||||
|
||||
// Unless errors are allowed to bubble, catch and return them
|
||||
if ( conv && s[ "throws" ] ) {
|
||||
response = conv( response );
|
||||
} else {
|
||||
try {
|
||||
response = conv( response );
|
||||
} catch ( e ) {
|
||||
return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return { state: "success", data: response };
|
||||
}
|
||||
|
||||
jQuery.extend({
|
||||
|
||||
// Counter for holding the number of active queries
|
||||
active: 0,
|
||||
|
||||
// Last-Modified header cache for next request
|
||||
lastModified: {},
|
||||
etag: {},
|
||||
|
||||
ajaxSettings: {
|
||||
url: ajaxLocation,
|
||||
type: "GET",
|
||||
isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
|
||||
global: true,
|
||||
processData: true,
|
||||
async: true,
|
||||
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
/*
|
||||
timeout: 0,
|
||||
data: null,
|
||||
dataType: null,
|
||||
username: null,
|
||||
password: null,
|
||||
cache: null,
|
||||
throws: false,
|
||||
traditional: false,
|
||||
headers: {},
|
||||
*/
|
||||
|
||||
accepts: {
|
||||
"*": allTypes,
|
||||
text: "text/plain",
|
||||
html: "text/html",
|
||||
xml: "application/xml, text/xml",
|
||||
json: "application/json, text/javascript"
|
||||
},
|
||||
|
||||
contents: {
|
||||
xml: /xml/,
|
||||
html: /html/,
|
||||
json: /json/
|
||||
},
|
||||
|
||||
responseFields: {
|
||||
xml: "responseXML",
|
||||
text: "responseText",
|
||||
json: "responseJSON"
|
||||
},
|
||||
|
||||
// Data converters
|
||||
// Keys separate source (or catchall "*") and destination types with a single space
|
||||
converters: {
|
||||
|
||||
// Convert anything to text
|
||||
"* text": String,
|
||||
|
||||
// Text to html (true = no transformation)
|
||||
"text html": true,
|
||||
|
||||
// Evaluate text as a json expression
|
||||
"text json": jQuery.parseJSON,
|
||||
|
||||
// Parse text as xml
|
||||
"text xml": jQuery.parseXML
|
||||
},
|
||||
|
||||
// For options that shouldn't be deep extended:
|
||||
// you can add your own custom options here if
|
||||
// and when you create one that shouldn't be
|
||||
// deep extended (see ajaxExtend)
|
||||
flatOptions: {
|
||||
url: true,
|
||||
context: true
|
||||
}
|
||||
},
|
||||
|
||||
// Creates a full fledged settings object into target
|
||||
// with both ajaxSettings and settings fields.
|
||||
// If target is omitted, writes into ajaxSettings.
|
||||
ajaxSetup: function( target, settings ) {
|
||||
return settings ?
|
||||
|
||||
// Building a settings object
|
||||
ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
|
||||
|
||||
// Extending ajaxSettings
|
||||
ajaxExtend( jQuery.ajaxSettings, target );
|
||||
},
|
||||
|
||||
ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
|
||||
ajaxTransport: addToPrefiltersOrTransports( transports ),
|
||||
|
||||
// Main method
|
||||
ajax: function( url, options ) {
|
||||
|
||||
// If url is an object, simulate pre-1.5 signature
|
||||
if ( typeof url === "object" ) {
|
||||
options = url;
|
||||
url = undefined;
|
||||
}
|
||||
|
||||
// Force options to be an object
|
||||
options = options || {};
|
||||
|
||||
var transport,
|
||||
// URL without anti-cache param
|
||||
cacheURL,
|
||||
// Response headers
|
||||
responseHeadersString,
|
||||
responseHeaders,
|
||||
// timeout handle
|
||||
timeoutTimer,
|
||||
// Cross-domain detection vars
|
||||
parts,
|
||||
// To know if global events are to be dispatched
|
||||
fireGlobals,
|
||||
// Loop variable
|
||||
i,
|
||||
// Create the final options object
|
||||
s = jQuery.ajaxSetup( {}, options ),
|
||||
// Callbacks context
|
||||
callbackContext = s.context || s,
|
||||
// Context for global events is callbackContext if it is a DOM node or jQuery collection
|
||||
globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
|
||||
jQuery( callbackContext ) :
|
||||
jQuery.event,
|
||||
// Deferreds
|
||||
deferred = jQuery.Deferred(),
|
||||
completeDeferred = jQuery.Callbacks("once memory"),
|
||||
// Status-dependent callbacks
|
||||
statusCode = s.statusCode || {},
|
||||
// Headers (they are sent all at once)
|
||||
requestHeaders = {},
|
||||
requestHeadersNames = {},
|
||||
// The jqXHR state
|
||||
state = 0,
|
||||
// Default abort message
|
||||
strAbort = "canceled",
|
||||
// Fake xhr
|
||||
jqXHR = {
|
||||
readyState: 0,
|
||||
|
||||
// Builds headers hashtable if needed
|
||||
getResponseHeader: function( key ) {
|
||||
var match;
|
||||
if ( state === 2 ) {
|
||||
if ( !responseHeaders ) {
|
||||
responseHeaders = {};
|
||||
while ( (match = rheaders.exec( responseHeadersString )) ) {
|
||||
responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
|
||||
}
|
||||
}
|
||||
match = responseHeaders[ key.toLowerCase() ];
|
||||
}
|
||||
return match == null ? null : match;
|
||||
},
|
||||
|
||||
// Raw string
|
||||
getAllResponseHeaders: function() {
|
||||
return state === 2 ? responseHeadersString : null;
|
||||
},
|
||||
|
||||
// Caches the header
|
||||
setRequestHeader: function( name, value ) {
|
||||
var lname = name.toLowerCase();
|
||||
if ( !state ) {
|
||||
name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
|
||||
requestHeaders[ name ] = value;
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
// Overrides response content-type header
|
||||
overrideMimeType: function( type ) {
|
||||
if ( !state ) {
|
||||
s.mimeType = type;
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
// Status-dependent callbacks
|
||||
statusCode: function( map ) {
|
||||
var code;
|
||||
if ( map ) {
|
||||
if ( state < 2 ) {
|
||||
for ( code in map ) {
|
||||
// Lazy-add the new callback in a way that preserves old ones
|
||||
statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
|
||||
}
|
||||
} else {
|
||||
// Execute the appropriate callbacks
|
||||
jqXHR.always( map[ jqXHR.status ] );
|
||||
}
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
// Cancel the request
|
||||
abort: function( statusText ) {
|
||||
var finalText = statusText || strAbort;
|
||||
if ( transport ) {
|
||||
transport.abort( finalText );
|
||||
}
|
||||
done( 0, finalText );
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
// Attach deferreds
|
||||
deferred.promise( jqXHR ).complete = completeDeferred.add;
|
||||
jqXHR.success = jqXHR.done;
|
||||
jqXHR.error = jqXHR.fail;
|
||||
|
||||
// Remove hash character (#7531: and string promotion)
|
||||
// Add protocol if not provided (prefilters might expect it)
|
||||
// Handle falsy url in the settings object (#10093: consistency with old signature)
|
||||
// We also use the url parameter if available
|
||||
s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" )
|
||||
.replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
|
||||
|
||||
// Alias method option to type as per ticket #12004
|
||||
s.type = options.method || options.type || s.method || s.type;
|
||||
|
||||
// Extract dataTypes list
|
||||
s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
|
||||
|
||||
// A cross-domain request is in order when we have a protocol:host:port mismatch
|
||||
if ( s.crossDomain == null ) {
|
||||
parts = rurl.exec( s.url.toLowerCase() );
|
||||
s.crossDomain = !!( parts &&
|
||||
( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
|
||||
( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
|
||||
( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
|
||||
);
|
||||
}
|
||||
|
||||
// Convert data if not already a string
|
||||
if ( s.data && s.processData && typeof s.data !== "string" ) {
|
||||
s.data = jQuery.param( s.data, s.traditional );
|
||||
}
|
||||
|
||||
// Apply prefilters
|
||||
inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
|
||||
|
||||
// If request was aborted inside a prefilter, stop there
|
||||
if ( state === 2 ) {
|
||||
return jqXHR;
|
||||
}
|
||||
|
||||
// We can fire global events as of now if asked to
|
||||
// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
|
||||
fireGlobals = jQuery.event && s.global;
|
||||
|
||||
// Watch for a new set of requests
|
||||
if ( fireGlobals && jQuery.active++ === 0 ) {
|
||||
jQuery.event.trigger("ajaxStart");
|
||||
}
|
||||
|
||||
// Uppercase the type
|
||||
s.type = s.type.toUpperCase();
|
||||
|
||||
// Determine if request has content
|
||||
s.hasContent = !rnoContent.test( s.type );
|
||||
|
||||
// Save the URL in case we're toying with the If-Modified-Since
|
||||
// and/or If-None-Match header later on
|
||||
cacheURL = s.url;
|
||||
|
||||
// More options handling for requests with no content
|
||||
if ( !s.hasContent ) {
|
||||
|
||||
// If data is available, append data to url
|
||||
if ( s.data ) {
|
||||
cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
|
||||
// #9682: remove data so that it's not used in an eventual retry
|
||||
delete s.data;
|
||||
}
|
||||
|
||||
// Add anti-cache in url if needed
|
||||
if ( s.cache === false ) {
|
||||
s.url = rts.test( cacheURL ) ?
|
||||
|
||||
// If there is already a '_' parameter, set its value
|
||||
cacheURL.replace( rts, "$1_=" + nonce++ ) :
|
||||
|
||||
// Otherwise add one to the end
|
||||
cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
|
||||
}
|
||||
}
|
||||
|
||||
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
|
||||
if ( s.ifModified ) {
|
||||
if ( jQuery.lastModified[ cacheURL ] ) {
|
||||
jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
|
||||
}
|
||||
if ( jQuery.etag[ cacheURL ] ) {
|
||||
jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
|
||||
}
|
||||
}
|
||||
|
||||
// Set the correct header, if data is being sent
|
||||
if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
|
||||
jqXHR.setRequestHeader( "Content-Type", s.contentType );
|
||||
}
|
||||
|
||||
// Set the Accepts header for the server, depending on the dataType
|
||||
jqXHR.setRequestHeader(
|
||||
"Accept",
|
||||
s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
|
||||
s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
|
||||
s.accepts[ "*" ]
|
||||
);
|
||||
|
||||
// Check for headers option
|
||||
for ( i in s.headers ) {
|
||||
jqXHR.setRequestHeader( i, s.headers[ i ] );
|
||||
}
|
||||
|
||||
// Allow custom headers/mimetypes and early abort
|
||||
if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
|
||||
// Abort if not done already and return
|
||||
return jqXHR.abort();
|
||||
}
|
||||
|
||||
// Aborting is no longer a cancellation
|
||||
strAbort = "abort";
|
||||
|
||||
// Install callbacks on deferreds
|
||||
for ( i in { success: 1, error: 1, complete: 1 } ) {
|
||||
jqXHR[ i ]( s[ i ] );
|
||||
}
|
||||
|
||||
// Get transport
|
||||
transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
|
||||
|
||||
// If no transport, we auto-abort
|
||||
if ( !transport ) {
|
||||
done( -1, "No Transport" );
|
||||
} else {
|
||||
jqXHR.readyState = 1;
|
||||
|
||||
// Send global event
|
||||
if ( fireGlobals ) {
|
||||
globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
|
||||
}
|
||||
// Timeout
|
||||
if ( s.async && s.timeout > 0 ) {
|
||||
timeoutTimer = setTimeout(function() {
|
||||
jqXHR.abort("timeout");
|
||||
}, s.timeout );
|
||||
}
|
||||
|
||||
try {
|
||||
state = 1;
|
||||
transport.send( requestHeaders, done );
|
||||
} catch ( e ) {
|
||||
// Propagate exception as error if not done
|
||||
if ( state < 2 ) {
|
||||
done( -1, e );
|
||||
// Simply rethrow otherwise
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Callback for when everything is done
|
||||
function done( status, nativeStatusText, responses, headers ) {
|
||||
var isSuccess, success, error, response, modified,
|
||||
statusText = nativeStatusText;
|
||||
|
||||
// Called once
|
||||
if ( state === 2 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// State is "done" now
|
||||
state = 2;
|
||||
|
||||
// Clear timeout if it exists
|
||||
if ( timeoutTimer ) {
|
||||
clearTimeout( timeoutTimer );
|
||||
}
|
||||
|
||||
// Dereference transport for early garbage collection
|
||||
// (no matter how long the jqXHR object will be used)
|
||||
transport = undefined;
|
||||
|
||||
// Cache response headers
|
||||
responseHeadersString = headers || "";
|
||||
|
||||
// Set readyState
|
||||
jqXHR.readyState = status > 0 ? 4 : 0;
|
||||
|
||||
// Determine if successful
|
||||
isSuccess = status >= 200 && status < 300 || status === 304;
|
||||
|
||||
// Get response data
|
||||
if ( responses ) {
|
||||
response = ajaxHandleResponses( s, jqXHR, responses );
|
||||
}
|
||||
|
||||
// Convert no matter what (that way responseXXX fields are always set)
|
||||
response = ajaxConvert( s, response, jqXHR, isSuccess );
|
||||
|
||||
// If successful, handle type chaining
|
||||
if ( isSuccess ) {
|
||||
|
||||
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
|
||||
if ( s.ifModified ) {
|
||||
modified = jqXHR.getResponseHeader("Last-Modified");
|
||||
if ( modified ) {
|
||||
jQuery.lastModified[ cacheURL ] = modified;
|
||||
}
|
||||
modified = jqXHR.getResponseHeader("etag");
|
||||
if ( modified ) {
|
||||
jQuery.etag[ cacheURL ] = modified;
|
||||
}
|
||||
}
|
||||
|
||||
// if no content
|
||||
if ( status === 204 || s.type === "HEAD" ) {
|
||||
statusText = "nocontent";
|
||||
|
||||
// if not modified
|
||||
} else if ( status === 304 ) {
|
||||
statusText = "notmodified";
|
||||
|
||||
// If we have data, let's convert it
|
||||
} else {
|
||||
statusText = response.state;
|
||||
success = response.data;
|
||||
error = response.error;
|
||||
isSuccess = !error;
|
||||
}
|
||||
} else {
|
||||
// Extract error from statusText and normalize for non-aborts
|
||||
error = statusText;
|
||||
if ( status || !statusText ) {
|
||||
statusText = "error";
|
||||
if ( status < 0 ) {
|
||||
status = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set data for the fake xhr object
|
||||
jqXHR.status = status;
|
||||
jqXHR.statusText = ( nativeStatusText || statusText ) + "";
|
||||
|
||||
// Success/Error
|
||||
if ( isSuccess ) {
|
||||
deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
|
||||
} else {
|
||||
deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
|
||||
}
|
||||
|
||||
// Status-dependent callbacks
|
||||
jqXHR.statusCode( statusCode );
|
||||
statusCode = undefined;
|
||||
|
||||
if ( fireGlobals ) {
|
||||
globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
|
||||
[ jqXHR, s, isSuccess ? success : error ] );
|
||||
}
|
||||
|
||||
// Complete
|
||||
completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
|
||||
|
||||
if ( fireGlobals ) {
|
||||
globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
|
||||
// Handle the global AJAX counter
|
||||
if ( !( --jQuery.active ) ) {
|
||||
jQuery.event.trigger("ajaxStop");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return jqXHR;
|
||||
},
|
||||
|
||||
getJSON: function( url, data, callback ) {
|
||||
return jQuery.get( url, data, callback, "json" );
|
||||
},
|
||||
|
||||
getScript: function( url, callback ) {
|
||||
return jQuery.get( url, undefined, callback, "script" );
|
||||
}
|
||||
});
|
||||
|
||||
jQuery.each( [ "get", "post" ], function( i, method ) {
|
||||
jQuery[ method ] = function( url, data, callback, type ) {
|
||||
// Shift arguments if data argument was omitted
|
||||
if ( jQuery.isFunction( data ) ) {
|
||||
type = type || callback;
|
||||
callback = data;
|
||||
data = undefined;
|
||||
}
|
||||
|
||||
return jQuery.ajax({
|
||||
url: url,
|
||||
type: method,
|
||||
dataType: type,
|
||||
data: data,
|
||||
success: callback
|
||||
});
|
||||
};
|
||||
});
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
89
fast-api/bower_components/jquery/src/ajax/jsonp.js
vendored
Normal file
89
fast-api/bower_components/jquery/src/ajax/jsonp.js
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
define([
|
||||
"../core",
|
||||
"./var/nonce",
|
||||
"./var/rquery",
|
||||
"../ajax"
|
||||
], function( jQuery, nonce, rquery ) {
|
||||
|
||||
var oldCallbacks = [],
|
||||
rjsonp = /(=)\?(?=&|$)|\?\?/;
|
||||
|
||||
// Default jsonp settings
|
||||
jQuery.ajaxSetup({
|
||||
jsonp: "callback",
|
||||
jsonpCallback: function() {
|
||||
var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
|
||||
this[ callback ] = true;
|
||||
return callback;
|
||||
}
|
||||
});
|
||||
|
||||
// Detect, normalize options and install callbacks for jsonp requests
|
||||
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
|
||||
|
||||
var callbackName, overwritten, responseContainer,
|
||||
jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
|
||||
"url" :
|
||||
typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
|
||||
);
|
||||
|
||||
// Handle iff the expected data type is "jsonp" or we have a parameter to set
|
||||
if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
|
||||
|
||||
// Get callback name, remembering preexisting value associated with it
|
||||
callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
|
||||
s.jsonpCallback() :
|
||||
s.jsonpCallback;
|
||||
|
||||
// Insert callback into url or form data
|
||||
if ( jsonProp ) {
|
||||
s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
|
||||
} else if ( s.jsonp !== false ) {
|
||||
s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
|
||||
}
|
||||
|
||||
// Use data converter to retrieve json after script execution
|
||||
s.converters["script json"] = function() {
|
||||
if ( !responseContainer ) {
|
||||
jQuery.error( callbackName + " was not called" );
|
||||
}
|
||||
return responseContainer[ 0 ];
|
||||
};
|
||||
|
||||
// force json dataType
|
||||
s.dataTypes[ 0 ] = "json";
|
||||
|
||||
// Install callback
|
||||
overwritten = window[ callbackName ];
|
||||
window[ callbackName ] = function() {
|
||||
responseContainer = arguments;
|
||||
};
|
||||
|
||||
// Clean-up function (fires after converters)
|
||||
jqXHR.always(function() {
|
||||
// Restore preexisting value
|
||||
window[ callbackName ] = overwritten;
|
||||
|
||||
// Save back as free
|
||||
if ( s[ callbackName ] ) {
|
||||
// make sure that re-using the options doesn't screw things around
|
||||
s.jsonpCallback = originalSettings.jsonpCallback;
|
||||
|
||||
// save the callback name for future use
|
||||
oldCallbacks.push( callbackName );
|
||||
}
|
||||
|
||||
// Call if it was a function and we have a response
|
||||
if ( responseContainer && jQuery.isFunction( overwritten ) ) {
|
||||
overwritten( responseContainer[ 0 ] );
|
||||
}
|
||||
|
||||
responseContainer = overwritten = undefined;
|
||||
});
|
||||
|
||||
// Delegate to script
|
||||
return "script";
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user