├── .gitignore
├── webpack.build.js
├── webpack.build.min.js
├── src
├── index.js
├── app.js
├── ClipLoader.vue
├── SquareLoader.vue
├── BeatLoader.vue
├── SyncLoader.vue
├── RotateLoader.vue
├── PulseLoader.vue
├── BounceLoader.vue
├── MoonLoader.vue
├── SkewLoader.vue
├── DotLoader.vue
├── ScaleLoader.vue
├── PacmanLoader.vue
├── RingLoader.vue
├── FadeLoader.vue
├── RiseLoader.vue
└── GridLoader.vue
├── LICENSE
├── package.json
├── example
├── app.js
└── app.css
├── webpack.config.js
├── README.md
├── index.html
└── dist
└── vue-spinner.min.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | build
4 | npm-debug.log
--------------------------------------------------------------------------------
/webpack.build.js:
--------------------------------------------------------------------------------
1 | var config = require('./webpack.config.js')
2 |
3 | config.entry = {
4 | 'vue-spinner': './src/index.js',
5 | }
6 |
7 | config.output = {
8 |
9 | filename: './dist/[name].js',
10 | library: 'VueSpinner',
11 | libraryTarget: 'umd'
12 | }
13 |
14 |
15 | module.exports = config
16 |
--------------------------------------------------------------------------------
/webpack.build.min.js:
--------------------------------------------------------------------------------
1 | var config = require('./webpack.build.js')
2 | var webpack = require('webpack')
3 |
4 |
5 | config.output.filename = config.output.filename.replace(/\.js$/, '.min.js')
6 |
7 | delete config.devtool
8 |
9 | config.plugins = [
10 | new webpack.optimize.UglifyJsPlugin({
11 | sourceMap: false,
12 | compress: {
13 | warnings: false
14 | }
15 | }),
16 | new webpack.optimize.OccurenceOrderPlugin()
17 | ]
18 |
19 | module.exports = config
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import PulseLoader from './PulseLoader.vue'
2 | import GridLoader from './GridLoader.vue'
3 | import ClipLoader from './ClipLoader.vue'
4 | import RiseLoader from './RiseLoader.vue'
5 | import BeatLoader from './BeatLoader.vue'
6 | import SyncLoader from './SyncLoader.vue'
7 | import RotateLoader from './RotateLoader.vue'
8 | import FadeLoader from './FadeLoader.vue'
9 | import PacmanLoader from './PacmanLoader.vue'
10 | import SquareLoader from './SquareLoader.vue'
11 | import ScaleLoader from './ScaleLoader.vue'
12 | import SkewLoader from './SkewLoader.vue'
13 | import MoonLoader from './MoonLoader.vue'
14 | import RingLoader from './RingLoader.vue'
15 | import BounceLoader from './BounceLoader.vue'
16 | import DotLoader from './DotLoader.vue'
17 |
18 | const VueSpinner = {
19 | PulseLoader,
20 | GridLoader,
21 | ClipLoader,
22 | RiseLoader,
23 | BeatLoader,
24 | SyncLoader,
25 | RotateLoader,
26 | FadeLoader,
27 | PacmanLoader,
28 | SquareLoader,
29 | ScaleLoader,
30 | SkewLoader,
31 | MoonLoader,
32 | RingLoader,
33 | BounceLoader,
34 | DotLoader
35 | }
36 |
37 | module.exports = VueSpinner
38 |
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 greyby
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-spinner",
3 | "version": "1.0.4",
4 | "description": "Spinners of Vue Components",
5 | "keywords": [
6 | "spinner",
7 | "vuejs",
8 | "loading"
9 | ],
10 | "main": "src/app.js",
11 | "scripts": {
12 | "dev": "webpack-dev-server --inline --hot --quiet",
13 | "build": "NODE_ENV=production webpack --progress --hide-modules",
14 | "dist": "webpack --progress --hide-modules --config webpack.build.js && NODE_ENV=production webpack --progress --hide-modules --config webpack.build.min.js"
15 | },
16 | "repository": {
17 | "type": "git",
18 | "url": "https://github.com/greyby/vue-spinner.git"
19 | },
20 | "author": "greyby",
21 | "devDependencies": {
22 | "vue": "^1.0.12",
23 | "babel-core": "^6.1.21",
24 | "babel-loader": "^6.1.0",
25 | "babel-plugin-transform-runtime": "^6.1.18",
26 | "babel-preset-es2015": "^6.1.18",
27 | "babel-runtime": "^5.8.0",
28 | "css-loader": "^0.21.0",
29 | "style-loader": "^0.13.0",
30 | "stylus-loader": "^1.4.0",
31 | "vue-hot-reload-api": "^1.2.0",
32 | "vue-html-loader": "^1.0.0",
33 | "vue-loader": "^7.2.0",
34 | "webpack": "^1.12.2",
35 | "webpack-dev-server": "^1.12.0",
36 | "extract-text-webpack-plugin": "^0.8.2"
37 | },
38 | "license": "MIT"
39 | }
40 |
--------------------------------------------------------------------------------
/example/app.js:
--------------------------------------------------------------------------------
1 | Vue.config.debug = true // turn on debugging mode
2 | var PulseLoader = VueSpinner.PulseLoader
3 | var GridLoader = VueSpinner.GridLoader
4 | var ClipLoader = VueSpinner.ClipLoader
5 | var RiseLoader = VueSpinner.RiseLoader
6 | var BeatLoader = VueSpinner.BeatLoader
7 | var SyncLoader = VueSpinner.SyncLoader
8 | var RotateLoader = VueSpinner.RotateLoader
9 | var FadeLoader = VueSpinner.FadeLoader
10 | var PacmanLoader = VueSpinner.PacmanLoader
11 | var SquareLoader = VueSpinner.SquareLoader
12 | var ScaleLoader = VueSpinner.ScaleLoader
13 | var SkewLoader = VueSpinner.SkewLoader
14 | var MoonLoader = VueSpinner.MoonLoader
15 | var RingLoader = VueSpinner.RingLoader
16 | var BounceLoader = VueSpinner.BounceLoader
17 | var DotLoader = VueSpinner.DotLoader
18 |
19 | new Vue({
20 | el: '#app',
21 | components: {
22 | PulseLoader,
23 | GridLoader,
24 | ClipLoader,
25 | RiseLoader,
26 | BeatLoader,
27 | SyncLoader,
28 | RotateLoader,
29 | FadeLoader,
30 | PacmanLoader,
31 | SquareLoader,
32 | ScaleLoader,
33 | SkewLoader,
34 | MoonLoader,
35 | RingLoader,
36 | BounceLoader,
37 | DotLoader
38 | },
39 | data () {
40 | return {
41 | color: '#3AB982',
42 | height: '35px',
43 | width: '4px',
44 | margin: '2px',
45 | radius: '2px'
46 | }
47 | }
48 | })
--------------------------------------------------------------------------------
/src/app.js:
--------------------------------------------------------------------------------
1 | import PulseLoader from './PulseLoader.vue'
2 | import GridLoader from './GridLoader.vue'
3 | import ClipLoader from './ClipLoader.vue'
4 | import RiseLoader from './RiseLoader.vue'
5 | import BeatLoader from './BeatLoader.vue'
6 | import SyncLoader from './SyncLoader.vue'
7 | import RotateLoader from './RotateLoader.vue'
8 | import FadeLoader from './FadeLoader.vue'
9 | import PacmanLoader from './PacmanLoader.vue'
10 | import SquareLoader from './SquareLoader.vue'
11 | import ScaleLoader from './ScaleLoader.vue'
12 | import SkewLoader from './SkewLoader.vue'
13 | import MoonLoader from './MoonLoader.vue'
14 | import RingLoader from './RingLoader.vue'
15 | import BounceLoader from './BounceLoader.vue'
16 | import DotLoader from './DotLoader.vue'
17 |
18 |
19 | Vue.config.debug = true
20 |
21 | new Vue({
22 | el: '#app',
23 | components: {
24 | PulseLoader,
25 | GridLoader,
26 | ClipLoader,
27 | RiseLoader,
28 | BeatLoader,
29 | SyncLoader,
30 | RotateLoader,
31 | FadeLoader,
32 | PacmanLoader,
33 | SquareLoader,
34 | ScaleLoader,
35 | SkewLoader,
36 | MoonLoader,
37 | RingLoader,
38 | BounceLoader,
39 | DotLoader
40 | },
41 | data () {
42 | return {
43 | color: '#5dc596',
44 | size: '15px',
45 | margin: '2px',
46 | radius: '100%'
47 | }
48 | }
49 | })
50 |
51 |
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | var vue = require('vue-loader')
2 | var webpack = require("webpack")
3 | var ExtractTextPlugin = require("extract-text-webpack-plugin")
4 |
5 | var cssLoader = ExtractTextPlugin.extract("style-loader", "css-loader")
6 |
7 | module.exports = {
8 | entry: {
9 | app: './src/app.js'
10 | },
11 | output: {
12 | path: './build',
13 | publicPath: '/build/',
14 | filename: 'bundle.js'
15 | },
16 | module: {
17 | loaders: [
18 | {
19 | test: /\.vue$/,
20 | loader: 'vue'
21 | },
22 | {
23 | test: /\.js$/,
24 | // excluding some local linked packages.
25 | // for normal use cases only node_modules is needed.
26 | exclude: /node_modules|vue\/src|vue-router\/|vue-loader\/|vue-hot-reload-api\//,
27 | loader: 'babel'
28 | },
29 | { test: /\.css$/, loader: cssLoader }
30 | ]
31 | },
32 | // vue: {
33 | // loaders: {
34 | // css: ExtractTextPlugin.extract("css"),
35 | // stylus: ExtractTextPlugin.extract("css!stylus")
36 | // }
37 | // },
38 | devtool: "#source-map",
39 | babel: {
40 | presets: ['es2015'],
41 | plugins: ['transform-runtime']
42 | }
43 | }
44 |
45 | if (process.env.NODE_ENV === 'production') {
46 |
47 | delete module.exports.devtool
48 | module.exports.plugins = [
49 | new webpack.DefinePlugin({
50 | 'process.env': {
51 | NODE_ENV: '"production"'
52 | }
53 | }),
54 | new webpack.optimize.UglifyJsPlugin({
55 | compress: {
56 | warnings: false
57 | }
58 | }),
59 | new webpack.optimize.OccurenceOrderPlugin()
60 | // new ExtractTextPlugin("build.css")
61 | ]
62 | } else {
63 | // module.exports.plugins = [
64 | // new ExtractTextPlugin("build.css")
65 | // ]
66 | // module.exports.devtool = '#source-map'
67 | }
--------------------------------------------------------------------------------
/src/ClipLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
46 |
47 |
107 |
--------------------------------------------------------------------------------
/src/SquareLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
39 |
40 |
--------------------------------------------------------------------------------
/src/BeatLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
51 |
52 |
--------------------------------------------------------------------------------
/src/SyncLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
66 |
67 |
--------------------------------------------------------------------------------
/src/RotateLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
51 |
52 |
--------------------------------------------------------------------------------
/src/PulseLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
66 |
67 |
--------------------------------------------------------------------------------
/src/BounceLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
63 |
64 |
--------------------------------------------------------------------------------
/src/MoonLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
72 |
73 |
--------------------------------------------------------------------------------
/src/SkewLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
41 |
42 |
--------------------------------------------------------------------------------
/src/DotLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
57 |
58 |
--------------------------------------------------------------------------------
/example/app.css:
--------------------------------------------------------------------------------
1 | html {
2 | -ms-text-size-adjust: 100%;
3 | -webkit-text-size-adjust: 100%;
4 | overflow-x: hidden;
5 | }
6 |
7 | *,
8 | *:before,
9 | *:after {
10 | -webkit-box-sizing: inherit;
11 | -moz-box-sizing: inherit;
12 | box-sizing: inherit;
13 | }
14 |
15 | body {
16 | font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
17 | font-size: 15px;
18 | -webkit-font-smoothing: antialiased;
19 | -moz-osx-font-smoothing: grayscale;
20 | color: #34495e;
21 | margin: 0;
22 | border-top: 2px solid #4fc08d;
23 | background-color: #f8f8f8;
24 | -webkit-box-sizing: border-box;
25 | -moz-box-sizing: border-box;
26 | box-sizing: border-box;
27 | }
28 |
29 | h1 {
30 | font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
31 | font-weight: 300;
32 | font-size: 4em;
33 | color: #2c3e50;
34 | }
35 |
36 | h4, a {
37 | font-weight: 400;
38 | font-size: 15px;
39 | color: #7f8c8d;
40 | }
41 |
42 | p {
43 | word-spacing: 0.05em;
44 | }
45 |
46 | a {
47 | text-decoration: none;
48 | color: #34495e;
49 | }
50 |
51 |
52 | a.button {
53 | display: inline-block;
54 | width: 280px;
55 | margin: 0.5em;
56 | font-family: 'Roboto Mono', Monaco, courier, monospace;
57 | font-weight: 700;
58 | color: #fff;
59 | background-color: #4fc08d;
60 | border-bottom: 2px solid #3aa373;
61 | padding: 12px 14px;
62 | border-radius: 4px;
63 | transition: all 0.15s ease;
64 | }
65 |
66 | a.button:hover {
67 | background-color: #5dc596;
68 | -webkit-transform: translate(0, -2px);
69 | transform: translate(0, -2px);
70 | }
71 |
72 | #social {
73 | text-align: center;
74 | list-style-type: none;
75 | margin: 0 auto;
76 | padding: 0;
77 | margin: 1.5em auto;
78 | }
79 |
80 | #social li {
81 | display: inline-block;
82 | margin: 0 5px;
83 | vertical-align: middle;
84 | }
85 |
86 | ul {
87 | list-style-type: none;
88 | padding: 0;
89 | margin: 60px 0;
90 | }
91 |
92 | #wrapper {
93 | width: 960px;
94 | margin: 0 auto;
95 | min-height: 80px;
96 | text-align: center;
97 | }
98 |
99 | .list-container {
100 |
101 | border: 1px solid #eee;
102 | border-radius: 2px;
103 | background: #fff;
104 |
105 | display: -webkit-flex;
106 | display: flex;
107 |
108 | -webkit-flex-flow: row wrap;
109 | flex-flow: row wrap;
110 |
111 | -webkit-align-items: center;
112 | align-items: center;
113 |
114 | -webkit-justify-content: space-around;
115 | justify-content: space-around;
116 |
117 | }
118 |
119 |
120 | .spinner-list {
121 |
122 | /* width: 200px;
123 | height: 150px;
124 | line-height: 150px;
125 | color: white;
126 | font-weight: bold;
127 | font-size: 3em;
128 | text-align: center;*/
129 |
130 |
131 |
132 | display: -webkit-flex;
133 | display: flex;
134 |
135 | webkit-flex: 0 1 auto;
136 | flex: 0 1 auto;
137 |
138 | -webkit-flex-flow: row wrap;
139 | flex-flow: row wrap;
140 |
141 | width: 200px;
142 | height: 200px;
143 | webkit-align-items: center;
144 | align-items: center;
145 | webkit-justify-content: center;
146 | justify-content: center;
147 |
148 | }
149 |
150 | @media screen and(max-width: 700px) {
151 | html,
152 | body {
153 | margin: 0;
154 | }
155 | #wrapper {
156 | width: 100%;
157 | }
158 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue-spinner
2 |
3 | > Not support Vue 2.0.
4 |
5 | A collection of loading spinners with Vue.js. Just convert yuanyan's React.js project [Halogen](https://github.com/yuanyan/halogen) to Vue.js components. Special thanks to [yuanyan](https://github.com/yuanyan) for the wonderful project.
6 |
7 | ## [Live demo](http://greyby.github.io/vue-spinner/)
8 |
9 | ## Installation
10 |
11 | ### NPM
12 | ```bash
13 | $ npm install vue-spinner
14 | ```
15 |
16 | ### CommonJS
17 | ```js
18 | var PulseLoader = require('vue-spinner/src/PulseLoader.vue');
19 |
20 | new Vue({
21 | components: {
22 | 'PulseLoader': PulseLoader
23 | }
24 | })
25 | ```
26 |
27 | ### ES6
28 | ```js
29 | import PulseLoader from 'vue-spinner/src/PulseLoader.vue'
30 |
31 | new Vue({
32 | components: {
33 | PulseLoader
34 | }
35 | })
36 | ```
37 | Or:
38 | ```js
39 | Vue.component('pulse-loader', require('vue-spinner/src/PulseLoader.vue'));
40 | ```
41 |
42 | ### For browserify
43 | If you use browserify + vueify, you may need to import vue-spinner like this:
44 |
45 | ```js
46 | var PulseLoader= require('vue-spinner/dist/vue-spinner.min').PulseLoader;
47 | ```
48 |
49 | ```js
50 | import { PulseLoader } from 'vue-spinner/dist/vue-spinner.min.js'
51 | ```
52 |
53 | [explain here](https://github.com/greyby/vue-spinner/issues/2)
54 |
55 | ### Browser globals
56 | The `dist` folder contains `vue-spinner.js` and `vue-spinner.min.js` with all components exported in the window.VueSpinner object. These bundles are also available on NPM packages.
57 |
58 | ```html
59 |
60 |
61 |
64 | ```
65 |
66 | ## Local setup
67 |
68 | ```
69 | npm install
70 | npm run dev
71 | ```
72 |
73 | ## Usage
74 |
75 | ```html
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 | ```
93 |
94 | You can customize the color and size with setting the props. All props have default value. You can control the spinner show/hidden with setting the loading prop.
95 |
96 | ## TODO
97 |
98 |
99 |
100 | ## License
101 |
102 | vue-spinner is licensed under [The MIT License](LICENSE).
103 |
--------------------------------------------------------------------------------
/src/ScaleLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
80 |
81 |
--------------------------------------------------------------------------------
/src/PacmanLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
101 |
102 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | vue-spinner
6 |
7 |
8 |
9 |
10 |
11 |
12 |
vue-spinner
13 |
vue-spinner
14 |
15 |
16 | Source on GitHub
17 |
18 |
19 |
21 |
23 |
24 |
25 | -
26 |
27 |
28 | -
29 |
30 |
31 | -
32 |
33 |
34 | -
35 |
36 |
37 | -
38 |
39 |
40 | -
41 |
42 |
43 | -
44 |
45 |
46 | -
47 |
48 |
49 | -
50 |
51 |
52 | -
53 |
54 |
55 | -
56 |
57 |
58 | -
59 |
60 |
61 | -
62 |
63 |
64 | -
65 |
66 |
67 | -
68 |
69 |
70 | -
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/src/RingLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
58 |
59 |
--------------------------------------------------------------------------------
/src/FadeLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
134 |
135 |
--------------------------------------------------------------------------------
/src/RiseLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
53 |
54 |
--------------------------------------------------------------------------------
/src/GridLoader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
138 |
139 |
--------------------------------------------------------------------------------
/dist/vue-spinner.min.js:
--------------------------------------------------------------------------------
1 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VueSpinner=e():t.VueSpinner=e()}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var a=i[n]={exports:{},id:n,loaded:!1};return t[n].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}var a=i(75),r=n(a),o=i(72),s=n(o),l=i(69),d=n(l),p=i(77),f=n(p),c=i(67),u=n(c),v=i(82),m=n(v),y=i(78),b=n(y),h=i(71),g=n(h),x=i(74),S=n(x),k=i(81),w=n(k),D=i(79),Y=n(D),z=i(80),_=n(z),R=i(73),L=n(R),M=i(76),X=n(M),B=i(68),C=n(B),j=i(70),O=n(j),F={PulseLoader:r.default,GridLoader:s.default,ClipLoader:d.default,RiseLoader:f.default,BeatLoader:u.default,SyncLoader:m.default,RotateLoader:b.default,FadeLoader:g.default,PacmanLoader:S.default,SquareLoader:w.default,ScaleLoader:Y.default,SkewLoader:_.default,MoonLoader:L.default,RingLoader:X.default,BounceLoader:C.default,DotLoader:O.default};t.exports=F},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&g.splice(e,1)}function s(t){var e=document.createElement("style");return e.type="text/css",r(t,e),e}function l(t){var e=document.createElement("link");return e.rel="stylesheet",r(t,e),e}function d(t,e){var i,n,a;if(e.singleton){var r=h++;i=b||(b=s(e)),n=p.bind(null,i,r,!1),a=p.bind(null,i,r,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(i=l(e),n=c.bind(null,i),a=function(){o(i),i.href&&URL.revokeObjectURL(i.href)}):(i=s(e),n=f.bind(null,i),a=function(){o(i)});return n(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;n(t=e)}else a()}}function p(t,e,i,n){var a=i?"":n.css;if(t.styleSheet)t.styleSheet.cssText=x(e,a);else{var r=document.createTextNode(a),o=t.childNodes;o[e]&&t.removeChild(o[e]),o.length?t.insertBefore(r,o[e]):t.appendChild(r)}}function f(t,e){var i=e.css,n=e.media;if(n&&t.setAttribute("media",n),t.styleSheet)t.styleSheet.cssText=i;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(i))}}function c(t,e){var i=e.css,n=e.sourceMap;n&&(i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */");var a=new Blob([i],{type:"text/css"}),r=t.href;t.href=URL.createObjectURL(a),r&&URL.revokeObjectURL(r)}var u={},v=function(t){var e;return function(){return"undefined"==typeof e&&(e=t.apply(this,arguments)),e}},m=v(function(){return/msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase())}),y=v(function(){return document.head||document.getElementsByTagName("head")[0]}),b=null,h=0,g=[];t.exports=function(t,e){e=e||{},"undefined"==typeof e.singleton&&(e.singleton=m()),"undefined"==typeof e.insertAt&&(e.insertAt="bottom");var i=a(t);return n(i,e),function(t){for(var r=[],o=0;o
'},function(t,e){t.exports=' '},function(t,e){t.exports=" "},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=" "},function(t,e){t.exports=" "},function(t,e){t.exports=' '},function(t,e,i){var n,a;i(38),n=i(3),a=i(51),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(44),n=i(4),a=i(52),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(47),n=i(5),a=i(53),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(39),n=i(6),a=i(54),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(42),n=i(7),a=i(55),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(48),n=i(8),a=i(56),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(36),n=i(9),a=i(57),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(37),n=i(10),a=i(58),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(40),n=i(11),a=i(59),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(43),n=i(12),a=i(60),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(46),n=i(13),a=i(61),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(35),n=i(14),a=i(62),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(50),n=i(15),a=i(63),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(49),n=i(16),a=i(64),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(45),n=i(17),a=i(65),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)},function(t,e,i){var n,a;i(41),n=i(18),a=i(66),t.exports=n||{},t.exports.__esModule&&(t.exports=t.exports.default),a&&(("function"==typeof t.exports?t.exports.options:t.exports).template=a)}])});
--------------------------------------------------------------------------------