fluentd-ui 0.4.5 → 1.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (243) hide show
  1. checksums.yaml +5 -5
  2. data/.babelrc +18 -0
  3. data/.editorconfig +11 -0
  4. data/.gitignore +7 -0
  5. data/.postcssrc.yml +3 -0
  6. data/.travis.yml +20 -4
  7. data/ChangeLog.md +7 -2
  8. data/Gemfile +8 -6
  9. data/Gemfile.lock +177 -178
  10. data/README.md +15 -10
  11. data/app/assets/stylesheets/application.css +6 -5
  12. data/app/controllers/concerns/setting_history_concern.rb +1 -1
  13. data/app/controllers/fluentd/agents_controller.rb +5 -0
  14. data/app/controllers/misc_controller.rb +2 -2
  15. data/app/controllers/plugins_controller.rb +4 -4
  16. data/app/helpers/application_helper.rb +8 -2
  17. data/app/helpers/settings_helper.rb +2 -2
  18. data/app/javascript/packs/application.js +31 -0
  19. data/app/{assets/javascripts/codemirror_fluentd.js → javascript/packs/codemirror.js} +32 -1
  20. data/app/javascript/packs/fluent_log.js +63 -0
  21. data/app/javascript/packs/in_tail_format.js +174 -0
  22. data/app/javascript/packs/nested_settings.js +40 -0
  23. data/app/javascript/packs/notification.js +60 -0
  24. data/app/javascript/packs/settings.js +122 -0
  25. data/app/javascript/packs/treeview.js +99 -0
  26. data/{vendor/assets/javascripts/.keep → app/javascript/stylesheets/application.scss} +0 -0
  27. data/app/jobs/all_plugin_check_update_job.rb +10 -0
  28. data/app/jobs/application_job.rb +2 -0
  29. data/app/{workers/fluentd_ui_restart.rb → jobs/fluentd_ui_restart_job.rb} +4 -4
  30. data/app/jobs/fluentd_ui_update_check_job.rb +11 -0
  31. data/app/{workers/gem_installer.rb → jobs/gem_installer_job.rb} +4 -5
  32. data/app/jobs/gem_uninstaller_job.rb +14 -0
  33. data/app/jobs/gem_update_check_job.rb +9 -0
  34. data/app/models/fluentd/agent.rb +9 -5
  35. data/app/models/fluentd/agent/common.rb +10 -6
  36. data/app/models/fluentd/agent/fluentd_gem.rb +2 -3
  37. data/app/models/fluentd/agent/td_agent/unix.rb +7 -5
  38. data/app/models/fluentd/setting/in_tail.rb +2 -2
  39. data/app/views/fluentd/_form.html.haml +1 -1
  40. data/app/views/fluentd/errors.html.haml +5 -6
  41. data/app/views/fluentd/log.html.haml +4 -5
  42. data/app/views/fluentd/settings/edit.html.haml +2 -1
  43. data/app/views/fluentd/settings/histories/_list.html.haml +1 -1
  44. data/app/views/fluentd/settings/histories/show.html.haml +6 -6
  45. data/app/views/fluentd/settings/in_tail/after_file_choose.html.haml +4 -3
  46. data/app/views/fluentd/settings/in_tail/after_format.html.haml +2 -2
  47. data/app/views/fluentd/settings/in_tail/confirm.html.haml +3 -3
  48. data/app/views/fluentd/settings/running_backup/show.html.haml +5 -5
  49. data/app/views/fluentd/settings/show.html.haml +7 -7
  50. data/app/views/fluentd/settings/source_and_output.html.haml +31 -18
  51. data/app/views/fluentd/show.html.haml +16 -15
  52. data/app/views/layouts/application.html.erb +31 -46
  53. data/app/views/layouts/sign_in.html.erb +9 -16
  54. data/app/views/misc/information.html.haml +13 -13
  55. data/app/views/misc/update_fluentd_ui.html.haml +3 -3
  56. data/app/views/plugins/installed.html.haml +8 -8
  57. data/app/views/plugins/recommended.html.haml +5 -5
  58. data/app/views/plugins/updated.html.haml +5 -5
  59. data/app/views/sessions/new.html.haml +5 -6
  60. data/app/views/shared/_global_nav.html.erb +9 -9
  61. data/app/views/shared/_initial_setup.html.haml +3 -3
  62. data/app/views/shared/_modal.html.erb +1 -1
  63. data/app/views/shared/settings/_form.html.haml +9 -8
  64. data/app/views/shared/settings/show.html.haml +4 -2
  65. data/app/views/shared/vue/_fluent_log.html.erb +6 -6
  66. data/app/views/shared/vue/_in_tail_format.html.erb +31 -29
  67. data/app/views/shared/vue/_notification.html.erb +5 -9
  68. data/app/views/shared/vue/_setting.html.erb +12 -10
  69. data/app/views/shared/vue/_treeview.html.erb +13 -10
  70. data/app/views/tutorials/chapter1.html.erb +3 -4
  71. data/app/views/tutorials/chapter2.html.haml +2 -2
  72. data/app/views/tutorials/chapter3.html.haml +2 -2
  73. data/app/views/tutorials/chapter4.html.haml +2 -2
  74. data/app/views/users/show.html.haml +1 -1
  75. data/bin/bundle +1 -1
  76. data/bin/fluentd-ui +1 -0
  77. data/bin/rails +1 -1
  78. data/bin/setup +16 -17
  79. data/bin/update +28 -0
  80. data/bin/webpack +15 -0
  81. data/bin/webpack-dev-server +15 -0
  82. data/bin/yarn +11 -0
  83. data/config/application.rb +18 -5
  84. data/config/boot.rb +2 -1
  85. data/config/environment.rb +1 -1
  86. data/config/environments/development.rb +27 -5
  87. data/config/environments/production.rb +34 -23
  88. data/config/environments/test.rb +7 -3
  89. data/config/initializers/application_controller_renderer.rb +8 -0
  90. data/config/initializers/assets.rb +14 -0
  91. data/config/initializers/content_security_policy.rb +25 -0
  92. data/config/initializers/cookies_serializer.rb +2 -0
  93. data/config/initializers/fluentd_ui_update_check.rb +2 -1
  94. data/config/initializers/new_framework_defaults_5_2.rb +35 -0
  95. data/config/initializers/prefetch_gem_updates.rb +4 -1
  96. data/config/initializers/wrap_parameters.rb +1 -6
  97. data/config/locales/ja.yml +61 -57
  98. data/config/routes.rb +1 -0
  99. data/config/spring.rb +6 -0
  100. data/config/webpack/development.js +5 -0
  101. data/config/webpack/environment.js +20 -0
  102. data/config/webpack/loaders/vue.js +13 -0
  103. data/config/webpack/production.js +5 -0
  104. data/config/webpack/test.js +5 -0
  105. data/config/webpacker.yml +69 -0
  106. data/fluentd-ui.gemspec +16 -6
  107. data/lib/fluentd-ui/version.rb +1 -1
  108. data/lib/regexp_preview/single_line.rb +5 -5
  109. data/package.json +19 -0
  110. data/spec/controllers/application_controller_spec.rb +2 -6
  111. data/spec/controllers/fluentd/agents_controller_spec.rb +12 -0
  112. data/spec/controllers/polling_controller_spec.rb +1 -1
  113. data/spec/factories/fluentd.rb +1 -1
  114. data/spec/factories/plugins.rb +2 -2
  115. data/spec/factories/user.rb +1 -1
  116. data/spec/features/fluentd/setting/histories_spec.rb +7 -6
  117. data/spec/features/fluentd/setting/running_backup_spec.rb +4 -3
  118. data/spec/features/setting_spec.rb +1 -0
  119. data/spec/features/source_and_output_spec.rb +16 -16
  120. data/spec/lib/regexp_preview/single_line_spec.rb +1 -1
  121. data/spec/models/fluentd_spec.rb +4 -4
  122. data/spec/spec_helper.rb +16 -4
  123. data/yarn.lock +6225 -0
  124. metadata +120 -154
  125. data/.bowerrc +0 -3
  126. data/app/assets/javascripts/application.js +0 -24
  127. data/app/assets/javascripts/codemirror.js +0 -29
  128. data/app/assets/javascripts/enable_bootstrap_tooltip.js +0 -3
  129. data/app/assets/javascripts/nested_setting.js +0 -41
  130. data/app/assets/javascripts/vue/fluent_log.js +0 -64
  131. data/app/assets/javascripts/vue/in_tail_format.js +0 -177
  132. data/app/assets/javascripts/vue/notification.js +0 -65
  133. data/app/assets/javascripts/vue/settings.js +0 -121
  134. data/app/assets/javascripts/vue/treeview.js +0 -97
  135. data/app/assets/javascripts/vue_common.js +0 -4
  136. data/app/workers/all_plugin_check_update.rb +0 -14
  137. data/app/workers/fluentd_ui_update_check.rb +0 -15
  138. data/app/workers/gem_uninstaller.rb +0 -15
  139. data/app/workers/gem_update_check.rb +0 -10
  140. data/bower.json +0 -11
  141. data/vendor/assets/javascripts/bower/.gitignore +0 -10
  142. data/vendor/assets/javascripts/bower/codemirror/.bower.json +0 -29
  143. data/vendor/assets/javascripts/bower/codemirror/bower.json +0 -16
  144. data/vendor/assets/javascripts/bower/codemirror/lib/codemirror.css +0 -309
  145. data/vendor/assets/javascripts/bower/codemirror/lib/codemirror.js +0 -8029
  146. data/vendor/assets/javascripts/bower/codemirror/theme/3024-day.css +0 -38
  147. data/vendor/assets/javascripts/bower/codemirror/theme/3024-night.css +0 -37
  148. data/vendor/assets/javascripts/bower/codemirror/theme/ambiance-mobile.css +0 -5
  149. data/vendor/assets/javascripts/bower/codemirror/theme/ambiance.css +0 -77
  150. data/vendor/assets/javascripts/bower/codemirror/theme/base16-dark.css +0 -36
  151. data/vendor/assets/javascripts/bower/codemirror/theme/base16-light.css +0 -36
  152. data/vendor/assets/javascripts/bower/codemirror/theme/blackboard.css +0 -30
  153. data/vendor/assets/javascripts/bower/codemirror/theme/cobalt.css +0 -23
  154. data/vendor/assets/javascripts/bower/codemirror/theme/eclipse.css +0 -23
  155. data/vendor/assets/javascripts/bower/codemirror/theme/elegant.css +0 -13
  156. data/vendor/assets/javascripts/bower/codemirror/theme/erlang-dark.css +0 -32
  157. data/vendor/assets/javascripts/bower/codemirror/theme/lesser-dark.css +0 -45
  158. data/vendor/assets/javascripts/bower/codemirror/theme/mbo.css +0 -35
  159. data/vendor/assets/javascripts/bower/codemirror/theme/mdn-like.css +0 -44
  160. data/vendor/assets/javascripts/bower/codemirror/theme/midnight.css +0 -45
  161. data/vendor/assets/javascripts/bower/codemirror/theme/monokai.css +0 -31
  162. data/vendor/assets/javascripts/bower/codemirror/theme/neat.css +0 -12
  163. data/vendor/assets/javascripts/bower/codemirror/theme/neo.css +0 -43
  164. data/vendor/assets/javascripts/bower/codemirror/theme/night.css +0 -26
  165. data/vendor/assets/javascripts/bower/codemirror/theme/paraiso-dark.css +0 -36
  166. data/vendor/assets/javascripts/bower/codemirror/theme/paraiso-light.css +0 -36
  167. data/vendor/assets/javascripts/bower/codemirror/theme/pastel-on-dark.css +0 -50
  168. data/vendor/assets/javascripts/bower/codemirror/theme/rubyblue.css +0 -23
  169. data/vendor/assets/javascripts/bower/codemirror/theme/solarized.css +0 -165
  170. data/vendor/assets/javascripts/bower/codemirror/theme/the-matrix.css +0 -28
  171. data/vendor/assets/javascripts/bower/codemirror/theme/tomorrow-night-bright.css +0 -35
  172. data/vendor/assets/javascripts/bower/codemirror/theme/tomorrow-night-eighties.css +0 -36
  173. data/vendor/assets/javascripts/bower/codemirror/theme/twilight.css +0 -30
  174. data/vendor/assets/javascripts/bower/codemirror/theme/vibrant-ink.css +0 -32
  175. data/vendor/assets/javascripts/bower/codemirror/theme/xq-dark.css +0 -51
  176. data/vendor/assets/javascripts/bower/codemirror/theme/xq-light.css +0 -43
  177. data/vendor/assets/javascripts/bower/codemirror/theme/zenburn.css +0 -37
  178. data/vendor/assets/javascripts/bower/es6-promise/.bower.json +0 -15
  179. data/vendor/assets/javascripts/bower/es6-promise/bower.json +0 -5
  180. data/vendor/assets/javascripts/bower/es6-promise/promise.js +0 -684
  181. data/vendor/assets/javascripts/bower/es6-promise/promise.min.js +0 -1
  182. data/vendor/assets/javascripts/bower/lodash/.bower.json +0 -33
  183. data/vendor/assets/javascripts/bower/lodash/LICENSE.txt +0 -22
  184. data/vendor/assets/javascripts/bower/lodash/bower.json +0 -23
  185. data/vendor/assets/javascripts/bower/lodash/dist/lodash.compat.js +0 -7157
  186. data/vendor/assets/javascripts/bower/lodash/dist/lodash.compat.min.js +0 -61
  187. data/vendor/assets/javascripts/bower/lodash/dist/lodash.js +0 -6785
  188. data/vendor/assets/javascripts/bower/lodash/dist/lodash.min.js +0 -56
  189. data/vendor/assets/javascripts/bower/lodash/dist/lodash.underscore.js +0 -4979
  190. data/vendor/assets/javascripts/bower/lodash/dist/lodash.underscore.min.js +0 -39
  191. data/vendor/assets/javascripts/bower/vue/.bower.json +0 -29
  192. data/vendor/assets/javascripts/bower/vue/bower.json +0 -17
  193. data/vendor/assets/javascripts/bower/vue/dist/vue.js +0 -7977
  194. data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +0 -7
  195. data/vendor/assets/javascripts/sb-admin-v2/bootstrap.js +0 -1951
  196. data/vendor/assets/javascripts/sb-admin-v2/bootstrap.min.js +0 -6
  197. data/vendor/assets/javascripts/sb-admin-v2/demo/dashboard-demo.js +0 -117
  198. data/vendor/assets/javascripts/sb-admin-v2/demo/flot-demo.js +0 -1242
  199. data/vendor/assets/javascripts/sb-admin-v2/demo/morris-demo.js +0 -155
  200. data/vendor/assets/javascripts/sb-admin-v2/jquery-1.10.2.js +0 -6
  201. data/vendor/assets/javascripts/sb-admin-v2/plugins/dataTables/dataTables.bootstrap.js +0 -245
  202. data/vendor/assets/javascripts/sb-admin-v2/plugins/dataTables/jquery.dataTables.js +0 -14013
  203. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/excanvas.min.js +0 -1
  204. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.js +0 -2599
  205. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.pie.js +0 -750
  206. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.resize.js +0 -60
  207. data/vendor/assets/javascripts/sb-admin-v2/plugins/flot/jquery.flot.tooltip.min.js +0 -12
  208. data/vendor/assets/javascripts/sb-admin-v2/plugins/metisMenu/jquery.metisMenu.js +0 -45
  209. data/vendor/assets/javascripts/sb-admin-v2/plugins/morris/morris.js +0 -1888
  210. data/vendor/assets/javascripts/sb-admin-v2/plugins/morris/raphael-2.1.0.min.js +0 -10
  211. data/vendor/assets/javascripts/sb-admin-v2/sb-admin.js +0 -18
  212. data/vendor/assets/stylesheets/.keep +0 -0
  213. data/vendor/assets/stylesheets/sb-admin-v2/bootstrap.css +0 -5830
  214. data/vendor/assets/stylesheets/sb-admin-v2/bootstrap.min.css +0 -7
  215. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/css/font-awesome.css +0 -1338
  216. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/css/font-awesome.min.css +0 -4
  217. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/FontAwesome.otf +0 -0
  218. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  219. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.svg +0 -414
  220. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  221. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  222. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_bordered-pulled.scss +0 -16
  223. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_core.scss +0 -12
  224. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_fixed-width.scss +0 -6
  225. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_icons.scss +0 -412
  226. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_larger.scss +0 -13
  227. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_list.scss +0 -19
  228. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_mixins.scss +0 -20
  229. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_path.scss +0 -14
  230. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_rotated-flipped.scss +0 -9
  231. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_spinning.scss +0 -30
  232. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_stacked.scss +0 -20
  233. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/_variables.scss +0 -381
  234. data/vendor/assets/stylesheets/sb-admin-v2/font-awesome/scss/font-awesome.scss +0 -17
  235. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.eot +0 -0
  236. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.svg +0 -229
  237. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.ttf +0 -0
  238. data/vendor/assets/stylesheets/sb-admin-v2/fonts/glyphicons-halflings-regular.woff +0 -0
  239. data/vendor/assets/stylesheets/sb-admin-v2/plugins/dataTables/dataTables.bootstrap.css +0 -233
  240. data/vendor/assets/stylesheets/sb-admin-v2/plugins/morris/morris-0.4.3.min.css +0 -2
  241. data/vendor/assets/stylesheets/sb-admin-v2/plugins/social-buttons/social-buttons.css +0 -68
  242. data/vendor/assets/stylesheets/sb-admin-v2/plugins/timeline/timeline.css +0 -144
  243. data/vendor/assets/stylesheets/sb-admin-v2/sb-admin.css +0 -329
@@ -1,7 +0,0 @@
1
- /**
2
- * Vue.js v0.11.4
3
- * (c) 2014 Evan You
4
- * Released under the MIT License.
5
- */
6
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):"object"==typeof exports?exports.Vue=e():t.Vue=e()}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return t[n].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){function n(t){this._init(t)}var r=i(1),s=r.extend;s(n,i(2)),n.options={directives:i(8),filters:i(9),partials:{},transitions:{},components:{}};var o=n.prototype;Object.defineProperty(o,"$data",{get:function(){return this._data},set:function(t){this._setData(t)}}),s(o,i(10)),s(o,i(11)),s(o,i(12)),s(o,i(13)),s(o,i(3)),s(o,i(4)),s(o,i(5)),s(o,i(6)),s(o,i(7)),t.exports=r.Vue=n},function(t,e,i){var n=i(14),r=n.extend;r(e,n),r(e,i(15)),r(e,i(16)),r(e,i(17)),r(e,i(18))},function(t,e,i){function n(t){return new Function("return function "+s.camelize(t,!0)+" (options) { this._init(options) }")()}function r(t){c.forEach(function(e){t[e]=function(t,i){return i?void(this.options[e+"s"][t]=i):this.options[e+"s"][t]}}),t.component=function(t,e){return e?(s.isPlainObject(e)&&(e.name=t,e=s.Vue.extend(e)),void(this.options.components[t]=e)):this.options.components[t]}}var s=i(1),o=i(19);e.util=s,e.nextTick=s.nextTick,e.config=i(20),e.compiler={compile:i(42),transclude:i(43)},e.parsers={path:i(44),text:i(45),template:i(46),directive:i(47),expression:i(48)},e.cid=0;var a=1;e.extend=function(t){t=t||{};var e=this,i=n(t.name||"VueComponent");return i.prototype=Object.create(e.prototype),i.prototype.constructor=i,i.cid=a++,i.options=o(e.options,t),i["super"]=e,i.extend=e.extend,r(i),i},e.use=function(t){var e=s.toArray(arguments,1);return e.unshift(this),"function"==typeof t.install?t.install.apply(t,e):t.apply(null,e),this};var c=["directive","filter","partial","transition"];r(e)},function(t,e,i){var n=i(1),r=i(21),s=i(44),o=i(45),a=i(47),c=i(48),h=/[^|]\|[^|]/;e.$get=function(t){var e=c.parse(t);return e?e.get.call(this,this):void 0},e.$set=function(t,e){var i=c.parse(t,!0);i&&i.set&&i.set.call(this,this,e)},e.$add=function(t,e){this._data.$add(t,e)},e.$delete=function(t){this._data.$delete(t)},e.$watch=function(t,e,i,n){var s=this,o=i?t+"**deep**":t,a=s._userWatchers[o],c=function(t,i){e.call(s,t,i)};return a?a.addCb(c):a=s._userWatchers[o]=new r(s,t,c,{deep:i,user:!0}),n&&c(a.value),function(){a.removeCb(c),a.active||(s._userWatchers[o]=null)}},e.$eval=function(t){if(h.test(t)){var e=a.parse(t)[0];return e.filters?n.applyFilters(this.$get(e.expression),n.resolveFilters(this,e.filters).read,this):this.$get(e.expression)}return this.$get(t)},e.$interpolate=function(t){var e=o.parse(t),i=this;return e?1===e.length?i.$eval(e[0].value):e.map(function(t){return t.tag?i.$eval(t.value):t.value}).join(""):t},e.$log=function(t){var e=t?s.get(this._data,t):this._data;e&&(e=JSON.parse(JSON.stringify(e))),console.log(e)}},function(t,e,i){function n(t,e,i,n,o,a){e=s(e);var c=!h.inDoc(e),l=n===!1||c?o:a,u=!c&&!t._isAttached&&!h.inDoc(t.$el);return t._isBlock?r(t,e,l,i):l(t.$el,e,t,i),u&&t._callHook("attached"),t}function r(t,e,i,n){for(var r,s=t._blockStart,o=t._blockEnd;r!==o;)r=s.nextSibling,i(s,e,t),s=r;i(o,e,t,n)}function s(t){return"string"==typeof t?document.querySelector(t):t}function o(t,e,i,n){e.appendChild(t),n&&n()}function a(t,e,i,n){h.before(t,e),n&&n()}function c(t,e,i){h.remove(t),i&&i()}var h=i(1),l=i(49);e.$appendTo=function(t,e,i){return n(this,t,e,i,o,l.append)},e.$prependTo=function(t,e,i){return t=s(t),t.hasChildNodes()?this.$before(t.firstChild,e,i):this.$appendTo(t,e,i),this},e.$before=function(t,e,i){return n(this,t,e,i,a,l.before)},e.$after=function(t,e,i){return t=s(t),t.nextSibling?this.$before(t.nextSibling,e,i):this.$appendTo(t.parentNode,e,i),this},e.$remove=function(t,e){var i=this._isAttached&&h.inDoc(this.$el);i||(e=!1);var n,s=this,a=function(){i&&s._callHook("detached"),t&&t()};return this._isBlock&&!this._blockFragment.hasChildNodes()?(n=e===!1?o:l.removeThenAppend,r(this,this._blockFragment,n,a)):(n=e===!1?c:l.remove)(this.$el,this,a),this}},function(t,e,i){function n(t,e,i){var n=t.$parent;if(n&&i&&!s.test(e))for(;n;)n._eventsCount[e]=(n._eventsCount[e]||0)+i,n=n.$parent}var r=i(1);e.$on=function(t,e){return(this._events[t]||(this._events[t]=[])).push(e),n(this,t,1),this},e.$once=function(t,e){function i(){n.$off(t,i),e.apply(this,arguments)}var n=this;return i.fn=e,this.$on(t,i),this},e.$off=function(t,e){var i;if(!arguments.length){if(this.$parent)for(t in this._events)i=this._events[t],i&&n(this,t,-i.length);return this._events={},this}if(i=this._events[t],!i)return this;if(1===arguments.length)return n(this,t,-i.length),this._events[t]=null,this;for(var r,s=i.length;s--;)if(r=i[s],r===e||r.fn===e){n(this,t,-1),i.splice(s,1);break}return this},e.$emit=function(t){this._eventCancelled=!1;var e=this._events[t];if(e){for(var i=arguments.length-1,n=new Array(i);i--;)n[i]=arguments[i+1];i=0,e=e.length>1?r.toArray(e):e;for(var s=e.length;s>i;i++)e[i].apply(this,n)===!1&&(this._eventCancelled=!0)}return this},e.$broadcast=function(t){if(this._eventsCount[t]){var e=this._children;if(e)for(var i=0,n=e.length;n>i;i++){var r=e[i];r.$emit.apply(r,arguments),r._eventCancelled||r.$broadcast.apply(r,arguments)}return this}},e.$dispatch=function(){for(var t=this.$parent;t;)t.$emit.apply(t,arguments),t=t._eventCancelled?null:t.$parent;return this};var s=/^hook:/},function(t,e,i){var n=i(1);e.$addChild=function(t,e){e=e||n.Vue,t=t||{};var i,r=this,s=void 0!==t.inherit?t.inherit:e.options.inherit;if(s){var o=r._childCtors;if(o||(o=r._childCtors={}),i=o[e.cid],!i){var a=e.options.name,c=a?n.camelize(a,!0):"VueComponent";i=new Function("return function "+c+" (options) {this.constructor = "+c+";this._init(options) }")(),i.options=e.options,i.prototype=this,o[e.cid]=i}}else i=e;t._parent=r,t._root=r.$root;var h=new i(t);return this._children||(this._children=[]),this._children.push(h),h}},function(t,e,i){function n(){this._isAttached=!0,this._isReady=!0,this._callHook("ready")}var r=i(1),s=i(42);e.$mount=function(t){if(!this._isCompiled){if(t){if("string"==typeof t){if(t=document.querySelector(t),!t)return}}else t=document.createElement("div");return this._compile(t),this._isCompiled=!0,this._callHook("compiled"),r.inDoc(this.$el)?(this._callHook("attached"),this._initDOMHooks(),n.call(this)):(this._initDOMHooks(),this.$once("hook:attached",n)),this}},e.$destroy=function(t,e){this._destroy(t,e)},e.$compile=function(t){return s(t,this.$options,!0)(this,t)}},function(t,e,i){e.text=i(22),e.html=i(23),e.attr=i(24),e.show=i(25),e["class"]=i(26),e.el=i(27),e.ref=i(28),e.cloak=i(29),e.style=i(30),e.partial=i(31),e.transition=i(32),e.on=i(33),e.model=i(50),e.component=i(34),e.repeat=i(35),e["if"]=i(36),e["with"]=i(37),e.events=i(38)},function(t,e,i){var n=i(1);e.json={read:function(t,e){return"string"==typeof t?t:JSON.stringify(t,null,Number(e)||2)},write:function(t){try{return JSON.parse(t)}catch(e){return t}}},e.capitalize=function(t){return t||0===t?(t=t.toString(),t.charAt(0).toUpperCase()+t.slice(1)):""},e.uppercase=function(t){return t||0===t?t.toString().toUpperCase():""},e.lowercase=function(t){return t||0===t?t.toString().toLowerCase():""};var r=/(\d{3})(?=\d)/g;e.currency=function(t,e){if(t=parseFloat(t),!t&&0!==t)return"";e=e||"$";var i=Math.floor(Math.abs(t)).toString(),n=i.length%3,s=n>0?i.slice(0,n)+(i.length>3?",":""):"",o="."+t.toFixed(2).slice(-2);return(0>t?"-":"")+e+s+i.slice(n).replace(r,"$1,")+o},e.pluralize=function(t){var e=n.toArray(arguments,1);return e.length>1?e[t%10-1]||e[e.length-1]:e[0]+(1===t?"":"s")};var s={enter:13,tab:9,"delete":46,up:38,left:37,right:39,down:40,esc:27};e.key=function(t,e){if(t){var i=s[e];return i||(i=parseInt(e,10)),function(e){return e.keyCode===i?t.call(this,e):void 0}}},e.key.keyCodes=s,n.extend(e,i(39))},function(t,e,i){var n=i(19);e._init=function(t){t=t||{},this.$el=null,this.$parent=t._parent,this.$root=t._root||this,this.$={},this.$$={},this._watcherList=[],this._watchers={},this._userWatchers={},this._directives=[],this._isVue=!0,this._events={},this._eventsCount={},this._eventCancelled=!1,this._isBlock=!1,this._blockStart=this._blockEnd=null,this._isCompiled=this._isDestroyed=this._isReady=this._isAttached=this._isBeingDestroyed=!1,this._children=this._childCtors=null,t=this.$options=n(this.constructor.options,t,this),this._data=t.data||{},this._initScope(),this._initEvents(),this._callHook("created"),t.el&&this.$mount(t.el)}},function(t,e,i){function n(t,e,i){if(i){var n,s,o,c;for(s in i)if(n=i[s],a.isArray(n))for(o=0,c=n.length;c>o;o++)r(t,e,s,n[o]);else r(t,e,s,n)}}function r(t,e,i,n){var r=typeof n;if("function"===r)t[e](i,n);else if("string"===r){var s=t.$options.methods,o=s&&s[n];o&&t[e](i,o)}}function s(){this._isAttached=!0;var t=this._children;if(t)for(var e=0,i=t.length;i>e;e++){var n=t[e];!n._isAttached&&c(n.$el)&&n._callHook("attached")}}function o(){this._isAttached=!1;var t=this._children;if(t)for(var e=0,i=t.length;i>e;e++){var n=t[e];n._isAttached&&!c(n.$el)&&n._callHook("detached")}}var a=i(1),c=a.inDoc;e._initEvents=function(){var t=this.$options;n(this,"$on",t.events),n(this,"$watch",t.watch)},e._initDOMHooks=function(){this.$on("hook:attached",s),this.$on("hook:detached",o)},e._callHook=function(t){var e=this.$options[t];if(e)for(var i=0,n=e.length;n>i;i++)e[i].call(this);this.$emit("hook:"+t)}},function(t,e,i){function n(){}var r=i(1),s=i(51),o=i(40);e._initScope=function(){this._initData(),this._initComputed(),this._initMethods(),this._initMeta()},e._initData=function(){for(var t,e=this._data,i=Object.keys(e),n=i.length;n--;)t=i[n],r.isReserved(t)||this._proxy(t);s.create(e).addVm(this)},e._setData=function(t){t=t||{};var e=this._data;this._data=t;var i,n,o;for(i=Object.keys(e),o=i.length;o--;)n=i[o],r.isReserved(n)||n in t||this._unproxy(n);for(i=Object.keys(t),o=i.length;o--;)n=i[o],this.hasOwnProperty(n)||r.isReserved(n)||this._proxy(n);e.__ob__.removeVm(this),s.create(t).addVm(this),this._digest()},e._proxy=function(t){var e=this;Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return e._data[t]},set:function(i){e._data[t]=i}})},e._unproxy=function(t){delete this[t]},e._digest=function(){for(var t=this._watcherList.length;t--;)this._watcherList[t].update();var e,i=this._children;if(i)for(t=i.length;t--;)e=i[t],e.$options.inherit&&e._digest()},e._initComputed=function(){var t=this.$options.computed;if(t)for(var e in t){var i=t[e],s={enumerable:!0,configurable:!0};"function"==typeof i?(s.get=r.bind(i,this),s.set=n):(s.get=i.get?r.bind(i.get,this):n,s.set=i.set?r.bind(i.set,this):n),Object.defineProperty(this,e,s)}},e._initMethods=function(){var t=this.$options.methods;if(t)for(var e in t)this[e]=r.bind(t[e],this)},e._initMeta=function(){var t=this.$options._meta;if(t)for(var e in t)this._defineMeta(e,t[e])},e._defineMeta=function(t,e){var i=new o;Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:function(){return s.target&&s.target.addDep(i),e},set:function(t){t!==e&&(e=t,i.notify())}})}},function(t,e,i){var n=i(1),r=i(41),s=i(42),o=i(43);e._compile=function(t){var e=this.$options,i=e._parent;if(e._linkFn)this._initElement(t),e._linkFn(this,t);else{var r=t;if(e._asComponent){var a=e._content=n.extractContent(r),c=i.$options;c._skipAttrs=e.paramAttributes;var h=s(r,c,!0,!0);if(c._skipAttrs=null,a){var l=s(a,c,!0);this._contentUnlinkFn=l(i,a)}t=o(t,e),this._initElement(t),this._containerUnlinkFn=h(i,t)}else t=o(t,e),this._initElement(t);var u=s(t,e);u(this,t),e.replace&&n.replace(r,t)}return t},e._initElement=function(t){t instanceof DocumentFragment?(this._isBlock=!0,this.$el=this._blockStart=t.firstChild,this._blockEnd=t.lastChild,this._blockFragment=t):this.$el=t,this.$el.__vue__=this,this._callHook("beforeCompile")},e._bindDir=function(t,e,i,n){this._directives.push(new r(t,e,this,i,n))},e._destroy=function(t,e){if(!this._isBeingDestroyed){this._callHook("beforeDestroy"),this._isBeingDestroyed=!0;var i,n=this.$parent;if(n&&!n._isBeingDestroyed&&(i=n._children.indexOf(this),n._children.splice(i,1)),this._children)for(i=this._children.length;i--;)this._children[i].$destroy();for(this._containerUnlinkFn&&this._containerUnlinkFn(),this._contentUnlinkFn&&this._contentUnlinkFn(),i=0;i<this._directives.length;i++)this._directives[i]._teardown();for(i in this._userWatchers)this._userWatchers[i].teardown();this.$el&&(this.$el.__vue__=null);var r=this;t&&this.$el?this.$remove(function(){r._cleanup()}):e||this._cleanup()}},e._cleanup=function(){this._data.__ob__.removeVm(this),this._data=this._watchers=this._userWatchers=this._watcherList=this.$el=this.$parent=this.$root=this._children=this._directives=null,this._isDestroyed=!0,this._callHook("destroyed"),this.$off()}},function(t,e){e.isReserved=function(t){var e=t.charCodeAt(0);return 36===e||95===e},e.toString=function(t){return null==t?"":t.toString()},e.toNumber=function(t){return isNaN(t)||null===t||"boolean"==typeof t?t:Number(t)},e.stripQuotes=function(t){var e=t.charCodeAt(0),i=t.charCodeAt(t.length-1);return e!==i||34!==e&&39!==e?!1:t.slice(1,-1)};var i=/[-_](\w)/g,n=/(?:^|[-_])(\w)/g;e.camelize=function(t,e){var r=e?n:i;return t.replace(r,function(t,e){return e?e.toUpperCase():""})},e.bind=function(t,e){return function(){return t.apply(e,arguments)}},e.toArray=function(t,e){e=e||0;for(var i=t.length-e,n=new Array(i);i--;)n[i]=t[i+e];return n},e.extend=function(t,e){for(var i in e)t[i]=e[i];return t},e.isObject=function(t){return t&&"object"==typeof t};var r=Object.prototype.toString;e.isPlainObject=function(t){return"[object Object]"===r.call(t)},e.isArray=function(t){return Array.isArray(t)},e.define=function(t,e,i,n){Object.defineProperty(t,e,{value:i,enumerable:!!n,writable:!0,configurable:!0})}},function(t,e){e.hasProto="__proto__"in{};var i=Object.prototype.toString,n=e.inBrowser="undefined"!=typeof window&&"[object Object]"!==i.call(window),r=n?window.requestAnimationFrame||window.webkitRequestAnimationFrame||setTimeout:setTimeout;if(e.nextTick=function(t,e){e?r(function(){t.call(e)},0):r(t,0)},e.isIE9=n&&navigator.userAgent.indexOf("MSIE 9.0")>0,n&&!e.isIE9){var s=void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend,o=void 0===window.onanimationend&&void 0!==window.onwebkitanimationend;e.transitionProp=s?"WebkitTransition":"transition",e.transitionEndEvent=s?"webkitTransitionEnd":"transitionend",e.animationProp=o?"WebkitAnimation":"animation",e.animationEndEvent=o?"webkitAnimationEnd":"animationend"}},function(t,e,i){var n=i(20),r="undefined"!=typeof document&&document.documentElement;e.inDoc=function(t){return r&&r.contains(t)},e.attr=function(t,e){e=n.prefix+e;var i=t.getAttribute(e);return null!==i&&t.removeAttribute(e),i},e.before=function(t,e){e.parentNode.insertBefore(t,e)},e.after=function(t,i){i.nextSibling?e.before(t,i.nextSibling):i.parentNode.appendChild(t)},e.remove=function(t){t.parentNode.removeChild(t)},e.prepend=function(t,i){i.firstChild?e.before(t,i.firstChild):i.appendChild(t)},e.replace=function(t,e){var i=t.parentNode;i&&i.replaceChild(e,t)},e.copyAttributes=function(t,e){if(t.hasAttributes())for(var i=t.attributes,n=0,r=i.length;r>n;n++){var s=i[n];e.setAttribute(s.name,s.value)}},e.on=function(t,e,i){t.addEventListener(e,i)},e.off=function(t,e,i){t.removeEventListener(e,i)},e.addClass=function(t,e){if(t.classList)t.classList.add(e);else{var i=" "+(t.getAttribute("class")||"")+" ";i.indexOf(" "+e+" ")<0&&t.setAttribute("class",(i+e).trim())}},e.removeClass=function(t,e){if(t.classList)t.classList.remove(e);else{for(var i=" "+(t.getAttribute("class")||"")+" ",n=" "+e+" ";i.indexOf(n)>=0;)i=i.replace(n," ");t.setAttribute("class",i.trim())}},e.extractContent=function(t){var e,i;if(t.hasChildNodes())for(i=document.createElement("div");e=t.firstChild;)i.appendChild(e);return i}},function(t,e,i){i(18);e.resolveFilters=function(t,e,i){if(e){var n=i||{};return e.forEach(function(e){var i=t.$options.filters[e.name];if(i){var r,s,o=e.args;"function"==typeof i?r=i:(r=i.read,s=i.write),r&&(n.read||(n.read=[]),n.read.push(function(e){return o?r.apply(t,[e].concat(o)):r.call(t,e)})),s&&(n.write||(n.write=[]),n.write.push(function(e,i){return o?s.apply(t,[e,i].concat(o)):s.call(t,e,i)}))}}),n}},e.applyFilters=function(t,e,i,n){if(!e)return t;for(var r=0,s=e.length;s>r;r++)t=e[r].call(i,t,n);return t}},function(t,e,i){i(20)},function(t,e,i){function n(t,e){var i,r,o;for(i in e)r=t[i],o=e[i],t.hasOwnProperty(i)?s.isObject(r)&&s.isObject(o)&&n(r,o):t.$add(i,o);return t}function r(t){if(t){var e;for(var i in t)e=t[i],s.isPlainObject(e)&&(e.name=i,t[i]=s.Vue.extend(e))}}var s=i(1),o=s.extend,a=Object.create(null);a.data=function(t,e,i){if(i){var r="function"==typeof e?e.call(i):e,s="function"==typeof t?t.call(i):void 0;return r?n(r,s):s}return e?"function"!=typeof e?t:t?function(){return n(e.call(this),t.call(this))}:e:t},a.el=function(t,e,i){if(i||!e||"function"==typeof e){var n=e||t;return i&&"function"==typeof n?n.call(i):n}},a.created=a.ready=a.attached=a.detached=a.beforeCompile=a.compiled=a.beforeDestroy=a.destroyed=a.paramAttributes=function(t,e){return e?t?t.concat(e):s.isArray(e)?e:[e]:t},a.directives=a.filters=a.partials=a.transitions=a.components=function(t,e,i,n){var r=Object.create(i&&i.$parent?i.$parent.$options[n]:s.Vue.options[n]);if(t)for(var a,c=Object.keys(t),h=c.length;h--;)a=c[h],r[a]=t[a];return e&&o(r,e),r},a.watch=a.events=function(t,e){if(!e)return t;if(!t)return e;var i={};o(i,t);for(var n in e){var r=i[n],s=e[n];i[n]=r?r.concat(s):[s]}return i},a.methods=a.computed=function(t,e){if(!e)return t;if(!t)return e;var i=Object.create(t);return o(i,e),i};var c=function(t,e){return void 0===e?t:e};t.exports=function h(t,e,i){function n(n){var r=a[n]||c;o[n]=r(t[n],e[n],i,n)}r(e.components);var s,o={};if(e.mixins)for(var l=0,u=e.mixins.length;u>l;l++)t=h(t,e.mixins[l],i);for(s in t)n(s);for(s in e)t.hasOwnProperty(s)||n(s);return o}},function(t){t.exports={prefix:"v-",debug:!1,silent:!1,proto:!0,interpolate:!0,async:!0,_delimitersChanged:!0};var e=["{{","}}"];Object.defineProperty(t.exports,"delimiters",{get:function(){return e},set:function(t){e=t,this._delimitersChanged=!0}})},function(t,e,i){function n(t,e,i,n){this.vm=t,t._watcherList.push(this),this.expression=e,this.cbs=[i],this.id=++l,this.active=!0,n=n||{},this.deep=n.deep,this.user=n.user,this.deps=Object.create(null),n.filters&&(this.readFilters=n.filters.read,this.writeFilters=n.filters.write);var r=c.parse(e,n.twoWay);this.getter=r.get,this.setter=r.set,this.value=this.get()}function r(t){var e,i,n;for(e in t)if(i=t[e],s.isArray(i))for(n=i.length;n--;)r(i[n]);else s.isObject(i)&&r(i)}var s=i(1),o=i(20),a=i(51),c=i(48),h=i(52),l=0,u=n.prototype;u.addDep=function(t){var e=t.id;this.newDeps[e]||(this.newDeps[e]=t,this.deps[e]||(this.deps[e]=t,t.addSub(this)))},u.get=function(){this.beforeGet();var t,e=this.vm;try{t=this.getter.call(e,e)}catch(i){}return this.deep&&r(t),t=s.applyFilters(t,this.readFilters,e),this.afterGet(),t},u.set=function(t){var e=this.vm;t=s.applyFilters(t,this.writeFilters,e,this.value);try{this.setter.call(e,e,t)}catch(i){}},u.beforeGet=function(){a.target=this,this.newDeps={}},u.afterGet=function(){a.target=null;for(var t in this.deps)this.newDeps[t]||this.deps[t].removeSub(this);this.deps=this.newDeps},u.update=function(){!o.async||o.debug?this.run():h.push(this)},u.run=function(){if(this.active){var t=this.get();if("object"==typeof t&&null!==t||t!==this.value){var e=this.value;this.value=t;for(var i=this.cbs,n=0,r=i.length;r>n;n++){i[n](t,e);var s=r-i.length;s&&(n-=s,r-=s)}}}},u.addCb=function(t){this.cbs.push(t)},u.removeCb=function(t){var e=this.cbs;if(e.length>1){var i=e.indexOf(t);i>-1&&e.splice(i,1)}else t===e[0]&&this.teardown()},u.teardown=function(){if(this.active){if(!this.vm._isBeingDestroyed){var t=this.vm._watcherList;t.splice(t.indexOf(this))}for(var e in this.deps)this.deps[e].removeSub(this);this.active=!1,this.vm=this.cbs=this.value=null}},t.exports=n},function(t,e,i){var n=i(1);t.exports={bind:function(){this.attr=3===this.el.nodeType?"nodeValue":"textContent"},update:function(t){this.el[this.attr]=n.toString(t)}}},function(t,e,i){var n=i(1),r=i(46);t.exports={bind:function(){8===this.el.nodeType&&(this.nodes=[])},update:function(t){t=n.toString(t),this.nodes?this.swap(t):this.el.innerHTML=t},swap:function(t){for(var e=this.nodes.length;e--;)n.remove(this.nodes[e]);var i=r.parse(t,!0,!0);this.nodes=n.toArray(i.childNodes),n.before(i,this.el)}}},function(t){function e(t){t||0===t?this.el.setAttribute(this.arg,t):this.el.removeAttribute(this.arg)}function i(t){null!=t?this.el.setAttributeNS(n,this.arg,t):this.el.removeAttributeNS(n,"href")}var n="http://www.w3.org/1999/xlink",r=/^xlink:/;t.exports={priority:850,bind:function(){var t=this.arg;this.update=r.test(t)?i:e}}},function(t,e,i){var n=i(49);t.exports=function(t){var e=this.el;n.apply(e,t?1:-1,function(){e.style.display=t?"":"none"},this.vm)}},function(t,e,i){var n=i(1),r=n.addClass,s=n.removeClass;t.exports=function(t){if(this.arg){var e=t?r:s;e(this.el,this.arg)}else this.lastVal&&s(this.el,this.lastVal),t&&(r(this.el,t),this.lastVal=t)}},function(t){t.exports={isLiteral:!0,bind:function(){this.vm.$$[this.expression]=this.el},unbind:function(){delete this.vm.$$[this.expression]}}},function(t,e,i){i(1);t.exports={isLiteral:!0,bind:function(){var t=this.el.__vue__;t&&this.vm===t.$parent&&(this.vm.$[this.expression]=t)},unbind:function(){this.vm.$[this.expression]===this.el.__vue__&&delete this.vm.$[this.expression]}}},function(t,e,i){var n=i(20);t.exports={bind:function(){var t=this.el;this.vm.$once("hook:compiled",function(){t.removeAttribute(n.prefix+"cloak")})}}},function(t,e,i){function n(t){if(u[t])return u[t];var e=r(t);return u[t]=u[e]=e,e}function r(t){t=t.replace(h,"$1-$2").toLowerCase();var e=s.camelize(t),i=e.charAt(0).toUpperCase()+e.slice(1);if(l||(l=document.createElement("div")),e in l.style)return t;for(var n,r=o.length;r--;)if(n=a[r]+i,n in l.style)return o[r]+t}var s=i(1),o=["-webkit-","-moz-","-ms-"],a=["Webkit","Moz","ms"],c=/!important;?$/,h=/([a-z])([A-Z])/g,l=null,u={};t.exports={deep:!0,update:function(t){if(this.arg)this.setProp(this.arg,t);else if("object"==typeof t){this.cache||(this.cache={});for(var e in t)this.setProp(e,t[e]),t[e]!=this.cache[e]&&(this.cache[e]=t[e],this.setProp(e,t[e]))}else this.el.style.cssText=t},setProp:function(t,e){if(t=n(t))if(null!=e&&(e+=""),e){var i=c.test(e)?"important":"";i&&(e=e.replace(c,"").trim()),this.el.style.setProperty(t,e,i)}else this.el.style.removeProperty(t)}}},function(t,e,i){var n=i(1),r=i(46),s=i(36);t.exports={isLiteral:!0,compile:s.compile,teardown:s.teardown,bind:function(){var t=this.el;this.start=document.createComment("v-partial-start"),this.end=document.createComment("v-partial-end"),8!==t.nodeType&&(t.innerHTML=""),"TEMPLATE"===t.tagName||8===t.nodeType?n.replace(t,this.end):t.appendChild(this.end),n.before(this.start,this.end),this._isDynamicLiteral||this.insert(this.expression)},update:function(t){this.teardown(),this.insert(t)},insert:function(t){var e=this.vm.$options.partials[t];e&&this.compile(r.parse(e))}}},function(t){t.exports={priority:1e3,isLiteral:!0,bind:function(){this.el.__v_trans={id:this.expression}}}},function(t,e,i){var n=i(1);t.exports={acceptStatement:!0,priority:700,bind:function(){if("IFRAME"===this.el.tagName&&"load"!==this.arg){var t=this;this.iframeBind=function(){n.on(t.el.contentWindow,t.arg,t.handler)},n.on(this.el,"load",this.iframeBind)}},update:function(t){if("function"==typeof t){this.reset();var e=this.vm;this.handler=function(i){i.targetVM=e,e.$event=i;var n=t(i);return e.$event=null,n},this.iframeBind?this.iframeBind():n.on(this.el,this.arg,this.handler)}},reset:function(){var t=this.iframeBind?this.el.contentWindow:this.el;this.handler&&n.off(t,this.arg,this.handler)},unbind:function(){this.reset(),n.off(this.el,"load",this.iframeBind)}}},function(t,e,i){var n=i(1),r=i(46);t.exports={isLiteral:!0,bind:function(){this.el.__vue__||(this.ref=document.createComment("v-component"),n.replace(this.el,this.ref),this.keepAlive=null!=this._checkParam("keep-alive"),this.keepAlive&&(this.cache={}),this._isDynamicLiteral?(this.readyEvent=this._checkParam("wait-for"),this.transMode=this._checkParam("transition-mode")):(this.resolveCtor(this.expression),this.childVM=this.build(),this.childVM.$before(this.ref)))},resolveCtor:function(t){this.ctorId=t,this.Ctor=this.vm.$options.components[t]},build:function(){if(this.keepAlive){var t=this.cache[this.ctorId];if(t)return t}var e=this.vm,i=r.clone(this.el);if(this.Ctor){var n=e.$addChild({el:i,_asComponent:!0},this.Ctor);return this.keepAlive&&(this.cache[this.ctorId]=n),n}},unbuild:function(){var t=this.childVM;t&&!this.keepAlive&&t.$destroy(!1,!0)},removeCurrent:function(t){var e=this.childVM,i=this.keepAlive;e?e.$remove(function(){i||e._cleanup(),t&&t()}):t&&t()},update:function(t){if(t){this.resolveCtor(t),this.unbuild();var e=this.build(),i=this;this.readyEvent?e.$once(this.readyEvent,function(){i.swapTo(e)}):this.swapTo(e)}else this.unbuild(),this.removeCurrent(),this.childVM=null},swapTo:function(t){var e=this;switch(e.transMode){case"in-out":t.$before(e.ref,function(){e.removeCurrent(),e.childVM=t});break;case"out-in":e.removeCurrent(function(){t.$before(e.ref),e.childVM=t});break;default:e.removeCurrent(),t.$before(e.ref),e.childVM=t}},unbind:function(){if(this.unbuild(),this.cache){for(var t in this.cache)this.cache[t].$destroy();this.cache=null}}}},function(t,e,i){function n(t,e){for(var i=(t._blockEnd||t.$el).nextSibling;!i.__vue__&&i!==e;)i=i.nextSibling;return i.__vue__}function r(t){if(!o.isPlainObject(t))return t;for(var e,i=Object.keys(t),n=i.length,r=new Array(n);n--;)e=i[n],r[n]={key:e,value:t[e]};return this.converted=!0,r}function s(t){for(var e=-1,i=new Array(t);++e<t;)i[e]=e;return i}var o=i(1),a=o.isObject,c=i(45),h=i(48),l=i(46),u=i(42),f=i(43),d=i(19),p=0;t.exports={bind:function(){this.id="__v_repeat_"+ ++p,this.filters||(this.filters={});var t=o.bind(r,this);this.filters.read?this.filters.read.unshift(t):this.filters.read=[t],this.ref=document.createComment("v-repeat"),o.replace(this.el,this.ref),this.template="TEMPLATE"===this.el.tagName?l.parse(this.el,!0):this.el,this.checkIf(),this.checkRef(),this.checkComponent(),this.idKey=this._checkParam("track-by")||this._checkParam("trackby"),this.cache=Object.create(null)},checkIf:function(){null!==o.attr(this.el,"if")},checkRef:function(){var t=o.attr(this.el,"ref");this.childId=t?this.vm.$interpolate(t):null;var e=o.attr(this.el,"el");this.elId=e?this.vm.$interpolate(e):null},checkComponent:function(){var t=o.attr(this.el,"component"),e=this.vm.$options;if(t){this._asComponent=!0;var i=c.parse(t);if(i){var n=c.tokensToExp(i);this.ctorGetter=h.parse(n).get}else{var r=this.Ctor=e.components[t];if(!this.el.hasChildNodes()&&!this.el.hasAttributes()){var s=d(r.options,{},{$parent:this.vm});this.template=f(this.template,s),this._linkFn=u(this.template,s,!1,!0)}}}else this.Ctor=o.Vue,this.inherit=!0,this.template=f(this.template),this._linkFn=u(this.template,e)},update:function(t){"number"==typeof t&&(t=s(t)),this.vms=this.diff(t||[],this.vms),this.childId&&(this.vm.$[this.childId]=this.vms),this.elId&&(this.vm.$$[this.elId]=this.vms.map(function(t){return t.$el}))},diff:function(t,e){var i,r,s,o,a,c=this.idKey,h=this.converted,l=this.ref,u=this.arg,f=!e,d=new Array(t.length);for(o=0,a=t.length;a>o;o++)i=t[o],r=h?i.value:i,s=!f&&this.getVm(r),s?(s._reused=!0,s.$index=o,h&&(s.$key=i.key),c&&(u?s[u]=r:s._setData(r))):(s=this.build(i,o),s._new=!0),d[o]=s,f&&s.$before(l);if(f)return d;for(o=0,a=e.length;a>o;o++)s=e[o],s._reused||(this.uncacheVm(s),s.$destroy(!0));var p,v;for(o=d.length;o--;)s=d[o],p=d[o+1],p?s._reused?(v=n(s,l),v!==p&&s.$before(p.$el,null,!1)):s.$before(p.$el):s._reused||s.$before(l),s._new=!1,s._reused=!1;return d},build:function(t,e){var i=t,n={$index:e};this.converted&&(n.$key=i.key);var r=this.converted?t.value:t,s=this.arg,o=!a(r)||s;t=o?{}:r,s?t[s]=r:o&&(n.$value=r);var c=this.Ctor||this.resolveCtor(t,n),h=this.vm.$addChild({el:l.clone(this.template),_asComponent:this._asComponent,_linkFn:this._linkFn,_meta:n,data:t,inherit:this.inherit},c);return this.cacheVm(r,h),h},resolveCtor:function(t,e){var i,n=Object.create(this.vm);for(i in t)o.define(n,i,t[i]);for(i in e)o.define(n,i,e[i]);var r=this.ctorGetter.call(n,n),s=this.vm.$options.components[r];return s},unbind:function(){if(this.childId&&delete this.vm.$[this.childId],this.vms)for(var t,e=this.vms.length;e--;)t=this.vms[e],this.uncacheVm(t),t.$destroy()},cacheVm:function(t,e){var i,n=this.idKey,r=this.cache;n?(i=t[n],r[i]||(r[i]=e)):a(t)?(i=this.id,t.hasOwnProperty(i)?null===t[i]&&(t[i]=e):o.define(t,this.id,e)):r[t]?r[t].push(e):r[t]=[e],e._raw=t},getVm:function(t){if(this.idKey)return this.cache[t[this.idKey]];if(a(t))return t[this.id];var e=this.cache[t];if(e){for(var i=0,n=e[i];n&&(n._reused||n._new);)n=e[++i];return n}},uncacheVm:function(t){var e=t._raw;this.idKey?this.cache[e[this.idKey]]=null:a(e)?(e[this.id]=null,t._raw=null):this.cache[e].pop()}}},function(t,e,i){var n=i(1),r=i(42),s=i(46),o=i(49);t.exports={bind:function(){var t=this.el;t.__vue__?this.invalid=!0:(this.start=document.createComment("v-if-start"),this.end=document.createComment("v-if-end"),n.replace(t,this.end),n.before(this.start,this.end),"TEMPLATE"===t.tagName?this.template=s.parse(t,!0):(this.template=document.createDocumentFragment(),this.template.appendChild(t)),this.linker=r(this.template,this.vm.$options,!0))},update:function(t){this.invalid||(t?this.insert():this.teardown())},insert:function(){this.unlink||this.compile(this.template)},compile:function(t){var e=this.vm,i=s.clone(t),r=e._children?e._children.length:0;this.unlink=this.linker?this.linker(e,i):e.$compile(i),o.blockAppend(i,this.end,e),this.children=e._children?e._children.slice(r):null,this.children&&n.inDoc(e.$el)&&this.children.forEach(function(t){t._callHook("attached")})},teardown:function(){this.unlink&&(o.blockRemove(this.start,this.end,this.vm),this.children&&n.inDoc(this.vm.$el)&&this.children.forEach(function(t){t._isDestroyed||t._callHook("detached")}),this.unlink(),this.unlink=null)}}},function(t,e,i){var n=(i(1),i(21));t.exports={priority:900,bind:function(){var t=this.vm;if(this.el!==t.$el);else if(t.$parent){var e=this.arg;this.watcher=new n(t.$parent,this.expression,e?function(i){t.$set(e,i)}:function(e){t.$data=e});var i=this.watcher.value;e?t.$set(e,i):t.$data=i}else;},unbind:function(){this.watcher&&this.watcher.teardown()}}},function(t,e,i){i(1);t.exports={bind:function(){var t=this.el.__vue__;if(t&&this.vm===t.$parent){var e=this.vm[this.expression];t.$on(this.arg,e)}}}},function(t,e,i){function n(t,e){if(r.isObject(t)){for(var i in t)if(n(t[i],e))return!0}else if(null!=t)return t.toString().toLowerCase().indexOf(e)>-1}var r=i(1),s=i(44);e.filterBy=function(t,e,i,o){i&&"in"!==i&&(o=i);var a=r.stripQuotes(e)||this.$get(e);return a?(a=(""+a).toLowerCase(),o=o&&(r.stripQuotes(o)||this.$get(o)),t.filter(function(t){return o?n(s.get(t,o),a):n(t,a)})):t},e.orderBy=function(t,e,i){var n=r.stripQuotes(e)||this.$get(e);if(!n)return t;var o=1;return i&&("-1"===i?o=-1:33===i.charCodeAt(0)?(i=i.slice(1),o=this.$get(i)?1:-1):o=this.$get(i)?-1:1),t.slice().sort(function(t,e){return t=s.get(t,n),e=s.get(e,n),t===e?0:t>e?o:-o})}},function(t){function e(){this.id=++i,this.subs=[]}var i=0,n=e.prototype;n.addSub=function(t){this.subs.push(t)},n.removeSub=function(t){if(this.subs.length){var e=this.subs.indexOf(t);e>-1&&this.subs.splice(e,1)}},n.notify=function(){for(var t=0,e=this.subs.length;e>t;t++)this.subs[t].update()},t.exports=e},function(t,e,i){function n(t,e,i,n,s){this.name=t,this.el=e,this.vm=i,this.raw=n.raw,this.expression=n.expression,this.arg=n.arg,this.filters=r.resolveFilters(i,n.filters),this._locked=!1,this._bound=!1,this._bind(s)}var r=i(1),s=i(20),o=i(21),a=i(45),c=i(48),h=n.prototype;
7
- h._bind=function(t){if("cloak"!==this.name&&this.el.removeAttribute&&this.el.removeAttribute(s.prefix+this.name),"function"==typeof t?this.update=t:r.extend(this,t),this._watcherExp=this.expression,this._checkDynamicLiteral(),this.bind&&this.bind(),this.update&&this._watcherExp&&(!this.isLiteral||this._isDynamicLiteral)&&!this._checkStatement()){var e=this,i=this._update=function(t,i){e._locked||e.update(t,i)},n=this.vm._watchers[this.raw];n&&"repeat"!==this.name?n.addCb(i):n=this.vm._watchers[this.raw]=new o(this.vm,this._watcherExp,i,{filters:this.filters,twoWay:this.twoWay,deep:this.deep}),this._watcher=n,null!=this._initValue?n.set(this._initValue):this.update(n.value)}this._bound=!0},h._checkDynamicLiteral=function(){var t=this.expression;if(t&&this.isLiteral){var e=a.parse(t);if(e){var i=a.tokensToExp(e);this.expression=this.vm.$get(i),this._watcherExp=i,this._isDynamicLiteral=!0}}},h._checkStatement=function(){var t=this.expression;if(t&&this.acceptStatement&&!c.pathTestRE.test(t)){var e=c.parse(t).get,i=this.vm,n=function(){e.call(i,i)};return this.filters&&(n=r.applyFilters(n,this.filters.read,i)),this.update(n),!0}},h._checkParam=function(t){var e=this.el.getAttribute(t);return null!==e&&this.el.removeAttribute(t),e},h._teardown=function(){if(this._bound){this.unbind&&this.unbind();var t=this._watcher;t&&t.active&&(t.removeCb(this._update),t.active||(this.vm._watchers[this.raw]=null)),this._bound=!1,this.vm=this.el=this._watcher=null}},h.set=function(t,e){if(this.twoWay&&(e&&(this._locked=!0),this._watcher.set(t),e)){var i=this;r.nextTick(function(){i._locked=!1})}},t.exports=n},function(t,e,i){function n(t,e,i){var n=t.nodeType;return 1===n&&"SCRIPT"!==t.tagName?r(t,e,i):3===n&&y.interpolate?o(t,e):void 0}function r(t,e,i){var n,r,o;if(i||t.__vue__||(r=t.tagName.toLowerCase(),o=r.indexOf("-")>0&&e.components[r],o&&t.setAttribute(y.prefix+"component",r)),(o||t.hasAttributes())&&(i||(n=p(t,e)),!n)){var a=m(t,e,i);n=a.length?s(a):null}if("TEXTAREA"===t.tagName){var c=n;n=function(t,e){e.value=t.$interpolate(e.value),c&&c(t,e)},n.terminal=!0}return n}function s(t){return function(e,i){for(var n,r,s,o=t.length;o--;)if(n=t[o],n._link)n._link(e,i);else for(s=n.descriptors.length,r=0;s>r;r++)e._bindDir(n.name,i,n.descriptors[r],n.def)}}function o(t,e){var i=w.parse(t.nodeValue);if(!i)return null;for(var n,r,s=document.createDocumentFragment(),o=0,h=i.length;h>o;o++)r=i[o],n=r.tag?a(r,e):document.createTextNode(r.value),s.appendChild(n);return c(i,s,e)}function a(t,e){function i(i){t.type=i,t.def=e.directives[i],t.descriptor=$.parse(t.value)[0]}var n;return t.oneTime?n=document.createTextNode(t.value):t.html?(n=document.createComment("v-html"),i("html")):t.partial?(n=document.createComment("v-partial"),i("partial")):(n=document.createTextNode(" "),i("text")),n}function c(t,e){return function(i,n){for(var r,s,o,a=e.cloneNode(!0),c=g.toArray(a.childNodes),h=0,l=t.length;l>h;h++)r=t[h],s=r.value,r.tag&&(o=c[h],r.oneTime?(s=i.$eval(s),r.html?g.replace(o,x.parse(s,!0)):o.nodeValue=s):i._bindDir(r.type,o,r.descriptor,r.def));g.replace(n,a)}}function h(t,e){for(var i,r,s,o=[],a=0,c=t.length;c>a;a++)s=t[a],i=n(s,e),r=i&&i.terminal||"SCRIPT"===s.tagName||!s.hasChildNodes()?null:h(s.childNodes,e),o.push(i,r);return o.length?l(o):null}function l(t){return function(e,i){i=g.toArray(i);for(var n,r,s,o=0,a=0,c=t.length;c>o;a++)n=i[a],r=t[o++],s=t[o++],r&&r(e,n),s&&s(e,n.childNodes)}}function u(t,e,i){for(var n,r,s,o=[],a=e.length;a--;)if(n=e[a],r=t.getAttribute(n),null!==r){s={name:n,value:r};var c=w.parse(r);if(c){if(t.removeAttribute(n),c.length>1)continue;s.dynamic=!0,s.value=c[0].value}o.push(s)}return f(o,i)}function f(t,e){var i=e.directives["with"];return function(e,n){for(var r,s,o=t.length;o--;)r=t[o],s=g.camelize(r.name.replace(k,"")),r.dynamic?e._bindDir("with",n,{arg:s,expression:r.value},i):e.$set(s,r.value)}}function d(){}function p(t,e){if(null!==g.attr(t,"pre"))return d;for(var i,n,r=0;3>r;r++)if(n=C[r],i=g.attr(t,n))return v(t,n,i,e)}function v(t,e,i,n){var r=$.parse(i)[0],s=n.directives[e],o=function(t,i){t._bindDir(e,i,r,s)};return o.terminal=!0,o}function m(t,e,i){for(var n,r,s,o,a,c=g.toArray(t.attributes),h=c.length,l=[];h--;)if(n=c[h],r=n.name,0===r.indexOf(y.prefix)){if(o=r.slice(y.prefix.length),i&&("with"===o||"component"===o))continue;a=e.directives[o],a&&l.push({name:o,descriptors:$.parse(n.value),def:a})}else y.interpolate&&(s=_(t,r,n.value,e),s&&l.push(s));return l.sort(b),l}function _(t,e,i,n){if(!(n._skipAttrs&&n._skipAttrs.indexOf(e)>-1)){var r=w.parse(i);if(r){for(var s=n.directives.attr,o=r.length,a=!0;o--;){var c=r[o];c.tag&&!c.oneTime&&(a=!1)}return{def:s,_link:a?function(t,n){n.setAttribute(e,t.$interpolate(i))}:function(t,i){var n=w.tokensToExp(r,t),o=$.parse(e+":"+n)[0];t._bindDir("attr",i,o,s)}}}}}function b(t,e){return t=t.def.priority||0,e=e.def.priority||0,t>e?1:-1}var g=i(1),y=i(20),w=i(45),$=i(47),x=i(46);t.exports=function(t,e,i,r){var s=!i&&e.paramAttributes,o=s?u(t,s,e):null,a=t instanceof DocumentFragment?null:n(t,e,r),c=a&&a.terminal||"SCRIPT"===t.tagName||!t.hasChildNodes()?null:h(t.childNodes,e);return function(t,e){var n=t._directives.length;if(o&&o(t,e),a&&a(t,e),c&&c(t,e.childNodes),i){var r=t._directives.slice(n);return function(){for(var e=r.length;e--;)r[e]._teardown();e=t._directives.indexOf(r[0]),t._directives.splice(e,r.length)}}}};var k=/^data-/,C=["repeat","if","component"];d.terminal=!0},function(t,e,i){function n(t,e){var i=e.template,n=c.parse(i,!0);if(n){var s=e._content||a.extractContent(t);if(e.replace){if(n.childNodes.length>1)return r(n,s),n;var o=n.firstChild;return a.copyAttributes(t,o),r(o,s),o}return t.appendChild(n),r(t,s),t}}function r(t,e){var i=s(t),n=i.length;if(n){for(var r,c,h,l,u;n--;)r=i[n],e?(c=r.getAttribute("select"),c?(h=e.querySelectorAll(c),r.content=a.toArray(h.length?h:r.childNodes)):u=r):r.content=a.toArray(r.childNodes);for(n=0,l=i.length;l>n;n++)r=i[n],r!==u&&o(r,r.content);u&&o(u,a.toArray(e.childNodes))}}function s(t){return a.isArray(t)?h.apply([],t.map(s)):t.querySelectorAll?a.toArray(t.querySelectorAll("content")):[]}function o(t,e){for(var i=t.parentNode,n=0,r=e.length;r>n;n++)i.insertBefore(e[n],t);i.removeChild(t)}var a=i(1),c=i(46);t.exports=function(t,e){return"TEMPLATE"===t.tagName&&(t=c.parse(t)),e&&e.template&&(t=n(t,e)),t instanceof DocumentFragment&&(a.prepend(document.createComment("v-start"),t),t.appendChild(document.createComment("v-end"))),t};var h=[].concat},function(t,e,i){function n(){}function r(t){if(void 0===t)return"eof";var e=t.charCodeAt(0);switch(e){case 91:case 93:case 46:case 34:case 39:case 48:return t;case 95:case 36:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return e>=97&&122>=e||e>=65&&90>=e?"ident":e>=49&&57>=e?"number":"else"}function s(t){function e(){var e=t[d+1];return"inSingleQuote"===p&&"'"===e||"inDoubleQuote"===p&&'"'===e?(d++,s=e,v.append(),!0):void 0}for(var i,s,o,a,c,h,l,f=[],d=-1,p="beforePath",v={push:function(){void 0!==o&&(f.push(o),o=void 0)},append:function(){void 0===o?o=s:o+=s}};p;)if(d++,i=t[d],"\\"!==i||!e()){if(a=r(i),l=u[p],c=l[a]||l["else"]||"error","error"===c)return;if(p=c[0],h=v[c[1]]||n,s=void 0===c[2]?i:c[2],h(),"afterPath"===p)return f}}function o(t){return l.test(t)?"."+t:+t===t>>>0?"["+t+"]":'["'+t.replace(/"/g,'\\"')+'"]'}var a=i(1),c=i(53),h=new c(1e3),l=/^[$_a-zA-Z]+[\w$]*$/,u={beforePath:{ws:["beforePath"],ident:["inIdent","append"],"[":["beforeElement"],eof:["afterPath"]},inPath:{ws:["inPath"],".":["beforeIdent"],"[":["beforeElement"],eof:["afterPath"]},beforeIdent:{ws:["beforeIdent"],ident:["inIdent","append"]},inIdent:{ident:["inIdent","append"],0:["inIdent","append"],number:["inIdent","append"],ws:["inPath","push"],".":["beforeIdent","push"],"[":["beforeElement","push"],eof:["afterPath","push"]},beforeElement:{ws:["beforeElement"],0:["afterZero","append"],number:["inIndex","append"],"'":["inSingleQuote","append",""],'"':["inDoubleQuote","append",""]},afterZero:{ws:["afterElement","push"],"]":["inPath","push"]},inIndex:{0:["inIndex","append"],number:["inIndex","append"],ws:["afterElement"],"]":["inPath","push"]},inSingleQuote:{"'":["afterElement"],eof:"error","else":["inSingleQuote","append"]},inDoubleQuote:{'"':["afterElement"],eof:"error","else":["inDoubleQuote","append"]},afterElement:{ws:["afterElement"],"]":["inPath","push"]}};e.compileGetter=function(t){var e="try{return o"+t.map(o).join("")+"}catch(e){};";return new Function("o",e)},e.parse=function(t){var i=h.get(t);return i||(i=s(t),i&&(i.get=e.compileGetter(i),h.put(t,i))),i},e.get=function(t,i){return i=e.parse(i),i?i.get(t):void 0},e.set=function(t,i,n){if("string"==typeof i&&(i=e.parse(i)),!i||!a.isObject(t))return!1;for(var r,s,o=0,c=i.length-1;c>o;o++)r=t,s=i[o],t=t[s],a.isObject(t)||(t={},r.$add(s,t));return s=i[o],s in t?t[s]=n:t.$add(s,n),!0}},function(t,e,i){function n(t){return t.replace(v,"\\$&")}function r(){d._delimitersChanged=!1;var t=d.delimiters[0],e=d.delimiters[1];l=t.charAt(0),u=e.charAt(e.length-1);var i=n(l),r=n(u),s=n(t),o=n(e);c=new RegExp(i+"?"+s+"(.+?)"+o+r+"?","g"),h=new RegExp("^"+i+s+".*"+o+r+"$"),a=new f(1e3)}function s(t,e,i){return t.tag?e&&t.oneTime?'"'+e.$eval(t.value)+'"':i?t.value:o(t.value):'"'+t.value+'"'}function o(t){if(m.test(t)){var e=p.parse(t)[0];if(e.filters){t=e.expression;for(var i=0,n=e.filters.length;n>i;i++){var r=e.filters[i],s=r.args?',"'+r.args.join('","')+'"':"";t='this.$options.filters["'+r.name+'"].apply(this,['+t+s+"])"}return t}return"("+t+")"}return"("+t+")"}var a,c,h,l,u,f=i(53),d=i(20),p=i(47),v=/[-.*+?^${}()|[\]\/\\]/g;e.parse=function(t){d._delimitersChanged&&r();var e=a.get(t);if(e)return e;if(!c.test(t))return null;for(var i,n,s,o,l,u,f=[],p=c.lastIndex=0;i=c.exec(t);)n=i.index,n>p&&f.push({value:t.slice(p,n)}),o=i[1].charCodeAt(0),l=42===o,u=62===o,s=l||u?i[1].slice(1):i[1],f.push({tag:!0,value:s.trim(),html:h.test(i[0]),oneTime:l,partial:u}),p=n+i[0].length;return p<t.length&&f.push({value:t.slice(p)}),a.put(t,f),f},e.tokensToExp=function(t,e){return t.length>1?t.map(function(t){return s(t,e)}).join("+"):s(t[0],e,!0)};var m=/[^|]\|[^|]/},function(t,e,i){function n(t){var e=a.get(t);if(e)return e;var i=document.createDocumentFragment(),n=t.match(l),r=u.test(t);if(n||r){var s=n&&n[1],o=h[s]||h._default,c=o[0],f=o[1],d=o[2],p=document.createElement("div");for(p.innerHTML=f+t.trim()+d;c--;)p=p.lastChild;for(var v;v=p.firstChild;)i.appendChild(v)}else i.appendChild(document.createTextNode(t));return a.put(t,i),i}function r(t){var e=t.tagName;return"TEMPLATE"===e&&t.content instanceof DocumentFragment?t.content:n("SCRIPT"===e?t.textContent:t.innerHTML)}var s=i(1),o=i(53),a=new o(1e3),c=new o(1e3),h={_default:[0,"",""],legend:[1,"<fieldset>","</fieldset>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]};h.td=h.th=[3,"<table><tbody><tr>","</tr></tbody></table>"],h.option=h.optgroup=[1,'<select multiple="multiple">',"</select>"],h.thead=h.tbody=h.colgroup=h.caption=h.tfoot=[1,"<table>","</table>"],h.g=h.defs=h.symbol=h.use=h.image=h.text=h.circle=h.ellipse=h.line=h.path=h.polygon=h.polyline=h.rect=[1,'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"version="1.1">',"</svg>"];var l=/<([\w:]+)/,u=/&\w+;/,f=s.inBrowser?function(){var t=document.createElement("div");return t.innerHTML="<template>1</template>",!t.cloneNode(!0).firstChild.innerHTML}():!1,d=s.inBrowser?function(){var t=document.createElement("textarea");return t.placeholder="t","t"===t.cloneNode(!0).value}():!1;e.clone=function(t){var e,i,n,r=t.cloneNode(!0);if(f&&(i=t.querySelectorAll("template"),i.length))for(n=r.querySelectorAll("template"),e=n.length;e--;)n[e].parentNode.replaceChild(i[e].cloneNode(!0),n[e]);if(d)if("TEXTAREA"===t.tagName)r.value=t.value;else if(i=t.querySelectorAll("textarea"),i.length)for(n=r.querySelectorAll("textarea"),e=n.length;e--;)n[e].value=i[e].value;return r},e.parse=function(t,i,s){var o,a;return t instanceof DocumentFragment?i?t.cloneNode(!0):t:("string"==typeof t?s||"#"!==t.charAt(0)?a=n(t):(a=c.get(t),a||(o=document.getElementById(t.slice(1)),o&&(a=r(o),c.put(t,a)))):t.nodeType&&(a=r(t)),a&&i?e.clone(a):a)}},function(t,e,i){function n(){_.raw=s.slice(p,a).trim(),void 0===_.expression?_.expression=s.slice(v,a).trim():b!==p&&r(),(0===a||_.expression)&&m.push(_)}function r(){var t,e=s.slice(b,a).trim();if(e){t={};var i=e.match(k);t.name=i[0],t.args=i.length>1?i.slice(1):null}t&&(_.filters=_.filters||[]).push(t),b=a+1}var s,o,a,c,h,l,u,f,d,p,v,m,_,b,g,y=i(1),w=i(53),$=new w(1e3),x=/^[^\{\?]+$|^'[^']*'$|^"[^"]*"$/,k=/[^\s'"]+|'[^']+'|"[^"]+"/g;e.parse=function(t){var e=$.get(t);if(e)return e;for(s=t,h=l=!1,u=f=d=p=v=0,b=0,m=[],_={},g=null,a=0,c=s.length;c>a;a++)if(o=s.charCodeAt(a),h)39===o&&(h=!h);else if(l)34===o&&(l=!l);else if(44!==o||d||u||f)if(58!==o||_.expression||_.arg)if(124===o&&124!==s.charCodeAt(a+1)&&124!==s.charCodeAt(a-1))void 0===_.expression?(b=a+1,_.expression=s.slice(v,a).trim()):r();else switch(o){case 34:l=!0;break;case 39:h=!0;break;case 40:d++;break;case 41:d--;break;case 91:f++;break;case 93:f--;break;case 123:u++;break;case 125:u--}else g=s.slice(p,a).trim(),x.test(g)&&(v=a+1,_.arg=y.stripQuotes(g)||g);else n(),_={},p=v=b=a+1;return(0===a||p!==a)&&n(),$.put(t,m),m}},function(t,e,i){function n(t){var e=$.length;return $[e]=t.replace(m,"\\n"),'"'+e+'"'}function r(t){var e=t.charAt(0),i=t.slice(1);return w.test(i)?t:(i=i.indexOf('"')>-1?i.replace(b,s):i,e+"scope."+i)}function s(t,e){return $[e]}function o(t,e){$.length=0;var i=t.replace(_,n).replace(v,"");i=(" "+i).replace(y,r).replace(b,s);var o=c(i);return o?{get:o,body:i,set:e?h(i):null}:void 0}function a(t){var e,i;return t.indexOf("[")<0?(i=t.split("."),e=u.compileGetter(i)):(i=u.parse(t),e=i.get),{get:e,set:function(t,e){u.set(t,i,e)}}}function c(t){try{return new Function("scope","return "+t+";")}catch(e){}}function h(t){try{return new Function("scope","value",t+"=value;")}catch(e){}}function l(t){t.set||(t.set=h(t.body))}var u=(i(1),i(44)),f=i(53),d=new f(1e3),p="Math,break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,undefined,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield",v=/\s/g,m=/\n/g,_=/[\{,]\s*[\w\$_]+\s*:|'[^']*'|"[^"]*"/g,b=/"(\d+)"/g,g=/^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\])*$/,y=/[^\w$\.]([A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\])*)/g,w=new RegExp("^("+p.replace(/,/g,"\\b|")+"\\b)"),$=[];e.parse=function(t,e){t=t.trim();var i=d.get(t);if(i)return e&&l(i),i;var n=g.test(t)?a(t):o(t,e);return d.put(t,n),n},e.pathTestRE=g},function(t,e,i){var n=i(1),r=i(54),s=i(55);e.append=function(t,e,i,n){o(t,1,function(){e.appendChild(t)},i,n)},e.before=function(t,e,i,r){o(t,1,function(){n.before(t,e)},i,r)},e.remove=function(t,e,i){o(t,-1,function(){n.remove(t)},e,i)},e.removeThenAppend=function(t,e,i,n){o(t,-1,function(){e.appendChild(t)},i,n)},e.blockAppend=function(t,i,r){for(var s=n.toArray(t.childNodes),o=0,a=s.length;a>o;o++)e.before(s[o],i,r)},e.blockRemove=function(t,i,n){for(var r,s=t.nextSibling;s!==i;)r=s.nextSibling,e.remove(s,n),s=r};var o=e.apply=function(t,e,i,o,a){var c=t.__v_trans;if(!c||!o._isCompiled||o.$parent&&!o.$parent._isCompiled)return i(),void(a&&a());var h=o.$options.transitions[c.id];h?s(t,e,i,c,h,o,a):n.transitionEndEvent?r(t,e,i,c,a):(i(),a&&a())}},function(t,e,i){var n=(i(1),{_default:i(56),radio:i(57),select:i(58),checkbox:i(59)});t.exports={priority:800,twoWay:!0,handlers:n,bind:function(){var t=this.filters;t&&t.read&&!t.write;var e,i=this.el,r=i.tagName;if("INPUT"===r)e=n[i.type]||n._default;else if("SELECT"===r)e=n.select;else{if("TEXTAREA"!==r)return;e=n._default}e.bind.call(this),this.update=e.update,this.unbind=e.unbind}}},function(t,e,i){function n(t,e){t.__proto__=e}function r(t,e,i){for(var n,r=i.length;r--;)n=i[r],o.define(t,n,e[n])}function s(t,e){if(this.id=++u,this.value=t,this.active=!0,this.deps=[],o.define(t,"__ob__",this),e===f){var i=a.proto&&o.hasProto?n:r;i(t,h,l),this.observeArray(t)}else e===d&&this.walk(t)}var o=i(1),a=i(20),c=i(40),h=i(60),l=Object.getOwnPropertyNames(h);i(61);var u=0,f=0,d=1;s.target=null;var p=s.prototype;s.create=function(t){return t&&t.hasOwnProperty("__ob__")&&t.__ob__ instanceof s?t.__ob__:o.isArray(t)?new s(t,f):o.isPlainObject(t)&&!t._isVue?new s(t,d):void 0},p.walk=function(t){for(var e,i,n=Object.keys(t),r=n.length;r--;)e=n[r],i=e.charCodeAt(0),36!==i&&95!==i&&this.convert(e,t[e])},p.observe=function(t){return s.create(t)},p.observeArray=function(t){for(var e=t.length;e--;)this.observe(t[e])},p.convert=function(t,e){var i=this,n=i.observe(e),r=new c;n&&n.deps.push(r),Object.defineProperty(i.value,t,{enumerable:!0,configurable:!0,get:function(){return i.active&&s.target&&s.target.addDep(r),e},set:function(t){if(t!==e){var n=e&&e.__ob__;if(n){var s=n.deps;s.splice(s.indexOf(r),1)}e=t;var o=i.observe(t);o&&o.deps.push(r),r.notify()}}})},p.notify=function(){for(var t=this.deps,e=0,i=t.length;i>e;e++)t[e].notify()},p.addVm=function(t){(this.vms=this.vms||[]).push(t)},p.removeVm=function(t){this.vms.splice(this.vms.indexOf(t),1)},t.exports=s},function(t,e,i){function n(){a=[],c=[],h={},l=!1,u=!1}function r(){u=!0,s(a),s(c),n()}function s(t){for(var e=0;e<t.length;e++)t[e].run()}var o=i(1),a=[],c=[],h={},l=!1,u=!1;e.push=function(t){if(!t.id||!h[t.id]||u){if(u&&!t.user)return void t.run();(t.user?c:a).push(t),h[t.id]=t,l||(l=!0,o.nextTick(r))}}},function(t){function e(t){this.size=0,this.limit=t,this.head=this.tail=void 0,this._keymap={}}var i=e.prototype;i.put=function(t,e){var i={key:t,value:e};return this._keymap[t]=i,this.tail?(this.tail.newer=i,i.older=this.tail):this.head=i,this.tail=i,this.size===this.limit?this.shift():void this.size++},i.shift=function(){var t=this.head;return t&&(this.head=this.head.newer,this.head.older=void 0,t.newer=t.older=void 0,this._keymap[t.key]=void 0),t},i.get=function(t,e){var i=this._keymap[t];if(void 0!==i)return i===this.tail?e?i:i.value:(i.newer&&(i===this.head&&(this.head=i.newer),i.newer.older=i.older),i.older&&(i.older.newer=i.newer),i.newer=void 0,i.older=this.tail,this.tail&&(this.tail.newer=i),this.tail=i,e?i:i.value)},t.exports=e},function(t,e,i){function n(t,e,i,n,s){f.push({el:t,dir:e,cb:s,cls:n,op:i}),d||(d=!0,a.nextTick(r))}function r(){document.documentElement.offsetHeight;f.forEach(s),f=[],d=!1}function s(t){function e(t,e){n.event=t;var r=n.callback=function(o){o.target===i&&(a.off(i,t,r),n.event=n.callback=null,e&&e(),s&&s())};a.on(i,t,r)}var i=t.el,n=i.__v_trans,r=t.cls,s=t.cb,c=t.op,l=o(i,n,r);if(t.dir>0)1===l?(h(i,r),s&&e(a.transitionEndEvent)):2===l?e(a.animationEndEvent,function(){h(i,r)}):(h(i,r),s&&s());else if(l){var u=1===l?a.transitionEndEvent:a.animationEndEvent;e(u,function(){c(),h(i,r)})}else c(),h(i,r),s&&s()}function o(t,e,i){var n=e.cache&&e.cache[i];if(n)return n;var r=t.style,s=window.getComputedStyle(t),o=r[l]||s[l];if(o&&"0s"!==o)n=1;else{var a=r[u]||s[u];a&&"0s"!==a&&(n=2)}return n&&(e.cache||(e.cache={}),e.cache[i]=n),n}var a=i(1),c=a.addClass,h=a.removeClass,l=a.transitionProp+"Duration",u=a.animationProp+"Duration",f=[],d=!1;t.exports=function(t,e,i,r,s){var o=r.id||"v",l=o+"-enter",u=o+"-leave";r.callback&&(a.off(t,r.event,r.callback),h(t,l),h(t,u),r.event=r.callback=null),e>0?(c(t,l),i(),n(t,e,null,l,s)):(c(t,u),n(t,e,i,u,s))}},function(t){t.exports=function(t,e,i,n,r,s,o){n.cancel&&(n.cancel(),n.cancel=null),e>0?(r.beforeEnter&&r.beforeEnter.call(s,t),i(),r.enter?n.cancel=r.enter.call(s,t,function(){n.cancel=null,o&&o()}):o&&o()):r.leave?n.cancel=r.leave.call(s,t,function(){n.cancel=null,i(),o&&o()}):(i(),o&&o())}},function(t,e,i){var n=i(1);t.exports={bind:function(){function t(){e.set(s?n.toNumber(i.value):i.value,!0)}var e=this,i=this.el,r=null!=this._checkParam("lazy"),s=null!=this._checkParam("number"),o=!1;this.cpLock=function(){o=!0},this.cpUnlock=function(){o=!1,t()},n.on(i,"compositionstart",this.cpLock),n.on(i,"compositionend",this.cpUnlock),this.listener=this.filters||"range"===i.type?function(){if(!o){var r;try{r=i.value.length-i.selectionStart}catch(s){}0>r||(t(),n.nextTick(function(){var t=e._watcher.value;if(e.update(t),null!=r){var s=n.toString(t).length-r;i.setSelectionRange(s,s)}}))}}:function(){o||t()},this.event=r?"change":"input",n.on(i,this.event,this.listener),!r&&n.isIE9&&(this.onCut=function(){n.nextTick(e.listener)},this.onDel=function(t){(46===t.keyCode||8===t.keyCode)&&e.listener()},n.on(i,"cut",this.onCut),n.on(i,"keyup",this.onDel)),(i.hasAttribute("value")||"TEXTAREA"===i.tagName&&i.value.trim())&&(this._initValue=s?n.toNumber(i.value):i.value)},update:function(t){this.el.value=n.toString(t)},unbind:function(){var t=this.el;n.off(t,this.event,this.listener),n.off(t,"compositionstart",this.cpLock),n.off(t,"compositionend",this.cpUnlock),this.onCut&&(n.off(t,"cut",this.onCut),n.off(t,"keyup",this.onDel))}}},function(t,e,i){var n=i(1);t.exports={bind:function(){var t=this,e=this.el;this.listener=function(){t.set(e.value,!0)},n.on(e,"change",this.listener),e.checked&&(this._initValue=e.value)},update:function(t){this.el.checked=t==this.el.value},unbind:function(){n.off(this.el,"change",this.listener)}}},function(t,e,i){function n(t){function e(t){l.isArray(t)&&(i.el.innerHTML="",r(i.el,t),i._watcher&&i.update(i._watcher.value))}var i=this;this.optionWatcher=new u(this.vm,t,e,{deep:!0}),e(this.optionWatcher.value)}function r(t,e){for(var i,n,s=0,o=e.length;o>s;s++)i=e[s],i.options?(n=document.createElement("optgroup"),n.label=i.label,r(n,i.options)):(n=document.createElement("option"),"string"==typeof i?n.text=n.value=i:(n.text=i.text,n.value=i.value)),t.appendChild(n)}function s(){for(var t,e=this.el.options,i=0,n=e.length;n>i;i++)e[i].hasAttribute("selected")&&(this.multiple?(t||(t=[])).push(e[i].value):t=e[i].value);t&&(this._initValue=t)}function o(t){return Array.prototype.filter.call(t.options,a).map(c)}function a(t){return t.selected}function c(t){return t.value||t.text}function h(t,e){for(var i=t.length;i--;)if(t[i]==e)return i;return-1}var l=i(1),u=i(21);t.exports={bind:function(){var t=this,e=this.el,i=this._checkParam("options");i&&n.call(this,i),this.multiple=e.hasAttribute("multiple"),this.listener=function(){var i=t.multiple?o(e):e.value;t.set(i,!0)},l.on(e,"change",this.listener),s.call(this)},update:function(t){var e=this.el;e.selectedIndex=-1;for(var i,n=this.multiple&&l.isArray(t),r=e.options,s=r.length;s--;)i=r[s],i.selected=n?h(t,i.value)>-1:t==i.value},unbind:function(){l.off(this.el,"change",this.listener),this.optionWatcher&&this.optionWatcher.teardown()}}},function(t,e,i){var n=i(1);t.exports={bind:function(){var t=this,e=this.el;this.listener=function(){t.set(e.checked,!0)},n.on(e,"change",this.listener),e.checked&&(this._initValue=e.checked)},update:function(t){this.el.checked=!!t},unbind:function(){n.off(this.el,"change",this.listener)}}},function(t,e,i){var n=i(1),r=Array.prototype,s=Object.create(r);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=r[t];n.define(s,t,function(){for(var i=arguments.length,n=new Array(i);i--;)n[i]=arguments[i];var r,s=e.apply(this,n),o=this.__ob__;switch(t){case"push":r=n;break;case"unshift":r=n;break;case"splice":r=n.slice(2)}return r&&o.observeArray(r),o.notify(),s})}),n.define(r,"$set",function(t,e){return t>=this.length&&(this.length=t+1),this.splice(t,1,e)[0]}),n.define(r,"$remove",function(t){return"number"!=typeof t&&(t=this.indexOf(t)),t>-1?this.splice(t,1)[0]:void 0}),t.exports=s},function(t,e,i){var n=i(1),r=Object.prototype;n.define(r,"$add",function(t,e){if(!this.hasOwnProperty(t)){var i=this.__ob__;if(!i||n.isReserved(t))return void(this[t]=e);if(i.convert(t,e),i.vms)for(var r=i.vms.length;r--;){var s=i.vms[r];s._proxy(t),s._digest()}else i.notify()}}),n.define(r,"$delete",function(t){if(this.hasOwnProperty(t)){delete this[t];var e=this.__ob__;if(e&&!n.isReserved(t))if(e.vms)for(var i=e.vms.length;i--;){var r=e.vms[i];r._unproxy(t),r._digest()}else e.notify()}})}])});
@@ -1,1951 +0,0 @@
1
- /*!
2
- * Bootstrap v3.1.0 (http://getbootstrap.com)
3
- * Copyright 2011-2014 Twitter, Inc.
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
- */
6
-
7
- if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery') }
8
-
9
- /* ========================================================================
10
- * Bootstrap: transition.js v3.1.0
11
- * http://getbootstrap.com/javascript/#transitions
12
- * ========================================================================
13
- * Copyright 2011-2014 Twitter, Inc.
14
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
15
- * ======================================================================== */
16
-
17
-
18
- +function ($) {
19
- 'use strict';
20
-
21
- // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
22
- // ============================================================
23
-
24
- function transitionEnd() {
25
- var el = document.createElement('bootstrap')
26
-
27
- var transEndEventNames = {
28
- 'WebkitTransition' : 'webkitTransitionEnd',
29
- 'MozTransition' : 'transitionend',
30
- 'OTransition' : 'oTransitionEnd otransitionend',
31
- 'transition' : 'transitionend'
32
- }
33
-
34
- for (var name in transEndEventNames) {
35
- if (el.style[name] !== undefined) {
36
- return { end: transEndEventNames[name] }
37
- }
38
- }
39
-
40
- return false // explicit for ie8 ( ._.)
41
- }
42
-
43
- // http://blog.alexmaccaw.com/css-transitions
44
- $.fn.emulateTransitionEnd = function (duration) {
45
- var called = false, $el = this
46
- $(this).one($.support.transition.end, function () { called = true })
47
- var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
48
- setTimeout(callback, duration)
49
- return this
50
- }
51
-
52
- $(function () {
53
- $.support.transition = transitionEnd()
54
- })
55
-
56
- }(jQuery);
57
-
58
- /* ========================================================================
59
- * Bootstrap: alert.js v3.1.0
60
- * http://getbootstrap.com/javascript/#alerts
61
- * ========================================================================
62
- * Copyright 2011-2014 Twitter, Inc.
63
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
64
- * ======================================================================== */
65
-
66
-
67
- +function ($) {
68
- 'use strict';
69
-
70
- // ALERT CLASS DEFINITION
71
- // ======================
72
-
73
- var dismiss = '[data-dismiss="alert"]'
74
- var Alert = function (el) {
75
- $(el).on('click', dismiss, this.close)
76
- }
77
-
78
- Alert.prototype.close = function (e) {
79
- var $this = $(this)
80
- var selector = $this.attr('data-target')
81
-
82
- if (!selector) {
83
- selector = $this.attr('href')
84
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
85
- }
86
-
87
- var $parent = $(selector)
88
-
89
- if (e) e.preventDefault()
90
-
91
- if (!$parent.length) {
92
- $parent = $this.hasClass('alert') ? $this : $this.parent()
93
- }
94
-
95
- $parent.trigger(e = $.Event('close.bs.alert'))
96
-
97
- if (e.isDefaultPrevented()) return
98
-
99
- $parent.removeClass('in')
100
-
101
- function removeElement() {
102
- $parent.trigger('closed.bs.alert').remove()
103
- }
104
-
105
- $.support.transition && $parent.hasClass('fade') ?
106
- $parent
107
- .one($.support.transition.end, removeElement)
108
- .emulateTransitionEnd(150) :
109
- removeElement()
110
- }
111
-
112
-
113
- // ALERT PLUGIN DEFINITION
114
- // =======================
115
-
116
- var old = $.fn.alert
117
-
118
- $.fn.alert = function (option) {
119
- return this.each(function () {
120
- var $this = $(this)
121
- var data = $this.data('bs.alert')
122
-
123
- if (!data) $this.data('bs.alert', (data = new Alert(this)))
124
- if (typeof option == 'string') data[option].call($this)
125
- })
126
- }
127
-
128
- $.fn.alert.Constructor = Alert
129
-
130
-
131
- // ALERT NO CONFLICT
132
- // =================
133
-
134
- $.fn.alert.noConflict = function () {
135
- $.fn.alert = old
136
- return this
137
- }
138
-
139
-
140
- // ALERT DATA-API
141
- // ==============
142
-
143
- $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
144
-
145
- }(jQuery);
146
-
147
- /* ========================================================================
148
- * Bootstrap: button.js v3.1.0
149
- * http://getbootstrap.com/javascript/#buttons
150
- * ========================================================================
151
- * Copyright 2011-2014 Twitter, Inc.
152
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
153
- * ======================================================================== */
154
-
155
-
156
- +function ($) {
157
- 'use strict';
158
-
159
- // BUTTON PUBLIC CLASS DEFINITION
160
- // ==============================
161
-
162
- var Button = function (element, options) {
163
- this.$element = $(element)
164
- this.options = $.extend({}, Button.DEFAULTS, options)
165
- this.isLoading = false
166
- }
167
-
168
- Button.DEFAULTS = {
169
- loadingText: 'loading...'
170
- }
171
-
172
- Button.prototype.setState = function (state) {
173
- var d = 'disabled'
174
- var $el = this.$element
175
- var val = $el.is('input') ? 'val' : 'html'
176
- var data = $el.data()
177
-
178
- state = state + 'Text'
179
-
180
- if (!data.resetText) $el.data('resetText', $el[val]())
181
-
182
- $el[val](data[state] || this.options[state])
183
-
184
- // push to event loop to allow forms to submit
185
- setTimeout($.proxy(function () {
186
- if (state == 'loadingText') {
187
- this.isLoading = true
188
- $el.addClass(d).attr(d, d)
189
- } else if (this.isLoading) {
190
- this.isLoading = false
191
- $el.removeClass(d).removeAttr(d)
192
- }
193
- }, this), 0)
194
- }
195
-
196
- Button.prototype.toggle = function () {
197
- var changed = true
198
- var $parent = this.$element.closest('[data-toggle="buttons"]')
199
-
200
- if ($parent.length) {
201
- var $input = this.$element.find('input')
202
- if ($input.prop('type') == 'radio') {
203
- if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
204
- else $parent.find('.active').removeClass('active')
205
- }
206
- if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
207
- }
208
-
209
- if (changed) this.$element.toggleClass('active')
210
- }
211
-
212
-
213
- // BUTTON PLUGIN DEFINITION
214
- // ========================
215
-
216
- var old = $.fn.button
217
-
218
- $.fn.button = function (option) {
219
- return this.each(function () {
220
- var $this = $(this)
221
- var data = $this.data('bs.button')
222
- var options = typeof option == 'object' && option
223
-
224
- if (!data) $this.data('bs.button', (data = new Button(this, options)))
225
-
226
- if (option == 'toggle') data.toggle()
227
- else if (option) data.setState(option)
228
- })
229
- }
230
-
231
- $.fn.button.Constructor = Button
232
-
233
-
234
- // BUTTON NO CONFLICT
235
- // ==================
236
-
237
- $.fn.button.noConflict = function () {
238
- $.fn.button = old
239
- return this
240
- }
241
-
242
-
243
- // BUTTON DATA-API
244
- // ===============
245
-
246
- $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {
247
- var $btn = $(e.target)
248
- if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
249
- $btn.button('toggle')
250
- e.preventDefault()
251
- })
252
-
253
- }(jQuery);
254
-
255
- /* ========================================================================
256
- * Bootstrap: carousel.js v3.1.0
257
- * http://getbootstrap.com/javascript/#carousel
258
- * ========================================================================
259
- * Copyright 2011-2014 Twitter, Inc.
260
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
261
- * ======================================================================== */
262
-
263
-
264
- +function ($) {
265
- 'use strict';
266
-
267
- // CAROUSEL CLASS DEFINITION
268
- // =========================
269
-
270
- var Carousel = function (element, options) {
271
- this.$element = $(element)
272
- this.$indicators = this.$element.find('.carousel-indicators')
273
- this.options = options
274
- this.paused =
275
- this.sliding =
276
- this.interval =
277
- this.$active =
278
- this.$items = null
279
-
280
- this.options.pause == 'hover' && this.$element
281
- .on('mouseenter', $.proxy(this.pause, this))
282
- .on('mouseleave', $.proxy(this.cycle, this))
283
- }
284
-
285
- Carousel.DEFAULTS = {
286
- interval: 5000,
287
- pause: 'hover',
288
- wrap: true
289
- }
290
-
291
- Carousel.prototype.cycle = function (e) {
292
- e || (this.paused = false)
293
-
294
- this.interval && clearInterval(this.interval)
295
-
296
- this.options.interval
297
- && !this.paused
298
- && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
299
-
300
- return this
301
- }
302
-
303
- Carousel.prototype.getActiveIndex = function () {
304
- this.$active = this.$element.find('.item.active')
305
- this.$items = this.$active.parent().children()
306
-
307
- return this.$items.index(this.$active)
308
- }
309
-
310
- Carousel.prototype.to = function (pos) {
311
- var that = this
312
- var activeIndex = this.getActiveIndex()
313
-
314
- if (pos > (this.$items.length - 1) || pos < 0) return
315
-
316
- if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
317
- if (activeIndex == pos) return this.pause().cycle()
318
-
319
- return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
320
- }
321
-
322
- Carousel.prototype.pause = function (e) {
323
- e || (this.paused = true)
324
-
325
- if (this.$element.find('.next, .prev').length && $.support.transition) {
326
- this.$element.trigger($.support.transition.end)
327
- this.cycle(true)
328
- }
329
-
330
- this.interval = clearInterval(this.interval)
331
-
332
- return this
333
- }
334
-
335
- Carousel.prototype.next = function () {
336
- if (this.sliding) return
337
- return this.slide('next')
338
- }
339
-
340
- Carousel.prototype.prev = function () {
341
- if (this.sliding) return
342
- return this.slide('prev')
343
- }
344
-
345
- Carousel.prototype.slide = function (type, next) {
346
- var $active = this.$element.find('.item.active')
347
- var $next = next || $active[type]()
348
- var isCycling = this.interval
349
- var direction = type == 'next' ? 'left' : 'right'
350
- var fallback = type == 'next' ? 'first' : 'last'
351
- var that = this
352
-
353
- if (!$next.length) {
354
- if (!this.options.wrap) return
355
- $next = this.$element.find('.item')[fallback]()
356
- }
357
-
358
- if ($next.hasClass('active')) return this.sliding = false
359
-
360
- var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
361
- this.$element.trigger(e)
362
- if (e.isDefaultPrevented()) return
363
-
364
- this.sliding = true
365
-
366
- isCycling && this.pause()
367
-
368
- if (this.$indicators.length) {
369
- this.$indicators.find('.active').removeClass('active')
370
- this.$element.one('slid.bs.carousel', function () {
371
- var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
372
- $nextIndicator && $nextIndicator.addClass('active')
373
- })
374
- }
375
-
376
- if ($.support.transition && this.$element.hasClass('slide')) {
377
- $next.addClass(type)
378
- $next[0].offsetWidth // force reflow
379
- $active.addClass(direction)
380
- $next.addClass(direction)
381
- $active
382
- .one($.support.transition.end, function () {
383
- $next.removeClass([type, direction].join(' ')).addClass('active')
384
- $active.removeClass(['active', direction].join(' '))
385
- that.sliding = false
386
- setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
387
- })
388
- .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
389
- } else {
390
- $active.removeClass('active')
391
- $next.addClass('active')
392
- this.sliding = false
393
- this.$element.trigger('slid.bs.carousel')
394
- }
395
-
396
- isCycling && this.cycle()
397
-
398
- return this
399
- }
400
-
401
-
402
- // CAROUSEL PLUGIN DEFINITION
403
- // ==========================
404
-
405
- var old = $.fn.carousel
406
-
407
- $.fn.carousel = function (option) {
408
- return this.each(function () {
409
- var $this = $(this)
410
- var data = $this.data('bs.carousel')
411
- var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
412
- var action = typeof option == 'string' ? option : options.slide
413
-
414
- if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
415
- if (typeof option == 'number') data.to(option)
416
- else if (action) data[action]()
417
- else if (options.interval) data.pause().cycle()
418
- })
419
- }
420
-
421
- $.fn.carousel.Constructor = Carousel
422
-
423
-
424
- // CAROUSEL NO CONFLICT
425
- // ====================
426
-
427
- $.fn.carousel.noConflict = function () {
428
- $.fn.carousel = old
429
- return this
430
- }
431
-
432
-
433
- // CAROUSEL DATA-API
434
- // =================
435
-
436
- $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
437
- var $this = $(this), href
438
- var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
439
- var options = $.extend({}, $target.data(), $this.data())
440
- var slideIndex = $this.attr('data-slide-to')
441
- if (slideIndex) options.interval = false
442
-
443
- $target.carousel(options)
444
-
445
- if (slideIndex = $this.attr('data-slide-to')) {
446
- $target.data('bs.carousel').to(slideIndex)
447
- }
448
-
449
- e.preventDefault()
450
- })
451
-
452
- $(window).on('load', function () {
453
- $('[data-ride="carousel"]').each(function () {
454
- var $carousel = $(this)
455
- $carousel.carousel($carousel.data())
456
- })
457
- })
458
-
459
- }(jQuery);
460
-
461
- /* ========================================================================
462
- * Bootstrap: collapse.js v3.1.0
463
- * http://getbootstrap.com/javascript/#collapse
464
- * ========================================================================
465
- * Copyright 2011-2014 Twitter, Inc.
466
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
467
- * ======================================================================== */
468
-
469
-
470
- +function ($) {
471
- 'use strict';
472
-
473
- // COLLAPSE PUBLIC CLASS DEFINITION
474
- // ================================
475
-
476
- var Collapse = function (element, options) {
477
- this.$element = $(element)
478
- this.options = $.extend({}, Collapse.DEFAULTS, options)
479
- this.transitioning = null
480
-
481
- if (this.options.parent) this.$parent = $(this.options.parent)
482
- if (this.options.toggle) this.toggle()
483
- }
484
-
485
- Collapse.DEFAULTS = {
486
- toggle: true
487
- }
488
-
489
- Collapse.prototype.dimension = function () {
490
- var hasWidth = this.$element.hasClass('width')
491
- return hasWidth ? 'width' : 'height'
492
- }
493
-
494
- Collapse.prototype.show = function () {
495
- if (this.transitioning || this.$element.hasClass('in')) return
496
-
497
- var startEvent = $.Event('show.bs.collapse')
498
- this.$element.trigger(startEvent)
499
- if (startEvent.isDefaultPrevented()) return
500
-
501
- var actives = this.$parent && this.$parent.find('> .panel > .in')
502
-
503
- if (actives && actives.length) {
504
- var hasData = actives.data('bs.collapse')
505
- if (hasData && hasData.transitioning) return
506
- actives.collapse('hide')
507
- hasData || actives.data('bs.collapse', null)
508
- }
509
-
510
- var dimension = this.dimension()
511
-
512
- this.$element
513
- .removeClass('collapse')
514
- .addClass('collapsing')
515
- [dimension](0)
516
-
517
- this.transitioning = 1
518
-
519
- var complete = function () {
520
- this.$element
521
- .removeClass('collapsing')
522
- .addClass('collapse in')
523
- [dimension]('auto')
524
- this.transitioning = 0
525
- this.$element.trigger('shown.bs.collapse')
526
- }
527
-
528
- if (!$.support.transition) return complete.call(this)
529
-
530
- var scrollSize = $.camelCase(['scroll', dimension].join('-'))
531
-
532
- this.$element
533
- .one($.support.transition.end, $.proxy(complete, this))
534
- .emulateTransitionEnd(350)
535
- [dimension](this.$element[0][scrollSize])
536
- }
537
-
538
- Collapse.prototype.hide = function () {
539
- if (this.transitioning || !this.$element.hasClass('in')) return
540
-
541
- var startEvent = $.Event('hide.bs.collapse')
542
- this.$element.trigger(startEvent)
543
- if (startEvent.isDefaultPrevented()) return
544
-
545
- var dimension = this.dimension()
546
-
547
- this.$element
548
- [dimension](this.$element[dimension]())
549
- [0].offsetHeight
550
-
551
- this.$element
552
- .addClass('collapsing')
553
- .removeClass('collapse')
554
- .removeClass('in')
555
-
556
- this.transitioning = 1
557
-
558
- var complete = function () {
559
- this.transitioning = 0
560
- this.$element
561
- .trigger('hidden.bs.collapse')
562
- .removeClass('collapsing')
563
- .addClass('collapse')
564
- }
565
-
566
- if (!$.support.transition) return complete.call(this)
567
-
568
- this.$element
569
- [dimension](0)
570
- .one($.support.transition.end, $.proxy(complete, this))
571
- .emulateTransitionEnd(350)
572
- }
573
-
574
- Collapse.prototype.toggle = function () {
575
- this[this.$element.hasClass('in') ? 'hide' : 'show']()
576
- }
577
-
578
-
579
- // COLLAPSE PLUGIN DEFINITION
580
- // ==========================
581
-
582
- var old = $.fn.collapse
583
-
584
- $.fn.collapse = function (option) {
585
- return this.each(function () {
586
- var $this = $(this)
587
- var data = $this.data('bs.collapse')
588
- var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
589
-
590
- if (!data && options.toggle && option == 'show') option = !option
591
- if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
592
- if (typeof option == 'string') data[option]()
593
- })
594
- }
595
-
596
- $.fn.collapse.Constructor = Collapse
597
-
598
-
599
- // COLLAPSE NO CONFLICT
600
- // ====================
601
-
602
- $.fn.collapse.noConflict = function () {
603
- $.fn.collapse = old
604
- return this
605
- }
606
-
607
-
608
- // COLLAPSE DATA-API
609
- // =================
610
-
611
- $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
612
- var $this = $(this), href
613
- var target = $this.attr('data-target')
614
- || e.preventDefault()
615
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
616
- var $target = $(target)
617
- var data = $target.data('bs.collapse')
618
- var option = data ? 'toggle' : $this.data()
619
- var parent = $this.attr('data-parent')
620
- var $parent = parent && $(parent)
621
-
622
- if (!data || !data.transitioning) {
623
- if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
624
- $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
625
- }
626
-
627
- $target.collapse(option)
628
- })
629
-
630
- }(jQuery);
631
-
632
- /* ========================================================================
633
- * Bootstrap: dropdown.js v3.1.0
634
- * http://getbootstrap.com/javascript/#dropdowns
635
- * ========================================================================
636
- * Copyright 2011-2014 Twitter, Inc.
637
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
638
- * ======================================================================== */
639
-
640
-
641
- +function ($) {
642
- 'use strict';
643
-
644
- // DROPDOWN CLASS DEFINITION
645
- // =========================
646
-
647
- var backdrop = '.dropdown-backdrop'
648
- var toggle = '[data-toggle=dropdown]'
649
- var Dropdown = function (element) {
650
- $(element).on('click.bs.dropdown', this.toggle)
651
- }
652
-
653
- Dropdown.prototype.toggle = function (e) {
654
- var $this = $(this)
655
-
656
- if ($this.is('.disabled, :disabled')) return
657
-
658
- var $parent = getParent($this)
659
- var isActive = $parent.hasClass('open')
660
-
661
- clearMenus()
662
-
663
- if (!isActive) {
664
- if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
665
- // if mobile we use a backdrop because click events don't delegate
666
- $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
667
- }
668
-
669
- var relatedTarget = { relatedTarget: this }
670
- $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
671
-
672
- if (e.isDefaultPrevented()) return
673
-
674
- $parent
675
- .toggleClass('open')
676
- .trigger('shown.bs.dropdown', relatedTarget)
677
-
678
- $this.focus()
679
- }
680
-
681
- return false
682
- }
683
-
684
- Dropdown.prototype.keydown = function (e) {
685
- if (!/(38|40|27)/.test(e.keyCode)) return
686
-
687
- var $this = $(this)
688
-
689
- e.preventDefault()
690
- e.stopPropagation()
691
-
692
- if ($this.is('.disabled, :disabled')) return
693
-
694
- var $parent = getParent($this)
695
- var isActive = $parent.hasClass('open')
696
-
697
- if (!isActive || (isActive && e.keyCode == 27)) {
698
- if (e.which == 27) $parent.find(toggle).focus()
699
- return $this.click()
700
- }
701
-
702
- var desc = ' li:not(.divider):visible a'
703
- var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)
704
-
705
- if (!$items.length) return
706
-
707
- var index = $items.index($items.filter(':focus'))
708
-
709
- if (e.keyCode == 38 && index > 0) index-- // up
710
- if (e.keyCode == 40 && index < $items.length - 1) index++ // down
711
- if (!~index) index = 0
712
-
713
- $items.eq(index).focus()
714
- }
715
-
716
- function clearMenus(e) {
717
- $(backdrop).remove()
718
- $(toggle).each(function () {
719
- var $parent = getParent($(this))
720
- var relatedTarget = { relatedTarget: this }
721
- if (!$parent.hasClass('open')) return
722
- $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
723
- if (e.isDefaultPrevented()) return
724
- $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
725
- })
726
- }
727
-
728
- function getParent($this) {
729
- var selector = $this.attr('data-target')
730
-
731
- if (!selector) {
732
- selector = $this.attr('href')
733
- selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
734
- }
735
-
736
- var $parent = selector && $(selector)
737
-
738
- return $parent && $parent.length ? $parent : $this.parent()
739
- }
740
-
741
-
742
- // DROPDOWN PLUGIN DEFINITION
743
- // ==========================
744
-
745
- var old = $.fn.dropdown
746
-
747
- $.fn.dropdown = function (option) {
748
- return this.each(function () {
749
- var $this = $(this)
750
- var data = $this.data('bs.dropdown')
751
-
752
- if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
753
- if (typeof option == 'string') data[option].call($this)
754
- })
755
- }
756
-
757
- $.fn.dropdown.Constructor = Dropdown
758
-
759
-
760
- // DROPDOWN NO CONFLICT
761
- // ====================
762
-
763
- $.fn.dropdown.noConflict = function () {
764
- $.fn.dropdown = old
765
- return this
766
- }
767
-
768
-
769
- // APPLY TO STANDARD DROPDOWN ELEMENTS
770
- // ===================================
771
-
772
- $(document)
773
- .on('click.bs.dropdown.data-api', clearMenus)
774
- .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
775
- .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
776
- .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown)
777
-
778
- }(jQuery);
779
-
780
- /* ========================================================================
781
- * Bootstrap: modal.js v3.1.0
782
- * http://getbootstrap.com/javascript/#modals
783
- * ========================================================================
784
- * Copyright 2011-2014 Twitter, Inc.
785
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
786
- * ======================================================================== */
787
-
788
-
789
- +function ($) {
790
- 'use strict';
791
-
792
- // MODAL CLASS DEFINITION
793
- // ======================
794
-
795
- var Modal = function (element, options) {
796
- this.options = options
797
- this.$element = $(element)
798
- this.$backdrop =
799
- this.isShown = null
800
-
801
- if (this.options.remote) {
802
- this.$element
803
- .find('.modal-content')
804
- .load(this.options.remote, $.proxy(function () {
805
- this.$element.trigger('loaded.bs.modal')
806
- }, this))
807
- }
808
- }
809
-
810
- Modal.DEFAULTS = {
811
- backdrop: true,
812
- keyboard: true,
813
- show: true
814
- }
815
-
816
- Modal.prototype.toggle = function (_relatedTarget) {
817
- return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
818
- }
819
-
820
- Modal.prototype.show = function (_relatedTarget) {
821
- var that = this
822
- var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
823
-
824
- this.$element.trigger(e)
825
-
826
- if (this.isShown || e.isDefaultPrevented()) return
827
-
828
- this.isShown = true
829
-
830
- this.escape()
831
-
832
- this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
833
-
834
- this.backdrop(function () {
835
- var transition = $.support.transition && that.$element.hasClass('fade')
836
-
837
- if (!that.$element.parent().length) {
838
- that.$element.appendTo(document.body) // don't move modals dom position
839
- }
840
-
841
- that.$element
842
- .show()
843
- .scrollTop(0)
844
-
845
- if (transition) {
846
- that.$element[0].offsetWidth // force reflow
847
- }
848
-
849
- that.$element
850
- .addClass('in')
851
- .attr('aria-hidden', false)
852
-
853
- that.enforceFocus()
854
-
855
- var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
856
-
857
- transition ?
858
- that.$element.find('.modal-dialog') // wait for modal to slide in
859
- .one($.support.transition.end, function () {
860
- that.$element.focus().trigger(e)
861
- })
862
- .emulateTransitionEnd(300) :
863
- that.$element.focus().trigger(e)
864
- })
865
- }
866
-
867
- Modal.prototype.hide = function (e) {
868
- if (e) e.preventDefault()
869
-
870
- e = $.Event('hide.bs.modal')
871
-
872
- this.$element.trigger(e)
873
-
874
- if (!this.isShown || e.isDefaultPrevented()) return
875
-
876
- this.isShown = false
877
-
878
- this.escape()
879
-
880
- $(document).off('focusin.bs.modal')
881
-
882
- this.$element
883
- .removeClass('in')
884
- .attr('aria-hidden', true)
885
- .off('click.dismiss.bs.modal')
886
-
887
- $.support.transition && this.$element.hasClass('fade') ?
888
- this.$element
889
- .one($.support.transition.end, $.proxy(this.hideModal, this))
890
- .emulateTransitionEnd(300) :
891
- this.hideModal()
892
- }
893
-
894
- Modal.prototype.enforceFocus = function () {
895
- $(document)
896
- .off('focusin.bs.modal') // guard against infinite focus loop
897
- .on('focusin.bs.modal', $.proxy(function (e) {
898
- if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
899
- this.$element.focus()
900
- }
901
- }, this))
902
- }
903
-
904
- Modal.prototype.escape = function () {
905
- if (this.isShown && this.options.keyboard) {
906
- this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
907
- e.which == 27 && this.hide()
908
- }, this))
909
- } else if (!this.isShown) {
910
- this.$element.off('keyup.dismiss.bs.modal')
911
- }
912
- }
913
-
914
- Modal.prototype.hideModal = function () {
915
- var that = this
916
- this.$element.hide()
917
- this.backdrop(function () {
918
- that.removeBackdrop()
919
- that.$element.trigger('hidden.bs.modal')
920
- })
921
- }
922
-
923
- Modal.prototype.removeBackdrop = function () {
924
- this.$backdrop && this.$backdrop.remove()
925
- this.$backdrop = null
926
- }
927
-
928
- Modal.prototype.backdrop = function (callback) {
929
- var animate = this.$element.hasClass('fade') ? 'fade' : ''
930
-
931
- if (this.isShown && this.options.backdrop) {
932
- var doAnimate = $.support.transition && animate
933
-
934
- this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
935
- .appendTo(document.body)
936
-
937
- this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
938
- if (e.target !== e.currentTarget) return
939
- this.options.backdrop == 'static'
940
- ? this.$element[0].focus.call(this.$element[0])
941
- : this.hide.call(this)
942
- }, this))
943
-
944
- if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
945
-
946
- this.$backdrop.addClass('in')
947
-
948
- if (!callback) return
949
-
950
- doAnimate ?
951
- this.$backdrop
952
- .one($.support.transition.end, callback)
953
- .emulateTransitionEnd(150) :
954
- callback()
955
-
956
- } else if (!this.isShown && this.$backdrop) {
957
- this.$backdrop.removeClass('in')
958
-
959
- $.support.transition && this.$element.hasClass('fade') ?
960
- this.$backdrop
961
- .one($.support.transition.end, callback)
962
- .emulateTransitionEnd(150) :
963
- callback()
964
-
965
- } else if (callback) {
966
- callback()
967
- }
968
- }
969
-
970
-
971
- // MODAL PLUGIN DEFINITION
972
- // =======================
973
-
974
- var old = $.fn.modal
975
-
976
- $.fn.modal = function (option, _relatedTarget) {
977
- return this.each(function () {
978
- var $this = $(this)
979
- var data = $this.data('bs.modal')
980
- var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
981
-
982
- if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
983
- if (typeof option == 'string') data[option](_relatedTarget)
984
- else if (options.show) data.show(_relatedTarget)
985
- })
986
- }
987
-
988
- $.fn.modal.Constructor = Modal
989
-
990
-
991
- // MODAL NO CONFLICT
992
- // =================
993
-
994
- $.fn.modal.noConflict = function () {
995
- $.fn.modal = old
996
- return this
997
- }
998
-
999
-
1000
- // MODAL DATA-API
1001
- // ==============
1002
-
1003
- $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
1004
- var $this = $(this)
1005
- var href = $this.attr('href')
1006
- var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1007
- var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
1008
-
1009
- if ($this.is('a')) e.preventDefault()
1010
-
1011
- $target
1012
- .modal(option, this)
1013
- .one('hide', function () {
1014
- $this.is(':visible') && $this.focus()
1015
- })
1016
- })
1017
-
1018
- $(document)
1019
- .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
1020
- .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
1021
-
1022
- }(jQuery);
1023
-
1024
- /* ========================================================================
1025
- * Bootstrap: tooltip.js v3.1.0
1026
- * http://getbootstrap.com/javascript/#tooltip
1027
- * Inspired by the original jQuery.tipsy by Jason Frame
1028
- * ========================================================================
1029
- * Copyright 2011-2014 Twitter, Inc.
1030
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1031
- * ======================================================================== */
1032
-
1033
-
1034
- +function ($) {
1035
- 'use strict';
1036
-
1037
- // TOOLTIP PUBLIC CLASS DEFINITION
1038
- // ===============================
1039
-
1040
- var Tooltip = function (element, options) {
1041
- this.type =
1042
- this.options =
1043
- this.enabled =
1044
- this.timeout =
1045
- this.hoverState =
1046
- this.$element = null
1047
-
1048
- this.init('tooltip', element, options)
1049
- }
1050
-
1051
- Tooltip.DEFAULTS = {
1052
- animation: true,
1053
- placement: 'top',
1054
- selector: false,
1055
- template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
1056
- trigger: 'hover focus',
1057
- title: '',
1058
- delay: 0,
1059
- html: false,
1060
- container: false
1061
- }
1062
-
1063
- Tooltip.prototype.init = function (type, element, options) {
1064
- this.enabled = true
1065
- this.type = type
1066
- this.$element = $(element)
1067
- this.options = this.getOptions(options)
1068
-
1069
- var triggers = this.options.trigger.split(' ')
1070
-
1071
- for (var i = triggers.length; i--;) {
1072
- var trigger = triggers[i]
1073
-
1074
- if (trigger == 'click') {
1075
- this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1076
- } else if (trigger != 'manual') {
1077
- var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
1078
- var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
1079
-
1080
- this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1081
- this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1082
- }
1083
- }
1084
-
1085
- this.options.selector ?
1086
- (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1087
- this.fixTitle()
1088
- }
1089
-
1090
- Tooltip.prototype.getDefaults = function () {
1091
- return Tooltip.DEFAULTS
1092
- }
1093
-
1094
- Tooltip.prototype.getOptions = function (options) {
1095
- options = $.extend({}, this.getDefaults(), this.$element.data(), options)
1096
-
1097
- if (options.delay && typeof options.delay == 'number') {
1098
- options.delay = {
1099
- show: options.delay,
1100
- hide: options.delay
1101
- }
1102
- }
1103
-
1104
- return options
1105
- }
1106
-
1107
- Tooltip.prototype.getDelegateOptions = function () {
1108
- var options = {}
1109
- var defaults = this.getDefaults()
1110
-
1111
- this._options && $.each(this._options, function (key, value) {
1112
- if (defaults[key] != value) options[key] = value
1113
- })
1114
-
1115
- return options
1116
- }
1117
-
1118
- Tooltip.prototype.enter = function (obj) {
1119
- var self = obj instanceof this.constructor ?
1120
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1121
-
1122
- clearTimeout(self.timeout)
1123
-
1124
- self.hoverState = 'in'
1125
-
1126
- if (!self.options.delay || !self.options.delay.show) return self.show()
1127
-
1128
- self.timeout = setTimeout(function () {
1129
- if (self.hoverState == 'in') self.show()
1130
- }, self.options.delay.show)
1131
- }
1132
-
1133
- Tooltip.prototype.leave = function (obj) {
1134
- var self = obj instanceof this.constructor ?
1135
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1136
-
1137
- clearTimeout(self.timeout)
1138
-
1139
- self.hoverState = 'out'
1140
-
1141
- if (!self.options.delay || !self.options.delay.hide) return self.hide()
1142
-
1143
- self.timeout = setTimeout(function () {
1144
- if (self.hoverState == 'out') self.hide()
1145
- }, self.options.delay.hide)
1146
- }
1147
-
1148
- Tooltip.prototype.show = function () {
1149
- var e = $.Event('show.bs.' + this.type)
1150
-
1151
- if (this.hasContent() && this.enabled) {
1152
- this.$element.trigger(e)
1153
-
1154
- if (e.isDefaultPrevented()) return
1155
- var that = this;
1156
-
1157
- var $tip = this.tip()
1158
-
1159
- this.setContent()
1160
-
1161
- if (this.options.animation) $tip.addClass('fade')
1162
-
1163
- var placement = typeof this.options.placement == 'function' ?
1164
- this.options.placement.call(this, $tip[0], this.$element[0]) :
1165
- this.options.placement
1166
-
1167
- var autoToken = /\s?auto?\s?/i
1168
- var autoPlace = autoToken.test(placement)
1169
- if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
1170
-
1171
- $tip
1172
- .detach()
1173
- .css({ top: 0, left: 0, display: 'block' })
1174
- .addClass(placement)
1175
-
1176
- this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1177
-
1178
- var pos = this.getPosition()
1179
- var actualWidth = $tip[0].offsetWidth
1180
- var actualHeight = $tip[0].offsetHeight
1181
-
1182
- if (autoPlace) {
1183
- var $parent = this.$element.parent()
1184
-
1185
- var orgPlacement = placement
1186
- var docScroll = document.documentElement.scrollTop || document.body.scrollTop
1187
- var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
1188
- var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
1189
- var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
1190
-
1191
- placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
1192
- placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
1193
- placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
1194
- placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
1195
- placement
1196
-
1197
- $tip
1198
- .removeClass(orgPlacement)
1199
- .addClass(placement)
1200
- }
1201
-
1202
- var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1203
-
1204
- this.applyPlacement(calculatedOffset, placement)
1205
- this.hoverState = null
1206
-
1207
- var complete = function() {
1208
- that.$element.trigger('shown.bs.' + that.type)
1209
- }
1210
-
1211
- $.support.transition && this.$tip.hasClass('fade') ?
1212
- $tip
1213
- .one($.support.transition.end, complete)
1214
- .emulateTransitionEnd(150) :
1215
- complete()
1216
- }
1217
- }
1218
-
1219
- Tooltip.prototype.applyPlacement = function (offset, placement) {
1220
- var replace
1221
- var $tip = this.tip()
1222
- var width = $tip[0].offsetWidth
1223
- var height = $tip[0].offsetHeight
1224
-
1225
- // manually read margins because getBoundingClientRect includes difference
1226
- var marginTop = parseInt($tip.css('margin-top'), 10)
1227
- var marginLeft = parseInt($tip.css('margin-left'), 10)
1228
-
1229
- // we must check for NaN for ie 8/9
1230
- if (isNaN(marginTop)) marginTop = 0
1231
- if (isNaN(marginLeft)) marginLeft = 0
1232
-
1233
- offset.top = offset.top + marginTop
1234
- offset.left = offset.left + marginLeft
1235
-
1236
- // $.fn.offset doesn't round pixel values
1237
- // so we use setOffset directly with our own function B-0
1238
- $.offset.setOffset($tip[0], $.extend({
1239
- using: function (props) {
1240
- $tip.css({
1241
- top: Math.round(props.top),
1242
- left: Math.round(props.left)
1243
- })
1244
- }
1245
- }, offset), 0)
1246
-
1247
- $tip.addClass('in')
1248
-
1249
- // check to see if placing tip in new offset caused the tip to resize itself
1250
- var actualWidth = $tip[0].offsetWidth
1251
- var actualHeight = $tip[0].offsetHeight
1252
-
1253
- if (placement == 'top' && actualHeight != height) {
1254
- replace = true
1255
- offset.top = offset.top + height - actualHeight
1256
- }
1257
-
1258
- if (/bottom|top/.test(placement)) {
1259
- var delta = 0
1260
-
1261
- if (offset.left < 0) {
1262
- delta = offset.left * -2
1263
- offset.left = 0
1264
-
1265
- $tip.offset(offset)
1266
-
1267
- actualWidth = $tip[0].offsetWidth
1268
- actualHeight = $tip[0].offsetHeight
1269
- }
1270
-
1271
- this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
1272
- } else {
1273
- this.replaceArrow(actualHeight - height, actualHeight, 'top')
1274
- }
1275
-
1276
- if (replace) $tip.offset(offset)
1277
- }
1278
-
1279
- Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
1280
- this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + '%') : '')
1281
- }
1282
-
1283
- Tooltip.prototype.setContent = function () {
1284
- var $tip = this.tip()
1285
- var title = this.getTitle()
1286
-
1287
- $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1288
- $tip.removeClass('fade in top bottom left right')
1289
- }
1290
-
1291
- Tooltip.prototype.hide = function () {
1292
- var that = this
1293
- var $tip = this.tip()
1294
- var e = $.Event('hide.bs.' + this.type)
1295
-
1296
- function complete() {
1297
- if (that.hoverState != 'in') $tip.detach()
1298
- that.$element.trigger('hidden.bs.' + that.type)
1299
- }
1300
-
1301
- this.$element.trigger(e)
1302
-
1303
- if (e.isDefaultPrevented()) return
1304
-
1305
- $tip.removeClass('in')
1306
-
1307
- $.support.transition && this.$tip.hasClass('fade') ?
1308
- $tip
1309
- .one($.support.transition.end, complete)
1310
- .emulateTransitionEnd(150) :
1311
- complete()
1312
-
1313
- this.hoverState = null
1314
-
1315
- return this
1316
- }
1317
-
1318
- Tooltip.prototype.fixTitle = function () {
1319
- var $e = this.$element
1320
- if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
1321
- $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1322
- }
1323
- }
1324
-
1325
- Tooltip.prototype.hasContent = function () {
1326
- return this.getTitle()
1327
- }
1328
-
1329
- Tooltip.prototype.getPosition = function () {
1330
- var el = this.$element[0]
1331
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
1332
- width: el.offsetWidth,
1333
- height: el.offsetHeight
1334
- }, this.$element.offset())
1335
- }
1336
-
1337
- Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
1338
- return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1339
- placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1340
- placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1341
- /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1342
- }
1343
-
1344
- Tooltip.prototype.getTitle = function () {
1345
- var title
1346
- var $e = this.$element
1347
- var o = this.options
1348
-
1349
- title = $e.attr('data-original-title')
1350
- || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1351
-
1352
- return title
1353
- }
1354
-
1355
- Tooltip.prototype.tip = function () {
1356
- return this.$tip = this.$tip || $(this.options.template)
1357
- }
1358
-
1359
- Tooltip.prototype.arrow = function () {
1360
- return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
1361
- }
1362
-
1363
- Tooltip.prototype.validate = function () {
1364
- if (!this.$element[0].parentNode) {
1365
- this.hide()
1366
- this.$element = null
1367
- this.options = null
1368
- }
1369
- }
1370
-
1371
- Tooltip.prototype.enable = function () {
1372
- this.enabled = true
1373
- }
1374
-
1375
- Tooltip.prototype.disable = function () {
1376
- this.enabled = false
1377
- }
1378
-
1379
- Tooltip.prototype.toggleEnabled = function () {
1380
- this.enabled = !this.enabled
1381
- }
1382
-
1383
- Tooltip.prototype.toggle = function (e) {
1384
- var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
1385
- self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1386
- }
1387
-
1388
- Tooltip.prototype.destroy = function () {
1389
- clearTimeout(this.timeout)
1390
- this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
1391
- }
1392
-
1393
-
1394
- // TOOLTIP PLUGIN DEFINITION
1395
- // =========================
1396
-
1397
- var old = $.fn.tooltip
1398
-
1399
- $.fn.tooltip = function (option) {
1400
- return this.each(function () {
1401
- var $this = $(this)
1402
- var data = $this.data('bs.tooltip')
1403
- var options = typeof option == 'object' && option
1404
-
1405
- if (!data && option == 'destroy') return
1406
- if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
1407
- if (typeof option == 'string') data[option]()
1408
- })
1409
- }
1410
-
1411
- $.fn.tooltip.Constructor = Tooltip
1412
-
1413
-
1414
- // TOOLTIP NO CONFLICT
1415
- // ===================
1416
-
1417
- $.fn.tooltip.noConflict = function () {
1418
- $.fn.tooltip = old
1419
- return this
1420
- }
1421
-
1422
- }(jQuery);
1423
-
1424
- /* ========================================================================
1425
- * Bootstrap: popover.js v3.1.0
1426
- * http://getbootstrap.com/javascript/#popovers
1427
- * ========================================================================
1428
- * Copyright 2011-2014 Twitter, Inc.
1429
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1430
- * ======================================================================== */
1431
-
1432
-
1433
- +function ($) {
1434
- 'use strict';
1435
-
1436
- // POPOVER PUBLIC CLASS DEFINITION
1437
- // ===============================
1438
-
1439
- var Popover = function (element, options) {
1440
- this.init('popover', element, options)
1441
- }
1442
-
1443
- if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1444
-
1445
- Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
1446
- placement: 'right',
1447
- trigger: 'click',
1448
- content: '',
1449
- template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
1450
- })
1451
-
1452
-
1453
- // NOTE: POPOVER EXTENDS tooltip.js
1454
- // ================================
1455
-
1456
- Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
1457
-
1458
- Popover.prototype.constructor = Popover
1459
-
1460
- Popover.prototype.getDefaults = function () {
1461
- return Popover.DEFAULTS
1462
- }
1463
-
1464
- Popover.prototype.setContent = function () {
1465
- var $tip = this.tip()
1466
- var title = this.getTitle()
1467
- var content = this.getContent()
1468
-
1469
- $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1470
- $tip.find('.popover-content')[ // we use append for html objects to maintain js events
1471
- this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
1472
- ](content)
1473
-
1474
- $tip.removeClass('fade top bottom left right in')
1475
-
1476
- // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1477
- // this manually by checking the contents.
1478
- if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1479
- }
1480
-
1481
- Popover.prototype.hasContent = function () {
1482
- return this.getTitle() || this.getContent()
1483
- }
1484
-
1485
- Popover.prototype.getContent = function () {
1486
- var $e = this.$element
1487
- var o = this.options
1488
-
1489
- return $e.attr('data-content')
1490
- || (typeof o.content == 'function' ?
1491
- o.content.call($e[0]) :
1492
- o.content)
1493
- }
1494
-
1495
- Popover.prototype.arrow = function () {
1496
- return this.$arrow = this.$arrow || this.tip().find('.arrow')
1497
- }
1498
-
1499
- Popover.prototype.tip = function () {
1500
- if (!this.$tip) this.$tip = $(this.options.template)
1501
- return this.$tip
1502
- }
1503
-
1504
-
1505
- // POPOVER PLUGIN DEFINITION
1506
- // =========================
1507
-
1508
- var old = $.fn.popover
1509
-
1510
- $.fn.popover = function (option) {
1511
- return this.each(function () {
1512
- var $this = $(this)
1513
- var data = $this.data('bs.popover')
1514
- var options = typeof option == 'object' && option
1515
-
1516
- if (!data && option == 'destroy') return
1517
- if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
1518
- if (typeof option == 'string') data[option]()
1519
- })
1520
- }
1521
-
1522
- $.fn.popover.Constructor = Popover
1523
-
1524
-
1525
- // POPOVER NO CONFLICT
1526
- // ===================
1527
-
1528
- $.fn.popover.noConflict = function () {
1529
- $.fn.popover = old
1530
- return this
1531
- }
1532
-
1533
- }(jQuery);
1534
-
1535
- /* ========================================================================
1536
- * Bootstrap: scrollspy.js v3.1.0
1537
- * http://getbootstrap.com/javascript/#scrollspy
1538
- * ========================================================================
1539
- * Copyright 2011-2014 Twitter, Inc.
1540
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1541
- * ======================================================================== */
1542
-
1543
-
1544
- +function ($) {
1545
- 'use strict';
1546
-
1547
- // SCROLLSPY CLASS DEFINITION
1548
- // ==========================
1549
-
1550
- function ScrollSpy(element, options) {
1551
- var href
1552
- var process = $.proxy(this.process, this)
1553
-
1554
- this.$element = $(element).is('body') ? $(window) : $(element)
1555
- this.$body = $('body')
1556
- this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
1557
- this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
1558
- this.selector = (this.options.target
1559
- || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
1560
- || '') + ' .nav li > a'
1561
- this.offsets = $([])
1562
- this.targets = $([])
1563
- this.activeTarget = null
1564
-
1565
- this.refresh()
1566
- this.process()
1567
- }
1568
-
1569
- ScrollSpy.DEFAULTS = {
1570
- offset: 10
1571
- }
1572
-
1573
- ScrollSpy.prototype.refresh = function () {
1574
- var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
1575
-
1576
- this.offsets = $([])
1577
- this.targets = $([])
1578
-
1579
- var self = this
1580
- var $targets = this.$body
1581
- .find(this.selector)
1582
- .map(function () {
1583
- var $el = $(this)
1584
- var href = $el.data('target') || $el.attr('href')
1585
- var $href = /^#./.test(href) && $(href)
1586
-
1587
- return ($href
1588
- && $href.length
1589
- && $href.is(':visible')
1590
- && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
1591
- })
1592
- .sort(function (a, b) { return a[0] - b[0] })
1593
- .each(function () {
1594
- self.offsets.push(this[0])
1595
- self.targets.push(this[1])
1596
- })
1597
- }
1598
-
1599
- ScrollSpy.prototype.process = function () {
1600
- var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1601
- var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
1602
- var maxScroll = scrollHeight - this.$scrollElement.height()
1603
- var offsets = this.offsets
1604
- var targets = this.targets
1605
- var activeTarget = this.activeTarget
1606
- var i
1607
-
1608
- if (scrollTop >= maxScroll) {
1609
- return activeTarget != (i = targets.last()[0]) && this.activate(i)
1610
- }
1611
-
1612
- if (activeTarget && scrollTop <= offsets[0]) {
1613
- return activeTarget != (i = targets[0]) && this.activate(i)
1614
- }
1615
-
1616
- for (i = offsets.length; i--;) {
1617
- activeTarget != targets[i]
1618
- && scrollTop >= offsets[i]
1619
- && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
1620
- && this.activate( targets[i] )
1621
- }
1622
- }
1623
-
1624
- ScrollSpy.prototype.activate = function (target) {
1625
- this.activeTarget = target
1626
-
1627
- $(this.selector)
1628
- .parentsUntil(this.options.target, '.active')
1629
- .removeClass('active')
1630
-
1631
- var selector = this.selector +
1632
- '[data-target="' + target + '"],' +
1633
- this.selector + '[href="' + target + '"]'
1634
-
1635
- var active = $(selector)
1636
- .parents('li')
1637
- .addClass('active')
1638
-
1639
- if (active.parent('.dropdown-menu').length) {
1640
- active = active
1641
- .closest('li.dropdown')
1642
- .addClass('active')
1643
- }
1644
-
1645
- active.trigger('activate.bs.scrollspy')
1646
- }
1647
-
1648
-
1649
- // SCROLLSPY PLUGIN DEFINITION
1650
- // ===========================
1651
-
1652
- var old = $.fn.scrollspy
1653
-
1654
- $.fn.scrollspy = function (option) {
1655
- return this.each(function () {
1656
- var $this = $(this)
1657
- var data = $this.data('bs.scrollspy')
1658
- var options = typeof option == 'object' && option
1659
-
1660
- if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
1661
- if (typeof option == 'string') data[option]()
1662
- })
1663
- }
1664
-
1665
- $.fn.scrollspy.Constructor = ScrollSpy
1666
-
1667
-
1668
- // SCROLLSPY NO CONFLICT
1669
- // =====================
1670
-
1671
- $.fn.scrollspy.noConflict = function () {
1672
- $.fn.scrollspy = old
1673
- return this
1674
- }
1675
-
1676
-
1677
- // SCROLLSPY DATA-API
1678
- // ==================
1679
-
1680
- $(window).on('load', function () {
1681
- $('[data-spy="scroll"]').each(function () {
1682
- var $spy = $(this)
1683
- $spy.scrollspy($spy.data())
1684
- })
1685
- })
1686
-
1687
- }(jQuery);
1688
-
1689
- /* ========================================================================
1690
- * Bootstrap: tab.js v3.1.0
1691
- * http://getbootstrap.com/javascript/#tabs
1692
- * ========================================================================
1693
- * Copyright 2011-2014 Twitter, Inc.
1694
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1695
- * ======================================================================== */
1696
-
1697
-
1698
- +function ($) {
1699
- 'use strict';
1700
-
1701
- // TAB CLASS DEFINITION
1702
- // ====================
1703
-
1704
- var Tab = function (element) {
1705
- this.element = $(element)
1706
- }
1707
-
1708
- Tab.prototype.show = function () {
1709
- var $this = this.element
1710
- var $ul = $this.closest('ul:not(.dropdown-menu)')
1711
- var selector = $this.data('target')
1712
-
1713
- if (!selector) {
1714
- selector = $this.attr('href')
1715
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
1716
- }
1717
-
1718
- if ($this.parent('li').hasClass('active')) return
1719
-
1720
- var previous = $ul.find('.active:last a')[0]
1721
- var e = $.Event('show.bs.tab', {
1722
- relatedTarget: previous
1723
- })
1724
-
1725
- $this.trigger(e)
1726
-
1727
- if (e.isDefaultPrevented()) return
1728
-
1729
- var $target = $(selector)
1730
-
1731
- this.activate($this.parent('li'), $ul)
1732
- this.activate($target, $target.parent(), function () {
1733
- $this.trigger({
1734
- type: 'shown.bs.tab',
1735
- relatedTarget: previous
1736
- })
1737
- })
1738
- }
1739
-
1740
- Tab.prototype.activate = function (element, container, callback) {
1741
- var $active = container.find('> .active')
1742
- var transition = callback
1743
- && $.support.transition
1744
- && $active.hasClass('fade')
1745
-
1746
- function next() {
1747
- $active
1748
- .removeClass('active')
1749
- .find('> .dropdown-menu > .active')
1750
- .removeClass('active')
1751
-
1752
- element.addClass('active')
1753
-
1754
- if (transition) {
1755
- element[0].offsetWidth // reflow for transition
1756
- element.addClass('in')
1757
- } else {
1758
- element.removeClass('fade')
1759
- }
1760
-
1761
- if (element.parent('.dropdown-menu')) {
1762
- element.closest('li.dropdown').addClass('active')
1763
- }
1764
-
1765
- callback && callback()
1766
- }
1767
-
1768
- transition ?
1769
- $active
1770
- .one($.support.transition.end, next)
1771
- .emulateTransitionEnd(150) :
1772
- next()
1773
-
1774
- $active.removeClass('in')
1775
- }
1776
-
1777
-
1778
- // TAB PLUGIN DEFINITION
1779
- // =====================
1780
-
1781
- var old = $.fn.tab
1782
-
1783
- $.fn.tab = function ( option ) {
1784
- return this.each(function () {
1785
- var $this = $(this)
1786
- var data = $this.data('bs.tab')
1787
-
1788
- if (!data) $this.data('bs.tab', (data = new Tab(this)))
1789
- if (typeof option == 'string') data[option]()
1790
- })
1791
- }
1792
-
1793
- $.fn.tab.Constructor = Tab
1794
-
1795
-
1796
- // TAB NO CONFLICT
1797
- // ===============
1798
-
1799
- $.fn.tab.noConflict = function () {
1800
- $.fn.tab = old
1801
- return this
1802
- }
1803
-
1804
-
1805
- // TAB DATA-API
1806
- // ============
1807
-
1808
- $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
1809
- e.preventDefault()
1810
- $(this).tab('show')
1811
- })
1812
-
1813
- }(jQuery);
1814
-
1815
- /* ========================================================================
1816
- * Bootstrap: affix.js v3.1.0
1817
- * http://getbootstrap.com/javascript/#affix
1818
- * ========================================================================
1819
- * Copyright 2011-2014 Twitter, Inc.
1820
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1821
- * ======================================================================== */
1822
-
1823
-
1824
- +function ($) {
1825
- 'use strict';
1826
-
1827
- // AFFIX CLASS DEFINITION
1828
- // ======================
1829
-
1830
- var Affix = function (element, options) {
1831
- this.options = $.extend({}, Affix.DEFAULTS, options)
1832
- this.$window = $(window)
1833
- .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
1834
- .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
1835
-
1836
- this.$element = $(element)
1837
- this.affixed =
1838
- this.unpin =
1839
- this.pinnedOffset = null
1840
-
1841
- this.checkPosition()
1842
- }
1843
-
1844
- Affix.RESET = 'affix affix-top affix-bottom'
1845
-
1846
- Affix.DEFAULTS = {
1847
- offset: 0
1848
- }
1849
-
1850
- Affix.prototype.getPinnedOffset = function () {
1851
- if (this.pinnedOffset) return this.pinnedOffset
1852
- this.$element.removeClass(Affix.RESET).addClass('affix')
1853
- var scrollTop = this.$window.scrollTop()
1854
- var position = this.$element.offset()
1855
- return (this.pinnedOffset = position.top - scrollTop)
1856
- }
1857
-
1858
- Affix.prototype.checkPositionWithEventLoop = function () {
1859
- setTimeout($.proxy(this.checkPosition, this), 1)
1860
- }
1861
-
1862
- Affix.prototype.checkPosition = function () {
1863
- if (!this.$element.is(':visible')) return
1864
-
1865
- var scrollHeight = $(document).height()
1866
- var scrollTop = this.$window.scrollTop()
1867
- var position = this.$element.offset()
1868
- var offset = this.options.offset
1869
- var offsetTop = offset.top
1870
- var offsetBottom = offset.bottom
1871
-
1872
- if (this.affixed == 'top') position.top += scrollTop
1873
-
1874
- if (typeof offset != 'object') offsetBottom = offsetTop = offset
1875
- if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
1876
- if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
1877
-
1878
- var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :
1879
- offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
1880
- offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
1881
-
1882
- if (this.affixed === affix) return
1883
- if (this.unpin) this.$element.css('top', '')
1884
-
1885
- var affixType = 'affix' + (affix ? '-' + affix : '')
1886
- var e = $.Event(affixType + '.bs.affix')
1887
-
1888
- this.$element.trigger(e)
1889
-
1890
- if (e.isDefaultPrevented()) return
1891
-
1892
- this.affixed = affix
1893
- this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
1894
-
1895
- this.$element
1896
- .removeClass(Affix.RESET)
1897
- .addClass(affixType)
1898
- .trigger($.Event(affixType.replace('affix', 'affixed')))
1899
-
1900
- if (affix == 'bottom') {
1901
- this.$element.offset({ top: scrollHeight - offsetBottom - this.$element.height() })
1902
- }
1903
- }
1904
-
1905
-
1906
- // AFFIX PLUGIN DEFINITION
1907
- // =======================
1908
-
1909
- var old = $.fn.affix
1910
-
1911
- $.fn.affix = function (option) {
1912
- return this.each(function () {
1913
- var $this = $(this)
1914
- var data = $this.data('bs.affix')
1915
- var options = typeof option == 'object' && option
1916
-
1917
- if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
1918
- if (typeof option == 'string') data[option]()
1919
- })
1920
- }
1921
-
1922
- $.fn.affix.Constructor = Affix
1923
-
1924
-
1925
- // AFFIX NO CONFLICT
1926
- // =================
1927
-
1928
- $.fn.affix.noConflict = function () {
1929
- $.fn.affix = old
1930
- return this
1931
- }
1932
-
1933
-
1934
- // AFFIX DATA-API
1935
- // ==============
1936
-
1937
- $(window).on('load', function () {
1938
- $('[data-spy="affix"]').each(function () {
1939
- var $spy = $(this)
1940
- var data = $spy.data()
1941
-
1942
- data.offset = data.offset || {}
1943
-
1944
- if (data.offsetBottom) data.offset.bottom = data.offsetBottom
1945
- if (data.offsetTop) data.offset.top = data.offsetTop
1946
-
1947
- $spy.affix(data)
1948
- })
1949
- })
1950
-
1951
- }(jQuery);