bootstrap-sass 3.3.3 → 3.3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bootstrap-sass might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -1
- data/README.md +36 -14
- data/Rakefile +12 -1
- data/assets/javascripts/bootstrap-sprockets.js +2 -2
- data/assets/javascripts/bootstrap.js +108 -97
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/javascripts/bootstrap/affix.js +5 -5
- data/assets/javascripts/bootstrap/alert.js +2 -2
- data/assets/javascripts/bootstrap/button.js +2 -2
- data/assets/javascripts/bootstrap/carousel.js +6 -6
- data/assets/javascripts/bootstrap/collapse.js +7 -7
- data/assets/javascripts/bootstrap/dropdown.js +3 -3
- data/assets/javascripts/bootstrap/modal.js +41 -26
- data/assets/javascripts/bootstrap/popover.js +3 -8
- data/assets/javascripts/bootstrap/scrollspy.js +17 -20
- data/assets/javascripts/bootstrap/tab.js +3 -3
- data/assets/javascripts/bootstrap/tooltip.js +17 -13
- data/assets/javascripts/bootstrap/transition.js +1 -1
- data/assets/stylesheets/bootstrap/_alerts.scss +2 -2
- data/assets/stylesheets/bootstrap/_badges.scss +6 -5
- data/assets/stylesheets/bootstrap/_component-animations.scss +1 -2
- data/assets/stylesheets/bootstrap/_dropdowns.scss +1 -1
- data/assets/stylesheets/bootstrap/_forms.scss +10 -2
- data/assets/stylesheets/bootstrap/_glyphicons.scss +4 -0
- data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -1
- data/assets/stylesheets/bootstrap/_modals.scss +3 -1
- data/assets/stylesheets/bootstrap/_navbar.scss +0 -1
- data/assets/stylesheets/bootstrap/_navs.scss +0 -2
- data/assets/stylesheets/bootstrap/_responsive-embed.scss +8 -8
- data/assets/stylesheets/bootstrap/_scaffolding.scss +12 -0
- data/assets/stylesheets/bootstrap/_tooltip.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +1 -1
- data/assets/stylesheets/bootstrap/_utilities.scss +0 -1
- data/assets/stylesheets/bootstrap/_variables.scss +5 -1
- data/bower.json +1 -1
- data/lib/bootstrap-sass/version.rb +2 -2
- data/package.json +3 -3
- data/tasks/converter/js_conversion.rb +1 -1
- data/tasks/converter/less_conversion.rb +11 -12
- data/tasks/converter/network.rb +10 -5
- data/templates/project/_bootstrap-variables.sass +6 -2
- data/test/dummy_rails/app/assets/stylesheets/{application.css.sass → application.sass} +0 -0
- data/test/dummy_rails/app/views/pages/root.html.slim +43 -0
- data/test/dummy_rails/config/environments/development.rb +0 -3
- data/test/dummy_rails/config/environments/production.rb +7 -1
- data/test/dummy_rails/config/environments/test.rb +7 -1
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c548004d45f09e256dafbc81d58751358225ff42
|
4
|
+
data.tar.gz: 8fabdcd1bd2e52d97ea9843cee2305d04b3aee9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 751906d2d101bb9702de434aa46fd8ce677f3a32eb3f8e15d48d682703de10daa89da77b496421ded670391f3c29ded93da092985440c8ac5228c399dfb14e2f
|
7
|
+
data.tar.gz: 40ac7bb1e47dd7bf9101c75b5eff29f15ed83f5c57384e677b7079c3cbac0b594ed5b2e5cdebfce4fd76156a7dc0745afa9ccd5bb4cd471fa27466ce26bdb763
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
-
# Bootstrap for Sass
|
1
|
+
# Bootstrap for Sass
|
2
|
+
[](http://badge.fury.io/rb/bootstrap-sass)
|
3
|
+
[](https://www.npmjs.com/package/bootstrap-sass)
|
4
|
+
[](http://badge.fury.io/bo/bootstrap-sass)
|
5
|
+
[](http://travis-ci.org/twbs/bootstrap-sass)
|
2
6
|
|
3
7
|
`bootstrap-sass` is a Sass-powered version of [Bootstrap](http://github.com/twbs/bootstrap), ready to drop right into your Sass powered applications.
|
4
8
|
|
@@ -17,13 +21,13 @@ Please see the appropriate guide for your environment of choice:
|
|
17
21
|
In your Gemfile you need to add the `bootstrap-sass` gem, and ensure that the `sass-rails` gem is present - it is added to new Rails applications by default.
|
18
22
|
|
19
23
|
```ruby
|
20
|
-
gem 'bootstrap-sass', '~> 3.3.
|
24
|
+
gem 'bootstrap-sass', '~> 3.3.4'
|
21
25
|
gem 'sass-rails', '>= 3.2'
|
22
26
|
```
|
23
27
|
|
24
28
|
`bundle install` and restart your server to make the files available through the pipeline.
|
25
29
|
|
26
|
-
Import Bootstrap styles in `app/assets/stylesheets/application.
|
30
|
+
Import Bootstrap styles in `app/assets/stylesheets/application.scss`:
|
27
31
|
|
28
32
|
```scss
|
29
33
|
// "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
|
@@ -33,11 +37,11 @@ Import Bootstrap styles in `app/assets/stylesheets/application.css.scss`:
|
|
33
37
|
|
34
38
|
`bootstrap-sprockets` must be imported before `bootstrap` for the icon fonts to work.
|
35
39
|
|
36
|
-
Make sure the file has `.
|
40
|
+
Make sure the file has `.scss` extension (or `.sass` for Sass syntax). If you have just generated a new Rails app,
|
37
41
|
it may come with a `.css` file instead. If this file exists, it will be served instead of Sass, so rename it:
|
38
42
|
|
39
43
|
```console
|
40
|
-
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.
|
44
|
+
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
|
41
45
|
```
|
42
46
|
|
43
47
|
Then, remove all the `//= require` and `//= require_tree` statements from the file. Instead, use `@import` to import Sass files.
|
@@ -51,6 +55,11 @@ Require Bootstrap Javascripts in `app/assets/javascripts/application.js`:
|
|
51
55
|
//= require bootstrap-sprockets
|
52
56
|
```
|
53
57
|
|
58
|
+
`bootstrap-sprockets` and `bootstrap` [should not both be included](https://github.com/twbs/bootstrap-sass/issues/829#issuecomment-75153827) in `application.js`.
|
59
|
+
|
60
|
+
`bootstrap-sprockets` provides individual Bootstrap Javascript files (`alert.js` or `dropdown.js`, for example), while
|
61
|
+
`bootstrap` provides a concatenated file containing all Bootstrap Javascripts.
|
62
|
+
|
54
63
|
#### Bower with Rails
|
55
64
|
|
56
65
|
When using [bootstrap-sass Bower package](#c-bower) instead of the gem in Rails, configure assets in `config/application.rb`:
|
@@ -64,10 +73,10 @@ end
|
|
64
73
|
# Precompile Bootstrap fonts
|
65
74
|
config.assets.precompile << %r(bootstrap-sass/assets/fonts/bootstrap/[\w-]+\.(?:eot|svg|ttf|woff2?)$)
|
66
75
|
# Minimum Sass number precision required by bootstrap-sass
|
67
|
-
::Sass::Script::Number.precision = [8, ::Sass::Script::Number.precision].max
|
76
|
+
::Sass::Script::Value::Number.precision = [8, ::Sass::Script::Value::Number.precision].max
|
68
77
|
```
|
69
78
|
|
70
|
-
Replace Bootstrap `@import` statements in `application.
|
79
|
+
Replace Bootstrap `@import` statements in `application.scss` with:
|
71
80
|
|
72
81
|
```scss
|
73
82
|
$icon-font-path: "bootstrap-sass/assets/fonts/bootstrap/";
|
@@ -188,7 +197,7 @@ Precision is set for Rails and Compass automatically.
|
|
188
197
|
When using ruby Sass compiler standalone or with the Bower version you can set it with:
|
189
198
|
|
190
199
|
```ruby
|
191
|
-
::Sass::Script::Number.precision = [8, ::Sass::Script::Number.precision].max
|
200
|
+
::Sass::Script::Value::Number.precision = [8, ::Sass::Script::Value::Number.precision].max
|
192
201
|
```
|
193
202
|
|
194
203
|
#### Sass: Autoprefixer
|
@@ -241,7 +250,7 @@ When using bootstrap-sass with Compass, Sprockets, or Mincer, you **must** impor
|
|
241
250
|
|
242
251
|
### Sass
|
243
252
|
|
244
|
-
Import Bootstrap into a Sass file (for example, application.
|
253
|
+
Import Bootstrap into a Sass file (for example, application.scss) to get all of Bootstrap's styles, mixins and variables!
|
245
254
|
|
246
255
|
```scss
|
247
256
|
@import "bootstrap";
|
@@ -265,7 +274,20 @@ $navbar-default-color: $light-orange;
|
|
265
274
|
|
266
275
|
## Version
|
267
276
|
|
268
|
-
|
277
|
+
Bootstrap for Sass version may differ from the upstream version in the last number, known as
|
278
|
+
[MINOR](http://semver.org/spec/v2.0.0.html). The minor version may be ahead of the corresponding upstream minor.
|
279
|
+
This happens when we need to release Sass-specific changes.
|
280
|
+
|
281
|
+
Before v3.3.2, Bootstrap for Sass version used to reflect the upstream version, with an additional number for
|
282
|
+
Sass-specific changes. This was changed due to Bower and npm compatibility issues.
|
283
|
+
|
284
|
+
The upstream versions vs the Bootstrap for Sass versions are:
|
285
|
+
|
286
|
+
| Upstream | Sass |
|
287
|
+
|---------:|--------:|
|
288
|
+
| 3.3.4 | 3.3.4 |
|
289
|
+
| 3.3.2 | 3.3.3 |
|
290
|
+
| <= 3.3.1 | 3.3.1.x |
|
269
291
|
|
270
292
|
Always refer to [CHANGELOG.md](/CHANGELOG.md) when upgrading.
|
271
293
|
|
@@ -295,7 +317,7 @@ To convert a specific branch or version, pass the branch name or the commit hash
|
|
295
317
|
The latest converter script is located [here][converter] and does the following:
|
296
318
|
|
297
319
|
* Converts upstream bootstrap LESS files to its matching SCSS file.
|
298
|
-
* Copies all upstream JavaScript into `assets/javascripts/bootstrap`,
|
320
|
+
* Copies all upstream JavaScript into `assets/javascripts/bootstrap`, a Sprockets manifest at `assets/javascripts/bootstrap-sprockets.js`, and a concatenation at `assets/javascripts/bootstrap.js`.
|
299
321
|
* Copies all upstream font files into `assets/fonts/bootstrap`.
|
300
322
|
* Sets `Bootstrap::BOOTSTRAP_SHA` in [version.rb][version] to the branch sha.
|
301
323
|
|
@@ -316,15 +338,15 @@ and a [significant number of other contributors][contrib].
|
|
316
338
|
|
317
339
|
## You're in good company
|
318
340
|
bootstrap-sass is used to build some awesome projects all over the web, including
|
319
|
-
[Diaspora](
|
341
|
+
[Diaspora](https://diasporafoundation.org/), [rails_admin](https://github.com/sferik/rails_admin),
|
320
342
|
Michael Hartl's [Rails Tutorial](http://railstutorial.org/), [gitlabhq](http://gitlabhq.com/) and
|
321
|
-
[kandan](http://
|
343
|
+
[kandan](http://kandan.io/).
|
322
344
|
|
323
345
|
[converter]: https://github.com/twbs/bootstrap-sass/blob/master/tasks/converter/less_conversion.rb
|
324
346
|
[version]: https://github.com/twbs/bootstrap-sass/blob/master/lib/bootstrap-sass/version.rb
|
325
347
|
[contrib]: https://github.com/twbs/bootstrap-sass/graphs/contributors
|
326
348
|
[antirequire]: https://github.com/twbs/bootstrap-sass/issues/79#issuecomment-4428595
|
327
349
|
[jsdocs]: http://getbootstrap.com/javascript/#transitions
|
328
|
-
[sass-precision]: http://sass-lang.com/documentation/Sass/Script/Number.html#precision-class_method
|
350
|
+
[sass-precision]: http://sass-lang.com/documentation/Sass/Script/Value/Number.html#precision%3D-class_method
|
329
351
|
[mincer]: https://github.com/nodeca/mincer
|
330
352
|
[autoprefixer]: https://github.com/ai/autoprefixer
|
data/Rakefile
CHANGED
@@ -40,7 +40,7 @@ task :compile, :css_path do |t, args|
|
|
40
40
|
css_path = args.with_defaults(css_path: 'tmp')[:css_path]
|
41
41
|
puts Term::ANSIColor.bold "Compiling SCSS in #{path}"
|
42
42
|
Dir.mkdir(css_path) unless File.directory?(css_path)
|
43
|
-
%w(
|
43
|
+
%w(_bootstrap bootstrap/_theme).each do |file|
|
44
44
|
save_path = "#{css_path}/#{file.sub(/(^|\/)?_+/, '\1').sub('/', '-')}.css"
|
45
45
|
puts Term::ANSIColor.cyan(" #{save_path}") + '...'
|
46
46
|
engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
|
@@ -49,4 +49,15 @@ task :compile, :css_path do |t, args|
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
+
desc 'Start a dummy (test) Rails app server'
|
53
|
+
task :dummy_rails do
|
54
|
+
require 'rack'
|
55
|
+
require 'term/ansicolor'
|
56
|
+
port = ENV['PORT'] || 9292
|
57
|
+
puts %Q(Starting on #{Term::ANSIColor.cyan "http://localhost:#{port}"})
|
58
|
+
Rack::Server.start(
|
59
|
+
config: 'test/dummy_rails/config.ru',
|
60
|
+
Port: port)
|
61
|
+
end
|
62
|
+
|
52
63
|
task default: :test
|
@@ -4,9 +4,9 @@
|
|
4
4
|
//= require ./bootstrap/carousel
|
5
5
|
//= require ./bootstrap/collapse
|
6
6
|
//= require ./bootstrap/dropdown
|
7
|
+
//= require ./bootstrap/modal
|
8
|
+
//= require ./bootstrap/scrollspy
|
7
9
|
//= require ./bootstrap/tab
|
8
10
|
//= require ./bootstrap/transition
|
9
|
-
//= require ./bootstrap/scrollspy
|
10
|
-
//= require ./bootstrap/modal
|
11
11
|
//= require ./bootstrap/tooltip
|
12
12
|
//= require ./bootstrap/popover
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap v3.3.
|
2
|
+
* Bootstrap v3.3.4 (http://getbootstrap.com)
|
3
3
|
* Copyright 2011-2015 Twitter, Inc.
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
5
5
|
*/
|
@@ -17,7 +17,7 @@ if (typeof jQuery === 'undefined') {
|
|
17
17
|
}(jQuery);
|
18
18
|
|
19
19
|
/* ========================================================================
|
20
|
-
* Bootstrap: transition.js v3.3.
|
20
|
+
* Bootstrap: transition.js v3.3.4
|
21
21
|
* http://getbootstrap.com/javascript/#transitions
|
22
22
|
* ========================================================================
|
23
23
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -77,7 +77,7 @@ if (typeof jQuery === 'undefined') {
|
|
77
77
|
}(jQuery);
|
78
78
|
|
79
79
|
/* ========================================================================
|
80
|
-
* Bootstrap: alert.js v3.3.
|
80
|
+
* Bootstrap: alert.js v3.3.4
|
81
81
|
* http://getbootstrap.com/javascript/#alerts
|
82
82
|
* ========================================================================
|
83
83
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -96,7 +96,7 @@ if (typeof jQuery === 'undefined') {
|
|
96
96
|
$(el).on('click', dismiss, this.close)
|
97
97
|
}
|
98
98
|
|
99
|
-
Alert.VERSION = '3.3.
|
99
|
+
Alert.VERSION = '3.3.4'
|
100
100
|
|
101
101
|
Alert.TRANSITION_DURATION = 150
|
102
102
|
|
@@ -172,7 +172,7 @@ if (typeof jQuery === 'undefined') {
|
|
172
172
|
}(jQuery);
|
173
173
|
|
174
174
|
/* ========================================================================
|
175
|
-
* Bootstrap: button.js v3.3.
|
175
|
+
* Bootstrap: button.js v3.3.4
|
176
176
|
* http://getbootstrap.com/javascript/#buttons
|
177
177
|
* ========================================================================
|
178
178
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -192,7 +192,7 @@ if (typeof jQuery === 'undefined') {
|
|
192
192
|
this.isLoading = false
|
193
193
|
}
|
194
194
|
|
195
|
-
Button.VERSION = '3.3.
|
195
|
+
Button.VERSION = '3.3.4'
|
196
196
|
|
197
197
|
Button.DEFAULTS = {
|
198
198
|
loadingText: 'loading...'
|
@@ -289,7 +289,7 @@ if (typeof jQuery === 'undefined') {
|
|
289
289
|
}(jQuery);
|
290
290
|
|
291
291
|
/* ========================================================================
|
292
|
-
* Bootstrap: carousel.js v3.3.
|
292
|
+
* Bootstrap: carousel.js v3.3.4
|
293
293
|
* http://getbootstrap.com/javascript/#carousel
|
294
294
|
* ========================================================================
|
295
295
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -307,10 +307,10 @@ if (typeof jQuery === 'undefined') {
|
|
307
307
|
this.$element = $(element)
|
308
308
|
this.$indicators = this.$element.find('.carousel-indicators')
|
309
309
|
this.options = options
|
310
|
-
this.paused =
|
311
|
-
this.sliding =
|
312
|
-
this.interval =
|
313
|
-
this.$active =
|
310
|
+
this.paused = null
|
311
|
+
this.sliding = null
|
312
|
+
this.interval = null
|
313
|
+
this.$active = null
|
314
314
|
this.$items = null
|
315
315
|
|
316
316
|
this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
|
@@ -320,7 +320,7 @@ if (typeof jQuery === 'undefined') {
|
|
320
320
|
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
321
321
|
}
|
322
322
|
|
323
|
-
Carousel.VERSION = '3.3.
|
323
|
+
Carousel.VERSION = '3.3.4'
|
324
324
|
|
325
325
|
Carousel.TRANSITION_DURATION = 600
|
326
326
|
|
@@ -527,7 +527,7 @@ if (typeof jQuery === 'undefined') {
|
|
527
527
|
}(jQuery);
|
528
528
|
|
529
529
|
/* ========================================================================
|
530
|
-
* Bootstrap: collapse.js v3.3.
|
530
|
+
* Bootstrap: collapse.js v3.3.4
|
531
531
|
* http://getbootstrap.com/javascript/#collapse
|
532
532
|
* ========================================================================
|
533
533
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -544,7 +544,8 @@ if (typeof jQuery === 'undefined') {
|
|
544
544
|
var Collapse = function (element, options) {
|
545
545
|
this.$element = $(element)
|
546
546
|
this.options = $.extend({}, Collapse.DEFAULTS, options)
|
547
|
-
this.$trigger = $(
|
547
|
+
this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
|
548
|
+
'[data-toggle="collapse"][data-target="#' + element.id + '"]')
|
548
549
|
this.transitioning = null
|
549
550
|
|
550
551
|
if (this.options.parent) {
|
@@ -556,13 +557,12 @@ if (typeof jQuery === 'undefined') {
|
|
556
557
|
if (this.options.toggle) this.toggle()
|
557
558
|
}
|
558
559
|
|
559
|
-
Collapse.VERSION = '3.3.
|
560
|
+
Collapse.VERSION = '3.3.4'
|
560
561
|
|
561
562
|
Collapse.TRANSITION_DURATION = 350
|
562
563
|
|
563
564
|
Collapse.DEFAULTS = {
|
564
|
-
toggle: true
|
565
|
-
trigger: '[data-toggle="collapse"]'
|
565
|
+
toggle: true
|
566
566
|
}
|
567
567
|
|
568
568
|
Collapse.prototype.dimension = function () {
|
@@ -700,7 +700,7 @@ if (typeof jQuery === 'undefined') {
|
|
700
700
|
var data = $this.data('bs.collapse')
|
701
701
|
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
702
702
|
|
703
|
-
if (!data && options.toggle && option
|
703
|
+
if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
|
704
704
|
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
|
705
705
|
if (typeof option == 'string') data[option]()
|
706
706
|
})
|
@@ -731,7 +731,7 @@ if (typeof jQuery === 'undefined') {
|
|
731
731
|
|
732
732
|
var $target = getTargetFromTrigger($this)
|
733
733
|
var data = $target.data('bs.collapse')
|
734
|
-
var option = data ? 'toggle' :
|
734
|
+
var option = data ? 'toggle' : $this.data()
|
735
735
|
|
736
736
|
Plugin.call($target, option)
|
737
737
|
})
|
@@ -739,7 +739,7 @@ if (typeof jQuery === 'undefined') {
|
|
739
739
|
}(jQuery);
|
740
740
|
|
741
741
|
/* ========================================================================
|
742
|
-
* Bootstrap: dropdown.js v3.3.
|
742
|
+
* Bootstrap: dropdown.js v3.3.4
|
743
743
|
* http://getbootstrap.com/javascript/#dropdowns
|
744
744
|
* ========================================================================
|
745
745
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -759,7 +759,7 @@ if (typeof jQuery === 'undefined') {
|
|
759
759
|
$(element).on('click.bs.dropdown', this.toggle)
|
760
760
|
}
|
761
761
|
|
762
|
-
Dropdown.VERSION = '3.3.
|
762
|
+
Dropdown.VERSION = '3.3.4'
|
763
763
|
|
764
764
|
Dropdown.prototype.toggle = function (e) {
|
765
765
|
var $this = $(this)
|
@@ -812,7 +812,7 @@ if (typeof jQuery === 'undefined') {
|
|
812
812
|
return $this.trigger('click')
|
813
813
|
}
|
814
814
|
|
815
|
-
var desc = ' li:not(.
|
815
|
+
var desc = ' li:not(.disabled):visible a'
|
816
816
|
var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
|
817
817
|
|
818
818
|
if (!$items.length) return
|
@@ -901,7 +901,7 @@ if (typeof jQuery === 'undefined') {
|
|
901
901
|
}(jQuery);
|
902
902
|
|
903
903
|
/* ========================================================================
|
904
|
-
* Bootstrap: modal.js v3.3.
|
904
|
+
* Bootstrap: modal.js v3.3.4
|
905
905
|
* http://getbootstrap.com/javascript/#modals
|
906
906
|
* ========================================================================
|
907
907
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -916,12 +916,15 @@ if (typeof jQuery === 'undefined') {
|
|
916
916
|
// ======================
|
917
917
|
|
918
918
|
var Modal = function (element, options) {
|
919
|
-
this.options
|
920
|
-
this.$body
|
921
|
-
this.$element
|
922
|
-
this.$
|
923
|
-
this
|
924
|
-
this.
|
919
|
+
this.options = options
|
920
|
+
this.$body = $(document.body)
|
921
|
+
this.$element = $(element)
|
922
|
+
this.$dialog = this.$element.find('.modal-dialog')
|
923
|
+
this.$backdrop = null
|
924
|
+
this.isShown = null
|
925
|
+
this.originalBodyPad = null
|
926
|
+
this.scrollbarWidth = 0
|
927
|
+
this.ignoreBackdropClick = false
|
925
928
|
|
926
929
|
if (this.options.remote) {
|
927
930
|
this.$element
|
@@ -932,7 +935,7 @@ if (typeof jQuery === 'undefined') {
|
|
932
935
|
}
|
933
936
|
}
|
934
937
|
|
935
|
-
Modal.VERSION = '3.3.
|
938
|
+
Modal.VERSION = '3.3.4'
|
936
939
|
|
937
940
|
Modal.TRANSITION_DURATION = 300
|
938
941
|
Modal.BACKDROP_TRANSITION_DURATION = 150
|
@@ -966,6 +969,12 @@ if (typeof jQuery === 'undefined') {
|
|
966
969
|
|
967
970
|
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
968
971
|
|
972
|
+
this.$dialog.on('mousedown.dismiss.bs.modal', function () {
|
973
|
+
that.$element.one('mouseup.dismiss.bs.modal', function (e) {
|
974
|
+
if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
|
975
|
+
})
|
976
|
+
})
|
977
|
+
|
969
978
|
this.backdrop(function () {
|
970
979
|
var transition = $.support.transition && that.$element.hasClass('fade')
|
971
980
|
|
@@ -977,7 +986,6 @@ if (typeof jQuery === 'undefined') {
|
|
977
986
|
.show()
|
978
987
|
.scrollTop(0)
|
979
988
|
|
980
|
-
if (that.options.backdrop) that.adjustBackdrop()
|
981
989
|
that.adjustDialog()
|
982
990
|
|
983
991
|
if (transition) {
|
@@ -993,7 +1001,7 @@ if (typeof jQuery === 'undefined') {
|
|
993
1001
|
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
|
994
1002
|
|
995
1003
|
transition ?
|
996
|
-
that.$
|
1004
|
+
that.$dialog // wait for modal to slide in
|
997
1005
|
.one('bsTransitionEnd', function () {
|
998
1006
|
that.$element.trigger('focus').trigger(e)
|
999
1007
|
})
|
@@ -1022,6 +1030,9 @@ if (typeof jQuery === 'undefined') {
|
|
1022
1030
|
.removeClass('in')
|
1023
1031
|
.attr('aria-hidden', true)
|
1024
1032
|
.off('click.dismiss.bs.modal')
|
1033
|
+
.off('mouseup.dismiss.bs.modal')
|
1034
|
+
|
1035
|
+
this.$dialog.off('mousedown.dismiss.bs.modal')
|
1025
1036
|
|
1026
1037
|
$.support.transition && this.$element.hasClass('fade') ?
|
1027
1038
|
this.$element
|
@@ -1082,13 +1093,18 @@ if (typeof jQuery === 'undefined') {
|
|
1082
1093
|
var doAnimate = $.support.transition && animate
|
1083
1094
|
|
1084
1095
|
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
1085
|
-
.
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
}
|
1096
|
+
.appendTo(this.$body)
|
1097
|
+
|
1098
|
+
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
1099
|
+
if (this.ignoreBackdropClick) {
|
1100
|
+
this.ignoreBackdropClick = false
|
1101
|
+
return
|
1102
|
+
}
|
1103
|
+
if (e.target !== e.currentTarget) return
|
1104
|
+
this.options.backdrop == 'static'
|
1105
|
+
? this.$element[0].focus()
|
1106
|
+
: this.hide()
|
1107
|
+
}, this))
|
1092
1108
|
|
1093
1109
|
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
1094
1110
|
|
@@ -1123,16 +1139,9 @@ if (typeof jQuery === 'undefined') {
|
|
1123
1139
|
// these following methods are used to handle overflowing modals
|
1124
1140
|
|
1125
1141
|
Modal.prototype.handleUpdate = function () {
|
1126
|
-
if (this.options.backdrop) this.adjustBackdrop()
|
1127
1142
|
this.adjustDialog()
|
1128
1143
|
}
|
1129
1144
|
|
1130
|
-
Modal.prototype.adjustBackdrop = function () {
|
1131
|
-
this.$backdrop
|
1132
|
-
.css('height', 0)
|
1133
|
-
.css('height', this.$element[0].scrollHeight)
|
1134
|
-
}
|
1135
|
-
|
1136
1145
|
Modal.prototype.adjustDialog = function () {
|
1137
1146
|
var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
|
1138
1147
|
|
@@ -1150,17 +1159,23 @@ if (typeof jQuery === 'undefined') {
|
|
1150
1159
|
}
|
1151
1160
|
|
1152
1161
|
Modal.prototype.checkScrollbar = function () {
|
1153
|
-
|
1162
|
+
var fullWindowWidth = window.innerWidth
|
1163
|
+
if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
|
1164
|
+
var documentElementRect = document.documentElement.getBoundingClientRect()
|
1165
|
+
fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
|
1166
|
+
}
|
1167
|
+
this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
|
1154
1168
|
this.scrollbarWidth = this.measureScrollbar()
|
1155
1169
|
}
|
1156
1170
|
|
1157
1171
|
Modal.prototype.setScrollbar = function () {
|
1158
1172
|
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
|
1173
|
+
this.originalBodyPad = document.body.style.paddingRight || ''
|
1159
1174
|
if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
|
1160
1175
|
}
|
1161
1176
|
|
1162
1177
|
Modal.prototype.resetScrollbar = function () {
|
1163
|
-
this.$body.css('padding-right',
|
1178
|
+
this.$body.css('padding-right', this.originalBodyPad)
|
1164
1179
|
}
|
1165
1180
|
|
1166
1181
|
Modal.prototype.measureScrollbar = function () { // thx walsh
|
@@ -1226,7 +1241,7 @@ if (typeof jQuery === 'undefined') {
|
|
1226
1241
|
}(jQuery);
|
1227
1242
|
|
1228
1243
|
/* ========================================================================
|
1229
|
-
* Bootstrap: tooltip.js v3.3.
|
1244
|
+
* Bootstrap: tooltip.js v3.3.4
|
1230
1245
|
* http://getbootstrap.com/javascript/#tooltip
|
1231
1246
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
1232
1247
|
* ========================================================================
|
@@ -1242,17 +1257,17 @@ if (typeof jQuery === 'undefined') {
|
|
1242
1257
|
// ===============================
|
1243
1258
|
|
1244
1259
|
var Tooltip = function (element, options) {
|
1245
|
-
this.type =
|
1246
|
-
this.options =
|
1247
|
-
this.enabled =
|
1248
|
-
this.timeout =
|
1249
|
-
this.hoverState =
|
1260
|
+
this.type = null
|
1261
|
+
this.options = null
|
1262
|
+
this.enabled = null
|
1263
|
+
this.timeout = null
|
1264
|
+
this.hoverState = null
|
1250
1265
|
this.$element = null
|
1251
1266
|
|
1252
1267
|
this.init('tooltip', element, options)
|
1253
1268
|
}
|
1254
1269
|
|
1255
|
-
Tooltip.VERSION = '3.3.
|
1270
|
+
Tooltip.VERSION = '3.3.4'
|
1256
1271
|
|
1257
1272
|
Tooltip.TRANSITION_DURATION = 150
|
1258
1273
|
|
@@ -1279,6 +1294,10 @@ if (typeof jQuery === 'undefined') {
|
|
1279
1294
|
this.options = this.getOptions(options)
|
1280
1295
|
this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
|
1281
1296
|
|
1297
|
+
if (this.$element[0] instanceof document.constructor && !this.options.selector) {
|
1298
|
+
throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
|
1299
|
+
}
|
1300
|
+
|
1282
1301
|
var triggers = this.options.trigger.split(' ')
|
1283
1302
|
|
1284
1303
|
for (var i = triggers.length; i--;) {
|
@@ -1499,10 +1518,10 @@ if (typeof jQuery === 'undefined') {
|
|
1499
1518
|
this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
|
1500
1519
|
}
|
1501
1520
|
|
1502
|
-
Tooltip.prototype.replaceArrow = function (delta, dimension,
|
1521
|
+
Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
|
1503
1522
|
this.arrow()
|
1504
|
-
.css(
|
1505
|
-
.css(
|
1523
|
+
.css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
|
1524
|
+
.css(isVertical ? 'top' : 'left', '')
|
1506
1525
|
}
|
1507
1526
|
|
1508
1527
|
Tooltip.prototype.setContent = function () {
|
@@ -1515,7 +1534,7 @@ if (typeof jQuery === 'undefined') {
|
|
1515
1534
|
|
1516
1535
|
Tooltip.prototype.hide = function (callback) {
|
1517
1536
|
var that = this
|
1518
|
-
var $tip = this
|
1537
|
+
var $tip = $(this.$tip)
|
1519
1538
|
var e = $.Event('hide.bs.' + this.type)
|
1520
1539
|
|
1521
1540
|
function complete() {
|
@@ -1532,7 +1551,7 @@ if (typeof jQuery === 'undefined') {
|
|
1532
1551
|
|
1533
1552
|
$tip.removeClass('in')
|
1534
1553
|
|
1535
|
-
$.support.transition &&
|
1554
|
+
$.support.transition && $tip.hasClass('fade') ?
|
1536
1555
|
$tip
|
1537
1556
|
.one('bsTransitionEnd', complete)
|
1538
1557
|
.emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
|
@@ -1676,7 +1695,7 @@ if (typeof jQuery === 'undefined') {
|
|
1676
1695
|
var data = $this.data('bs.tooltip')
|
1677
1696
|
var options = typeof option == 'object' && option
|
1678
1697
|
|
1679
|
-
if (!data && option
|
1698
|
+
if (!data && /destroy|hide/.test(option)) return
|
1680
1699
|
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
|
1681
1700
|
if (typeof option == 'string') data[option]()
|
1682
1701
|
})
|
@@ -1699,7 +1718,7 @@ if (typeof jQuery === 'undefined') {
|
|
1699
1718
|
}(jQuery);
|
1700
1719
|
|
1701
1720
|
/* ========================================================================
|
1702
|
-
* Bootstrap: popover.js v3.3.
|
1721
|
+
* Bootstrap: popover.js v3.3.4
|
1703
1722
|
* http://getbootstrap.com/javascript/#popovers
|
1704
1723
|
* ========================================================================
|
1705
1724
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -1719,7 +1738,7 @@ if (typeof jQuery === 'undefined') {
|
|
1719
1738
|
|
1720
1739
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
1721
1740
|
|
1722
|
-
Popover.VERSION = '3.3.
|
1741
|
+
Popover.VERSION = '3.3.4'
|
1723
1742
|
|
1724
1743
|
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
1725
1744
|
placement: 'right',
|
@@ -1775,11 +1794,6 @@ if (typeof jQuery === 'undefined') {
|
|
1775
1794
|
return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
|
1776
1795
|
}
|
1777
1796
|
|
1778
|
-
Popover.prototype.tip = function () {
|
1779
|
-
if (!this.$tip) this.$tip = $(this.options.template)
|
1780
|
-
return this.$tip
|
1781
|
-
}
|
1782
|
-
|
1783
1797
|
|
1784
1798
|
// POPOVER PLUGIN DEFINITION
|
1785
1799
|
// =========================
|
@@ -1790,7 +1804,7 @@ if (typeof jQuery === 'undefined') {
|
|
1790
1804
|
var data = $this.data('bs.popover')
|
1791
1805
|
var options = typeof option == 'object' && option
|
1792
1806
|
|
1793
|
-
if (!data && option
|
1807
|
+
if (!data && /destroy|hide/.test(option)) return
|
1794
1808
|
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
|
1795
1809
|
if (typeof option == 'string') data[option]()
|
1796
1810
|
})
|
@@ -1813,7 +1827,7 @@ if (typeof jQuery === 'undefined') {
|
|
1813
1827
|
}(jQuery);
|
1814
1828
|
|
1815
1829
|
/* ========================================================================
|
1816
|
-
* Bootstrap: scrollspy.js v3.3.
|
1830
|
+
* Bootstrap: scrollspy.js v3.3.4
|
1817
1831
|
* http://getbootstrap.com/javascript/#scrollspy
|
1818
1832
|
* ========================================================================
|
1819
1833
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -1828,10 +1842,8 @@ if (typeof jQuery === 'undefined') {
|
|
1828
1842
|
// ==========================
|
1829
1843
|
|
1830
1844
|
function ScrollSpy(element, options) {
|
1831
|
-
|
1832
|
-
|
1833
|
-
this.$body = $('body')
|
1834
|
-
this.$scrollElement = $(element).is('body') ? $(window) : $(element)
|
1845
|
+
this.$body = $(document.body)
|
1846
|
+
this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
|
1835
1847
|
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
|
1836
1848
|
this.selector = (this.options.target || '') + ' .nav li > a'
|
1837
1849
|
this.offsets = []
|
@@ -1839,12 +1851,12 @@ if (typeof jQuery === 'undefined') {
|
|
1839
1851
|
this.activeTarget = null
|
1840
1852
|
this.scrollHeight = 0
|
1841
1853
|
|
1842
|
-
this.$scrollElement.on('scroll.bs.scrollspy', process)
|
1854
|
+
this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
|
1843
1855
|
this.refresh()
|
1844
1856
|
this.process()
|
1845
1857
|
}
|
1846
1858
|
|
1847
|
-
ScrollSpy.VERSION = '3.3.
|
1859
|
+
ScrollSpy.VERSION = '3.3.4'
|
1848
1860
|
|
1849
1861
|
ScrollSpy.DEFAULTS = {
|
1850
1862
|
offset: 10
|
@@ -1855,20 +1867,19 @@ if (typeof jQuery === 'undefined') {
|
|
1855
1867
|
}
|
1856
1868
|
|
1857
1869
|
ScrollSpy.prototype.refresh = function () {
|
1858
|
-
var
|
1859
|
-
var
|
1870
|
+
var that = this
|
1871
|
+
var offsetMethod = 'offset'
|
1872
|
+
var offsetBase = 0
|
1873
|
+
|
1874
|
+
this.offsets = []
|
1875
|
+
this.targets = []
|
1876
|
+
this.scrollHeight = this.getScrollHeight()
|
1860
1877
|
|
1861
1878
|
if (!$.isWindow(this.$scrollElement[0])) {
|
1862
1879
|
offsetMethod = 'position'
|
1863
1880
|
offsetBase = this.$scrollElement.scrollTop()
|
1864
1881
|
}
|
1865
1882
|
|
1866
|
-
this.offsets = []
|
1867
|
-
this.targets = []
|
1868
|
-
this.scrollHeight = this.getScrollHeight()
|
1869
|
-
|
1870
|
-
var self = this
|
1871
|
-
|
1872
1883
|
this.$body
|
1873
1884
|
.find(this.selector)
|
1874
1885
|
.map(function () {
|
@@ -1883,8 +1894,8 @@ if (typeof jQuery === 'undefined') {
|
|
1883
1894
|
})
|
1884
1895
|
.sort(function (a, b) { return a[0] - b[0] })
|
1885
1896
|
.each(function () {
|
1886
|
-
|
1887
|
-
|
1897
|
+
that.offsets.push(this[0])
|
1898
|
+
that.targets.push(this[1])
|
1888
1899
|
})
|
1889
1900
|
}
|
1890
1901
|
|
@@ -1913,7 +1924,7 @@ if (typeof jQuery === 'undefined') {
|
|
1913
1924
|
for (i = offsets.length; i--;) {
|
1914
1925
|
activeTarget != targets[i]
|
1915
1926
|
&& scrollTop >= offsets[i]
|
1916
|
-
&& (
|
1927
|
+
&& (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
|
1917
1928
|
&& this.activate(targets[i])
|
1918
1929
|
}
|
1919
1930
|
}
|
@@ -1924,8 +1935,8 @@ if (typeof jQuery === 'undefined') {
|
|
1924
1935
|
this.clear()
|
1925
1936
|
|
1926
1937
|
var selector = this.selector +
|
1927
|
-
|
1928
|
-
|
1938
|
+
'[data-target="' + target + '"],' +
|
1939
|
+
this.selector + '[href="' + target + '"]'
|
1929
1940
|
|
1930
1941
|
var active = $(selector)
|
1931
1942
|
.parents('li')
|
@@ -1989,7 +2000,7 @@ if (typeof jQuery === 'undefined') {
|
|
1989
2000
|
}(jQuery);
|
1990
2001
|
|
1991
2002
|
/* ========================================================================
|
1992
|
-
* Bootstrap: tab.js v3.3.
|
2003
|
+
* Bootstrap: tab.js v3.3.4
|
1993
2004
|
* http://getbootstrap.com/javascript/#tabs
|
1994
2005
|
* ========================================================================
|
1995
2006
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -2007,7 +2018,7 @@ if (typeof jQuery === 'undefined') {
|
|
2007
2018
|
this.element = $(element)
|
2008
2019
|
}
|
2009
2020
|
|
2010
|
-
Tab.VERSION = '3.3.
|
2021
|
+
Tab.VERSION = '3.3.4'
|
2011
2022
|
|
2012
2023
|
Tab.TRANSITION_DURATION = 150
|
2013
2024
|
|
@@ -2078,7 +2089,7 @@ if (typeof jQuery === 'undefined') {
|
|
2078
2089
|
element.removeClass('fade')
|
2079
2090
|
}
|
2080
2091
|
|
2081
|
-
if (element.parent('.dropdown-menu')) {
|
2092
|
+
if (element.parent('.dropdown-menu').length) {
|
2082
2093
|
element
|
2083
2094
|
.closest('li.dropdown')
|
2084
2095
|
.addClass('active')
|
@@ -2143,7 +2154,7 @@ if (typeof jQuery === 'undefined') {
|
|
2143
2154
|
}(jQuery);
|
2144
2155
|
|
2145
2156
|
/* ========================================================================
|
2146
|
-
* Bootstrap: affix.js v3.3.
|
2157
|
+
* Bootstrap: affix.js v3.3.4
|
2147
2158
|
* http://getbootstrap.com/javascript/#affix
|
2148
2159
|
* ========================================================================
|
2149
2160
|
* Copyright 2011-2015 Twitter, Inc.
|
@@ -2165,14 +2176,14 @@ if (typeof jQuery === 'undefined') {
|
|
2165
2176
|
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
|
2166
2177
|
|
2167
2178
|
this.$element = $(element)
|
2168
|
-
this.affixed =
|
2169
|
-
this.unpin =
|
2179
|
+
this.affixed = null
|
2180
|
+
this.unpin = null
|
2170
2181
|
this.pinnedOffset = null
|
2171
2182
|
|
2172
2183
|
this.checkPosition()
|
2173
2184
|
}
|
2174
2185
|
|
2175
|
-
Affix.VERSION = '3.3.
|
2186
|
+
Affix.VERSION = '3.3.4'
|
2176
2187
|
|
2177
2188
|
Affix.RESET = 'affix affix-top affix-bottom'
|
2178
2189
|
|
@@ -2222,7 +2233,7 @@ if (typeof jQuery === 'undefined') {
|
|
2222
2233
|
var offset = this.options.offset
|
2223
2234
|
var offsetTop = offset.top
|
2224
2235
|
var offsetBottom = offset.bottom
|
2225
|
-
var scrollHeight = $(
|
2236
|
+
var scrollHeight = $(document.body).height()
|
2226
2237
|
|
2227
2238
|
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
2228
2239
|
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
|