bootstrap3-rails 3.1.1 → 3.2.0
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 +4 -4
- data/README.md +2 -2
- data/lib/bootstrap3/rails/version.rb +1 -1
- data/vendor/assets/javascripts/bootstrap.js +389 -226
- data/vendor/assets/javascripts/bootstrap.min.js +2 -2
- data/vendor/assets/stylesheets/bootstrap-theme.css +96 -1
- data/vendor/assets/stylesheets/bootstrap-theme.css.map +1 -1
- data/vendor/assets/stylesheets/bootstrap-theme.min.css +2 -4
- data/vendor/assets/stylesheets/bootstrap.css +2740 -2322
- data/vendor/assets/stylesheets/bootstrap.css.map +1 -1
- data/vendor/assets/stylesheets/bootstrap.min.css +2 -4
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f51f9934299de2e7ca6dc4b36e2d794fa0c8c5fb
|
|
4
|
+
data.tar.gz: 3bb47b1e4f6781545433dc7765e9d630ccfe9663
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 069cff399c70b46934c0c67afd8bfb5814380adfe22ba3e66607a788ff92fb0539c4d18e8c959bc67c5eb228a74c1947a816f0c1044d28410d61fe9e8c45f06b
|
|
7
|
+
data.tar.gz: a6be8e4e1173431934d259396a13d0677776f085907c738882486d511a4e7afae34a1d678b548a98aa0b9ca5a603ceb2bf42a30675f8dac7386e624d02b365de
|
data/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Bootstrap3::Rails
|
|
2
2
|
|
|
3
|
-
Easily add [Bootstrap v3.
|
|
3
|
+
Easily add [Bootstrap v3.2.0](https://github.com/twbs/bootstrap/) to your Rails application using the asset pipeline.
|
|
4
4
|
|
|
5
|
-
More informations about Bootstrap v3.
|
|
5
|
+
More informations about Bootstrap v3.2.0 on (http://getbootstrap.com/).
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap v3.
|
|
2
|
+
* Bootstrap v3.2.0 (http://getbootstrap.com)
|
|
3
3
|
* Copyright 2011-2014 Twitter, Inc.
|
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
5
5
|
*/
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery') }
|
|
8
8
|
|
|
9
9
|
/* ========================================================================
|
|
10
|
-
* Bootstrap: transition.js v3.
|
|
10
|
+
* Bootstrap: transition.js v3.2.0
|
|
11
11
|
* http://getbootstrap.com/javascript/#transitions
|
|
12
12
|
* ========================================================================
|
|
13
13
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -25,10 +25,10 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
25
25
|
var el = document.createElement('bootstrap')
|
|
26
26
|
|
|
27
27
|
var transEndEventNames = {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
WebkitTransition : 'webkitTransitionEnd',
|
|
29
|
+
MozTransition : 'transitionend',
|
|
30
|
+
OTransition : 'oTransitionEnd otransitionend',
|
|
31
|
+
transition : 'transitionend'
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
for (var name in transEndEventNames) {
|
|
@@ -42,8 +42,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
42
42
|
|
|
43
43
|
// http://blog.alexmaccaw.com/css-transitions
|
|
44
44
|
$.fn.emulateTransitionEnd = function (duration) {
|
|
45
|
-
var called = false
|
|
46
|
-
$
|
|
45
|
+
var called = false
|
|
46
|
+
var $el = this
|
|
47
|
+
$(this).one('bsTransitionEnd', function () { called = true })
|
|
47
48
|
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
|
|
48
49
|
setTimeout(callback, duration)
|
|
49
50
|
return this
|
|
@@ -51,12 +52,22 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
51
52
|
|
|
52
53
|
$(function () {
|
|
53
54
|
$.support.transition = transitionEnd()
|
|
55
|
+
|
|
56
|
+
if (!$.support.transition) return
|
|
57
|
+
|
|
58
|
+
$.event.special.bsTransitionEnd = {
|
|
59
|
+
bindType: $.support.transition.end,
|
|
60
|
+
delegateType: $.support.transition.end,
|
|
61
|
+
handle: function (e) {
|
|
62
|
+
if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
54
65
|
})
|
|
55
66
|
|
|
56
67
|
}(jQuery);
|
|
57
68
|
|
|
58
69
|
/* ========================================================================
|
|
59
|
-
* Bootstrap: alert.js v3.
|
|
70
|
+
* Bootstrap: alert.js v3.2.0
|
|
60
71
|
* http://getbootstrap.com/javascript/#alerts
|
|
61
72
|
* ========================================================================
|
|
62
73
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -75,6 +86,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
75
86
|
$(el).on('click', dismiss, this.close)
|
|
76
87
|
}
|
|
77
88
|
|
|
89
|
+
Alert.VERSION = '3.2.0'
|
|
90
|
+
|
|
78
91
|
Alert.prototype.close = function (e) {
|
|
79
92
|
var $this = $(this)
|
|
80
93
|
var selector = $this.attr('data-target')
|
|
@@ -99,12 +112,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
99
112
|
$parent.removeClass('in')
|
|
100
113
|
|
|
101
114
|
function removeElement() {
|
|
102
|
-
|
|
115
|
+
// detach from parent, fire event then clean up data
|
|
116
|
+
$parent.detach().trigger('closed.bs.alert').remove()
|
|
103
117
|
}
|
|
104
118
|
|
|
105
119
|
$.support.transition && $parent.hasClass('fade') ?
|
|
106
120
|
$parent
|
|
107
|
-
.one(
|
|
121
|
+
.one('bsTransitionEnd', removeElement)
|
|
108
122
|
.emulateTransitionEnd(150) :
|
|
109
123
|
removeElement()
|
|
110
124
|
}
|
|
@@ -113,9 +127,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
113
127
|
// ALERT PLUGIN DEFINITION
|
|
114
128
|
// =======================
|
|
115
129
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
$.fn.alert = function (option) {
|
|
130
|
+
function Plugin(option) {
|
|
119
131
|
return this.each(function () {
|
|
120
132
|
var $this = $(this)
|
|
121
133
|
var data = $this.data('bs.alert')
|
|
@@ -125,6 +137,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
125
137
|
})
|
|
126
138
|
}
|
|
127
139
|
|
|
140
|
+
var old = $.fn.alert
|
|
141
|
+
|
|
142
|
+
$.fn.alert = Plugin
|
|
128
143
|
$.fn.alert.Constructor = Alert
|
|
129
144
|
|
|
130
145
|
|
|
@@ -145,7 +160,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
145
160
|
}(jQuery);
|
|
146
161
|
|
|
147
162
|
/* ========================================================================
|
|
148
|
-
* Bootstrap: button.js v3.
|
|
163
|
+
* Bootstrap: button.js v3.2.0
|
|
149
164
|
* http://getbootstrap.com/javascript/#buttons
|
|
150
165
|
* ========================================================================
|
|
151
166
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -165,6 +180,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
165
180
|
this.isLoading = false
|
|
166
181
|
}
|
|
167
182
|
|
|
183
|
+
Button.VERSION = '3.2.0'
|
|
184
|
+
|
|
168
185
|
Button.DEFAULTS = {
|
|
169
186
|
loadingText: 'loading...'
|
|
170
187
|
}
|
|
@@ -177,9 +194,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
177
194
|
|
|
178
195
|
state = state + 'Text'
|
|
179
196
|
|
|
180
|
-
if (
|
|
197
|
+
if (data.resetText == null) $el.data('resetText', $el[val]())
|
|
181
198
|
|
|
182
|
-
$el[val](data[state]
|
|
199
|
+
$el[val](data[state] == null ? this.options[state] : data[state])
|
|
183
200
|
|
|
184
201
|
// push to event loop to allow forms to submit
|
|
185
202
|
setTimeout($.proxy(function () {
|
|
@@ -213,9 +230,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
213
230
|
// BUTTON PLUGIN DEFINITION
|
|
214
231
|
// ========================
|
|
215
232
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
$.fn.button = function (option) {
|
|
233
|
+
function Plugin(option) {
|
|
219
234
|
return this.each(function () {
|
|
220
235
|
var $this = $(this)
|
|
221
236
|
var data = $this.data('bs.button')
|
|
@@ -228,6 +243,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
228
243
|
})
|
|
229
244
|
}
|
|
230
245
|
|
|
246
|
+
var old = $.fn.button
|
|
247
|
+
|
|
248
|
+
$.fn.button = Plugin
|
|
231
249
|
$.fn.button.Constructor = Button
|
|
232
250
|
|
|
233
251
|
|
|
@@ -243,17 +261,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
243
261
|
// BUTTON DATA-API
|
|
244
262
|
// ===============
|
|
245
263
|
|
|
246
|
-
$(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {
|
|
264
|
+
$(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
|
247
265
|
var $btn = $(e.target)
|
|
248
266
|
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
|
249
|
-
$btn
|
|
267
|
+
Plugin.call($btn, 'toggle')
|
|
250
268
|
e.preventDefault()
|
|
251
269
|
})
|
|
252
270
|
|
|
253
271
|
}(jQuery);
|
|
254
272
|
|
|
255
273
|
/* ========================================================================
|
|
256
|
-
* Bootstrap: carousel.js v3.
|
|
274
|
+
* Bootstrap: carousel.js v3.2.0
|
|
257
275
|
* http://getbootstrap.com/javascript/#carousel
|
|
258
276
|
* ========================================================================
|
|
259
277
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -268,7 +286,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
268
286
|
// =========================
|
|
269
287
|
|
|
270
288
|
var Carousel = function (element, options) {
|
|
271
|
-
this.$element = $(element)
|
|
289
|
+
this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
|
|
272
290
|
this.$indicators = this.$element.find('.carousel-indicators')
|
|
273
291
|
this.options = options
|
|
274
292
|
this.paused =
|
|
@@ -278,17 +296,29 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
278
296
|
this.$items = null
|
|
279
297
|
|
|
280
298
|
this.options.pause == 'hover' && this.$element
|
|
281
|
-
.on('mouseenter', $.proxy(this.pause, this))
|
|
282
|
-
.on('mouseleave', $.proxy(this.cycle, this))
|
|
299
|
+
.on('mouseenter.bs.carousel', $.proxy(this.pause, this))
|
|
300
|
+
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
|
283
301
|
}
|
|
284
302
|
|
|
303
|
+
Carousel.VERSION = '3.2.0'
|
|
304
|
+
|
|
285
305
|
Carousel.DEFAULTS = {
|
|
286
306
|
interval: 5000,
|
|
287
307
|
pause: 'hover',
|
|
288
308
|
wrap: true
|
|
289
309
|
}
|
|
290
310
|
|
|
291
|
-
Carousel.prototype.
|
|
311
|
+
Carousel.prototype.keydown = function (e) {
|
|
312
|
+
switch (e.which) {
|
|
313
|
+
case 37: this.prev(); break
|
|
314
|
+
case 39: this.next(); break
|
|
315
|
+
default: return
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
e.preventDefault()
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
Carousel.prototype.cycle = function (e) {
|
|
292
322
|
e || (this.paused = false)
|
|
293
323
|
|
|
294
324
|
this.interval && clearInterval(this.interval)
|
|
@@ -300,20 +330,18 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
300
330
|
return this
|
|
301
331
|
}
|
|
302
332
|
|
|
303
|
-
Carousel.prototype.
|
|
304
|
-
this.$
|
|
305
|
-
this.$items
|
|
306
|
-
|
|
307
|
-
return this.$items.index(this.$active)
|
|
333
|
+
Carousel.prototype.getItemIndex = function (item) {
|
|
334
|
+
this.$items = item.parent().children('.item')
|
|
335
|
+
return this.$items.index(item || this.$active)
|
|
308
336
|
}
|
|
309
337
|
|
|
310
338
|
Carousel.prototype.to = function (pos) {
|
|
311
339
|
var that = this
|
|
312
|
-
var activeIndex = this.
|
|
340
|
+
var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
|
|
313
341
|
|
|
314
342
|
if (pos > (this.$items.length - 1) || pos < 0) return
|
|
315
343
|
|
|
316
|
-
if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
|
|
344
|
+
if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
|
|
317
345
|
if (activeIndex == pos) return this.pause().cycle()
|
|
318
346
|
|
|
319
347
|
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
|
|
@@ -355,11 +383,15 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
355
383
|
$next = this.$element.find('.item')[fallback]()
|
|
356
384
|
}
|
|
357
385
|
|
|
358
|
-
if ($next.hasClass('active')) return this.sliding = false
|
|
386
|
+
if ($next.hasClass('active')) return (this.sliding = false)
|
|
359
387
|
|
|
360
|
-
var
|
|
361
|
-
|
|
362
|
-
|
|
388
|
+
var relatedTarget = $next[0]
|
|
389
|
+
var slideEvent = $.Event('slide.bs.carousel', {
|
|
390
|
+
relatedTarget: relatedTarget,
|
|
391
|
+
direction: direction
|
|
392
|
+
})
|
|
393
|
+
this.$element.trigger(slideEvent)
|
|
394
|
+
if (slideEvent.isDefaultPrevented()) return
|
|
363
395
|
|
|
364
396
|
this.sliding = true
|
|
365
397
|
|
|
@@ -367,30 +399,31 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
367
399
|
|
|
368
400
|
if (this.$indicators.length) {
|
|
369
401
|
this.$indicators.find('.active').removeClass('active')
|
|
370
|
-
this.$
|
|
371
|
-
|
|
372
|
-
$nextIndicator && $nextIndicator.addClass('active')
|
|
373
|
-
})
|
|
402
|
+
var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
|
|
403
|
+
$nextIndicator && $nextIndicator.addClass('active')
|
|
374
404
|
}
|
|
375
405
|
|
|
406
|
+
var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
|
|
376
407
|
if ($.support.transition && this.$element.hasClass('slide')) {
|
|
377
408
|
$next.addClass(type)
|
|
378
409
|
$next[0].offsetWidth // force reflow
|
|
379
410
|
$active.addClass(direction)
|
|
380
411
|
$next.addClass(direction)
|
|
381
412
|
$active
|
|
382
|
-
.one(
|
|
413
|
+
.one('bsTransitionEnd', function () {
|
|
383
414
|
$next.removeClass([type, direction].join(' ')).addClass('active')
|
|
384
415
|
$active.removeClass(['active', direction].join(' '))
|
|
385
416
|
that.sliding = false
|
|
386
|
-
setTimeout(function () {
|
|
417
|
+
setTimeout(function () {
|
|
418
|
+
that.$element.trigger(slidEvent)
|
|
419
|
+
}, 0)
|
|
387
420
|
})
|
|
388
421
|
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
|
|
389
422
|
} else {
|
|
390
423
|
$active.removeClass('active')
|
|
391
424
|
$next.addClass('active')
|
|
392
425
|
this.sliding = false
|
|
393
|
-
this.$element.trigger(
|
|
426
|
+
this.$element.trigger(slidEvent)
|
|
394
427
|
}
|
|
395
428
|
|
|
396
429
|
isCycling && this.cycle()
|
|
@@ -402,9 +435,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
402
435
|
// CAROUSEL PLUGIN DEFINITION
|
|
403
436
|
// ==========================
|
|
404
437
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
$.fn.carousel = function (option) {
|
|
438
|
+
function Plugin(option) {
|
|
408
439
|
return this.each(function () {
|
|
409
440
|
var $this = $(this)
|
|
410
441
|
var data = $this.data('bs.carousel')
|
|
@@ -418,6 +449,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
418
449
|
})
|
|
419
450
|
}
|
|
420
451
|
|
|
452
|
+
var old = $.fn.carousel
|
|
453
|
+
|
|
454
|
+
$.fn.carousel = Plugin
|
|
421
455
|
$.fn.carousel.Constructor = Carousel
|
|
422
456
|
|
|
423
457
|
|
|
@@ -434,15 +468,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
434
468
|
// =================
|
|
435
469
|
|
|
436
470
|
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
|
|
437
|
-
var
|
|
438
|
-
var $
|
|
471
|
+
var href
|
|
472
|
+
var $this = $(this)
|
|
473
|
+
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
|
|
474
|
+
if (!$target.hasClass('carousel')) return
|
|
439
475
|
var options = $.extend({}, $target.data(), $this.data())
|
|
440
476
|
var slideIndex = $this.attr('data-slide-to')
|
|
441
477
|
if (slideIndex) options.interval = false
|
|
442
478
|
|
|
443
|
-
$target
|
|
479
|
+
Plugin.call($target, options)
|
|
444
480
|
|
|
445
|
-
if (slideIndex
|
|
481
|
+
if (slideIndex) {
|
|
446
482
|
$target.data('bs.carousel').to(slideIndex)
|
|
447
483
|
}
|
|
448
484
|
|
|
@@ -452,14 +488,14 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
452
488
|
$(window).on('load', function () {
|
|
453
489
|
$('[data-ride="carousel"]').each(function () {
|
|
454
490
|
var $carousel = $(this)
|
|
455
|
-
|
|
491
|
+
Plugin.call($carousel, $carousel.data())
|
|
456
492
|
})
|
|
457
493
|
})
|
|
458
494
|
|
|
459
495
|
}(jQuery);
|
|
460
496
|
|
|
461
497
|
/* ========================================================================
|
|
462
|
-
* Bootstrap: collapse.js v3.
|
|
498
|
+
* Bootstrap: collapse.js v3.2.0
|
|
463
499
|
* http://getbootstrap.com/javascript/#collapse
|
|
464
500
|
* ========================================================================
|
|
465
501
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -482,6 +518,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
482
518
|
if (this.options.toggle) this.toggle()
|
|
483
519
|
}
|
|
484
520
|
|
|
521
|
+
Collapse.VERSION = '3.2.0'
|
|
522
|
+
|
|
485
523
|
Collapse.DEFAULTS = {
|
|
486
524
|
toggle: true
|
|
487
525
|
}
|
|
@@ -503,7 +541,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
503
541
|
if (actives && actives.length) {
|
|
504
542
|
var hasData = actives.data('bs.collapse')
|
|
505
543
|
if (hasData && hasData.transitioning) return
|
|
506
|
-
|
|
544
|
+
Plugin.call(actives, 'hide')
|
|
507
545
|
hasData || actives.data('bs.collapse', null)
|
|
508
546
|
}
|
|
509
547
|
|
|
@@ -511,18 +549,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
511
549
|
|
|
512
550
|
this.$element
|
|
513
551
|
.removeClass('collapse')
|
|
514
|
-
.addClass('collapsing')
|
|
515
|
-
[dimension](0)
|
|
552
|
+
.addClass('collapsing')[dimension](0)
|
|
516
553
|
|
|
517
554
|
this.transitioning = 1
|
|
518
555
|
|
|
519
556
|
var complete = function () {
|
|
520
557
|
this.$element
|
|
521
558
|
.removeClass('collapsing')
|
|
522
|
-
.addClass('collapse in')
|
|
523
|
-
[dimension]('auto')
|
|
559
|
+
.addClass('collapse in')[dimension]('')
|
|
524
560
|
this.transitioning = 0
|
|
525
|
-
this.$element
|
|
561
|
+
this.$element
|
|
562
|
+
.trigger('shown.bs.collapse')
|
|
526
563
|
}
|
|
527
564
|
|
|
528
565
|
if (!$.support.transition) return complete.call(this)
|
|
@@ -530,9 +567,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
530
567
|
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
|
|
531
568
|
|
|
532
569
|
this.$element
|
|
533
|
-
.one(
|
|
534
|
-
.emulateTransitionEnd(350)
|
|
535
|
-
[dimension](this.$element[0][scrollSize])
|
|
570
|
+
.one('bsTransitionEnd', $.proxy(complete, this))
|
|
571
|
+
.emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
|
|
536
572
|
}
|
|
537
573
|
|
|
538
574
|
Collapse.prototype.hide = function () {
|
|
@@ -544,9 +580,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
544
580
|
|
|
545
581
|
var dimension = this.dimension()
|
|
546
582
|
|
|
547
|
-
this.$element
|
|
548
|
-
[dimension](this.$element[dimension]())
|
|
549
|
-
[0].offsetHeight
|
|
583
|
+
this.$element[dimension](this.$element[dimension]())[0].offsetHeight
|
|
550
584
|
|
|
551
585
|
this.$element
|
|
552
586
|
.addClass('collapsing')
|
|
@@ -567,7 +601,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
567
601
|
|
|
568
602
|
this.$element
|
|
569
603
|
[dimension](0)
|
|
570
|
-
.one(
|
|
604
|
+
.one('bsTransitionEnd', $.proxy(complete, this))
|
|
571
605
|
.emulateTransitionEnd(350)
|
|
572
606
|
}
|
|
573
607
|
|
|
@@ -579,9 +613,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
579
613
|
// COLLAPSE PLUGIN DEFINITION
|
|
580
614
|
// ==========================
|
|
581
615
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
$.fn.collapse = function (option) {
|
|
616
|
+
function Plugin(option) {
|
|
585
617
|
return this.each(function () {
|
|
586
618
|
var $this = $(this)
|
|
587
619
|
var data = $this.data('bs.collapse')
|
|
@@ -593,6 +625,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
593
625
|
})
|
|
594
626
|
}
|
|
595
627
|
|
|
628
|
+
var old = $.fn.collapse
|
|
629
|
+
|
|
630
|
+
$.fn.collapse = Plugin
|
|
596
631
|
$.fn.collapse.Constructor = Collapse
|
|
597
632
|
|
|
598
633
|
|
|
@@ -608,11 +643,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
608
643
|
// COLLAPSE DATA-API
|
|
609
644
|
// =================
|
|
610
645
|
|
|
611
|
-
$(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
|
|
612
|
-
var
|
|
646
|
+
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
|
|
647
|
+
var href
|
|
648
|
+
var $this = $(this)
|
|
613
649
|
var target = $this.attr('data-target')
|
|
614
650
|
|| e.preventDefault()
|
|
615
|
-
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
|
651
|
+
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
|
616
652
|
var $target = $(target)
|
|
617
653
|
var data = $target.data('bs.collapse')
|
|
618
654
|
var option = data ? 'toggle' : $this.data()
|
|
@@ -620,17 +656,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
620
656
|
var $parent = parent && $(parent)
|
|
621
657
|
|
|
622
658
|
if (!data || !data.transitioning) {
|
|
623
|
-
if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
|
|
659
|
+
if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed')
|
|
624
660
|
$this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
|
|
625
661
|
}
|
|
626
662
|
|
|
627
|
-
$target
|
|
663
|
+
Plugin.call($target, option)
|
|
628
664
|
})
|
|
629
665
|
|
|
630
666
|
}(jQuery);
|
|
631
667
|
|
|
632
668
|
/* ========================================================================
|
|
633
|
-
* Bootstrap: dropdown.js v3.
|
|
669
|
+
* Bootstrap: dropdown.js v3.2.0
|
|
634
670
|
* http://getbootstrap.com/javascript/#dropdowns
|
|
635
671
|
* ========================================================================
|
|
636
672
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -645,11 +681,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
645
681
|
// =========================
|
|
646
682
|
|
|
647
683
|
var backdrop = '.dropdown-backdrop'
|
|
648
|
-
var toggle = '[data-toggle=dropdown]'
|
|
684
|
+
var toggle = '[data-toggle="dropdown"]'
|
|
649
685
|
var Dropdown = function (element) {
|
|
650
686
|
$(element).on('click.bs.dropdown', this.toggle)
|
|
651
687
|
}
|
|
652
688
|
|
|
689
|
+
Dropdown.VERSION = '3.2.0'
|
|
690
|
+
|
|
653
691
|
Dropdown.prototype.toggle = function (e) {
|
|
654
692
|
var $this = $(this)
|
|
655
693
|
|
|
@@ -671,11 +709,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
671
709
|
|
|
672
710
|
if (e.isDefaultPrevented()) return
|
|
673
711
|
|
|
712
|
+
$this.trigger('focus')
|
|
713
|
+
|
|
674
714
|
$parent
|
|
675
715
|
.toggleClass('open')
|
|
676
716
|
.trigger('shown.bs.dropdown', relatedTarget)
|
|
677
|
-
|
|
678
|
-
$this.focus()
|
|
679
717
|
}
|
|
680
718
|
|
|
681
719
|
return false
|
|
@@ -695,12 +733,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
695
733
|
var isActive = $parent.hasClass('open')
|
|
696
734
|
|
|
697
735
|
if (!isActive || (isActive && e.keyCode == 27)) {
|
|
698
|
-
if (e.which == 27) $parent.find(toggle).focus
|
|
699
|
-
return $this.click
|
|
736
|
+
if (e.which == 27) $parent.find(toggle).trigger('focus')
|
|
737
|
+
return $this.trigger('click')
|
|
700
738
|
}
|
|
701
739
|
|
|
702
740
|
var desc = ' li:not(.divider):visible a'
|
|
703
|
-
var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)
|
|
741
|
+
var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
|
|
704
742
|
|
|
705
743
|
if (!$items.length) return
|
|
706
744
|
|
|
@@ -710,10 +748,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
710
748
|
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
|
|
711
749
|
if (!~index) index = 0
|
|
712
750
|
|
|
713
|
-
$items.eq(index).focus
|
|
751
|
+
$items.eq(index).trigger('focus')
|
|
714
752
|
}
|
|
715
753
|
|
|
716
754
|
function clearMenus(e) {
|
|
755
|
+
if (e && e.which === 3) return
|
|
717
756
|
$(backdrop).remove()
|
|
718
757
|
$(toggle).each(function () {
|
|
719
758
|
var $parent = getParent($(this))
|
|
@@ -730,7 +769,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
730
769
|
|
|
731
770
|
if (!selector) {
|
|
732
771
|
selector = $this.attr('href')
|
|
733
|
-
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
772
|
+
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
|
734
773
|
}
|
|
735
774
|
|
|
736
775
|
var $parent = selector && $(selector)
|
|
@@ -742,9 +781,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
742
781
|
// DROPDOWN PLUGIN DEFINITION
|
|
743
782
|
// ==========================
|
|
744
783
|
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
$.fn.dropdown = function (option) {
|
|
784
|
+
function Plugin(option) {
|
|
748
785
|
return this.each(function () {
|
|
749
786
|
var $this = $(this)
|
|
750
787
|
var data = $this.data('bs.dropdown')
|
|
@@ -754,6 +791,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
754
791
|
})
|
|
755
792
|
}
|
|
756
793
|
|
|
794
|
+
var old = $.fn.dropdown
|
|
795
|
+
|
|
796
|
+
$.fn.dropdown = Plugin
|
|
757
797
|
$.fn.dropdown.Constructor = Dropdown
|
|
758
798
|
|
|
759
799
|
|
|
@@ -773,12 +813,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
773
813
|
.on('click.bs.dropdown.data-api', clearMenus)
|
|
774
814
|
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
|
775
815
|
.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)
|
|
816
|
+
.on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
|
|
777
817
|
|
|
778
818
|
}(jQuery);
|
|
779
819
|
|
|
780
820
|
/* ========================================================================
|
|
781
|
-
* Bootstrap: modal.js v3.
|
|
821
|
+
* Bootstrap: modal.js v3.2.0
|
|
782
822
|
* http://getbootstrap.com/javascript/#modals
|
|
783
823
|
* ========================================================================
|
|
784
824
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -793,10 +833,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
793
833
|
// ======================
|
|
794
834
|
|
|
795
835
|
var Modal = function (element, options) {
|
|
796
|
-
this.options
|
|
797
|
-
this.$
|
|
798
|
-
this.$
|
|
799
|
-
this
|
|
836
|
+
this.options = options
|
|
837
|
+
this.$body = $(document.body)
|
|
838
|
+
this.$element = $(element)
|
|
839
|
+
this.$backdrop =
|
|
840
|
+
this.isShown = null
|
|
841
|
+
this.scrollbarWidth = 0
|
|
800
842
|
|
|
801
843
|
if (this.options.remote) {
|
|
802
844
|
this.$element
|
|
@@ -807,6 +849,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
807
849
|
}
|
|
808
850
|
}
|
|
809
851
|
|
|
852
|
+
Modal.VERSION = '3.2.0'
|
|
853
|
+
|
|
810
854
|
Modal.DEFAULTS = {
|
|
811
855
|
backdrop: true,
|
|
812
856
|
keyboard: true,
|
|
@@ -814,7 +858,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
814
858
|
}
|
|
815
859
|
|
|
816
860
|
Modal.prototype.toggle = function (_relatedTarget) {
|
|
817
|
-
return this
|
|
861
|
+
return this.isShown ? this.hide() : this.show(_relatedTarget)
|
|
818
862
|
}
|
|
819
863
|
|
|
820
864
|
Modal.prototype.show = function (_relatedTarget) {
|
|
@@ -827,6 +871,10 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
827
871
|
|
|
828
872
|
this.isShown = true
|
|
829
873
|
|
|
874
|
+
this.checkScrollbar()
|
|
875
|
+
this.$body.addClass('modal-open')
|
|
876
|
+
|
|
877
|
+
this.setScrollbar()
|
|
830
878
|
this.escape()
|
|
831
879
|
|
|
832
880
|
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
|
@@ -835,7 +883,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
835
883
|
var transition = $.support.transition && that.$element.hasClass('fade')
|
|
836
884
|
|
|
837
885
|
if (!that.$element.parent().length) {
|
|
838
|
-
that.$element.appendTo(
|
|
886
|
+
that.$element.appendTo(that.$body) // don't move modals dom position
|
|
839
887
|
}
|
|
840
888
|
|
|
841
889
|
that.$element
|
|
@@ -856,11 +904,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
856
904
|
|
|
857
905
|
transition ?
|
|
858
906
|
that.$element.find('.modal-dialog') // wait for modal to slide in
|
|
859
|
-
.one(
|
|
860
|
-
that.$element.focus
|
|
907
|
+
.one('bsTransitionEnd', function () {
|
|
908
|
+
that.$element.trigger('focus').trigger(e)
|
|
861
909
|
})
|
|
862
910
|
.emulateTransitionEnd(300) :
|
|
863
|
-
that.$element.focus
|
|
911
|
+
that.$element.trigger('focus').trigger(e)
|
|
864
912
|
})
|
|
865
913
|
}
|
|
866
914
|
|
|
@@ -875,6 +923,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
875
923
|
|
|
876
924
|
this.isShown = false
|
|
877
925
|
|
|
926
|
+
this.$body.removeClass('modal-open')
|
|
927
|
+
|
|
928
|
+
this.resetScrollbar()
|
|
878
929
|
this.escape()
|
|
879
930
|
|
|
880
931
|
$(document).off('focusin.bs.modal')
|
|
@@ -886,7 +937,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
886
937
|
|
|
887
938
|
$.support.transition && this.$element.hasClass('fade') ?
|
|
888
939
|
this.$element
|
|
889
|
-
.one(
|
|
940
|
+
.one('bsTransitionEnd', $.proxy(this.hideModal, this))
|
|
890
941
|
.emulateTransitionEnd(300) :
|
|
891
942
|
this.hideModal()
|
|
892
943
|
}
|
|
@@ -896,7 +947,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
896
947
|
.off('focusin.bs.modal') // guard against infinite focus loop
|
|
897
948
|
.on('focusin.bs.modal', $.proxy(function (e) {
|
|
898
949
|
if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
|
|
899
|
-
this.$element.focus
|
|
950
|
+
this.$element.trigger('focus')
|
|
900
951
|
}
|
|
901
952
|
}, this))
|
|
902
953
|
}
|
|
@@ -915,7 +966,6 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
915
966
|
var that = this
|
|
916
967
|
this.$element.hide()
|
|
917
968
|
this.backdrop(function () {
|
|
918
|
-
that.removeBackdrop()
|
|
919
969
|
that.$element.trigger('hidden.bs.modal')
|
|
920
970
|
})
|
|
921
971
|
}
|
|
@@ -926,13 +976,14 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
926
976
|
}
|
|
927
977
|
|
|
928
978
|
Modal.prototype.backdrop = function (callback) {
|
|
979
|
+
var that = this
|
|
929
980
|
var animate = this.$element.hasClass('fade') ? 'fade' : ''
|
|
930
981
|
|
|
931
982
|
if (this.isShown && this.options.backdrop) {
|
|
932
983
|
var doAnimate = $.support.transition && animate
|
|
933
984
|
|
|
934
985
|
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
|
935
|
-
.appendTo(
|
|
986
|
+
.appendTo(this.$body)
|
|
936
987
|
|
|
937
988
|
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
|
938
989
|
if (e.target !== e.currentTarget) return
|
|
@@ -949,31 +1000,56 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
949
1000
|
|
|
950
1001
|
doAnimate ?
|
|
951
1002
|
this.$backdrop
|
|
952
|
-
.one(
|
|
1003
|
+
.one('bsTransitionEnd', callback)
|
|
953
1004
|
.emulateTransitionEnd(150) :
|
|
954
1005
|
callback()
|
|
955
1006
|
|
|
956
1007
|
} else if (!this.isShown && this.$backdrop) {
|
|
957
1008
|
this.$backdrop.removeClass('in')
|
|
958
1009
|
|
|
1010
|
+
var callbackRemove = function () {
|
|
1011
|
+
that.removeBackdrop()
|
|
1012
|
+
callback && callback()
|
|
1013
|
+
}
|
|
959
1014
|
$.support.transition && this.$element.hasClass('fade') ?
|
|
960
1015
|
this.$backdrop
|
|
961
|
-
.one(
|
|
1016
|
+
.one('bsTransitionEnd', callbackRemove)
|
|
962
1017
|
.emulateTransitionEnd(150) :
|
|
963
|
-
|
|
1018
|
+
callbackRemove()
|
|
964
1019
|
|
|
965
1020
|
} else if (callback) {
|
|
966
1021
|
callback()
|
|
967
1022
|
}
|
|
968
1023
|
}
|
|
969
1024
|
|
|
1025
|
+
Modal.prototype.checkScrollbar = function () {
|
|
1026
|
+
if (document.body.clientWidth >= window.innerWidth) return
|
|
1027
|
+
this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
Modal.prototype.setScrollbar = function () {
|
|
1031
|
+
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
|
|
1032
|
+
if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
Modal.prototype.resetScrollbar = function () {
|
|
1036
|
+
this.$body.css('padding-right', '')
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
Modal.prototype.measureScrollbar = function () { // thx walsh
|
|
1040
|
+
var scrollDiv = document.createElement('div')
|
|
1041
|
+
scrollDiv.className = 'modal-scrollbar-measure'
|
|
1042
|
+
this.$body.append(scrollDiv)
|
|
1043
|
+
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
|
|
1044
|
+
this.$body[0].removeChild(scrollDiv)
|
|
1045
|
+
return scrollbarWidth
|
|
1046
|
+
}
|
|
1047
|
+
|
|
970
1048
|
|
|
971
1049
|
// MODAL PLUGIN DEFINITION
|
|
972
1050
|
// =======================
|
|
973
1051
|
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
$.fn.modal = function (option, _relatedTarget) {
|
|
1052
|
+
function Plugin(option, _relatedTarget) {
|
|
977
1053
|
return this.each(function () {
|
|
978
1054
|
var $this = $(this)
|
|
979
1055
|
var data = $this.data('bs.modal')
|
|
@@ -985,6 +1061,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
985
1061
|
})
|
|
986
1062
|
}
|
|
987
1063
|
|
|
1064
|
+
var old = $.fn.modal
|
|
1065
|
+
|
|
1066
|
+
$.fn.modal = Plugin
|
|
988
1067
|
$.fn.modal.Constructor = Modal
|
|
989
1068
|
|
|
990
1069
|
|
|
@@ -1003,26 +1082,24 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1003
1082
|
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
|
|
1004
1083
|
var $this = $(this)
|
|
1005
1084
|
var href = $this.attr('href')
|
|
1006
|
-
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
|
1085
|
+
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
|
|
1007
1086
|
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
|
1008
1087
|
|
|
1009
1088
|
if ($this.is('a')) e.preventDefault()
|
|
1010
1089
|
|
|
1011
|
-
$target
|
|
1012
|
-
.
|
|
1013
|
-
.one('
|
|
1014
|
-
$this.is(':visible') && $this.focus
|
|
1090
|
+
$target.one('show.bs.modal', function (showEvent) {
|
|
1091
|
+
if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
|
|
1092
|
+
$target.one('hidden.bs.modal', function () {
|
|
1093
|
+
$this.is(':visible') && $this.trigger('focus')
|
|
1015
1094
|
})
|
|
1095
|
+
})
|
|
1096
|
+
Plugin.call($target, option, this)
|
|
1016
1097
|
})
|
|
1017
1098
|
|
|
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
1099
|
}(jQuery);
|
|
1023
1100
|
|
|
1024
1101
|
/* ========================================================================
|
|
1025
|
-
* Bootstrap: tooltip.js v3.
|
|
1102
|
+
* Bootstrap: tooltip.js v3.2.0
|
|
1026
1103
|
* http://getbootstrap.com/javascript/#tooltip
|
|
1027
1104
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
|
1028
1105
|
* ========================================================================
|
|
@@ -1048,23 +1125,30 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1048
1125
|
this.init('tooltip', element, options)
|
|
1049
1126
|
}
|
|
1050
1127
|
|
|
1128
|
+
Tooltip.VERSION = '3.2.0'
|
|
1129
|
+
|
|
1051
1130
|
Tooltip.DEFAULTS = {
|
|
1052
1131
|
animation: true,
|
|
1053
1132
|
placement: 'top',
|
|
1054
1133
|
selector: false,
|
|
1055
|
-
template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
|
|
1134
|
+
template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
|
|
1056
1135
|
trigger: 'hover focus',
|
|
1057
1136
|
title: '',
|
|
1058
1137
|
delay: 0,
|
|
1059
1138
|
html: false,
|
|
1060
|
-
container: false
|
|
1139
|
+
container: false,
|
|
1140
|
+
viewport: {
|
|
1141
|
+
selector: 'body',
|
|
1142
|
+
padding: 0
|
|
1143
|
+
}
|
|
1061
1144
|
}
|
|
1062
1145
|
|
|
1063
1146
|
Tooltip.prototype.init = function (type, element, options) {
|
|
1064
|
-
this.enabled
|
|
1065
|
-
this.type
|
|
1066
|
-
this.$element
|
|
1067
|
-
this.options
|
|
1147
|
+
this.enabled = true
|
|
1148
|
+
this.type = type
|
|
1149
|
+
this.$element = $(element)
|
|
1150
|
+
this.options = this.getOptions(options)
|
|
1151
|
+
this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
|
|
1068
1152
|
|
|
1069
1153
|
var triggers = this.options.trigger.split(' ')
|
|
1070
1154
|
|
|
@@ -1117,7 +1201,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1117
1201
|
|
|
1118
1202
|
Tooltip.prototype.enter = function (obj) {
|
|
1119
1203
|
var self = obj instanceof this.constructor ?
|
|
1120
|
-
obj : $(obj.currentTarget)
|
|
1204
|
+
obj : $(obj.currentTarget).data('bs.' + this.type)
|
|
1205
|
+
|
|
1206
|
+
if (!self) {
|
|
1207
|
+
self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
|
|
1208
|
+
$(obj.currentTarget).data('bs.' + this.type, self)
|
|
1209
|
+
}
|
|
1121
1210
|
|
|
1122
1211
|
clearTimeout(self.timeout)
|
|
1123
1212
|
|
|
@@ -1132,7 +1221,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1132
1221
|
|
|
1133
1222
|
Tooltip.prototype.leave = function (obj) {
|
|
1134
1223
|
var self = obj instanceof this.constructor ?
|
|
1135
|
-
obj : $(obj.currentTarget)
|
|
1224
|
+
obj : $(obj.currentTarget).data('bs.' + this.type)
|
|
1225
|
+
|
|
1226
|
+
if (!self) {
|
|
1227
|
+
self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
|
|
1228
|
+
$(obj.currentTarget).data('bs.' + this.type, self)
|
|
1229
|
+
}
|
|
1136
1230
|
|
|
1137
1231
|
clearTimeout(self.timeout)
|
|
1138
1232
|
|
|
@@ -1151,12 +1245,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1151
1245
|
if (this.hasContent() && this.enabled) {
|
|
1152
1246
|
this.$element.trigger(e)
|
|
1153
1247
|
|
|
1154
|
-
|
|
1155
|
-
|
|
1248
|
+
var inDom = $.contains(document.documentElement, this.$element[0])
|
|
1249
|
+
if (e.isDefaultPrevented() || !inDom) return
|
|
1250
|
+
var that = this
|
|
1156
1251
|
|
|
1157
1252
|
var $tip = this.tip()
|
|
1158
1253
|
|
|
1254
|
+
var tipId = this.getUID(this.type)
|
|
1255
|
+
|
|
1159
1256
|
this.setContent()
|
|
1257
|
+
$tip.attr('id', tipId)
|
|
1258
|
+
this.$element.attr('aria-describedby', tipId)
|
|
1160
1259
|
|
|
1161
1260
|
if (this.options.animation) $tip.addClass('fade')
|
|
1162
1261
|
|
|
@@ -1172,6 +1271,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1172
1271
|
.detach()
|
|
1173
1272
|
.css({ top: 0, left: 0, display: 'block' })
|
|
1174
1273
|
.addClass(placement)
|
|
1274
|
+
.data('bs.' + this.type, this)
|
|
1175
1275
|
|
|
1176
1276
|
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
|
1177
1277
|
|
|
@@ -1180,18 +1280,14 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1180
1280
|
var actualHeight = $tip[0].offsetHeight
|
|
1181
1281
|
|
|
1182
1282
|
if (autoPlace) {
|
|
1183
|
-
var $parent = this.$element.parent()
|
|
1184
|
-
|
|
1185
1283
|
var orgPlacement = placement
|
|
1186
|
-
var
|
|
1187
|
-
var
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
placement == '
|
|
1193
|
-
placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
|
|
1194
|
-
placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
|
|
1284
|
+
var $parent = this.$element.parent()
|
|
1285
|
+
var parentDim = this.getPosition($parent)
|
|
1286
|
+
|
|
1287
|
+
placement = placement == 'bottom' && pos.top + pos.height + actualHeight - parentDim.scroll > parentDim.height ? 'top' :
|
|
1288
|
+
placement == 'top' && pos.top - parentDim.scroll - actualHeight < 0 ? 'bottom' :
|
|
1289
|
+
placement == 'right' && pos.right + actualWidth > parentDim.width ? 'left' :
|
|
1290
|
+
placement == 'left' && pos.left - actualWidth < parentDim.left ? 'right' :
|
|
1195
1291
|
placement
|
|
1196
1292
|
|
|
1197
1293
|
$tip
|
|
@@ -1202,22 +1298,21 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1202
1298
|
var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
|
|
1203
1299
|
|
|
1204
1300
|
this.applyPlacement(calculatedOffset, placement)
|
|
1205
|
-
this.hoverState = null
|
|
1206
1301
|
|
|
1207
|
-
var complete = function() {
|
|
1302
|
+
var complete = function () {
|
|
1208
1303
|
that.$element.trigger('shown.bs.' + that.type)
|
|
1304
|
+
that.hoverState = null
|
|
1209
1305
|
}
|
|
1210
1306
|
|
|
1211
1307
|
$.support.transition && this.$tip.hasClass('fade') ?
|
|
1212
1308
|
$tip
|
|
1213
|
-
.one(
|
|
1309
|
+
.one('bsTransitionEnd', complete)
|
|
1214
1310
|
.emulateTransitionEnd(150) :
|
|
1215
1311
|
complete()
|
|
1216
1312
|
}
|
|
1217
1313
|
}
|
|
1218
1314
|
|
|
1219
1315
|
Tooltip.prototype.applyPlacement = function (offset, placement) {
|
|
1220
|
-
var replace
|
|
1221
1316
|
var $tip = this.tip()
|
|
1222
1317
|
var width = $tip[0].offsetWidth
|
|
1223
1318
|
var height = $tip[0].offsetHeight
|
|
@@ -1251,29 +1346,20 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1251
1346
|
var actualHeight = $tip[0].offsetHeight
|
|
1252
1347
|
|
|
1253
1348
|
if (placement == 'top' && actualHeight != height) {
|
|
1254
|
-
replace = true
|
|
1255
1349
|
offset.top = offset.top + height - actualHeight
|
|
1256
1350
|
}
|
|
1257
1351
|
|
|
1258
|
-
|
|
1259
|
-
var delta = 0
|
|
1352
|
+
var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
|
|
1260
1353
|
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
offset.left = 0
|
|
1354
|
+
if (delta.left) offset.left += delta.left
|
|
1355
|
+
else offset.top += delta.top
|
|
1264
1356
|
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
actualHeight = $tip[0].offsetHeight
|
|
1269
|
-
}
|
|
1357
|
+
var arrowDelta = delta.left ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
|
|
1358
|
+
var arrowPosition = delta.left ? 'left' : 'top'
|
|
1359
|
+
var arrowOffsetPosition = delta.left ? 'offsetWidth' : 'offsetHeight'
|
|
1270
1360
|
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
this.replaceArrow(actualHeight - height, actualHeight, 'top')
|
|
1274
|
-
}
|
|
1275
|
-
|
|
1276
|
-
if (replace) $tip.offset(offset)
|
|
1361
|
+
$tip.offset(offset)
|
|
1362
|
+
this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], arrowPosition)
|
|
1277
1363
|
}
|
|
1278
1364
|
|
|
1279
1365
|
Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
|
|
@@ -1293,6 +1379,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1293
1379
|
var $tip = this.tip()
|
|
1294
1380
|
var e = $.Event('hide.bs.' + this.type)
|
|
1295
1381
|
|
|
1382
|
+
this.$element.removeAttr('aria-describedby')
|
|
1383
|
+
|
|
1296
1384
|
function complete() {
|
|
1297
1385
|
if (that.hoverState != 'in') $tip.detach()
|
|
1298
1386
|
that.$element.trigger('hidden.bs.' + that.type)
|
|
@@ -1306,7 +1394,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1306
1394
|
|
|
1307
1395
|
$.support.transition && this.$tip.hasClass('fade') ?
|
|
1308
1396
|
$tip
|
|
1309
|
-
.one(
|
|
1397
|
+
.one('bsTransitionEnd', complete)
|
|
1310
1398
|
.emulateTransitionEnd(150) :
|
|
1311
1399
|
complete()
|
|
1312
1400
|
|
|
@@ -1317,7 +1405,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1317
1405
|
|
|
1318
1406
|
Tooltip.prototype.fixTitle = function () {
|
|
1319
1407
|
var $e = this.$element
|
|
1320
|
-
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
|
|
1408
|
+
if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
|
|
1321
1409
|
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
|
1322
1410
|
}
|
|
1323
1411
|
}
|
|
@@ -1326,12 +1414,15 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1326
1414
|
return this.getTitle()
|
|
1327
1415
|
}
|
|
1328
1416
|
|
|
1329
|
-
Tooltip.prototype.getPosition = function () {
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1417
|
+
Tooltip.prototype.getPosition = function ($element) {
|
|
1418
|
+
$element = $element || this.$element
|
|
1419
|
+
var el = $element[0]
|
|
1420
|
+
var isBody = el.tagName == 'BODY'
|
|
1421
|
+
return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
|
|
1422
|
+
scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
|
|
1423
|
+
width: isBody ? $(window).width() : $element.outerWidth(),
|
|
1424
|
+
height: isBody ? $(window).height() : $element.outerHeight()
|
|
1425
|
+
}, isBody ? { top: 0, left: 0 } : $element.offset())
|
|
1335
1426
|
}
|
|
1336
1427
|
|
|
1337
1428
|
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
|
|
@@ -1339,6 +1430,35 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1339
1430
|
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
|
1340
1431
|
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
|
|
1341
1432
|
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
|
|
1433
|
+
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1436
|
+
Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
|
|
1437
|
+
var delta = { top: 0, left: 0 }
|
|
1438
|
+
if (!this.$viewport) return delta
|
|
1439
|
+
|
|
1440
|
+
var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
|
|
1441
|
+
var viewportDimensions = this.getPosition(this.$viewport)
|
|
1442
|
+
|
|
1443
|
+
if (/right|left/.test(placement)) {
|
|
1444
|
+
var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
|
|
1445
|
+
var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
|
|
1446
|
+
if (topEdgeOffset < viewportDimensions.top) { // top overflow
|
|
1447
|
+
delta.top = viewportDimensions.top - topEdgeOffset
|
|
1448
|
+
} else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
|
|
1449
|
+
delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
|
|
1450
|
+
}
|
|
1451
|
+
} else {
|
|
1452
|
+
var leftEdgeOffset = pos.left - viewportPadding
|
|
1453
|
+
var rightEdgeOffset = pos.left + viewportPadding + actualWidth
|
|
1454
|
+
if (leftEdgeOffset < viewportDimensions.left) { // left overflow
|
|
1455
|
+
delta.left = viewportDimensions.left - leftEdgeOffset
|
|
1456
|
+
} else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
|
|
1457
|
+
delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
|
|
1458
|
+
}
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
return delta
|
|
1342
1462
|
}
|
|
1343
1463
|
|
|
1344
1464
|
Tooltip.prototype.getTitle = function () {
|
|
@@ -1352,12 +1472,18 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1352
1472
|
return title
|
|
1353
1473
|
}
|
|
1354
1474
|
|
|
1475
|
+
Tooltip.prototype.getUID = function (prefix) {
|
|
1476
|
+
do prefix += ~~(Math.random() * 1000000)
|
|
1477
|
+
while (document.getElementById(prefix))
|
|
1478
|
+
return prefix
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1355
1481
|
Tooltip.prototype.tip = function () {
|
|
1356
|
-
return this.$tip = this.$tip || $(this.options.template)
|
|
1482
|
+
return (this.$tip = this.$tip || $(this.options.template))
|
|
1357
1483
|
}
|
|
1358
1484
|
|
|
1359
1485
|
Tooltip.prototype.arrow = function () {
|
|
1360
|
-
return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
|
|
1486
|
+
return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
|
|
1361
1487
|
}
|
|
1362
1488
|
|
|
1363
1489
|
Tooltip.prototype.validate = function () {
|
|
@@ -1381,7 +1507,15 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1381
1507
|
}
|
|
1382
1508
|
|
|
1383
1509
|
Tooltip.prototype.toggle = function (e) {
|
|
1384
|
-
var self =
|
|
1510
|
+
var self = this
|
|
1511
|
+
if (e) {
|
|
1512
|
+
self = $(e.currentTarget).data('bs.' + this.type)
|
|
1513
|
+
if (!self) {
|
|
1514
|
+
self = new this.constructor(e.currentTarget, this.getDelegateOptions())
|
|
1515
|
+
$(e.currentTarget).data('bs.' + this.type, self)
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1385
1519
|
self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
|
|
1386
1520
|
}
|
|
1387
1521
|
|
|
@@ -1394,9 +1528,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1394
1528
|
// TOOLTIP PLUGIN DEFINITION
|
|
1395
1529
|
// =========================
|
|
1396
1530
|
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
$.fn.tooltip = function (option) {
|
|
1531
|
+
function Plugin(option) {
|
|
1400
1532
|
return this.each(function () {
|
|
1401
1533
|
var $this = $(this)
|
|
1402
1534
|
var data = $this.data('bs.tooltip')
|
|
@@ -1408,6 +1540,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1408
1540
|
})
|
|
1409
1541
|
}
|
|
1410
1542
|
|
|
1543
|
+
var old = $.fn.tooltip
|
|
1544
|
+
|
|
1545
|
+
$.fn.tooltip = Plugin
|
|
1411
1546
|
$.fn.tooltip.Constructor = Tooltip
|
|
1412
1547
|
|
|
1413
1548
|
|
|
@@ -1422,7 +1557,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1422
1557
|
}(jQuery);
|
|
1423
1558
|
|
|
1424
1559
|
/* ========================================================================
|
|
1425
|
-
* Bootstrap: popover.js v3.
|
|
1560
|
+
* Bootstrap: popover.js v3.2.0
|
|
1426
1561
|
* http://getbootstrap.com/javascript/#popovers
|
|
1427
1562
|
* ========================================================================
|
|
1428
1563
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -1442,11 +1577,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1442
1577
|
|
|
1443
1578
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
|
1444
1579
|
|
|
1580
|
+
Popover.VERSION = '3.2.0'
|
|
1581
|
+
|
|
1445
1582
|
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
|
1446
1583
|
placement: 'right',
|
|
1447
1584
|
trigger: 'click',
|
|
1448
1585
|
content: '',
|
|
1449
|
-
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
|
1586
|
+
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
|
1450
1587
|
})
|
|
1451
1588
|
|
|
1452
1589
|
|
|
@@ -1467,7 +1604,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1467
1604
|
var content = this.getContent()
|
|
1468
1605
|
|
|
1469
1606
|
$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
|
|
1607
|
+
$tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events
|
|
1471
1608
|
this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
|
|
1472
1609
|
](content)
|
|
1473
1610
|
|
|
@@ -1493,7 +1630,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1493
1630
|
}
|
|
1494
1631
|
|
|
1495
1632
|
Popover.prototype.arrow = function () {
|
|
1496
|
-
return this.$arrow = this.$arrow || this.tip().find('.arrow')
|
|
1633
|
+
return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
|
|
1497
1634
|
}
|
|
1498
1635
|
|
|
1499
1636
|
Popover.prototype.tip = function () {
|
|
@@ -1505,9 +1642,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1505
1642
|
// POPOVER PLUGIN DEFINITION
|
|
1506
1643
|
// =========================
|
|
1507
1644
|
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
$.fn.popover = function (option) {
|
|
1645
|
+
function Plugin(option) {
|
|
1511
1646
|
return this.each(function () {
|
|
1512
1647
|
var $this = $(this)
|
|
1513
1648
|
var data = $this.data('bs.popover')
|
|
@@ -1519,6 +1654,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1519
1654
|
})
|
|
1520
1655
|
}
|
|
1521
1656
|
|
|
1657
|
+
var old = $.fn.popover
|
|
1658
|
+
|
|
1659
|
+
$.fn.popover = Plugin
|
|
1522
1660
|
$.fn.popover.Constructor = Popover
|
|
1523
1661
|
|
|
1524
1662
|
|
|
@@ -1533,7 +1671,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1533
1671
|
}(jQuery);
|
|
1534
1672
|
|
|
1535
1673
|
/* ========================================================================
|
|
1536
|
-
* Bootstrap: scrollspy.js v3.
|
|
1674
|
+
* Bootstrap: scrollspy.js v3.2.0
|
|
1537
1675
|
* http://getbootstrap.com/javascript/#scrollspy
|
|
1538
1676
|
* ========================================================================
|
|
1539
1677
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -1548,36 +1686,48 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1548
1686
|
// ==========================
|
|
1549
1687
|
|
|
1550
1688
|
function ScrollSpy(element, options) {
|
|
1551
|
-
var href
|
|
1552
1689
|
var process = $.proxy(this.process, this)
|
|
1553
1690
|
|
|
1554
|
-
this.$element = $(element).is('body') ? $(window) : $(element)
|
|
1555
1691
|
this.$body = $('body')
|
|
1556
|
-
this.$scrollElement =
|
|
1692
|
+
this.$scrollElement = $(element).is('body') ? $(window) : $(element)
|
|
1557
1693
|
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
|
|
1558
|
-
this.selector = (this.options.target
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
this.offsets = $([])
|
|
1562
|
-
this.targets = $([])
|
|
1694
|
+
this.selector = (this.options.target || '') + ' .nav li > a'
|
|
1695
|
+
this.offsets = []
|
|
1696
|
+
this.targets = []
|
|
1563
1697
|
this.activeTarget = null
|
|
1698
|
+
this.scrollHeight = 0
|
|
1564
1699
|
|
|
1700
|
+
this.$scrollElement.on('scroll.bs.scrollspy', process)
|
|
1565
1701
|
this.refresh()
|
|
1566
1702
|
this.process()
|
|
1567
1703
|
}
|
|
1568
1704
|
|
|
1705
|
+
ScrollSpy.VERSION = '3.2.0'
|
|
1706
|
+
|
|
1569
1707
|
ScrollSpy.DEFAULTS = {
|
|
1570
1708
|
offset: 10
|
|
1571
1709
|
}
|
|
1572
1710
|
|
|
1711
|
+
ScrollSpy.prototype.getScrollHeight = function () {
|
|
1712
|
+
return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1573
1715
|
ScrollSpy.prototype.refresh = function () {
|
|
1574
|
-
var offsetMethod =
|
|
1716
|
+
var offsetMethod = 'offset'
|
|
1717
|
+
var offsetBase = 0
|
|
1575
1718
|
|
|
1576
|
-
|
|
1577
|
-
|
|
1719
|
+
if (!$.isWindow(this.$scrollElement[0])) {
|
|
1720
|
+
offsetMethod = 'position'
|
|
1721
|
+
offsetBase = this.$scrollElement.scrollTop()
|
|
1722
|
+
}
|
|
1723
|
+
|
|
1724
|
+
this.offsets = []
|
|
1725
|
+
this.targets = []
|
|
1726
|
+
this.scrollHeight = this.getScrollHeight()
|
|
1578
1727
|
|
|
1579
1728
|
var self = this
|
|
1580
|
-
|
|
1729
|
+
|
|
1730
|
+
this.$body
|
|
1581
1731
|
.find(this.selector)
|
|
1582
1732
|
.map(function () {
|
|
1583
1733
|
var $el = $(this)
|
|
@@ -1587,7 +1737,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1587
1737
|
return ($href
|
|
1588
1738
|
&& $href.length
|
|
1589
1739
|
&& $href.is(':visible')
|
|
1590
|
-
&& [[
|
|
1740
|
+
&& [[$href[offsetMethod]().top + offsetBase, href]]) || null
|
|
1591
1741
|
})
|
|
1592
1742
|
.sort(function (a, b) { return a[0] - b[0] })
|
|
1593
1743
|
.each(function () {
|
|
@@ -1598,15 +1748,19 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1598
1748
|
|
|
1599
1749
|
ScrollSpy.prototype.process = function () {
|
|
1600
1750
|
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
|
|
1601
|
-
var scrollHeight = this
|
|
1602
|
-
var maxScroll = scrollHeight - this.$scrollElement.height()
|
|
1751
|
+
var scrollHeight = this.getScrollHeight()
|
|
1752
|
+
var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
|
|
1603
1753
|
var offsets = this.offsets
|
|
1604
1754
|
var targets = this.targets
|
|
1605
1755
|
var activeTarget = this.activeTarget
|
|
1606
1756
|
var i
|
|
1607
1757
|
|
|
1758
|
+
if (this.scrollHeight != scrollHeight) {
|
|
1759
|
+
this.refresh()
|
|
1760
|
+
}
|
|
1761
|
+
|
|
1608
1762
|
if (scrollTop >= maxScroll) {
|
|
1609
|
-
return activeTarget != (i = targets.
|
|
1763
|
+
return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
|
|
1610
1764
|
}
|
|
1611
1765
|
|
|
1612
1766
|
if (activeTarget && scrollTop <= offsets[0]) {
|
|
@@ -1617,7 +1771,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1617
1771
|
activeTarget != targets[i]
|
|
1618
1772
|
&& scrollTop >= offsets[i]
|
|
1619
1773
|
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
|
|
1620
|
-
&& this.activate(
|
|
1774
|
+
&& this.activate(targets[i])
|
|
1621
1775
|
}
|
|
1622
1776
|
}
|
|
1623
1777
|
|
|
@@ -1649,9 +1803,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1649
1803
|
// SCROLLSPY PLUGIN DEFINITION
|
|
1650
1804
|
// ===========================
|
|
1651
1805
|
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
$.fn.scrollspy = function (option) {
|
|
1806
|
+
function Plugin(option) {
|
|
1655
1807
|
return this.each(function () {
|
|
1656
1808
|
var $this = $(this)
|
|
1657
1809
|
var data = $this.data('bs.scrollspy')
|
|
@@ -1662,6 +1814,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1662
1814
|
})
|
|
1663
1815
|
}
|
|
1664
1816
|
|
|
1817
|
+
var old = $.fn.scrollspy
|
|
1818
|
+
|
|
1819
|
+
$.fn.scrollspy = Plugin
|
|
1665
1820
|
$.fn.scrollspy.Constructor = ScrollSpy
|
|
1666
1821
|
|
|
1667
1822
|
|
|
@@ -1677,17 +1832,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1677
1832
|
// SCROLLSPY DATA-API
|
|
1678
1833
|
// ==================
|
|
1679
1834
|
|
|
1680
|
-
$(window).on('load', function () {
|
|
1835
|
+
$(window).on('load.bs.scrollspy.data-api', function () {
|
|
1681
1836
|
$('[data-spy="scroll"]').each(function () {
|
|
1682
1837
|
var $spy = $(this)
|
|
1683
|
-
|
|
1838
|
+
Plugin.call($spy, $spy.data())
|
|
1684
1839
|
})
|
|
1685
1840
|
})
|
|
1686
1841
|
|
|
1687
1842
|
}(jQuery);
|
|
1688
1843
|
|
|
1689
1844
|
/* ========================================================================
|
|
1690
|
-
* Bootstrap: tab.js v3.
|
|
1845
|
+
* Bootstrap: tab.js v3.2.0
|
|
1691
1846
|
* http://getbootstrap.com/javascript/#tabs
|
|
1692
1847
|
* ========================================================================
|
|
1693
1848
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -1705,6 +1860,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1705
1860
|
this.element = $(element)
|
|
1706
1861
|
}
|
|
1707
1862
|
|
|
1863
|
+
Tab.VERSION = '3.2.0'
|
|
1864
|
+
|
|
1708
1865
|
Tab.prototype.show = function () {
|
|
1709
1866
|
var $this = this.element
|
|
1710
1867
|
var $ul = $this.closest('ul:not(.dropdown-menu)')
|
|
@@ -1712,7 +1869,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1712
1869
|
|
|
1713
1870
|
if (!selector) {
|
|
1714
1871
|
selector = $this.attr('href')
|
|
1715
|
-
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
1872
|
+
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
|
1716
1873
|
}
|
|
1717
1874
|
|
|
1718
1875
|
if ($this.parent('li').hasClass('active')) return
|
|
@@ -1728,7 +1885,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1728
1885
|
|
|
1729
1886
|
var $target = $(selector)
|
|
1730
1887
|
|
|
1731
|
-
this.activate($this.
|
|
1888
|
+
this.activate($this.closest('li'), $ul)
|
|
1732
1889
|
this.activate($target, $target.parent(), function () {
|
|
1733
1890
|
$this.trigger({
|
|
1734
1891
|
type: 'shown.bs.tab',
|
|
@@ -1767,7 +1924,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1767
1924
|
|
|
1768
1925
|
transition ?
|
|
1769
1926
|
$active
|
|
1770
|
-
.one(
|
|
1927
|
+
.one('bsTransitionEnd', next)
|
|
1771
1928
|
.emulateTransitionEnd(150) :
|
|
1772
1929
|
next()
|
|
1773
1930
|
|
|
@@ -1778,9 +1935,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1778
1935
|
// TAB PLUGIN DEFINITION
|
|
1779
1936
|
// =====================
|
|
1780
1937
|
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
$.fn.tab = function ( option ) {
|
|
1938
|
+
function Plugin(option) {
|
|
1784
1939
|
return this.each(function () {
|
|
1785
1940
|
var $this = $(this)
|
|
1786
1941
|
var data = $this.data('bs.tab')
|
|
@@ -1790,6 +1945,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1790
1945
|
})
|
|
1791
1946
|
}
|
|
1792
1947
|
|
|
1948
|
+
var old = $.fn.tab
|
|
1949
|
+
|
|
1950
|
+
$.fn.tab = Plugin
|
|
1793
1951
|
$.fn.tab.Constructor = Tab
|
|
1794
1952
|
|
|
1795
1953
|
|
|
@@ -1807,13 +1965,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1807
1965
|
|
|
1808
1966
|
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
|
1809
1967
|
e.preventDefault()
|
|
1810
|
-
$(this)
|
|
1968
|
+
Plugin.call($(this), 'show')
|
|
1811
1969
|
})
|
|
1812
1970
|
|
|
1813
1971
|
}(jQuery);
|
|
1814
1972
|
|
|
1815
1973
|
/* ========================================================================
|
|
1816
|
-
* Bootstrap: affix.js v3.
|
|
1974
|
+
* Bootstrap: affix.js v3.2.0
|
|
1817
1975
|
* http://getbootstrap.com/javascript/#affix
|
|
1818
1976
|
* ========================================================================
|
|
1819
1977
|
* Copyright 2011-2014 Twitter, Inc.
|
|
@@ -1829,7 +1987,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1829
1987
|
|
|
1830
1988
|
var Affix = function (element, options) {
|
|
1831
1989
|
this.options = $.extend({}, Affix.DEFAULTS, options)
|
|
1832
|
-
|
|
1990
|
+
|
|
1991
|
+
this.$target = $(this.options.target)
|
|
1833
1992
|
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
|
|
1834
1993
|
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
|
|
1835
1994
|
|
|
@@ -1841,16 +2000,19 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1841
2000
|
this.checkPosition()
|
|
1842
2001
|
}
|
|
1843
2002
|
|
|
1844
|
-
Affix.
|
|
2003
|
+
Affix.VERSION = '3.2.0'
|
|
2004
|
+
|
|
2005
|
+
Affix.RESET = 'affix affix-top affix-bottom'
|
|
1845
2006
|
|
|
1846
2007
|
Affix.DEFAULTS = {
|
|
1847
|
-
offset: 0
|
|
2008
|
+
offset: 0,
|
|
2009
|
+
target: window
|
|
1848
2010
|
}
|
|
1849
2011
|
|
|
1850
2012
|
Affix.prototype.getPinnedOffset = function () {
|
|
1851
2013
|
if (this.pinnedOffset) return this.pinnedOffset
|
|
1852
2014
|
this.$element.removeClass(Affix.RESET).addClass('affix')
|
|
1853
|
-
var scrollTop = this.$
|
|
2015
|
+
var scrollTop = this.$target.scrollTop()
|
|
1854
2016
|
var position = this.$element.offset()
|
|
1855
2017
|
return (this.pinnedOffset = position.top - scrollTop)
|
|
1856
2018
|
}
|
|
@@ -1863,14 +2025,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1863
2025
|
if (!this.$element.is(':visible')) return
|
|
1864
2026
|
|
|
1865
2027
|
var scrollHeight = $(document).height()
|
|
1866
|
-
var scrollTop = this.$
|
|
2028
|
+
var scrollTop = this.$target.scrollTop()
|
|
1867
2029
|
var position = this.$element.offset()
|
|
1868
2030
|
var offset = this.options.offset
|
|
1869
2031
|
var offsetTop = offset.top
|
|
1870
2032
|
var offsetBottom = offset.bottom
|
|
1871
2033
|
|
|
1872
|
-
if (this.affixed == 'top') position.top += scrollTop
|
|
1873
|
-
|
|
1874
2034
|
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
|
1875
2035
|
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
|
|
1876
2036
|
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
|
|
@@ -1880,7 +2040,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1880
2040
|
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
|
|
1881
2041
|
|
|
1882
2042
|
if (this.affixed === affix) return
|
|
1883
|
-
if (this.unpin) this.$element.css('top', '')
|
|
2043
|
+
if (this.unpin != null) this.$element.css('top', '')
|
|
1884
2044
|
|
|
1885
2045
|
var affixType = 'affix' + (affix ? '-' + affix : '')
|
|
1886
2046
|
var e = $.Event(affixType + '.bs.affix')
|
|
@@ -1898,7 +2058,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1898
2058
|
.trigger($.Event(affixType.replace('affix', 'affixed')))
|
|
1899
2059
|
|
|
1900
2060
|
if (affix == 'bottom') {
|
|
1901
|
-
this.$element.offset({
|
|
2061
|
+
this.$element.offset({
|
|
2062
|
+
top: scrollHeight - this.$element.height() - offsetBottom
|
|
2063
|
+
})
|
|
1902
2064
|
}
|
|
1903
2065
|
}
|
|
1904
2066
|
|
|
@@ -1906,9 +2068,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1906
2068
|
// AFFIX PLUGIN DEFINITION
|
|
1907
2069
|
// =======================
|
|
1908
2070
|
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
$.fn.affix = function (option) {
|
|
2071
|
+
function Plugin(option) {
|
|
1912
2072
|
return this.each(function () {
|
|
1913
2073
|
var $this = $(this)
|
|
1914
2074
|
var data = $this.data('bs.affix')
|
|
@@ -1919,6 +2079,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1919
2079
|
})
|
|
1920
2080
|
}
|
|
1921
2081
|
|
|
2082
|
+
var old = $.fn.affix
|
|
2083
|
+
|
|
2084
|
+
$.fn.affix = Plugin
|
|
1922
2085
|
$.fn.affix.Constructor = Affix
|
|
1923
2086
|
|
|
1924
2087
|
|
|
@@ -1944,7 +2107,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|
|
1944
2107
|
if (data.offsetBottom) data.offset.bottom = data.offsetBottom
|
|
1945
2108
|
if (data.offsetTop) data.offset.top = data.offsetTop
|
|
1946
2109
|
|
|
1947
|
-
$spy
|
|
2110
|
+
Plugin.call($spy, data)
|
|
1948
2111
|
})
|
|
1949
2112
|
})
|
|
1950
2113
|
|