11/*!
2- * Bootstrap v3.3.6 (http://getbootstrap.com)
3- * Copyright 2011-2015 Twitter, Inc.
2+ * Bootstrap v3.3.7 (http://getbootstrap.com)
3+ * Copyright 2011-2016 Twitter, Inc.
44 * Licensed under the MIT license
55 */
66
@@ -11,16 +11,16 @@ if (typeof jQuery === 'undefined') {
1111+ function ( $ ) {
1212 'use strict' ;
1313 var version = $ . fn . jquery . split ( ' ' ) [ 0 ] . split ( '.' )
14- if ( ( version [ 0 ] < 2 && version [ 1 ] < 9 ) || ( version [ 0 ] == 1 && version [ 1 ] == 9 && version [ 2 ] < 1 ) || ( version [ 0 ] > 2 ) ) {
15- throw new Error ( 'Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3 ' )
14+ if ( ( version [ 0 ] < 2 && version [ 1 ] < 9 ) || ( version [ 0 ] == 1 && version [ 1 ] == 9 && version [ 2 ] < 1 ) || ( version [ 0 ] > 3 ) ) {
15+ throw new Error ( 'Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4 ' )
1616 }
1717} ( jQuery ) ;
1818
1919/* ========================================================================
20- * Bootstrap: transition.js v3.3.6
20+ * Bootstrap: transition.js v3.3.7
2121 * http://getbootstrap.com/javascript/#transitions
2222 * ========================================================================
23- * Copyright 2011-2015 Twitter, Inc.
23+ * Copyright 2011-2016 Twitter, Inc.
2424 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2525 * ======================================================================== */
2626
@@ -77,10 +77,10 @@ if (typeof jQuery === 'undefined') {
7777} ( jQuery ) ;
7878
7979/* ========================================================================
80- * Bootstrap: alert.js v3.3.6
80+ * Bootstrap: alert.js v3.3.7
8181 * http://getbootstrap.com/javascript/#alerts
8282 * ========================================================================
83- * Copyright 2011-2015 Twitter, Inc.
83+ * Copyright 2011-2016 Twitter, Inc.
8484 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
8585 * ======================================================================== */
8686
@@ -96,7 +96,7 @@ if (typeof jQuery === 'undefined') {
9696 $ ( el ) . on ( 'click' , dismiss , this . close )
9797 }
9898
99- Alert . VERSION = '3.3.6 '
99+ Alert . VERSION = '3.3.7 '
100100
101101 Alert . TRANSITION_DURATION = 150
102102
@@ -109,7 +109,7 @@ if (typeof jQuery === 'undefined') {
109109 selector = selector && selector . replace ( / .* (? = # [ ^ \s ] * $ ) / , '' ) // strip for ie7
110110 }
111111
112- var $parent = $ ( selector )
112+ var $parent = $ ( selector === '#' ? [ ] : selector )
113113
114114 if ( e ) e . preventDefault ( )
115115
@@ -172,10 +172,10 @@ if (typeof jQuery === 'undefined') {
172172} ( jQuery ) ;
173173
174174/* ========================================================================
175- * Bootstrap: button.js v3.3.6
175+ * Bootstrap: button.js v3.3.7
176176 * http://getbootstrap.com/javascript/#buttons
177177 * ========================================================================
178- * Copyright 2011-2015 Twitter, Inc.
178+ * Copyright 2011-2016 Twitter, Inc.
179179 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
180180 * ======================================================================== */
181181
@@ -192,7 +192,7 @@ if (typeof jQuery === 'undefined') {
192192 this . isLoading = false
193193 }
194194
195- Button . VERSION = '3.3.6 '
195+ Button . VERSION = '3.3.7 '
196196
197197 Button . DEFAULTS = {
198198 loadingText : 'loading...'
@@ -214,10 +214,10 @@ if (typeof jQuery === 'undefined') {
214214
215215 if ( state == 'loadingText' ) {
216216 this . isLoading = true
217- $el . addClass ( d ) . attr ( d , d )
217+ $el . addClass ( d ) . attr ( d , d ) . prop ( d , true )
218218 } else if ( this . isLoading ) {
219219 this . isLoading = false
220- $el . removeClass ( d ) . removeAttr ( d )
220+ $el . removeClass ( d ) . removeAttr ( d ) . prop ( d , false )
221221 }
222222 } , this ) , 0 )
223223 }
@@ -281,10 +281,15 @@ if (typeof jQuery === 'undefined') {
281281
282282 $ ( document )
283283 . on ( 'click.bs.button.data-api' , '[data-toggle^="button"]' , function ( e ) {
284- var $btn = $ ( e . target )
285- if ( ! $btn . hasClass ( 'btn' ) ) $btn = $btn . closest ( '.btn' )
284+ var $btn = $ ( e . target ) . closest ( '.btn' )
286285 Plugin . call ( $btn , 'toggle' )
287- if ( ! ( $ ( e . target ) . is ( 'input[type="radio"]' ) || $ ( e . target ) . is ( 'input[type="checkbox"]' ) ) ) e . preventDefault ( )
286+ if ( ! ( $ ( e . target ) . is ( 'input[type="radio"], input[type="checkbox"]' ) ) ) {
287+ // Prevent double click on radios, and the double selections (so cancellation) on checkboxes
288+ e . preventDefault ( )
289+ // The target component still receive the focus
290+ if ( $btn . is ( 'input,button' ) ) $btn . trigger ( 'focus' )
291+ else $btn . find ( 'input:visible,button:visible' ) . first ( ) . trigger ( 'focus' )
292+ }
288293 } )
289294 . on ( 'focus.bs.button.data-api blur.bs.button.data-api' , '[data-toggle^="button"]' , function ( e ) {
290295 $ ( e . target ) . closest ( '.btn' ) . toggleClass ( 'focus' , / ^ f o c u s ( i n ) ? $ / . test ( e . type ) )
@@ -293,10 +298,10 @@ if (typeof jQuery === 'undefined') {
293298} ( jQuery ) ;
294299
295300/* ========================================================================
296- * Bootstrap: carousel.js v3.3.6
301+ * Bootstrap: carousel.js v3.3.7
297302 * http://getbootstrap.com/javascript/#carousel
298303 * ========================================================================
299- * Copyright 2011-2015 Twitter, Inc.
304+ * Copyright 2011-2016 Twitter, Inc.
300305 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
301306 * ======================================================================== */
302307
@@ -324,7 +329,7 @@ if (typeof jQuery === 'undefined') {
324329 . on ( 'mouseleave.bs.carousel' , $ . proxy ( this . cycle , this ) )
325330 }
326331
327- Carousel . VERSION = '3.3.6 '
332+ Carousel . VERSION = '3.3.7 '
328333
329334 Carousel . TRANSITION_DURATION = 600
330335
@@ -531,13 +536,14 @@ if (typeof jQuery === 'undefined') {
531536} ( jQuery ) ;
532537
533538/* ========================================================================
534- * Bootstrap: collapse.js v3.3.6
539+ * Bootstrap: collapse.js v3.3.7
535540 * http://getbootstrap.com/javascript/#collapse
536541 * ========================================================================
537- * Copyright 2011-2015 Twitter, Inc.
542+ * Copyright 2011-2016 Twitter, Inc.
538543 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
539544 * ======================================================================== */
540545
546+ /* jshint latedef: false */
541547
542548+ function ( $ ) {
543549 'use strict' ;
@@ -561,7 +567,7 @@ if (typeof jQuery === 'undefined') {
561567 if ( this . options . toggle ) this . toggle ( )
562568 }
563569
564- Collapse . VERSION = '3.3.6 '
570+ Collapse . VERSION = '3.3.7 '
565571
566572 Collapse . TRANSITION_DURATION = 350
567573
@@ -743,10 +749,10 @@ if (typeof jQuery === 'undefined') {
743749} ( jQuery ) ;
744750
745751/* ========================================================================
746- * Bootstrap: dropdown.js v3.3.6
752+ * Bootstrap: dropdown.js v3.3.7
747753 * http://getbootstrap.com/javascript/#dropdowns
748754 * ========================================================================
749- * Copyright 2011-2015 Twitter, Inc.
755+ * Copyright 2011-2016 Twitter, Inc.
750756 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
751757 * ======================================================================== */
752758
@@ -763,7 +769,7 @@ if (typeof jQuery === 'undefined') {
763769 $ ( element ) . on ( 'click.bs.dropdown' , this . toggle )
764770 }
765771
766- Dropdown . VERSION = '3.3.6 '
772+ Dropdown . VERSION = '3.3.7 '
767773
768774 function getParent ( $this ) {
769775 var selector = $this . attr ( 'data-target' )
@@ -909,10 +915,10 @@ if (typeof jQuery === 'undefined') {
909915} ( jQuery ) ;
910916
911917/* ========================================================================
912- * Bootstrap: modal.js v3.3.6
918+ * Bootstrap: modal.js v3.3.7
913919 * http://getbootstrap.com/javascript/#modals
914920 * ========================================================================
915- * Copyright 2011-2015 Twitter, Inc.
921+ * Copyright 2011-2016 Twitter, Inc.
916922 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
917923 * ======================================================================== */
918924
@@ -943,7 +949,7 @@ if (typeof jQuery === 'undefined') {
943949 }
944950 }
945951
946- Modal . VERSION = '3.3.6 '
952+ Modal . VERSION = '3.3.7 '
947953
948954 Modal . TRANSITION_DURATION = 300
949955 Modal . BACKDROP_TRANSITION_DURATION = 150
@@ -1050,7 +1056,9 @@ if (typeof jQuery === 'undefined') {
10501056 $ ( document )
10511057 . off ( 'focusin.bs.modal' ) // guard against infinite focus loop
10521058 . on ( 'focusin.bs.modal' , $ . proxy ( function ( e ) {
1053- if ( this . $element [ 0 ] !== e . target && ! this . $element . has ( e . target ) . length ) {
1059+ if ( document !== e . target &&
1060+ this . $element [ 0 ] !== e . target &&
1061+ ! this . $element . has ( e . target ) . length ) {
10541062 this . $element . trigger ( 'focus' )
10551063 }
10561064 } , this ) )
@@ -1247,11 +1255,11 @@ if (typeof jQuery === 'undefined') {
12471255} ( jQuery ) ;
12481256
12491257/* ========================================================================
1250- * Bootstrap: tooltip.js v3.3.6
1258+ * Bootstrap: tooltip.js v3.3.7
12511259 * http://getbootstrap.com/javascript/#tooltip
12521260 * Inspired by the original jQuery.tipsy by Jason Frame
12531261 * ========================================================================
1254- * Copyright 2011-2015 Twitter, Inc.
1262+ * Copyright 2011-2016 Twitter, Inc.
12551263 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
12561264 * ======================================================================== */
12571265
@@ -1274,7 +1282,7 @@ if (typeof jQuery === 'undefined') {
12741282 this . init ( 'tooltip' , element , options )
12751283 }
12761284
1277- Tooltip . VERSION = '3.3.6 '
1285+ Tooltip . VERSION = '3.3.7 '
12781286
12791287 Tooltip . TRANSITION_DURATION = 150
12801288
@@ -1565,9 +1573,11 @@ if (typeof jQuery === 'undefined') {
15651573
15661574 function complete ( ) {
15671575 if ( that . hoverState != 'in' ) $tip . detach ( )
1568- that . $element
1569- . removeAttr ( 'aria-describedby' )
1570- . trigger ( 'hidden.bs.' + that . type )
1576+ if ( that . $element ) { // TODO: Check whether guarding this code with this `if` is really necessary.
1577+ that . $element
1578+ . removeAttr ( 'aria-describedby' )
1579+ . trigger ( 'hidden.bs.' + that . type )
1580+ }
15711581 callback && callback ( )
15721582 }
15731583
@@ -1610,7 +1620,10 @@ if (typeof jQuery === 'undefined') {
16101620 // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
16111621 elRect = $ . extend ( { } , elRect , { width : elRect . right - elRect . left , height : elRect . bottom - elRect . top } )
16121622 }
1613- var elOffset = isBody ? { top : 0 , left : 0 } : $element . offset ( )
1623+ var isSvg = window . SVGElement && el instanceof window . SVGElement
1624+ // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.
1625+ // See https://github.com/twbs/bootstrap/issues/20280
1626+ var elOffset = isBody ? { top : 0 , left : 0 } : ( isSvg ? null : $element . offset ( ) )
16141627 var scroll = { scroll : isBody ? document . documentElement . scrollTop || document . body . scrollTop : $element . scrollTop ( ) }
16151628 var outerDims = isBody ? { width : $ ( window ) . width ( ) , height : $ ( window ) . height ( ) } : null
16161629
@@ -1726,6 +1739,7 @@ if (typeof jQuery === 'undefined') {
17261739 that . $tip = null
17271740 that . $arrow = null
17281741 that . $viewport = null
1742+ that . $element = null
17291743 } )
17301744 }
17311745
@@ -1762,10 +1776,10 @@ if (typeof jQuery === 'undefined') {
17621776} ( jQuery ) ;
17631777
17641778/* ========================================================================
1765- * Bootstrap: popover.js v3.3.6
1779+ * Bootstrap: popover.js v3.3.7
17661780 * http://getbootstrap.com/javascript/#popovers
17671781 * ========================================================================
1768- * Copyright 2011-2015 Twitter, Inc.
1782+ * Copyright 2011-2016 Twitter, Inc.
17691783 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
17701784 * ======================================================================== */
17711785
@@ -1782,7 +1796,7 @@ if (typeof jQuery === 'undefined') {
17821796
17831797 if ( ! $ . fn . tooltip ) throw new Error ( 'Popover requires tooltip.js' )
17841798
1785- Popover . VERSION = '3.3.6 '
1799+ Popover . VERSION = '3.3.7 '
17861800
17871801 Popover . DEFAULTS = $ . extend ( { } , $ . fn . tooltip . Constructor . DEFAULTS , {
17881802 placement : 'right' ,
@@ -1871,10 +1885,10 @@ if (typeof jQuery === 'undefined') {
18711885} ( jQuery ) ;
18721886
18731887/* ========================================================================
1874- * Bootstrap: scrollspy.js v3.3.6
1888+ * Bootstrap: scrollspy.js v3.3.7
18751889 * http://getbootstrap.com/javascript/#scrollspy
18761890 * ========================================================================
1877- * Copyright 2011-2015 Twitter, Inc.
1891+ * Copyright 2011-2016 Twitter, Inc.
18781892 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
18791893 * ======================================================================== */
18801894
@@ -1900,7 +1914,7 @@ if (typeof jQuery === 'undefined') {
19001914 this . process ( )
19011915 }
19021916
1903- ScrollSpy . VERSION = '3.3.6 '
1917+ ScrollSpy . VERSION = '3.3.7 '
19041918
19051919 ScrollSpy . DEFAULTS = {
19061920 offset : 10
@@ -2044,10 +2058,10 @@ if (typeof jQuery === 'undefined') {
20442058} ( jQuery ) ;
20452059
20462060/* ========================================================================
2047- * Bootstrap: tab.js v3.3.6
2061+ * Bootstrap: tab.js v3.3.7
20482062 * http://getbootstrap.com/javascript/#tabs
20492063 * ========================================================================
2050- * Copyright 2011-2015 Twitter, Inc.
2064+ * Copyright 2011-2016 Twitter, Inc.
20512065 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
20522066 * ======================================================================== */
20532067
@@ -2064,7 +2078,7 @@ if (typeof jQuery === 'undefined') {
20642078 // jscs:enable requireDollarBeforejQueryAssignment
20652079 }
20662080
2067- Tab . VERSION = '3.3.6 '
2081+ Tab . VERSION = '3.3.7 '
20682082
20692083 Tab . TRANSITION_DURATION = 150
20702084
@@ -2200,10 +2214,10 @@ if (typeof jQuery === 'undefined') {
22002214} ( jQuery ) ;
22012215
22022216/* ========================================================================
2203- * Bootstrap: affix.js v3.3.6
2217+ * Bootstrap: affix.js v3.3.7
22042218 * http://getbootstrap.com/javascript/#affix
22052219 * ========================================================================
2206- * Copyright 2011-2015 Twitter, Inc.
2220+ * Copyright 2011-2016 Twitter, Inc.
22072221 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
22082222 * ======================================================================== */
22092223
@@ -2229,7 +2243,7 @@ if (typeof jQuery === 'undefined') {
22292243 this . checkPosition ( )
22302244 }
22312245
2232- Affix . VERSION = '3.3.6 '
2246+ Affix . VERSION = '3.3.7 '
22332247
22342248 Affix . RESET = 'affix affix-top affix-bottom'
22352249
0 commit comments