bootstrap-sass 3.1.1.1 → 3.2.0.4
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.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +6 -2
- data/CHANGELOG.md +19 -0
- data/Gemfile +5 -10
- data/README.md +140 -75
- data/Rakefile +4 -5
- data/{vendor/assets → assets}/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/{vendor/assets → assets}/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -0
- data/{vendor/assets → assets}/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/{vendor/assets → assets}/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/assets/images/.keep +0 -0
- data/assets/javascripts/bootstrap-sprockets.js +12 -0
- data/assets/javascripts/bootstrap.js +2107 -0
- data/{vendor/assets → assets}/javascripts/bootstrap/affix.js +18 -11
- data/{vendor/assets → assets}/javascripts/bootstrap/alert.js +10 -6
- data/{vendor/assets → assets}/javascripts/bootstrap/button.js +11 -8
- data/{vendor/assets → assets}/javascripts/bootstrap/carousel.js +49 -31
- data/{vendor/assets → assets}/javascripts/bootstrap/collapse.js +19 -24
- data/{vendor/assets → assets}/javascripts/bootstrap/dropdown.js +9 -5
- data/{vendor/assets → assets}/javascripts/bootstrap/modal.js +25 -16
- data/{vendor/assets → assets}/javascripts/bootstrap/popover.js +9 -6
- data/{vendor/assets → assets}/javascripts/bootstrap/scrollspy.js +37 -21
- data/{vendor/assets → assets}/javascripts/bootstrap/tab.js +11 -8
- data/{vendor/assets → assets}/javascripts/bootstrap/tooltip.js +52 -17
- data/{vendor/assets → assets}/javascripts/bootstrap/transition.js +14 -3
- data/assets/stylesheets/_bootstrap-compass.scss +7 -0
- data/{vendor/assets → assets}/stylesheets/_bootstrap-mincer.scss +0 -0
- data/assets/stylesheets/_bootstrap-sprockets.scss +7 -0
- data/{vendor/assets/stylesheets/bootstrap.scss → assets/stylesheets/_bootstrap.scss} +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_alerts.scss +4 -3
- data/{vendor/assets → assets}/stylesheets/bootstrap/_badges.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_breadcrumbs.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_button-groups.scss +5 -1
- data/{vendor/assets → assets}/stylesheets/bootstrap/_buttons.scss +0 -2
- data/{vendor/assets → assets}/stylesheets/bootstrap/_carousel.scss +3 -1
- data/{vendor/assets → assets}/stylesheets/bootstrap/_close.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_code.scss +6 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_component-animations.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_dropdowns.scss +1 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_forms.scss +82 -22
- data/{vendor/assets → assets}/stylesheets/bootstrap/_glyphicons.scss +4 -4
- data/{vendor/assets → assets}/stylesheets/bootstrap/_grid.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_input-groups.scss +6 -2
- data/{vendor/assets → assets}/stylesheets/bootstrap/_jumbotron.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_labels.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_list-group.scss +3 -1
- data/{vendor/assets → assets}/stylesheets/bootstrap/_media.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_mixins.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_modals.scss +7 -4
- data/{vendor/assets → assets}/stylesheets/bootstrap/_navbar.scss +1 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_navs.scss +1 -1
- data/{vendor/assets → assets}/stylesheets/bootstrap/_normalize.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_pager.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_pagination.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_panels.scss +6 -3
- data/{vendor/assets → assets}/stylesheets/bootstrap/_popovers.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_print.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_progress-bars.scss +18 -2
- data/{vendor/assets → assets}/stylesheets/bootstrap/_responsive-embed.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_responsive-utilities.scss +2 -1
- data/{vendor/assets → assets}/stylesheets/bootstrap/_scaffolding.scss +1 -1
- data/{vendor/assets → assets}/stylesheets/bootstrap/_tables.scss +2 -2
- data/{vendor/assets → assets}/stylesheets/bootstrap/_theme.scss +11 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_thumbnails.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_tooltip.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_type.scss +16 -6
- data/{vendor/assets → assets}/stylesheets/bootstrap/_utilities.scss +1 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/_variables.scss +25 -20
- data/{vendor/assets → assets}/stylesheets/bootstrap/_wells.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_alerts.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_background-variant.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_border-radius.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_buttons.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_center-block.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_clearfix.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_forms.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_grid-framework.scss +2 -8
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_grid.scss +3 -3
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_hide-text.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_image.scss +1 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_labels.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_list-group.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_opacity.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_pagination.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_panels.scss +4 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_progress-bar.scss +2 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_reset-filter.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_resize.scss +1 -1
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_responsive-visibility.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_size.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_tab-focus.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_table-row.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_text-overflow.scss +0 -0
- data/{vendor/assets → assets}/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +5 -10
- data/bootstrap-sass.gemspec +11 -6
- data/bower.json +22 -90
- data/composer.json +1 -1
- data/lib/bootstrap-sass.rb +3 -2
- data/lib/bootstrap-sass/engine.rb +4 -1
- data/lib/bootstrap-sass/version.rb +2 -2
- data/package.json +6 -1
- data/sache.json +5 -0
- data/tasks/bower.rake +6 -5
- data/tasks/converter.rb +3 -3
- data/tasks/converter/js_conversion.rb +11 -5
- data/tasks/converter/less_conversion.rb +30 -21
- data/tasks/converter/logger.rb +1 -0
- data/tasks/converter/network.rb +14 -16
- data/templates/project/{_variables.sass.erb → _bootstrap-variables.sass.erb} +0 -2
- data/templates/project/manifest.rb +17 -16
- data/templates/project/styles.sass +2 -2
- data/test/compass_test.rb +5 -4
- data/test/compilation_test.rb +10 -9
- data/test/dummy_node_mincer/manifest.js +2 -2
- data/test/dummy_rails/README.rdoc +1 -1
- data/test/dummy_rails/app/assets/javascripts/application.js +1 -1
- data/test/dummy_rails/app/assets/stylesheets/application.css.sass +2 -1
- data/test/dummy_rails/app/views/pages/root.html.slim +1 -1
- data/test/dummy_rails/config/application.rb +19 -3
- data/test/dummy_sass_only/compile.rb +4 -4
- data/test/gemfiles/sass_3_2.gemfile +1 -11
- data/test/gemfiles/sass_3_3.gemfile +2 -13
- data/test/gemfiles/sass_3_4.gemfile +7 -0
- data/test/gemfiles/sass_head.gemfile +2 -13
- data/test/node_mincer_test.rb +6 -5
- data/test/node_sass_test.rb +7 -6
- data/test/pages_test.rb +3 -3
- data/test/sass_test.rb +9 -6
- data/test/sprockets_rails_test.rb +11 -5
- data/test/support/dummy_rails_integration.rb +22 -0
- data/test/support/integration_test.rb +4 -11
- data/test/support/reporting.rb +17 -0
- data/test/test_helper.rb +22 -18
- data/test/test_helper_rails.rb +6 -0
- metadata +231 -151
- data/lib/bootstrap-sass/sass_functions.rb +0 -50
- data/vendor/assets/javascripts/bootstrap.js +0 -12
- data/vendor/assets/stylesheets/bootstrap/bootstrap.scss +0 -50
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ========================================================================
|
|
2
|
-
* Bootstrap: dropdown.js v3.
|
|
2
|
+
* Bootstrap: dropdown.js v3.2.0
|
|
3
3
|
* http://getbootstrap.com/javascript/#dropdowns
|
|
4
4
|
* ========================================================================
|
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
$(element).on('click.bs.dropdown', this.toggle)
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
Dropdown.VERSION = '3.2.0'
|
|
23
|
+
|
|
22
24
|
Dropdown.prototype.toggle = function (e) {
|
|
23
25
|
var $this = $(this)
|
|
24
26
|
|
|
@@ -83,6 +85,7 @@
|
|
|
83
85
|
}
|
|
84
86
|
|
|
85
87
|
function clearMenus(e) {
|
|
88
|
+
if (e && e.which === 3) return
|
|
86
89
|
$(backdrop).remove()
|
|
87
90
|
$(toggle).each(function () {
|
|
88
91
|
var $parent = getParent($(this))
|
|
@@ -99,7 +102,7 @@
|
|
|
99
102
|
|
|
100
103
|
if (!selector) {
|
|
101
104
|
selector = $this.attr('href')
|
|
102
|
-
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
105
|
+
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
|
103
106
|
}
|
|
104
107
|
|
|
105
108
|
var $parent = selector && $(selector)
|
|
@@ -111,9 +114,7 @@
|
|
|
111
114
|
// DROPDOWN PLUGIN DEFINITION
|
|
112
115
|
// ==========================
|
|
113
116
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
$.fn.dropdown = function (option) {
|
|
117
|
+
function Plugin(option) {
|
|
117
118
|
return this.each(function () {
|
|
118
119
|
var $this = $(this)
|
|
119
120
|
var data = $this.data('bs.dropdown')
|
|
@@ -123,6 +124,9 @@
|
|
|
123
124
|
})
|
|
124
125
|
}
|
|
125
126
|
|
|
127
|
+
var old = $.fn.dropdown
|
|
128
|
+
|
|
129
|
+
$.fn.dropdown = Plugin
|
|
126
130
|
$.fn.dropdown.Constructor = Dropdown
|
|
127
131
|
|
|
128
132
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ========================================================================
|
|
2
|
-
* Bootstrap: modal.js v3.
|
|
2
|
+
* Bootstrap: modal.js v3.2.0
|
|
3
3
|
* http://getbootstrap.com/javascript/#modals
|
|
4
4
|
* ========================================================================
|
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -30,6 +30,8 @@
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
Modal.VERSION = '3.2.0'
|
|
34
|
+
|
|
33
35
|
Modal.DEFAULTS = {
|
|
34
36
|
backdrop: true,
|
|
35
37
|
keyboard: true,
|
|
@@ -83,7 +85,7 @@
|
|
|
83
85
|
|
|
84
86
|
transition ?
|
|
85
87
|
that.$element.find('.modal-dialog') // wait for modal to slide in
|
|
86
|
-
.one(
|
|
88
|
+
.one('bsTransitionEnd', function () {
|
|
87
89
|
that.$element.trigger('focus').trigger(e)
|
|
88
90
|
})
|
|
89
91
|
.emulateTransitionEnd(300) :
|
|
@@ -116,7 +118,7 @@
|
|
|
116
118
|
|
|
117
119
|
$.support.transition && this.$element.hasClass('fade') ?
|
|
118
120
|
this.$element
|
|
119
|
-
.one(
|
|
121
|
+
.one('bsTransitionEnd', $.proxy(this.hideModal, this))
|
|
120
122
|
.emulateTransitionEnd(300) :
|
|
121
123
|
this.hideModal()
|
|
122
124
|
}
|
|
@@ -145,7 +147,6 @@
|
|
|
145
147
|
var that = this
|
|
146
148
|
this.$element.hide()
|
|
147
149
|
this.backdrop(function () {
|
|
148
|
-
that.removeBackdrop()
|
|
149
150
|
that.$element.trigger('hidden.bs.modal')
|
|
150
151
|
})
|
|
151
152
|
}
|
|
@@ -156,6 +157,7 @@
|
|
|
156
157
|
}
|
|
157
158
|
|
|
158
159
|
Modal.prototype.backdrop = function (callback) {
|
|
160
|
+
var that = this
|
|
159
161
|
var animate = this.$element.hasClass('fade') ? 'fade' : ''
|
|
160
162
|
|
|
161
163
|
if (this.isShown && this.options.backdrop) {
|
|
@@ -179,18 +181,22 @@
|
|
|
179
181
|
|
|
180
182
|
doAnimate ?
|
|
181
183
|
this.$backdrop
|
|
182
|
-
.one(
|
|
184
|
+
.one('bsTransitionEnd', callback)
|
|
183
185
|
.emulateTransitionEnd(150) :
|
|
184
186
|
callback()
|
|
185
187
|
|
|
186
188
|
} else if (!this.isShown && this.$backdrop) {
|
|
187
189
|
this.$backdrop.removeClass('in')
|
|
188
190
|
|
|
191
|
+
var callbackRemove = function () {
|
|
192
|
+
that.removeBackdrop()
|
|
193
|
+
callback && callback()
|
|
194
|
+
}
|
|
189
195
|
$.support.transition && this.$element.hasClass('fade') ?
|
|
190
196
|
this.$backdrop
|
|
191
|
-
.one(
|
|
197
|
+
.one('bsTransitionEnd', callbackRemove)
|
|
192
198
|
.emulateTransitionEnd(150) :
|
|
193
|
-
|
|
199
|
+
callbackRemove()
|
|
194
200
|
|
|
195
201
|
} else if (callback) {
|
|
196
202
|
callback()
|
|
@@ -202,8 +208,8 @@
|
|
|
202
208
|
this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
|
|
203
209
|
}
|
|
204
210
|
|
|
205
|
-
Modal.prototype.setScrollbar =
|
|
206
|
-
var bodyPad = parseInt(this.$body.css('padding-right') || 0)
|
|
211
|
+
Modal.prototype.setScrollbar = function () {
|
|
212
|
+
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
|
|
207
213
|
if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
|
|
208
214
|
}
|
|
209
215
|
|
|
@@ -224,9 +230,7 @@
|
|
|
224
230
|
// MODAL PLUGIN DEFINITION
|
|
225
231
|
// =======================
|
|
226
232
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
$.fn.modal = function (option, _relatedTarget) {
|
|
233
|
+
function Plugin(option, _relatedTarget) {
|
|
230
234
|
return this.each(function () {
|
|
231
235
|
var $this = $(this)
|
|
232
236
|
var data = $this.data('bs.modal')
|
|
@@ -238,6 +242,9 @@
|
|
|
238
242
|
})
|
|
239
243
|
}
|
|
240
244
|
|
|
245
|
+
var old = $.fn.modal
|
|
246
|
+
|
|
247
|
+
$.fn.modal = Plugin
|
|
241
248
|
$.fn.modal.Constructor = Modal
|
|
242
249
|
|
|
243
250
|
|
|
@@ -256,16 +263,18 @@
|
|
|
256
263
|
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
|
|
257
264
|
var $this = $(this)
|
|
258
265
|
var href = $this.attr('href')
|
|
259
|
-
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
|
266
|
+
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
|
|
260
267
|
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
|
261
268
|
|
|
262
269
|
if ($this.is('a')) e.preventDefault()
|
|
263
270
|
|
|
264
|
-
$target
|
|
265
|
-
.
|
|
266
|
-
.one('
|
|
271
|
+
$target.one('show.bs.modal', function (showEvent) {
|
|
272
|
+
if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
|
|
273
|
+
$target.one('hidden.bs.modal', function () {
|
|
267
274
|
$this.is(':visible') && $this.trigger('focus')
|
|
268
275
|
})
|
|
276
|
+
})
|
|
277
|
+
Plugin.call($target, option, this)
|
|
269
278
|
})
|
|
270
279
|
|
|
271
280
|
}(jQuery);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ========================================================================
|
|
2
|
-
* Bootstrap: popover.js v3.
|
|
2
|
+
* Bootstrap: popover.js v3.2.0
|
|
3
3
|
* http://getbootstrap.com/javascript/#popovers
|
|
4
4
|
* ========================================================================
|
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -19,11 +19,13 @@
|
|
|
19
19
|
|
|
20
20
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
|
21
21
|
|
|
22
|
+
Popover.VERSION = '3.2.0'
|
|
23
|
+
|
|
22
24
|
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
|
23
25
|
placement: 'right',
|
|
24
26
|
trigger: 'click',
|
|
25
27
|
content: '',
|
|
26
|
-
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
|
28
|
+
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
|
27
29
|
})
|
|
28
30
|
|
|
29
31
|
|
|
@@ -70,7 +72,7 @@
|
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
Popover.prototype.arrow = function () {
|
|
73
|
-
return this.$arrow = this.$arrow || this.tip().find('.arrow')
|
|
75
|
+
return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
Popover.prototype.tip = function () {
|
|
@@ -82,9 +84,7 @@
|
|
|
82
84
|
// POPOVER PLUGIN DEFINITION
|
|
83
85
|
// =========================
|
|
84
86
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
$.fn.popover = function (option) {
|
|
87
|
+
function Plugin(option) {
|
|
88
88
|
return this.each(function () {
|
|
89
89
|
var $this = $(this)
|
|
90
90
|
var data = $this.data('bs.popover')
|
|
@@ -96,6 +96,9 @@
|
|
|
96
96
|
})
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
var old = $.fn.popover
|
|
100
|
+
|
|
101
|
+
$.fn.popover = Plugin
|
|
99
102
|
$.fn.popover.Constructor = Popover
|
|
100
103
|
|
|
101
104
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ========================================================================
|
|
2
|
-
* Bootstrap: scrollspy.js v3.
|
|
2
|
+
* Bootstrap: scrollspy.js v3.2.0
|
|
3
3
|
* http://getbootstrap.com/javascript/#scrollspy
|
|
4
4
|
* ========================================================================
|
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -14,33 +14,44 @@
|
|
|
14
14
|
// ==========================
|
|
15
15
|
|
|
16
16
|
function ScrollSpy(element, options) {
|
|
17
|
-
var href
|
|
18
17
|
var process = $.proxy(this.process, this)
|
|
19
18
|
|
|
20
|
-
this.$element = $(element).is('body') ? $(window) : $(element)
|
|
21
19
|
this.$body = $('body')
|
|
22
|
-
this.$scrollElement =
|
|
20
|
+
this.$scrollElement = $(element).is('body') ? $(window) : $(element)
|
|
23
21
|
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
|
|
24
|
-
this.selector = (this.options.target
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.offsets = $([])
|
|
28
|
-
this.targets = $([])
|
|
22
|
+
this.selector = (this.options.target || '') + ' .nav li > a'
|
|
23
|
+
this.offsets = []
|
|
24
|
+
this.targets = []
|
|
29
25
|
this.activeTarget = null
|
|
26
|
+
this.scrollHeight = 0
|
|
30
27
|
|
|
28
|
+
this.$scrollElement.on('scroll.bs.scrollspy', process)
|
|
31
29
|
this.refresh()
|
|
32
30
|
this.process()
|
|
33
31
|
}
|
|
34
32
|
|
|
33
|
+
ScrollSpy.VERSION = '3.2.0'
|
|
34
|
+
|
|
35
35
|
ScrollSpy.DEFAULTS = {
|
|
36
36
|
offset: 10
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
ScrollSpy.prototype.getScrollHeight = function () {
|
|
40
|
+
return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
|
|
41
|
+
}
|
|
42
|
+
|
|
39
43
|
ScrollSpy.prototype.refresh = function () {
|
|
40
|
-
var offsetMethod =
|
|
44
|
+
var offsetMethod = 'offset'
|
|
45
|
+
var offsetBase = 0
|
|
41
46
|
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
if (!$.isWindow(this.$scrollElement[0])) {
|
|
48
|
+
offsetMethod = 'position'
|
|
49
|
+
offsetBase = this.$scrollElement.scrollTop()
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
this.offsets = []
|
|
53
|
+
this.targets = []
|
|
54
|
+
this.scrollHeight = this.getScrollHeight()
|
|
44
55
|
|
|
45
56
|
var self = this
|
|
46
57
|
|
|
@@ -54,7 +65,7 @@
|
|
|
54
65
|
return ($href
|
|
55
66
|
&& $href.length
|
|
56
67
|
&& $href.is(':visible')
|
|
57
|
-
&& [[
|
|
68
|
+
&& [[$href[offsetMethod]().top + offsetBase, href]]) || null
|
|
58
69
|
})
|
|
59
70
|
.sort(function (a, b) { return a[0] - b[0] })
|
|
60
71
|
.each(function () {
|
|
@@ -65,15 +76,19 @@
|
|
|
65
76
|
|
|
66
77
|
ScrollSpy.prototype.process = function () {
|
|
67
78
|
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
|
|
68
|
-
var scrollHeight = this
|
|
69
|
-
var maxScroll = scrollHeight - this.$scrollElement.height()
|
|
79
|
+
var scrollHeight = this.getScrollHeight()
|
|
80
|
+
var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
|
|
70
81
|
var offsets = this.offsets
|
|
71
82
|
var targets = this.targets
|
|
72
83
|
var activeTarget = this.activeTarget
|
|
73
84
|
var i
|
|
74
85
|
|
|
86
|
+
if (this.scrollHeight != scrollHeight) {
|
|
87
|
+
this.refresh()
|
|
88
|
+
}
|
|
89
|
+
|
|
75
90
|
if (scrollTop >= maxScroll) {
|
|
76
|
-
return activeTarget != (i = targets.
|
|
91
|
+
return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
|
|
77
92
|
}
|
|
78
93
|
|
|
79
94
|
if (activeTarget && scrollTop <= offsets[0]) {
|
|
@@ -84,7 +99,7 @@
|
|
|
84
99
|
activeTarget != targets[i]
|
|
85
100
|
&& scrollTop >= offsets[i]
|
|
86
101
|
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
|
|
87
|
-
&& this.activate(
|
|
102
|
+
&& this.activate(targets[i])
|
|
88
103
|
}
|
|
89
104
|
}
|
|
90
105
|
|
|
@@ -116,9 +131,7 @@
|
|
|
116
131
|
// SCROLLSPY PLUGIN DEFINITION
|
|
117
132
|
// ===========================
|
|
118
133
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
$.fn.scrollspy = function (option) {
|
|
134
|
+
function Plugin(option) {
|
|
122
135
|
return this.each(function () {
|
|
123
136
|
var $this = $(this)
|
|
124
137
|
var data = $this.data('bs.scrollspy')
|
|
@@ -129,6 +142,9 @@
|
|
|
129
142
|
})
|
|
130
143
|
}
|
|
131
144
|
|
|
145
|
+
var old = $.fn.scrollspy
|
|
146
|
+
|
|
147
|
+
$.fn.scrollspy = Plugin
|
|
132
148
|
$.fn.scrollspy.Constructor = ScrollSpy
|
|
133
149
|
|
|
134
150
|
|
|
@@ -147,7 +163,7 @@
|
|
|
147
163
|
$(window).on('load.bs.scrollspy.data-api', function () {
|
|
148
164
|
$('[data-spy="scroll"]').each(function () {
|
|
149
165
|
var $spy = $(this)
|
|
150
|
-
|
|
166
|
+
Plugin.call($spy, $spy.data())
|
|
151
167
|
})
|
|
152
168
|
})
|
|
153
169
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ========================================================================
|
|
2
|
-
* Bootstrap: tab.js v3.
|
|
2
|
+
* Bootstrap: tab.js v3.2.0
|
|
3
3
|
* http://getbootstrap.com/javascript/#tabs
|
|
4
4
|
* ========================================================================
|
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
this.element = $(element)
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
Tab.VERSION = '3.2.0'
|
|
21
|
+
|
|
20
22
|
Tab.prototype.show = function () {
|
|
21
23
|
var $this = this.element
|
|
22
24
|
var $ul = $this.closest('ul:not(.dropdown-menu)')
|
|
@@ -24,7 +26,7 @@
|
|
|
24
26
|
|
|
25
27
|
if (!selector) {
|
|
26
28
|
selector = $this.attr('href')
|
|
27
|
-
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
29
|
+
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
if ($this.parent('li').hasClass('active')) return
|
|
@@ -40,7 +42,7 @@
|
|
|
40
42
|
|
|
41
43
|
var $target = $(selector)
|
|
42
44
|
|
|
43
|
-
this.activate($this.
|
|
45
|
+
this.activate($this.closest('li'), $ul)
|
|
44
46
|
this.activate($target, $target.parent(), function () {
|
|
45
47
|
$this.trigger({
|
|
46
48
|
type: 'shown.bs.tab',
|
|
@@ -79,7 +81,7 @@
|
|
|
79
81
|
|
|
80
82
|
transition ?
|
|
81
83
|
$active
|
|
82
|
-
.one(
|
|
84
|
+
.one('bsTransitionEnd', next)
|
|
83
85
|
.emulateTransitionEnd(150) :
|
|
84
86
|
next()
|
|
85
87
|
|
|
@@ -90,9 +92,7 @@
|
|
|
90
92
|
// TAB PLUGIN DEFINITION
|
|
91
93
|
// =====================
|
|
92
94
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
$.fn.tab = function ( option ) {
|
|
95
|
+
function Plugin(option) {
|
|
96
96
|
return this.each(function () {
|
|
97
97
|
var $this = $(this)
|
|
98
98
|
var data = $this.data('bs.tab')
|
|
@@ -102,6 +102,9 @@
|
|
|
102
102
|
})
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
var old = $.fn.tab
|
|
106
|
+
|
|
107
|
+
$.fn.tab = Plugin
|
|
105
108
|
$.fn.tab.Constructor = Tab
|
|
106
109
|
|
|
107
110
|
|
|
@@ -119,7 +122,7 @@
|
|
|
119
122
|
|
|
120
123
|
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
|
121
124
|
e.preventDefault()
|
|
122
|
-
$(this)
|
|
125
|
+
Plugin.call($(this), 'show')
|
|
123
126
|
})
|
|
124
127
|
|
|
125
128
|
}(jQuery);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ========================================================================
|
|
2
|
-
* Bootstrap: tooltip.js v3.
|
|
2
|
+
* Bootstrap: tooltip.js v3.2.0
|
|
3
3
|
* http://getbootstrap.com/javascript/#tooltip
|
|
4
4
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
|
5
5
|
* ========================================================================
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
this.init('tooltip', element, options)
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
Tooltip.VERSION = '3.2.0'
|
|
29
|
+
|
|
28
30
|
Tooltip.DEFAULTS = {
|
|
29
31
|
animation: true,
|
|
30
32
|
placement: 'top',
|
|
@@ -99,7 +101,12 @@
|
|
|
99
101
|
|
|
100
102
|
Tooltip.prototype.enter = function (obj) {
|
|
101
103
|
var self = obj instanceof this.constructor ?
|
|
102
|
-
obj : $(obj.currentTarget)
|
|
104
|
+
obj : $(obj.currentTarget).data('bs.' + this.type)
|
|
105
|
+
|
|
106
|
+
if (!self) {
|
|
107
|
+
self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
|
|
108
|
+
$(obj.currentTarget).data('bs.' + this.type, self)
|
|
109
|
+
}
|
|
103
110
|
|
|
104
111
|
clearTimeout(self.timeout)
|
|
105
112
|
|
|
@@ -114,7 +121,12 @@
|
|
|
114
121
|
|
|
115
122
|
Tooltip.prototype.leave = function (obj) {
|
|
116
123
|
var self = obj instanceof this.constructor ?
|
|
117
|
-
obj : $(obj.currentTarget)
|
|
124
|
+
obj : $(obj.currentTarget).data('bs.' + this.type)
|
|
125
|
+
|
|
126
|
+
if (!self) {
|
|
127
|
+
self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
|
|
128
|
+
$(obj.currentTarget).data('bs.' + this.type, self)
|
|
129
|
+
}
|
|
118
130
|
|
|
119
131
|
clearTimeout(self.timeout)
|
|
120
132
|
|
|
@@ -133,12 +145,17 @@
|
|
|
133
145
|
if (this.hasContent() && this.enabled) {
|
|
134
146
|
this.$element.trigger(e)
|
|
135
147
|
|
|
136
|
-
|
|
137
|
-
|
|
148
|
+
var inDom = $.contains(document.documentElement, this.$element[0])
|
|
149
|
+
if (e.isDefaultPrevented() || !inDom) return
|
|
150
|
+
var that = this
|
|
138
151
|
|
|
139
152
|
var $tip = this.tip()
|
|
140
153
|
|
|
154
|
+
var tipId = this.getUID(this.type)
|
|
155
|
+
|
|
141
156
|
this.setContent()
|
|
157
|
+
$tip.attr('id', tipId)
|
|
158
|
+
this.$element.attr('aria-describedby', tipId)
|
|
142
159
|
|
|
143
160
|
if (this.options.animation) $tip.addClass('fade')
|
|
144
161
|
|
|
@@ -154,6 +171,7 @@
|
|
|
154
171
|
.detach()
|
|
155
172
|
.css({ top: 0, left: 0, display: 'block' })
|
|
156
173
|
.addClass(placement)
|
|
174
|
+
.data('bs.' + this.type, this)
|
|
157
175
|
|
|
158
176
|
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
|
159
177
|
|
|
@@ -180,15 +198,15 @@
|
|
|
180
198
|
var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
|
|
181
199
|
|
|
182
200
|
this.applyPlacement(calculatedOffset, placement)
|
|
183
|
-
this.hoverState = null
|
|
184
201
|
|
|
185
|
-
var complete = function() {
|
|
202
|
+
var complete = function () {
|
|
186
203
|
that.$element.trigger('shown.bs.' + that.type)
|
|
204
|
+
that.hoverState = null
|
|
187
205
|
}
|
|
188
206
|
|
|
189
207
|
$.support.transition && this.$tip.hasClass('fade') ?
|
|
190
208
|
$tip
|
|
191
|
-
.one(
|
|
209
|
+
.one('bsTransitionEnd', complete)
|
|
192
210
|
.emulateTransitionEnd(150) :
|
|
193
211
|
complete()
|
|
194
212
|
}
|
|
@@ -261,6 +279,8 @@
|
|
|
261
279
|
var $tip = this.tip()
|
|
262
280
|
var e = $.Event('hide.bs.' + this.type)
|
|
263
281
|
|
|
282
|
+
this.$element.removeAttr('aria-describedby')
|
|
283
|
+
|
|
264
284
|
function complete() {
|
|
265
285
|
if (that.hoverState != 'in') $tip.detach()
|
|
266
286
|
that.$element.trigger('hidden.bs.' + that.type)
|
|
@@ -274,7 +294,7 @@
|
|
|
274
294
|
|
|
275
295
|
$.support.transition && this.$tip.hasClass('fade') ?
|
|
276
296
|
$tip
|
|
277
|
-
.one(
|
|
297
|
+
.one('bsTransitionEnd', complete)
|
|
278
298
|
.emulateTransitionEnd(150) :
|
|
279
299
|
complete()
|
|
280
300
|
|
|
@@ -285,7 +305,7 @@
|
|
|
285
305
|
|
|
286
306
|
Tooltip.prototype.fixTitle = function () {
|
|
287
307
|
var $e = this.$element
|
|
288
|
-
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
|
|
308
|
+
if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
|
|
289
309
|
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
|
290
310
|
}
|
|
291
311
|
}
|
|
@@ -302,7 +322,7 @@
|
|
|
302
322
|
scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
|
|
303
323
|
width: isBody ? $(window).width() : $element.outerWidth(),
|
|
304
324
|
height: isBody ? $(window).height() : $element.outerHeight()
|
|
305
|
-
}, isBody ? {top: 0, left: 0} : $element.offset())
|
|
325
|
+
}, isBody ? { top: 0, left: 0 } : $element.offset())
|
|
306
326
|
}
|
|
307
327
|
|
|
308
328
|
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
|
|
@@ -352,12 +372,18 @@
|
|
|
352
372
|
return title
|
|
353
373
|
}
|
|
354
374
|
|
|
375
|
+
Tooltip.prototype.getUID = function (prefix) {
|
|
376
|
+
do prefix += ~~(Math.random() * 1000000)
|
|
377
|
+
while (document.getElementById(prefix))
|
|
378
|
+
return prefix
|
|
379
|
+
}
|
|
380
|
+
|
|
355
381
|
Tooltip.prototype.tip = function () {
|
|
356
|
-
return this.$tip = this.$tip || $(this.options.template)
|
|
382
|
+
return (this.$tip = this.$tip || $(this.options.template))
|
|
357
383
|
}
|
|
358
384
|
|
|
359
385
|
Tooltip.prototype.arrow = function () {
|
|
360
|
-
return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
|
|
386
|
+
return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
|
|
361
387
|
}
|
|
362
388
|
|
|
363
389
|
Tooltip.prototype.validate = function () {
|
|
@@ -381,7 +407,15 @@
|
|
|
381
407
|
}
|
|
382
408
|
|
|
383
409
|
Tooltip.prototype.toggle = function (e) {
|
|
384
|
-
var self =
|
|
410
|
+
var self = this
|
|
411
|
+
if (e) {
|
|
412
|
+
self = $(e.currentTarget).data('bs.' + this.type)
|
|
413
|
+
if (!self) {
|
|
414
|
+
self = new this.constructor(e.currentTarget, this.getDelegateOptions())
|
|
415
|
+
$(e.currentTarget).data('bs.' + this.type, self)
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
385
419
|
self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
|
|
386
420
|
}
|
|
387
421
|
|
|
@@ -394,9 +428,7 @@
|
|
|
394
428
|
// TOOLTIP PLUGIN DEFINITION
|
|
395
429
|
// =========================
|
|
396
430
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
$.fn.tooltip = function (option) {
|
|
431
|
+
function Plugin(option) {
|
|
400
432
|
return this.each(function () {
|
|
401
433
|
var $this = $(this)
|
|
402
434
|
var data = $this.data('bs.tooltip')
|
|
@@ -408,6 +440,9 @@
|
|
|
408
440
|
})
|
|
409
441
|
}
|
|
410
442
|
|
|
443
|
+
var old = $.fn.tooltip
|
|
444
|
+
|
|
445
|
+
$.fn.tooltip = Plugin
|
|
411
446
|
$.fn.tooltip.Constructor = Tooltip
|
|
412
447
|
|
|
413
448
|
|