try_api 0.0.18 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/try_api/application.js.coffee +9 -37
- data/app/assets/javascripts/try_api/param.directive.js.coffee +4 -4
- data/app/assets/javascripts/try_api/url.directive.js.coffee +10 -3
- data/app/assets/stylesheets/try_api/application.css.sass +20 -10
- data/app/models/try_api/base.rb +54 -10
- data/app/models/try_api/config_parser.rb +1 -6
- data/app/models/try_api/example_response.rb +10 -9
- data/app/models/try_api/header.rb +0 -10
- data/app/models/try_api/menu_item.rb +1 -18
- data/app/models/try_api/method.rb +4 -47
- data/app/models/try_api/parameter.rb +1 -22
- data/app/models/try_api/project.rb +1 -17
- data/app/views/layouts/try_api/application.html.erb +10 -2
- data/app/views/try_api/pages/index.html +4 -5
- data/lib/generators/try_api/install_generator.rb +1 -13
- data/lib/generators/try_api/templates/try_api/base.yml +141 -0
- data/lib/generators/try_api/templates/try_api/variables.yml +5 -0
- data/lib/try_api/version.rb +1 -1
- metadata +4 -217
- data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/README.md +0 -120
- data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/bower.json +0 -19
- data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/index.js +0 -2
- data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/package.json +0 -23
- data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap-csp.css +0 -115
- data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap-tpls.js +0 -7476
- data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js +0 -10
- data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap.js +0 -7109
- data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap.min.js +0 -10
- data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/LICENSE.txt +0 -20
- data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/README.md +0 -186
- data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/angular-highlightjs.js +0 -520
- data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/angular-highlightjs.min.js +0 -6
- data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/bower.json +0 -22
- data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/build/angular-highlightjs.js +0 -520
- data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/build/angular-highlightjs.min.js +0 -6
- data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/src/angular-highlightjs.js +0 -501
- data/app/assets/javascripts/try_api/bower_components/angular-ladda/CHANGELOG.md +0 -71
- data/app/assets/javascripts/try_api/bower_components/angular-ladda/LICENSE.txt +0 -22
- data/app/assets/javascripts/try_api/bower_components/angular-ladda/README.md +0 -203
- data/app/assets/javascripts/try_api/bower_components/angular-ladda/bower.json +0 -36
- data/app/assets/javascripts/try_api/bower_components/angular-ladda/dist/angular-ladda.js +0 -99
- data/app/assets/javascripts/try_api/bower_components/angular-ladda/dist/angular-ladda.min.js +0 -2
- data/app/assets/javascripts/try_api/bower_components/angular-ladda/package.json +0 -51
- data/app/assets/javascripts/try_api/bower_components/angular-ladda/src/angular-ladda.js +0 -98
- data/app/assets/javascripts/try_api/bower_components/angular/LICENSE.md +0 -21
- data/app/assets/javascripts/try_api/bower_components/angular/README.md +0 -64
- data/app/assets/javascripts/try_api/bower_components/angular/angular-csp.css +0 -21
- data/app/assets/javascripts/try_api/bower_components/angular/angular.js +0 -31768
- data/app/assets/javascripts/try_api/bower_components/angular/angular.min.js +0 -318
- data/app/assets/javascripts/try_api/bower_components/angular/bower.json +0 -9
- data/app/assets/javascripts/try_api/bower_components/angular/index.js +0 -2
- data/app/assets/javascripts/try_api/bower_components/angular/package.json +0 -25
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/README.md +0 -25
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/bower.json +0 -27
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/css/font-awesome.css +0 -2199
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/css/font-awesome.min.css +0 -4
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/FontAwesome.otf +0 -0
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.eot +0 -0
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.svg +0 -685
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.ttf +0 -0
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.woff +0 -0
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/animated.less +0 -34
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/bordered-pulled.less +0 -25
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/core.less +0 -12
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/fixed-width.less +0 -6
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/font-awesome.less +0 -18
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/icons.less +0 -733
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/larger.less +0 -13
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/list.less +0 -19
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/mixins.less +0 -60
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/path.less +0 -15
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/rotated-flipped.less +0 -20
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/screen-reader.less +0 -5
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/stacked.less +0 -20
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/variables.less +0 -744
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/package.json +0 -14
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_animated.scss +0 -34
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_bordered-pulled.scss +0 -25
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_core.scss +0 -12
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_fixed-width.scss +0 -6
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_icons.scss +0 -733
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_larger.scss +0 -13
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_list.scss +0 -19
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_mixins.scss +0 -60
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_path.scss +0 -15
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_rotated-flipped.scss +0 -20
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_screen-reader.scss +0 -5
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_stacked.scss +0 -20
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_variables.scss +0 -744
- data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/font-awesome.scss +0 -18
- data/app/assets/javascripts/try_api/bower_components/highlightjs/LICENSE.txt +0 -24
- data/app/assets/javascripts/try_api/bower_components/highlightjs/README.md +0 -12
- data/app/assets/javascripts/try_api/bower_components/highlightjs/bower.json +0 -14
- data/app/assets/javascripts/try_api/bower_components/highlightjs/component.json +0 -12
- data/app/assets/javascripts/try_api/bower_components/highlightjs/composer.json +0 -26
- data/app/assets/javascripts/try_api/bower_components/highlightjs/highlight.pack.js +0 -15387
- data/app/assets/javascripts/try_api/bower_components/highlightjs/highlight.pack.min.js +0 -13
- data/app/assets/javascripts/try_api/bower_components/highlightjs/package.json +0 -8
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/agate.css +0 -108
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/androidstudio.css +0 -66
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/arduino-light.css +0 -88
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/arta.css +0 -73
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/ascetic.css +0 -45
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-cave-dark.css +0 -83
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-cave-light.css +0 -85
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-cave.dark.css +0 -113
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-cave.light.css +0 -113
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-dune-dark.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-dune-light.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-dune.dark.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-dune.light.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-estuary-dark.css +0 -84
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-estuary-light.css +0 -84
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-estuary.dark.css +0 -113
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-estuary.light.css +0 -113
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-forest-dark.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-forest-light.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-forest.dark.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-forest.light.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-heath-dark.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-heath-light.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-heath.dark.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-heath.light.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-lakeside-dark.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-lakeside-light.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-lakeside.dark.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-lakeside.light.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-plateau-dark.css +0 -84
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-plateau-light.css +0 -84
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-plateau.dark.css +0 -113
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-plateau.light.css +0 -113
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-savanna-dark.css +0 -84
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-savanna-light.css +0 -84
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-savanna.dark.css +0 -113
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-savanna.light.css +0 -113
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-seaside-dark.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-seaside-light.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-seaside.dark.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-seaside.light.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-sulphurpool-dark.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-sulphurpool-light.css +0 -69
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-sulphurpool.dark.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-sulphurpool.light.css +0 -94
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atom-one-dark.css +0 -95
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atom-one-light.css +0 -95
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/brown-paper.css +0 -64
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/brown-papersq.png +0 -0
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/brown_paper.css +0 -103
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/brown_papersq.png +0 -0
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/codepen-embed.css +0 -60
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/color-brewer.css +0 -71
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/darcula.css +0 -77
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/dark.css +0 -63
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/darkula.css +0 -6
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/default.css +0 -99
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/docco.css +0 -97
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/dracula.css +0 -76
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/far.css +0 -71
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/foundation.css +0 -88
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/github-gist.css +0 -71
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/github.css +0 -99
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/googlecode.css +0 -89
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/grayscale.css +0 -101
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/gruvbox-dark.css +0 -108
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/gruvbox-light.css +0 -108
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/hopscotch.css +0 -83
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/hybrid.css +0 -102
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/idea.css +0 -97
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/ir-black.css +0 -73
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/ir_black.css +0 -106
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/kimbie.dark.css +0 -74
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/kimbie.light.css +0 -74
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/magula.css +0 -70
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/mono-blue.css +0 -59
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/monokai-sublime.css +0 -83
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/monokai.css +0 -70
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/monokai_sublime.css +0 -154
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/obsidian.css +0 -88
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/ocean.css +0 -74
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/paraiso-dark.css +0 -72
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/paraiso-light.css +0 -72
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/paraiso.dark.css +0 -96
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/paraiso.light.css +0 -96
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/pojoaque.css +0 -83
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/pojoaque.jpg +0 -0
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/purebasic.css +0 -96
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/qtcreator_dark.css +0 -83
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/qtcreator_light.css +0 -83
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/railscasts.css +0 -106
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/rainbow.css +0 -85
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/school-book.css +0 -72
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/school-book.png +0 -0
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/school_book.css +0 -111
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/school_book.png +0 -0
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/solarized-dark.css +0 -84
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/solarized-light.css +0 -84
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/solarized_dark.css +0 -107
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/solarized_light.css +0 -107
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/sunburst.css +0 -102
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow-night-blue.css +0 -75
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow-night-bright.css +0 -74
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow-night-eighties.css +0 -74
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow-night.css +0 -75
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow.css +0 -72
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/vs.css +0 -68
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/xcode.css +0 -93
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/xt256.css +0 -92
- data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/zenburn.css +0 -80
- data/app/assets/javascripts/try_api/bower_components/ladda/Gruntfile.js +0 -114
- data/app/assets/javascripts/try_api/bower_components/ladda/LICENSE.txt +0 -19
- data/app/assets/javascripts/try_api/bower_components/ladda/README.md +0 -142
- data/app/assets/javascripts/try_api/bower_components/ladda/bower.json +0 -14
- data/app/assets/javascripts/try_api/bower_components/ladda/css/demo.css +0 -60
- data/app/assets/javascripts/try_api/bower_components/ladda/css/ladda-themed.scss +0 -81
- data/app/assets/javascripts/try_api/bower_components/ladda/css/ladda.scss +0 -486
- data/app/assets/javascripts/try_api/bower_components/ladda/dist/ladda-themeless.min.css +0 -7
- data/app/assets/javascripts/try_api/bower_components/ladda/dist/ladda.jquery.min.js +0 -8
- data/app/assets/javascripts/try_api/bower_components/ladda/dist/ladda.min.css +0 -9
- data/app/assets/javascripts/try_api/bower_components/ladda/dist/ladda.min.js +0 -8
- data/app/assets/javascripts/try_api/bower_components/ladda/dist/spin.min.js +0 -1
- data/app/assets/javascripts/try_api/bower_components/ladda/index.html +0 -185
- data/app/assets/javascripts/try_api/bower_components/ladda/js/ladda.jquery.js +0 -46
- data/app/assets/javascripts/try_api/bower_components/ladda/js/ladda.js +0 -459
- data/app/assets/javascripts/try_api/bower_components/ladda/js/spin.js +0 -354
- data/app/assets/javascripts/try_api/bower_components/ladda/test/bootstrap.html +0 -6302
- data/app/assets/javascripts/try_api/bower_components/ladda/test/bootstrap.jquery.html +0 -6306
- data/app/assets/javascripts/try_api/bower_components/ladda/test/form.html +0 -38
- data/app/assets/javascripts/try_api/bower_components/spin.js/LICENSE.txt +0 -21
- data/app/assets/javascripts/try_api/bower_components/spin.js/README.md +0 -21
- data/app/assets/javascripts/try_api/bower_components/spin.js/bower.json +0 -18
- data/app/assets/javascripts/try_api/bower_components/spin.js/jquery.spin.js +0 -80
- data/app/assets/javascripts/try_api/bower_components/spin.js/spin.js +0 -337
- data/lib/generators/try_api/templates/config/try_api.yml +0 -344
@@ -1,7 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Ladda
|
3
|
-
* http://lab.hakim.se/ladda
|
4
|
-
* MIT licensed
|
5
|
-
*
|
6
|
-
* Copyright (C) 2016 Hakim El Hattab, http://hakim.se
|
7
|
-
*/.ladda-button{position:relative}.ladda-button .ladda-spinner{position:absolute;z-index:2;display:inline-block;width:32px;height:32px;top:50%;margin-top:0;opacity:0;pointer-events:none}.ladda-button .ladda-label{position:relative;z-index:3}.ladda-button .ladda-progress{position:absolute;width:0;height:100%;left:0;top:0;background:rgba(0,0,0,0.2);visibility:hidden;opacity:0;-webkit-transition:0.1s linear all !important;-moz-transition:0.1s linear all !important;-ms-transition:0.1s linear all !important;-o-transition:0.1s linear all !important;transition:0.1s linear all !important}.ladda-button[data-loading] .ladda-progress{opacity:1;visibility:visible}.ladda-button,.ladda-button .ladda-spinner,.ladda-button .ladda-label{-webkit-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-moz-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-ms-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-o-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important}.ladda-button[data-style=zoom-in],.ladda-button[data-style=zoom-in] .ladda-spinner,.ladda-button[data-style=zoom-in] .ladda-label,.ladda-button[data-style=zoom-out],.ladda-button[data-style=zoom-out] .ladda-spinner,.ladda-button[data-style=zoom-out] .ladda-label{-webkit-transition:0.3s ease all !important;-moz-transition:0.3s ease all !important;-ms-transition:0.3s ease all !important;-o-transition:0.3s ease all !important;transition:0.3s ease all !important}.ladda-button[data-style=expand-right] .ladda-spinner{right:-6px}.ladda-button[data-style=expand-right][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-right][data-size="xs"] .ladda-spinner{right:-12px}.ladda-button[data-style=expand-right][data-loading]{padding-right:56px}.ladda-button[data-style=expand-right][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-right][data-loading][data-size="s"],.ladda-button[data-style=expand-right][data-loading][data-size="xs"]{padding-right:40px}.ladda-button[data-style=expand-left] .ladda-spinner{left:26px}.ladda-button[data-style=expand-left][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-left][data-size="xs"] .ladda-spinner{left:4px}.ladda-button[data-style=expand-left][data-loading]{padding-left:56px}.ladda-button[data-style=expand-left][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-left][data-loading][data-size="s"],.ladda-button[data-style=expand-left][data-loading][data-size="xs"]{padding-left:40px}.ladda-button[data-style=expand-up]{overflow:hidden}.ladda-button[data-style=expand-up] .ladda-spinner{top:-32px;left:50%;margin-left:0}.ladda-button[data-style=expand-up][data-loading]{padding-top:54px}.ladda-button[data-style=expand-up][data-loading] .ladda-spinner{opacity:1;top:26px;margin-top:0}.ladda-button[data-style=expand-up][data-loading][data-size="s"],.ladda-button[data-style=expand-up][data-loading][data-size="xs"]{padding-top:32px}.ladda-button[data-style=expand-up][data-loading][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-up][data-loading][data-size="xs"] .ladda-spinner{top:4px}.ladda-button[data-style=expand-down]{overflow:hidden}.ladda-button[data-style=expand-down] .ladda-spinner{top:62px;left:50%;margin-left:0}.ladda-button[data-style=expand-down][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-down][data-size="xs"] .ladda-spinner{top:40px}.ladda-button[data-style=expand-down][data-loading]{padding-bottom:54px}.ladda-button[data-style=expand-down][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-down][data-loading][data-size="s"],.ladda-button[data-style=expand-down][data-loading][data-size="xs"]{padding-bottom:32px}.ladda-button[data-style=slide-left]{overflow:hidden}.ladda-button[data-style=slide-left] .ladda-label{position:relative}.ladda-button[data-style=slide-left] .ladda-spinner{left:100%;margin-left:0}.ladda-button[data-style=slide-left][data-loading] .ladda-label{opacity:0;left:-100%}.ladda-button[data-style=slide-left][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-right]{overflow:hidden}.ladda-button[data-style=slide-right] .ladda-label{position:relative}.ladda-button[data-style=slide-right] .ladda-spinner{right:100%;margin-left:0;left:16px}.ladda-button[data-style=slide-right][data-loading] .ladda-label{opacity:0;left:100%}.ladda-button[data-style=slide-right][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-up]{overflow:hidden}.ladda-button[data-style=slide-up] .ladda-label{position:relative}.ladda-button[data-style=slide-up] .ladda-spinner{left:50%;margin-left:0;margin-top:1em}.ladda-button[data-style=slide-up][data-loading] .ladda-label{opacity:0;top:-1em}.ladda-button[data-style=slide-up][data-loading] .ladda-spinner{opacity:1;margin-top:0}.ladda-button[data-style=slide-down]{overflow:hidden}.ladda-button[data-style=slide-down] .ladda-label{position:relative}.ladda-button[data-style=slide-down] .ladda-spinner{left:50%;margin-left:0;margin-top:-2em}.ladda-button[data-style=slide-down][data-loading] .ladda-label{opacity:0;top:1em}.ladda-button[data-style=slide-down][data-loading] .ladda-spinner{opacity:1;margin-top:0}.ladda-button[data-style=zoom-out]{overflow:hidden}.ladda-button[data-style=zoom-out] .ladda-spinner{left:50%;margin-left:32px;-webkit-transform:scale(2.5);-moz-transform:scale(2.5);-ms-transform:scale(2.5);-o-transform:scale(2.5);transform:scale(2.5)}.ladda-button[data-style=zoom-out] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-out][data-loading] .ladda-label{opacity:0;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-ms-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}.ladda-button[data-style=zoom-out][data-loading] .ladda-spinner{opacity:1;margin-left:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.ladda-button[data-style=zoom-in]{overflow:hidden}.ladda-button[data-style=zoom-in] .ladda-spinner{left:50%;margin-left:-16px;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.ladda-button[data-style=zoom-in] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-in][data-loading] .ladda-label{opacity:0;-webkit-transform:scale(2.2);-moz-transform:scale(2.2);-ms-transform:scale(2.2);-o-transform:scale(2.2);transform:scale(2.2)}.ladda-button[data-style=zoom-in][data-loading] .ladda-spinner{opacity:1;margin-left:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.ladda-button[data-style=contract]{overflow:hidden;width:100px}.ladda-button[data-style=contract] .ladda-spinner{left:50%;margin-left:0}.ladda-button[data-style=contract][data-loading]{border-radius:50%;width:52px}.ladda-button[data-style=contract][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=contract-overlay]{overflow:hidden;width:100px;box-shadow:0px 0px 0px 2000px transparent}.ladda-button[data-style=contract-overlay] .ladda-spinner{left:50%;margin-left:0}.ladda-button[data-style=contract-overlay][data-loading]{border-radius:50%;width:52px;box-shadow:0px 0px 0px 2000px rgba(0,0,0,0.8)}.ladda-button[data-style=contract-overlay][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner{opacity:1}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Ladda for jQuery
|
3
|
-
* http://lab.hakim.se/ladda
|
4
|
-
* MIT licensed
|
5
|
-
*
|
6
|
-
* Copyright (C) 2015 Hakim El Hattab, http://hakim.se
|
7
|
-
*/
|
8
|
-
!function(a,b){if(void 0===b)return console.error("jQuery required for Ladda.jQuery");var c=[];b=b.extend(b,{ladda:function(b){"stopAll"===b&&a.stopAll()}}),b.fn=b.extend(b.fn,{ladda:function(d){var e=c.slice.call(arguments,1);return"bind"===d?(e.unshift(b(this).selector),a.bind.apply(a,e)):b(this).each(function(){var c,f=b(this);void 0===d?f.data("ladda",a.create(this)):(c=f.data("ladda"),c[d].apply(c,e))}),this}})}(this.Ladda,this.jQuery);
|
@@ -1,9 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Ladda including the default theme.
|
3
|
-
*//*!
|
4
|
-
* Ladda
|
5
|
-
* http://lab.hakim.se/ladda
|
6
|
-
* MIT licensed
|
7
|
-
*
|
8
|
-
* Copyright (C) 2016 Hakim El Hattab, http://hakim.se
|
9
|
-
*/.ladda-button{position:relative}.ladda-button .ladda-spinner{position:absolute;z-index:2;display:inline-block;width:32px;height:32px;top:50%;margin-top:0;opacity:0;pointer-events:none}.ladda-button .ladda-label{position:relative;z-index:3}.ladda-button .ladda-progress{position:absolute;width:0;height:100%;left:0;top:0;background:rgba(0,0,0,0.2);visibility:hidden;opacity:0;-webkit-transition:0.1s linear all !important;-moz-transition:0.1s linear all !important;-ms-transition:0.1s linear all !important;-o-transition:0.1s linear all !important;transition:0.1s linear all !important}.ladda-button[data-loading] .ladda-progress{opacity:1;visibility:visible}.ladda-button,.ladda-button .ladda-spinner,.ladda-button .ladda-label{-webkit-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-moz-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-ms-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-o-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important}.ladda-button[data-style=zoom-in],.ladda-button[data-style=zoom-in] .ladda-spinner,.ladda-button[data-style=zoom-in] .ladda-label,.ladda-button[data-style=zoom-out],.ladda-button[data-style=zoom-out] .ladda-spinner,.ladda-button[data-style=zoom-out] .ladda-label{-webkit-transition:0.3s ease all !important;-moz-transition:0.3s ease all !important;-ms-transition:0.3s ease all !important;-o-transition:0.3s ease all !important;transition:0.3s ease all !important}.ladda-button[data-style=expand-right] .ladda-spinner{right:-6px}.ladda-button[data-style=expand-right][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-right][data-size="xs"] .ladda-spinner{right:-12px}.ladda-button[data-style=expand-right][data-loading]{padding-right:56px}.ladda-button[data-style=expand-right][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-right][data-loading][data-size="s"],.ladda-button[data-style=expand-right][data-loading][data-size="xs"]{padding-right:40px}.ladda-button[data-style=expand-left] .ladda-spinner{left:26px}.ladda-button[data-style=expand-left][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-left][data-size="xs"] .ladda-spinner{left:4px}.ladda-button[data-style=expand-left][data-loading]{padding-left:56px}.ladda-button[data-style=expand-left][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-left][data-loading][data-size="s"],.ladda-button[data-style=expand-left][data-loading][data-size="xs"]{padding-left:40px}.ladda-button[data-style=expand-up]{overflow:hidden}.ladda-button[data-style=expand-up] .ladda-spinner{top:-32px;left:50%;margin-left:0}.ladda-button[data-style=expand-up][data-loading]{padding-top:54px}.ladda-button[data-style=expand-up][data-loading] .ladda-spinner{opacity:1;top:26px;margin-top:0}.ladda-button[data-style=expand-up][data-loading][data-size="s"],.ladda-button[data-style=expand-up][data-loading][data-size="xs"]{padding-top:32px}.ladda-button[data-style=expand-up][data-loading][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-up][data-loading][data-size="xs"] .ladda-spinner{top:4px}.ladda-button[data-style=expand-down]{overflow:hidden}.ladda-button[data-style=expand-down] .ladda-spinner{top:62px;left:50%;margin-left:0}.ladda-button[data-style=expand-down][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-down][data-size="xs"] .ladda-spinner{top:40px}.ladda-button[data-style=expand-down][data-loading]{padding-bottom:54px}.ladda-button[data-style=expand-down][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-down][data-loading][data-size="s"],.ladda-button[data-style=expand-down][data-loading][data-size="xs"]{padding-bottom:32px}.ladda-button[data-style=slide-left]{overflow:hidden}.ladda-button[data-style=slide-left] .ladda-label{position:relative}.ladda-button[data-style=slide-left] .ladda-spinner{left:100%;margin-left:0}.ladda-button[data-style=slide-left][data-loading] .ladda-label{opacity:0;left:-100%}.ladda-button[data-style=slide-left][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-right]{overflow:hidden}.ladda-button[data-style=slide-right] .ladda-label{position:relative}.ladda-button[data-style=slide-right] .ladda-spinner{right:100%;margin-left:0;left:16px}.ladda-button[data-style=slide-right][data-loading] .ladda-label{opacity:0;left:100%}.ladda-button[data-style=slide-right][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-up]{overflow:hidden}.ladda-button[data-style=slide-up] .ladda-label{position:relative}.ladda-button[data-style=slide-up] .ladda-spinner{left:50%;margin-left:0;margin-top:1em}.ladda-button[data-style=slide-up][data-loading] .ladda-label{opacity:0;top:-1em}.ladda-button[data-style=slide-up][data-loading] .ladda-spinner{opacity:1;margin-top:0}.ladda-button[data-style=slide-down]{overflow:hidden}.ladda-button[data-style=slide-down] .ladda-label{position:relative}.ladda-button[data-style=slide-down] .ladda-spinner{left:50%;margin-left:0;margin-top:-2em}.ladda-button[data-style=slide-down][data-loading] .ladda-label{opacity:0;top:1em}.ladda-button[data-style=slide-down][data-loading] .ladda-spinner{opacity:1;margin-top:0}.ladda-button[data-style=zoom-out]{overflow:hidden}.ladda-button[data-style=zoom-out] .ladda-spinner{left:50%;margin-left:32px;-webkit-transform:scale(2.5);-moz-transform:scale(2.5);-ms-transform:scale(2.5);-o-transform:scale(2.5);transform:scale(2.5)}.ladda-button[data-style=zoom-out] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-out][data-loading] .ladda-label{opacity:0;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-ms-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}.ladda-button[data-style=zoom-out][data-loading] .ladda-spinner{opacity:1;margin-left:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.ladda-button[data-style=zoom-in]{overflow:hidden}.ladda-button[data-style=zoom-in] .ladda-spinner{left:50%;margin-left:-16px;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.ladda-button[data-style=zoom-in] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-in][data-loading] .ladda-label{opacity:0;-webkit-transform:scale(2.2);-moz-transform:scale(2.2);-ms-transform:scale(2.2);-o-transform:scale(2.2);transform:scale(2.2)}.ladda-button[data-style=zoom-in][data-loading] .ladda-spinner{opacity:1;margin-left:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.ladda-button[data-style=contract]{overflow:hidden;width:100px}.ladda-button[data-style=contract] .ladda-spinner{left:50%;margin-left:0}.ladda-button[data-style=contract][data-loading]{border-radius:50%;width:52px}.ladda-button[data-style=contract][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=contract-overlay]{overflow:hidden;width:100px;box-shadow:0px 0px 0px 2000px transparent}.ladda-button[data-style=contract-overlay] .ladda-spinner{left:50%;margin-left:0}.ladda-button[data-style=contract-overlay][data-loading]{border-radius:50%;width:52px;box-shadow:0px 0px 0px 2000px rgba(0,0,0,0.8)}.ladda-button[data-style=contract-overlay][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner{opacity:1}.ladda-button{background:#666;border:0;padding:14px 18px;font-size:18px;cursor:pointer;color:#fff;border-radius:2px;border:1px solid transparent;-webkit-appearance:none;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.ladda-button:hover{border-color:rgba(0,0,0,0.07);background-color:#888}.ladda-button[data-color=green]{background:#2aca76}.ladda-button[data-color=green]:hover{background-color:#38d683}.ladda-button[data-color=blue]{background:#53b5e6}.ladda-button[data-color=blue]:hover{background-color:#69bfe9}.ladda-button[data-color=red]{background:#ea8557}.ladda-button[data-color=red]:hover{background-color:#ed956e}.ladda-button[data-color=purple]{background:#9973C2}.ladda-button[data-color=purple]:hover{background-color:#a685ca}.ladda-button[data-color=mint]{background:#16a085}.ladda-button[data-color=mint]:hover{background-color:#19b698}.ladda-button[disabled],.ladda-button[data-loading]{border-color:rgba(0,0,0,0.07)}.ladda-button[disabled],.ladda-button[disabled]:hover,.ladda-button[data-loading],.ladda-button[data-loading]:hover{cursor:default;background-color:#999}.ladda-button[data-size=xs]{padding:4px 8px}.ladda-button[data-size=xs] .ladda-label{font-size:0.7em}.ladda-button[data-size=s]{padding:6px 10px}.ladda-button[data-size=s] .ladda-label{font-size:0.9em}.ladda-button[data-size=l] .ladda-label{font-size:1.2em}.ladda-button[data-size=xl] .ladda-label{font-size:1.5em}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Ladda 1.0.0 (2016-03-08, 09:31)
|
3
|
-
* http://lab.hakim.se/ladda
|
4
|
-
* MIT licensed
|
5
|
-
*
|
6
|
-
* Copyright (C) 2016 Hakim El Hattab, http://hakim.se
|
7
|
-
*/
|
8
|
-
!function(a,b){"object"==typeof exports?module.exports=b(require("spin.js")):"function"==typeof define&&define.amd?define(["spin"],b):a.Ladda=b(a.Spinner)}(this,function(a){"use strict";function b(a){if("undefined"==typeof a)return void console.warn("Ladda button target must be defined.");if(/ladda-button/i.test(a.className)||(a.className+=" ladda-button"),a.hasAttribute("data-style")||a.setAttribute("data-style","expand-right"),!a.querySelector(".ladda-label")){var b=document.createElement("span");b.className="ladda-label",i(a,b)}var c,d=a.querySelector(".ladda-spinner");d||(d=document.createElement("span"),d.className="ladda-spinner"),a.appendChild(d);var e,f={start:function(){return c||(c=g(a)),a.setAttribute("disabled",""),a.setAttribute("data-loading",""),clearTimeout(e),c.spin(d),this.setProgress(0),this},startAfter:function(a){return clearTimeout(e),e=setTimeout(function(){f.start()},a),this},stop:function(){return a.removeAttribute("disabled"),a.removeAttribute("data-loading"),clearTimeout(e),c&&(e=setTimeout(function(){c.stop()},1e3)),this},toggle:function(){return this.isLoading()?this.stop():this.start(),this},setProgress:function(b){b=Math.max(Math.min(b,1),0);var c=a.querySelector(".ladda-progress");0===b&&c&&c.parentNode?c.parentNode.removeChild(c):(c||(c=document.createElement("div"),c.className="ladda-progress",a.appendChild(c)),c.style.width=(b||0)*a.offsetWidth+"px")},enable:function(){return this.stop(),this},disable:function(){return this.stop(),a.setAttribute("disabled",""),this},isLoading:function(){return a.hasAttribute("data-loading")},remove:function(){clearTimeout(e),a.removeAttribute("disabled",""),a.removeAttribute("data-loading",""),c&&(c.stop(),c=null);for(var b=0,d=j.length;d>b;b++)if(f===j[b]){j.splice(b,1);break}}};return j.push(f),f}function c(a,b){for(;a.parentNode&&a.tagName!==b;)a=a.parentNode;return b===a.tagName?a:void 0}function d(a){for(var b=["input","textarea","select"],c=[],d=0;d<b.length;d++)for(var e=a.getElementsByTagName(b[d]),f=0;f<e.length;f++)e[f].hasAttribute("required")&&c.push(e[f]);return c}function e(a,e){e=e||{};var f=[];"string"==typeof a?f=h(document.querySelectorAll(a)):"object"==typeof a&&"string"==typeof a.nodeName&&(f=[a]);for(var g=0,i=f.length;i>g;g++)!function(){var a=f[g];if("function"==typeof a.addEventListener){var h=b(a),i=-1;a.addEventListener("click",function(b){var f=!0,g=c(a,"FORM");if("undefined"!=typeof g)if("function"==typeof g.checkValidity)f=g.checkValidity();else for(var j=d(g),k=0;k<j.length;k++)""===j[k].value.replace(/^\s+|\s+$/g,"")&&(f=!1),"checkbox"!==j[k].type&&"radio"!==j[k].type||j[k].checked||(f=!1),"email"===j[k].type&&(f=/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/.test(j[k].value));f&&(h.startAfter(1),"number"==typeof e.timeout&&(clearTimeout(i),i=setTimeout(h.stop,e.timeout)),"function"==typeof e.callback&&e.callback.apply(null,[h]))},!1)}}()}function f(){for(var a=0,b=j.length;b>a;a++)j[a].stop()}function g(b){var c,d,e=b.offsetHeight;0===e&&(e=parseFloat(window.getComputedStyle(b).height)),e>32&&(e*=.8),b.hasAttribute("data-spinner-size")&&(e=parseInt(b.getAttribute("data-spinner-size"),10)),b.hasAttribute("data-spinner-color")&&(c=b.getAttribute("data-spinner-color")),b.hasAttribute("data-spinner-lines")&&(d=parseInt(b.getAttribute("data-spinner-lines"),10));var f=.2*e,g=.6*f,h=7>f?2:3;return new a({color:c||"#fff",lines:d||12,radius:f,length:g,width:h,zIndex:"auto",top:"auto",left:"auto",className:""})}function h(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b}function i(a,b){var c=document.createRange();c.selectNodeContents(a),c.surroundContents(b),a.appendChild(b)}var j=[];return{bind:e,create:b,stopAll:f}});
|
@@ -1 +0,0 @@
|
|
1
|
-
!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width;if(e(f,{left:d.left,top:d.top}),b&&b.insertBefore(f,b.firstChild||null),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h});
|
@@ -1,185 +0,0 @@
|
|
1
|
-
<!doctype html>
|
2
|
-
<html lang="en">
|
3
|
-
|
4
|
-
<head>
|
5
|
-
<meta charset="utf-8">
|
6
|
-
|
7
|
-
<title>Ladda</title>
|
8
|
-
|
9
|
-
<meta name="description" content="">
|
10
|
-
<meta name="author" content="Hakim El Hattab">
|
11
|
-
|
12
|
-
<meta name="apple-mobile-web-app-capable" content="yes" />
|
13
|
-
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
14
|
-
|
15
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
16
|
-
|
17
|
-
<link rel="stylesheet" href="css/demo.css">
|
18
|
-
<link rel="stylesheet" href="dist/ladda.min.css">
|
19
|
-
|
20
|
-
<!--[if lt IE 9]>
|
21
|
-
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
22
|
-
<![endif]-->
|
23
|
-
|
24
|
-
</head>
|
25
|
-
|
26
|
-
<body>
|
27
|
-
|
28
|
-
<article class="examples">
|
29
|
-
|
30
|
-
<div class="intro">
|
31
|
-
<h1>Ladda</h1>
|
32
|
-
<p>
|
33
|
-
A UI concept which merges loading indicators into the action that invoked them. Primarily intended for use with forms where
|
34
|
-
it gives users immediate feedback upon submit rather than leaving them wondering while the browser does its thing. For a
|
35
|
-
real-world example, check out any of the forms on <a href="http://slides.com">slides.com</a>.
|
36
|
-
</p>
|
37
|
-
</div>
|
38
|
-
|
39
|
-
<section class="button-demo">
|
40
|
-
<h3>expand-left</h3>
|
41
|
-
<button class="ladda-button" data-color="green" data-style="expand-left">Submit</button>
|
42
|
-
</section>
|
43
|
-
|
44
|
-
<section class="button-demo">
|
45
|
-
<h3>expand-right</h3>
|
46
|
-
<button class="ladda-button" data-color="green" data-style="expand-right">Submit</button>
|
47
|
-
</section>
|
48
|
-
|
49
|
-
<section class="button-demo">
|
50
|
-
<h3>expand-up</h3>
|
51
|
-
<button class="ladda-button" data-color="green" data-style="expand-up">Submit</button>
|
52
|
-
</section>
|
53
|
-
|
54
|
-
<section class="button-demo">
|
55
|
-
<h3>expand-down</h3>
|
56
|
-
<button class="ladda-button" data-color="green" data-style="expand-down">Submit</button>
|
57
|
-
</section>
|
58
|
-
|
59
|
-
|
60
|
-
<section class="button-demo">
|
61
|
-
<h3>contract</h3>
|
62
|
-
<button class="ladda-button" data-color="red" data-style="contract">Submit</button>
|
63
|
-
</section>
|
64
|
-
|
65
|
-
<section class="button-demo">
|
66
|
-
<h3>contract-overlay</h3>
|
67
|
-
<button class="ladda-button" data-color="red" data-style="contract-overlay" style="z-index: 10;">Submit</button>
|
68
|
-
</section>
|
69
|
-
|
70
|
-
<section class="button-demo">
|
71
|
-
<h3>zoom-in</h3>
|
72
|
-
<button class="ladda-button" data-color="red" data-style="zoom-in">Submit</button>
|
73
|
-
</section>
|
74
|
-
|
75
|
-
<section class="button-demo">
|
76
|
-
<h3>zoom-out</h3>
|
77
|
-
<button class="ladda-button" data-color="red" data-style="zoom-out">Submit</button>
|
78
|
-
</section>
|
79
|
-
|
80
|
-
|
81
|
-
<section class="button-demo">
|
82
|
-
<h3>slide-left</h3>
|
83
|
-
<button class="ladda-button" data-color="blue" data-style="slide-left">Submit</button>
|
84
|
-
</section>
|
85
|
-
|
86
|
-
<section class="button-demo">
|
87
|
-
<h3>slide-right</h3>
|
88
|
-
<button class="ladda-button" data-color="blue" data-style="slide-right">Submit</button>
|
89
|
-
</section>
|
90
|
-
|
91
|
-
<section class="button-demo">
|
92
|
-
<h3>slide-up</h3>
|
93
|
-
<button class="ladda-button" data-color="blue" data-style="slide-up">Submit</button>
|
94
|
-
</section>
|
95
|
-
|
96
|
-
<section class="button-demo">
|
97
|
-
<h3>slide-down</h3>
|
98
|
-
<button class="ladda-button" data-color="blue" data-style="slide-down">Submit</button>
|
99
|
-
</section>
|
100
|
-
|
101
|
-
<h3 id="progress">Built-in progress bar</h3>
|
102
|
-
|
103
|
-
<section class="progress-demo">
|
104
|
-
<h3>expand-right</h3>
|
105
|
-
<button class="ladda-button" data-color="purple" data-style="expand-right">Submit</button>
|
106
|
-
</section>
|
107
|
-
|
108
|
-
<section class="progress-demo">
|
109
|
-
<h3>contract</h3>
|
110
|
-
<button class="ladda-button" data-color="purple" data-style="contract">Submit</button>
|
111
|
-
</section>
|
112
|
-
|
113
|
-
<h3 id="sizes">Sizes</h3>
|
114
|
-
|
115
|
-
<section class="progress-demo">
|
116
|
-
<h3>Extra Small</h3>
|
117
|
-
<button class="ladda-button" data-color="mint" data-style="expand-right" data-size="xs">Submit</button>
|
118
|
-
</section>
|
119
|
-
|
120
|
-
<section class="progress-demo">
|
121
|
-
<h3>Small</h3>
|
122
|
-
<button class="ladda-button" data-color="mint" data-style="expand-right" data-size="s">Submit</button>
|
123
|
-
</section>
|
124
|
-
|
125
|
-
<section class="progress-demo">
|
126
|
-
<h3>Large</h3>
|
127
|
-
<button class="ladda-button" data-color="mint" data-style="expand-right" data-size="l">Submit</button>
|
128
|
-
</section>
|
129
|
-
|
130
|
-
<section class="progress-demo">
|
131
|
-
<h3>Extra Large</h3>
|
132
|
-
<button class="ladda-button" data-color="mint" data-style="expand-right" data-size="xl">Submit</button>
|
133
|
-
</section>
|
134
|
-
|
135
|
-
<footer>
|
136
|
-
<small class="sharing">
|
137
|
-
<a href="http://twitter.com/share" class="twitter-share-button" data-text="Ladda - Buttons with built-in loading indicators by @hakimel" data-url="http://lab.hakim.se/ladda" data-count="small" data-related="hakimel"></a>
|
138
|
-
</small>
|
139
|
-
<small class="outro">by <a href="http://hakim.se">Hakim El Hattab</a> / <a href="http://twitter.com/hakimel">@hakimel</a></small>
|
140
|
-
</footer>
|
141
|
-
|
142
|
-
</article>
|
143
|
-
|
144
|
-
<script src="dist/spin.min.js"></script>
|
145
|
-
<script src="dist/ladda.min.js"></script>
|
146
|
-
|
147
|
-
<script>
|
148
|
-
|
149
|
-
// Bind normal buttons
|
150
|
-
Ladda.bind( '.button-demo button', { timeout: 2000 } );
|
151
|
-
|
152
|
-
// Bind progress buttons and simulate loading progress
|
153
|
-
Ladda.bind( '.progress-demo button', {
|
154
|
-
callback: function( instance ) {
|
155
|
-
var progress = 0;
|
156
|
-
var interval = setInterval( function() {
|
157
|
-
progress = Math.min( progress + Math.random() * 0.1, 1 );
|
158
|
-
instance.setProgress( progress );
|
159
|
-
|
160
|
-
if( progress === 1 ) {
|
161
|
-
instance.stop();
|
162
|
-
clearInterval( interval );
|
163
|
-
}
|
164
|
-
}, 200 );
|
165
|
-
}
|
166
|
-
} );
|
167
|
-
|
168
|
-
// You can control loading explicitly using the JavaScript API
|
169
|
-
// as outlined below:
|
170
|
-
|
171
|
-
// var l = Ladda.create( document.querySelector( 'button' ) );
|
172
|
-
// l.start();
|
173
|
-
// l.stop();
|
174
|
-
// l.toggle();
|
175
|
-
// l.isLoading();
|
176
|
-
// l.setProgress( 0-1 );
|
177
|
-
|
178
|
-
</script>
|
179
|
-
|
180
|
-
<a class="fork" href="https://github.com/hakimel/Ladda"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://github-camo.global.ssl.fastly.net/365986a132ccd6a44c23a9169022c0b5c890c387/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f7265645f6161303030302e706e67" alt="Fork me on GitHub"></a>
|
181
|
-
|
182
|
-
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
|
183
|
-
|
184
|
-
</body>
|
185
|
-
</html>
|
@@ -1,46 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Ladda for jQuery
|
3
|
-
* http://lab.hakim.se/ladda
|
4
|
-
* MIT licensed
|
5
|
-
*
|
6
|
-
* Copyright (C) 2015 Hakim El Hattab, http://hakim.se
|
7
|
-
*/
|
8
|
-
|
9
|
-
(function( Ladda, $ ) {
|
10
|
-
if ($ === undefined)
|
11
|
-
return console.error( 'jQuery required for Ladda.jQuery' );
|
12
|
-
|
13
|
-
var arr = [];
|
14
|
-
|
15
|
-
$ = $.extend( $, {
|
16
|
-
ladda: function( arg ) {
|
17
|
-
if( arg === 'stopAll' )
|
18
|
-
Ladda.stopAll();
|
19
|
-
}
|
20
|
-
});
|
21
|
-
|
22
|
-
$.fn = $.extend( $.fn, {
|
23
|
-
ladda: function( arg ) {
|
24
|
-
var args = arr.slice.call( arguments, 1 );
|
25
|
-
|
26
|
-
if( arg === 'bind' ) {
|
27
|
-
args.unshift( $( this ).selector );
|
28
|
-
Ladda.bind.apply( Ladda, args );
|
29
|
-
}
|
30
|
-
else {
|
31
|
-
$( this ).each( function() {
|
32
|
-
var $this = $( this ), ladda;
|
33
|
-
|
34
|
-
if( arg === undefined )
|
35
|
-
$this.data( 'ladda', Ladda.create( this ) );
|
36
|
-
else {
|
37
|
-
ladda = $this.data( 'ladda' );
|
38
|
-
ladda[arg].apply( ladda, args );
|
39
|
-
}
|
40
|
-
});
|
41
|
-
}
|
42
|
-
|
43
|
-
return this;
|
44
|
-
}
|
45
|
-
});
|
46
|
-
}( this.Ladda, this.jQuery ));
|
@@ -1,459 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Ladda
|
3
|
-
* http://lab.hakim.se/ladda
|
4
|
-
* MIT licensed
|
5
|
-
*
|
6
|
-
* Copyright (C) 2016 Hakim El Hattab, http://hakim.se
|
7
|
-
*/
|
8
|
-
/* jshint node:true, browser:true */
|
9
|
-
(function( root, factory ) {
|
10
|
-
|
11
|
-
// CommonJS
|
12
|
-
if( typeof exports === 'object' ) {
|
13
|
-
module.exports = factory(require('spin.js'));
|
14
|
-
}
|
15
|
-
// AMD module
|
16
|
-
else if( typeof define === 'function' && define.amd ) {
|
17
|
-
define( [ 'spin' ], factory );
|
18
|
-
}
|
19
|
-
// Browser global
|
20
|
-
else {
|
21
|
-
root.Ladda = factory( root.Spinner );
|
22
|
-
}
|
23
|
-
|
24
|
-
}
|
25
|
-
(this, function( Spinner ) {
|
26
|
-
'use strict';
|
27
|
-
|
28
|
-
// All currently instantiated instances of Ladda
|
29
|
-
var ALL_INSTANCES = [];
|
30
|
-
|
31
|
-
/**
|
32
|
-
* Creates a new instance of Ladda which wraps the
|
33
|
-
* target button element.
|
34
|
-
*
|
35
|
-
* @return An API object that can be used to control
|
36
|
-
* the loading animation state.
|
37
|
-
*/
|
38
|
-
function create( button ) {
|
39
|
-
|
40
|
-
if( typeof button === 'undefined' ) {
|
41
|
-
console.warn( "Ladda button target must be defined." );
|
42
|
-
return;
|
43
|
-
}
|
44
|
-
|
45
|
-
// The button must have the class "ladda-button"
|
46
|
-
if( !/ladda-button/i.test( button.className ) ) {
|
47
|
-
button.className += ' ladda-button';
|
48
|
-
}
|
49
|
-
|
50
|
-
// Style is required, default to "expand-right"
|
51
|
-
if( !button.hasAttribute( 'data-style' ) ) {
|
52
|
-
button.setAttribute( 'data-style', 'expand-right' );
|
53
|
-
}
|
54
|
-
|
55
|
-
// The text contents must be wrapped in a ladda-label
|
56
|
-
// element, create one if it doesn't already exist
|
57
|
-
if( !button.querySelector( '.ladda-label' ) ) {
|
58
|
-
var laddaLabel = document.createElement( 'span' );
|
59
|
-
laddaLabel.className = 'ladda-label';
|
60
|
-
wrapContent( button, laddaLabel );
|
61
|
-
}
|
62
|
-
|
63
|
-
// The spinner component
|
64
|
-
var spinner,
|
65
|
-
spinnerWrapper = button.querySelector( '.ladda-spinner' );
|
66
|
-
|
67
|
-
// Wrapper element for the spinner
|
68
|
-
if( !spinnerWrapper ) {
|
69
|
-
spinnerWrapper = document.createElement( 'span' );
|
70
|
-
spinnerWrapper.className = 'ladda-spinner';
|
71
|
-
}
|
72
|
-
|
73
|
-
button.appendChild( spinnerWrapper );
|
74
|
-
|
75
|
-
// Timer used to delay starting/stopping
|
76
|
-
var timer;
|
77
|
-
|
78
|
-
var instance = {
|
79
|
-
|
80
|
-
/**
|
81
|
-
* Enter the loading state.
|
82
|
-
*/
|
83
|
-
start: function() {
|
84
|
-
|
85
|
-
// Create the spinner if it doesn't already exist
|
86
|
-
if( !spinner ) spinner = createSpinner( button );
|
87
|
-
|
88
|
-
button.setAttribute( 'disabled', '' );
|
89
|
-
button.setAttribute( 'data-loading', '' );
|
90
|
-
|
91
|
-
clearTimeout( timer );
|
92
|
-
spinner.spin( spinnerWrapper );
|
93
|
-
|
94
|
-
this.setProgress( 0 );
|
95
|
-
|
96
|
-
return this; // chain
|
97
|
-
|
98
|
-
},
|
99
|
-
|
100
|
-
/**
|
101
|
-
* Enter the loading state, after a delay.
|
102
|
-
*/
|
103
|
-
startAfter: function( delay ) {
|
104
|
-
|
105
|
-
clearTimeout( timer );
|
106
|
-
timer = setTimeout( function() { instance.start(); }, delay );
|
107
|
-
|
108
|
-
return this; // chain
|
109
|
-
|
110
|
-
},
|
111
|
-
|
112
|
-
/**
|
113
|
-
* Exit the loading state.
|
114
|
-
*/
|
115
|
-
stop: function() {
|
116
|
-
|
117
|
-
button.removeAttribute( 'disabled' );
|
118
|
-
button.removeAttribute( 'data-loading' );
|
119
|
-
|
120
|
-
// Kill the animation after a delay to make sure it
|
121
|
-
// runs for the duration of the button transition
|
122
|
-
clearTimeout( timer );
|
123
|
-
|
124
|
-
if( spinner ) {
|
125
|
-
timer = setTimeout( function() { spinner.stop(); }, 1000 );
|
126
|
-
}
|
127
|
-
|
128
|
-
return this; // chain
|
129
|
-
|
130
|
-
},
|
131
|
-
|
132
|
-
/**
|
133
|
-
* Toggle the loading state on/off.
|
134
|
-
*/
|
135
|
-
toggle: function() {
|
136
|
-
|
137
|
-
if( this.isLoading() ) {
|
138
|
-
this.stop();
|
139
|
-
}
|
140
|
-
else {
|
141
|
-
this.start();
|
142
|
-
}
|
143
|
-
|
144
|
-
return this; // chain
|
145
|
-
|
146
|
-
},
|
147
|
-
|
148
|
-
/**
|
149
|
-
* Sets the width of the visual progress bar inside of
|
150
|
-
* this Ladda button
|
151
|
-
*
|
152
|
-
* @param {Number} progress in the range of 0-1
|
153
|
-
*/
|
154
|
-
setProgress: function( progress ) {
|
155
|
-
|
156
|
-
// Cap it
|
157
|
-
progress = Math.max( Math.min( progress, 1 ), 0 );
|
158
|
-
|
159
|
-
var progressElement = button.querySelector( '.ladda-progress' );
|
160
|
-
|
161
|
-
// Remove the progress bar if we're at 0 progress
|
162
|
-
if( progress === 0 && progressElement && progressElement.parentNode ) {
|
163
|
-
progressElement.parentNode.removeChild( progressElement );
|
164
|
-
}
|
165
|
-
else {
|
166
|
-
if( !progressElement ) {
|
167
|
-
progressElement = document.createElement( 'div' );
|
168
|
-
progressElement.className = 'ladda-progress';
|
169
|
-
button.appendChild( progressElement );
|
170
|
-
}
|
171
|
-
|
172
|
-
progressElement.style.width = ( ( progress || 0 ) * button.offsetWidth ) + 'px';
|
173
|
-
}
|
174
|
-
|
175
|
-
},
|
176
|
-
|
177
|
-
enable: function() {
|
178
|
-
|
179
|
-
this.stop();
|
180
|
-
|
181
|
-
return this; // chain
|
182
|
-
|
183
|
-
},
|
184
|
-
|
185
|
-
disable: function () {
|
186
|
-
|
187
|
-
this.stop();
|
188
|
-
button.setAttribute( 'disabled', '' );
|
189
|
-
|
190
|
-
return this; // chain
|
191
|
-
|
192
|
-
},
|
193
|
-
|
194
|
-
isLoading: function() {
|
195
|
-
|
196
|
-
return button.hasAttribute( 'data-loading' );
|
197
|
-
|
198
|
-
},
|
199
|
-
|
200
|
-
remove: function() {
|
201
|
-
|
202
|
-
clearTimeout( timer );
|
203
|
-
|
204
|
-
button.removeAttribute( 'disabled', '' );
|
205
|
-
button.removeAttribute( 'data-loading', '' );
|
206
|
-
|
207
|
-
if( spinner ) {
|
208
|
-
spinner.stop();
|
209
|
-
spinner = null;
|
210
|
-
}
|
211
|
-
|
212
|
-
for( var i = 0, len = ALL_INSTANCES.length; i < len; i++ ) {
|
213
|
-
if( instance === ALL_INSTANCES[i] ) {
|
214
|
-
ALL_INSTANCES.splice( i, 1 );
|
215
|
-
break;
|
216
|
-
}
|
217
|
-
}
|
218
|
-
|
219
|
-
}
|
220
|
-
|
221
|
-
};
|
222
|
-
|
223
|
-
ALL_INSTANCES.push( instance );
|
224
|
-
|
225
|
-
return instance;
|
226
|
-
|
227
|
-
}
|
228
|
-
|
229
|
-
/**
|
230
|
-
* Get the first ancestor node from an element, having a
|
231
|
-
* certain type.
|
232
|
-
*
|
233
|
-
* @param elem An HTML element
|
234
|
-
* @param type an HTML tag type (uppercased)
|
235
|
-
*
|
236
|
-
* @return An HTML element
|
237
|
-
*/
|
238
|
-
function getAncestorOfTagType( elem, type ) {
|
239
|
-
|
240
|
-
while ( elem.parentNode && elem.tagName !== type ) {
|
241
|
-
elem = elem.parentNode;
|
242
|
-
}
|
243
|
-
|
244
|
-
return ( type === elem.tagName ) ? elem : undefined;
|
245
|
-
|
246
|
-
}
|
247
|
-
|
248
|
-
/**
|
249
|
-
* Returns a list of all inputs in the given form that
|
250
|
-
* have their `required` attribute set.
|
251
|
-
*
|
252
|
-
* @param form The from HTML element to look in
|
253
|
-
*
|
254
|
-
* @return A list of elements
|
255
|
-
*/
|
256
|
-
function getRequiredFields( form ) {
|
257
|
-
|
258
|
-
var requirables = [ 'input', 'textarea', 'select' ];
|
259
|
-
var inputs = [];
|
260
|
-
|
261
|
-
for( var i = 0; i < requirables.length; i++ ) {
|
262
|
-
var candidates = form.getElementsByTagName( requirables[i] );
|
263
|
-
for( var j = 0; j < candidates.length; j++ ) {
|
264
|
-
if ( candidates[j].hasAttribute( 'required' ) ) {
|
265
|
-
inputs.push( candidates[j] );
|
266
|
-
}
|
267
|
-
}
|
268
|
-
}
|
269
|
-
|
270
|
-
return inputs;
|
271
|
-
|
272
|
-
}
|
273
|
-
|
274
|
-
|
275
|
-
/**
|
276
|
-
* Binds the target buttons to automatically enter the
|
277
|
-
* loading state when clicked.
|
278
|
-
*
|
279
|
-
* @param target Either an HTML element or a CSS selector.
|
280
|
-
* @param options
|
281
|
-
* - timeout Number of milliseconds to wait before
|
282
|
-
* automatically cancelling the animation.
|
283
|
-
*/
|
284
|
-
function bind( target, options ) {
|
285
|
-
|
286
|
-
options = options || {};
|
287
|
-
|
288
|
-
var targets = [];
|
289
|
-
|
290
|
-
if( typeof target === 'string' ) {
|
291
|
-
targets = toArray( document.querySelectorAll( target ) );
|
292
|
-
}
|
293
|
-
else if( typeof target === 'object' && typeof target.nodeName === 'string' ) {
|
294
|
-
targets = [ target ];
|
295
|
-
}
|
296
|
-
|
297
|
-
for( var i = 0, len = targets.length; i < len; i++ ) {
|
298
|
-
|
299
|
-
(function() {
|
300
|
-
var element = targets[i];
|
301
|
-
|
302
|
-
// Make sure we're working with a DOM element
|
303
|
-
if( typeof element.addEventListener === 'function' ) {
|
304
|
-
var instance = create( element );
|
305
|
-
var timeout = -1;
|
306
|
-
|
307
|
-
element.addEventListener( 'click', function( event ) {
|
308
|
-
|
309
|
-
// If the button belongs to a form, make sure all the
|
310
|
-
// fields in that form are filled out
|
311
|
-
var valid = true;
|
312
|
-
var form = getAncestorOfTagType( element, 'FORM' );
|
313
|
-
|
314
|
-
if( typeof form !== 'undefined' ) {
|
315
|
-
// Modern form validation
|
316
|
-
if( typeof form.checkValidity === 'function' ) {
|
317
|
-
valid = form.checkValidity();
|
318
|
-
}
|
319
|
-
// Fallback to manual validation for old browsers
|
320
|
-
else {
|
321
|
-
var requireds = getRequiredFields( form );
|
322
|
-
for( var i = 0; i < requireds.length; i++ ) {
|
323
|
-
|
324
|
-
if( requireds[i].value.replace( /^\s+|\s+$/g, '' ) === '' ) {
|
325
|
-
valid = false;
|
326
|
-
}
|
327
|
-
|
328
|
-
// Radiobuttons and Checkboxes need to be checked for the "checked" attribute
|
329
|
-
if( (requireds[i].type === 'checkbox' || requireds[i].type === 'radio' ) && !requireds[i].checked ) {
|
330
|
-
valid = false;
|
331
|
-
}
|
332
|
-
|
333
|
-
// Email field validation
|
334
|
-
if( requireds[i].type === 'email' ) {
|
335
|
-
valid = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/.test( requireds[i].value );
|
336
|
-
}
|
337
|
-
|
338
|
-
}
|
339
|
-
}
|
340
|
-
}
|
341
|
-
|
342
|
-
if( valid ) {
|
343
|
-
// This is asynchronous to avoid an issue where setting
|
344
|
-
// the disabled attribute on the button prevents forms
|
345
|
-
// from submitting
|
346
|
-
instance.startAfter( 1 );
|
347
|
-
|
348
|
-
// Set a loading timeout if one is specified
|
349
|
-
if( typeof options.timeout === 'number' ) {
|
350
|
-
clearTimeout( timeout );
|
351
|
-
timeout = setTimeout( instance.stop, options.timeout );
|
352
|
-
}
|
353
|
-
|
354
|
-
// Invoke callbacks
|
355
|
-
if( typeof options.callback === 'function' ) {
|
356
|
-
options.callback.apply( null, [ instance ] );
|
357
|
-
}
|
358
|
-
}
|
359
|
-
|
360
|
-
}, false );
|
361
|
-
}
|
362
|
-
})();
|
363
|
-
|
364
|
-
}
|
365
|
-
|
366
|
-
}
|
367
|
-
|
368
|
-
/**
|
369
|
-
* Stops ALL current loading animations.
|
370
|
-
*/
|
371
|
-
function stopAll() {
|
372
|
-
|
373
|
-
for( var i = 0, len = ALL_INSTANCES.length; i < len; i++ ) {
|
374
|
-
ALL_INSTANCES[i].stop();
|
375
|
-
}
|
376
|
-
|
377
|
-
}
|
378
|
-
|
379
|
-
function createSpinner( button ) {
|
380
|
-
|
381
|
-
var height = button.offsetHeight,
|
382
|
-
spinnerColor,
|
383
|
-
spinnerLines;
|
384
|
-
|
385
|
-
if( height === 0 ) {
|
386
|
-
// We may have an element that is not visible so
|
387
|
-
// we attempt to get the height in a different way
|
388
|
-
height = parseFloat( window.getComputedStyle( button ).height );
|
389
|
-
}
|
390
|
-
|
391
|
-
// If the button is tall we can afford some padding
|
392
|
-
if( height > 32 ) {
|
393
|
-
height *= 0.8;
|
394
|
-
}
|
395
|
-
|
396
|
-
// Prefer an explicit height if one is defined
|
397
|
-
if( button.hasAttribute( 'data-spinner-size' ) ) {
|
398
|
-
height = parseInt( button.getAttribute( 'data-spinner-size' ), 10 );
|
399
|
-
}
|
400
|
-
|
401
|
-
// Allow buttons to specify the color of the spinner element
|
402
|
-
if( button.hasAttribute( 'data-spinner-color' ) ) {
|
403
|
-
spinnerColor = button.getAttribute( 'data-spinner-color' );
|
404
|
-
}
|
405
|
-
|
406
|
-
// Allow buttons to specify the number of lines of the spinner
|
407
|
-
if( button.hasAttribute( 'data-spinner-lines' ) ) {
|
408
|
-
spinnerLines = parseInt( button.getAttribute( 'data-spinner-lines' ), 10 );
|
409
|
-
}
|
410
|
-
|
411
|
-
var radius = height * 0.2,
|
412
|
-
length = radius * 0.6,
|
413
|
-
width = radius < 7 ? 2 : 3;
|
414
|
-
|
415
|
-
return new Spinner( {
|
416
|
-
color: spinnerColor || '#fff',
|
417
|
-
lines: spinnerLines || 12,
|
418
|
-
radius: radius,
|
419
|
-
length: length,
|
420
|
-
width: width,
|
421
|
-
zIndex: 'auto',
|
422
|
-
top: 'auto',
|
423
|
-
left: 'auto',
|
424
|
-
className: ''
|
425
|
-
} );
|
426
|
-
|
427
|
-
}
|
428
|
-
|
429
|
-
function toArray( nodes ) {
|
430
|
-
|
431
|
-
var a = [];
|
432
|
-
|
433
|
-
for ( var i = 0; i < nodes.length; i++ ) {
|
434
|
-
a.push( nodes[ i ] );
|
435
|
-
}
|
436
|
-
|
437
|
-
return a;
|
438
|
-
|
439
|
-
}
|
440
|
-
|
441
|
-
function wrapContent( node, wrapper ) {
|
442
|
-
|
443
|
-
var r = document.createRange();
|
444
|
-
r.selectNodeContents( node );
|
445
|
-
r.surroundContents( wrapper );
|
446
|
-
node.appendChild( wrapper );
|
447
|
-
|
448
|
-
}
|
449
|
-
|
450
|
-
// Public API
|
451
|
-
return {
|
452
|
-
|
453
|
-
bind: bind,
|
454
|
-
create: create,
|
455
|
-
stopAll: stopAll
|
456
|
-
|
457
|
-
};
|
458
|
-
|
459
|
-
}));
|