diff options
Diffstat (limited to 'dist/js')
-rw-r--r-- | dist/js/bootstrap.js | 551 | ||||
-rw-r--r-- | dist/js/bootstrap.min.js | 10 |
2 files changed, 331 insertions, 230 deletions
diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js index 8dff365f..8a2e99a5 100644 --- a/dist/js/bootstrap.js +++ b/dist/js/bootstrap.js | |||
@@ -1,7 +1,7 @@ | |||
1 | /*! | 1 | /*! |
2 | * Bootstrap v3.3.0 (http://getbootstrap.com) | 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) |
3 | * Copyright 2011-2014 Twitter, Inc. | 3 | * Copyright 2011-2016 Twitter, Inc. |
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 4 | * Licensed under the MIT license |
5 | */ | 5 | */ |
6 | 6 | ||
7 | if (typeof jQuery === 'undefined') { | 7 | if (typeof jQuery === 'undefined') { |
@@ -9,17 +9,18 @@ if (typeof jQuery === 'undefined') { | |||
9 | } | 9 | } |
10 | 10 | ||
11 | +function ($) { | 11 | +function ($) { |
12 | 'use strict'; | ||
12 | var version = $.fn.jquery.split(' ')[0].split('.') | 13 | var version = $.fn.jquery.split(' ')[0].split('.') |
13 | if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) { | 14 | if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) { |
14 | throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher') | 15 | throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4') |
15 | } | 16 | } |
16 | }(jQuery); | 17 | }(jQuery); |
17 | 18 | ||
18 | /* ======================================================================== | 19 | /* ======================================================================== |
19 | * Bootstrap: transition.js v3.3.0 | 20 | * Bootstrap: transition.js v3.3.7 |
20 | * http://getbootstrap.com/javascript/#transitions | 21 | * http://getbootstrap.com/javascript/#transitions |
21 | * ======================================================================== | 22 | * ======================================================================== |
22 | * Copyright 2011-2014 Twitter, Inc. | 23 | * Copyright 2011-2016 Twitter, Inc. |
23 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 24 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
24 | * ======================================================================== */ | 25 | * ======================================================================== */ |
25 | 26 | ||
@@ -76,10 +77,10 @@ if (typeof jQuery === 'undefined') { | |||
76 | }(jQuery); | 77 | }(jQuery); |
77 | 78 | ||
78 | /* ======================================================================== | 79 | /* ======================================================================== |
79 | * Bootstrap: alert.js v3.3.0 | 80 | * Bootstrap: alert.js v3.3.7 |
80 | * http://getbootstrap.com/javascript/#alerts | 81 | * http://getbootstrap.com/javascript/#alerts |
81 | * ======================================================================== | 82 | * ======================================================================== |
82 | * Copyright 2011-2014 Twitter, Inc. | 83 | * Copyright 2011-2016 Twitter, Inc. |
83 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 84 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
84 | * ======================================================================== */ | 85 | * ======================================================================== */ |
85 | 86 | ||
@@ -95,7 +96,7 @@ if (typeof jQuery === 'undefined') { | |||
95 | $(el).on('click', dismiss, this.close) | 96 | $(el).on('click', dismiss, this.close) |
96 | } | 97 | } |
97 | 98 | ||
98 | Alert.VERSION = '3.3.0' | 99 | Alert.VERSION = '3.3.7' |
99 | 100 | ||
100 | Alert.TRANSITION_DURATION = 150 | 101 | Alert.TRANSITION_DURATION = 150 |
101 | 102 | ||
@@ -108,7 +109,7 @@ if (typeof jQuery === 'undefined') { | |||
108 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 | 109 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 |
109 | } | 110 | } |
110 | 111 | ||
111 | var $parent = $(selector) | 112 | var $parent = $(selector === '#' ? [] : selector) |
112 | 113 | ||
113 | if (e) e.preventDefault() | 114 | if (e) e.preventDefault() |
114 | 115 | ||
@@ -171,10 +172,10 @@ if (typeof jQuery === 'undefined') { | |||
171 | }(jQuery); | 172 | }(jQuery); |
172 | 173 | ||
173 | /* ======================================================================== | 174 | /* ======================================================================== |
174 | * Bootstrap: button.js v3.3.0 | 175 | * Bootstrap: button.js v3.3.7 |
175 | * http://getbootstrap.com/javascript/#buttons | 176 | * http://getbootstrap.com/javascript/#buttons |
176 | * ======================================================================== | 177 | * ======================================================================== |
177 | * Copyright 2011-2014 Twitter, Inc. | 178 | * Copyright 2011-2016 Twitter, Inc. |
178 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 179 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
179 | * ======================================================================== */ | 180 | * ======================================================================== */ |
180 | 181 | ||
@@ -191,7 +192,7 @@ if (typeof jQuery === 'undefined') { | |||
191 | this.isLoading = false | 192 | this.isLoading = false |
192 | } | 193 | } |
193 | 194 | ||
194 | Button.VERSION = '3.3.0' | 195 | Button.VERSION = '3.3.7' |
195 | 196 | ||
196 | Button.DEFAULTS = { | 197 | Button.DEFAULTS = { |
197 | loadingText: 'loading...' | 198 | loadingText: 'loading...' |
@@ -203,7 +204,7 @@ if (typeof jQuery === 'undefined') { | |||
203 | var val = $el.is('input') ? 'val' : 'html' | 204 | var val = $el.is('input') ? 'val' : 'html' |
204 | var data = $el.data() | 205 | var data = $el.data() |
205 | 206 | ||
206 | state = state + 'Text' | 207 | state += 'Text' |
207 | 208 | ||
208 | if (data.resetText == null) $el.data('resetText', $el[val]()) | 209 | if (data.resetText == null) $el.data('resetText', $el[val]()) |
209 | 210 | ||
@@ -213,10 +214,10 @@ if (typeof jQuery === 'undefined') { | |||
213 | 214 | ||
214 | if (state == 'loadingText') { | 215 | if (state == 'loadingText') { |
215 | this.isLoading = true | 216 | this.isLoading = true |
216 | $el.addClass(d).attr(d, d) | 217 | $el.addClass(d).attr(d, d).prop(d, true) |
217 | } else if (this.isLoading) { | 218 | } else if (this.isLoading) { |
218 | this.isLoading = false | 219 | this.isLoading = false |
219 | $el.removeClass(d).removeAttr(d) | 220 | $el.removeClass(d).removeAttr(d).prop(d, false) |
220 | } | 221 | } |
221 | }, this), 0) | 222 | }, this), 0) |
222 | } | 223 | } |
@@ -228,15 +229,19 @@ if (typeof jQuery === 'undefined') { | |||
228 | if ($parent.length) { | 229 | if ($parent.length) { |
229 | var $input = this.$element.find('input') | 230 | var $input = this.$element.find('input') |
230 | if ($input.prop('type') == 'radio') { | 231 | if ($input.prop('type') == 'radio') { |
231 | if ($input.prop('checked') && this.$element.hasClass('active')) changed = false | 232 | if ($input.prop('checked')) changed = false |
232 | else $parent.find('.active').removeClass('active') | 233 | $parent.find('.active').removeClass('active') |
234 | this.$element.addClass('active') | ||
235 | } else if ($input.prop('type') == 'checkbox') { | ||
236 | if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false | ||
237 | this.$element.toggleClass('active') | ||
233 | } | 238 | } |
234 | if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change') | 239 | $input.prop('checked', this.$element.hasClass('active')) |
240 | if (changed) $input.trigger('change') | ||
235 | } else { | 241 | } else { |
236 | this.$element.attr('aria-pressed', !this.$element.hasClass('active')) | 242 | this.$element.attr('aria-pressed', !this.$element.hasClass('active')) |
243 | this.$element.toggleClass('active') | ||
237 | } | 244 | } |
238 | |||
239 | if (changed) this.$element.toggleClass('active') | ||
240 | } | 245 | } |
241 | 246 | ||
242 | 247 | ||
@@ -276,22 +281,27 @@ if (typeof jQuery === 'undefined') { | |||
276 | 281 | ||
277 | $(document) | 282 | $(document) |
278 | .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { | 283 | .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { |
279 | var $btn = $(e.target) | 284 | var $btn = $(e.target).closest('.btn') |
280 | if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') | ||
281 | Plugin.call($btn, 'toggle') | 285 | Plugin.call($btn, 'toggle') |
282 | 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 | } | ||
283 | }) | 293 | }) |
284 | .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { | 294 | .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { |
285 | $(e.target).closest('.btn').toggleClass('focus', e.type == 'focus') | 295 | $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) |
286 | }) | 296 | }) |
287 | 297 | ||
288 | }(jQuery); | 298 | }(jQuery); |
289 | 299 | ||
290 | /* ======================================================================== | 300 | /* ======================================================================== |
291 | * Bootstrap: carousel.js v3.3.0 | 301 | * Bootstrap: carousel.js v3.3.7 |
292 | * http://getbootstrap.com/javascript/#carousel | 302 | * http://getbootstrap.com/javascript/#carousel |
293 | * ======================================================================== | 303 | * ======================================================================== |
294 | * Copyright 2011-2014 Twitter, Inc. | 304 | * Copyright 2011-2016 Twitter, Inc. |
295 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 305 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
296 | * ======================================================================== */ | 306 | * ======================================================================== */ |
297 | 307 | ||
@@ -306,10 +316,10 @@ if (typeof jQuery === 'undefined') { | |||
306 | this.$element = $(element) | 316 | this.$element = $(element) |
307 | this.$indicators = this.$element.find('.carousel-indicators') | 317 | this.$indicators = this.$element.find('.carousel-indicators') |
308 | this.options = options | 318 | this.options = options |
309 | this.paused = | 319 | this.paused = null |
310 | this.sliding = | 320 | this.sliding = null |
311 | this.interval = | 321 | this.interval = null |
312 | this.$active = | 322 | this.$active = null |
313 | this.$items = null | 323 | this.$items = null |
314 | 324 | ||
315 | this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) | 325 | this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) |
@@ -319,7 +329,7 @@ if (typeof jQuery === 'undefined') { | |||
319 | .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) | 329 | .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) |
320 | } | 330 | } |
321 | 331 | ||
322 | Carousel.VERSION = '3.3.0' | 332 | Carousel.VERSION = '3.3.7' |
323 | 333 | ||
324 | Carousel.TRANSITION_DURATION = 600 | 334 | Carousel.TRANSITION_DURATION = 600 |
325 | 335 | ||
@@ -331,6 +341,7 @@ if (typeof jQuery === 'undefined') { | |||
331 | } | 341 | } |
332 | 342 | ||
333 | Carousel.prototype.keydown = function (e) { | 343 | Carousel.prototype.keydown = function (e) { |
344 | if (/input|textarea/i.test(e.target.tagName)) return | ||
334 | switch (e.which) { | 345 | switch (e.which) { |
335 | case 37: this.prev(); break | 346 | case 37: this.prev(); break |
336 | case 39: this.next(); break | 347 | case 39: this.next(); break |
@@ -358,8 +369,11 @@ if (typeof jQuery === 'undefined') { | |||
358 | } | 369 | } |
359 | 370 | ||
360 | Carousel.prototype.getItemForDirection = function (direction, active) { | 371 | Carousel.prototype.getItemForDirection = function (direction, active) { |
361 | var delta = direction == 'prev' ? -1 : 1 | ||
362 | var activeIndex = this.getItemIndex(active) | 372 | var activeIndex = this.getItemIndex(active) |
373 | var willWrap = (direction == 'prev' && activeIndex === 0) | ||
374 | || (direction == 'next' && activeIndex == (this.$items.length - 1)) | ||
375 | if (willWrap && !this.options.wrap) return active | ||
376 | var delta = direction == 'prev' ? -1 : 1 | ||
363 | var itemIndex = (activeIndex + delta) % this.$items.length | 377 | var itemIndex = (activeIndex + delta) % this.$items.length |
364 | return this.$items.eq(itemIndex) | 378 | return this.$items.eq(itemIndex) |
365 | } | 379 | } |
@@ -404,14 +418,8 @@ if (typeof jQuery === 'undefined') { | |||
404 | var $next = next || this.getItemForDirection(type, $active) | 418 | var $next = next || this.getItemForDirection(type, $active) |
405 | var isCycling = this.interval | 419 | var isCycling = this.interval |
406 | var direction = type == 'next' ? 'left' : 'right' | 420 | var direction = type == 'next' ? 'left' : 'right' |
407 | var fallback = type == 'next' ? 'first' : 'last' | ||
408 | var that = this | 421 | var that = this |
409 | 422 | ||
410 | if (!$next.length) { | ||
411 | if (!this.options.wrap) return | ||
412 | $next = this.$element.find('.item')[fallback]() | ||
413 | } | ||
414 | |||
415 | if ($next.hasClass('active')) return (this.sliding = false) | 423 | if ($next.hasClass('active')) return (this.sliding = false) |
416 | 424 | ||
417 | var relatedTarget = $next[0] | 425 | var relatedTarget = $next[0] |
@@ -528,13 +536,14 @@ if (typeof jQuery === 'undefined') { | |||
528 | }(jQuery); | 536 | }(jQuery); |
529 | 537 | ||
530 | /* ======================================================================== | 538 | /* ======================================================================== |
531 | * Bootstrap: collapse.js v3.3.0 | 539 | * Bootstrap: collapse.js v3.3.7 |
532 | * http://getbootstrap.com/javascript/#collapse | 540 | * http://getbootstrap.com/javascript/#collapse |
533 | * ======================================================================== | 541 | * ======================================================================== |
534 | * Copyright 2011-2014 Twitter, Inc. | 542 | * Copyright 2011-2016 Twitter, Inc. |
535 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 543 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
536 | * ======================================================================== */ | 544 | * ======================================================================== */ |
537 | 545 | ||
546 | /* jshint latedef: false */ | ||
538 | 547 | ||
539 | +function ($) { | 548 | +function ($) { |
540 | 'use strict'; | 549 | 'use strict'; |
@@ -545,7 +554,8 @@ if (typeof jQuery === 'undefined') { | |||
545 | var Collapse = function (element, options) { | 554 | var Collapse = function (element, options) { |
546 | this.$element = $(element) | 555 | this.$element = $(element) |
547 | this.options = $.extend({}, Collapse.DEFAULTS, options) | 556 | this.options = $.extend({}, Collapse.DEFAULTS, options) |
548 | this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]') | 557 | this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + |
558 | '[data-toggle="collapse"][data-target="#' + element.id + '"]') | ||
549 | this.transitioning = null | 559 | this.transitioning = null |
550 | 560 | ||
551 | if (this.options.parent) { | 561 | if (this.options.parent) { |
@@ -557,13 +567,12 @@ if (typeof jQuery === 'undefined') { | |||
557 | if (this.options.toggle) this.toggle() | 567 | if (this.options.toggle) this.toggle() |
558 | } | 568 | } |
559 | 569 | ||
560 | Collapse.VERSION = '3.3.0' | 570 | Collapse.VERSION = '3.3.7' |
561 | 571 | ||
562 | Collapse.TRANSITION_DURATION = 350 | 572 | Collapse.TRANSITION_DURATION = 350 |
563 | 573 | ||
564 | Collapse.DEFAULTS = { | 574 | Collapse.DEFAULTS = { |
565 | toggle: true, | 575 | toggle: true |
566 | trigger: '[data-toggle="collapse"]' | ||
567 | } | 576 | } |
568 | 577 | ||
569 | Collapse.prototype.dimension = function () { | 578 | Collapse.prototype.dimension = function () { |
@@ -575,7 +584,7 @@ if (typeof jQuery === 'undefined') { | |||
575 | if (this.transitioning || this.$element.hasClass('in')) return | 584 | if (this.transitioning || this.$element.hasClass('in')) return |
576 | 585 | ||
577 | var activesData | 586 | var activesData |
578 | var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing') | 587 | var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') |
579 | 588 | ||
580 | if (actives && actives.length) { | 589 | if (actives && actives.length) { |
581 | activesData = actives.data('bs.collapse') | 590 | activesData = actives.data('bs.collapse') |
@@ -701,7 +710,7 @@ if (typeof jQuery === 'undefined') { | |||
701 | var data = $this.data('bs.collapse') | 710 | var data = $this.data('bs.collapse') |
702 | var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) | 711 | var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) |
703 | 712 | ||
704 | if (!data && options.toggle && option == 'show') options.toggle = false | 713 | if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false |
705 | if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) | 714 | if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) |
706 | if (typeof option == 'string') data[option]() | 715 | if (typeof option == 'string') data[option]() |
707 | }) | 716 | }) |
@@ -732,7 +741,7 @@ if (typeof jQuery === 'undefined') { | |||
732 | 741 | ||
733 | var $target = getTargetFromTrigger($this) | 742 | var $target = getTargetFromTrigger($this) |
734 | var data = $target.data('bs.collapse') | 743 | var data = $target.data('bs.collapse') |
735 | var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this }) | 744 | var option = data ? 'toggle' : $this.data() |
736 | 745 | ||
737 | Plugin.call($target, option) | 746 | Plugin.call($target, option) |
738 | }) | 747 | }) |
@@ -740,10 +749,10 @@ if (typeof jQuery === 'undefined') { | |||
740 | }(jQuery); | 749 | }(jQuery); |
741 | 750 | ||
742 | /* ======================================================================== | 751 | /* ======================================================================== |
743 | * Bootstrap: dropdown.js v3.3.0 | 752 | * Bootstrap: dropdown.js v3.3.7 |
744 | * http://getbootstrap.com/javascript/#dropdowns | 753 | * http://getbootstrap.com/javascript/#dropdowns |
745 | * ======================================================================== | 754 | * ======================================================================== |
746 | * Copyright 2011-2014 Twitter, Inc. | 755 | * Copyright 2011-2016 Twitter, Inc. |
747 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 756 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
748 | * ======================================================================== */ | 757 | * ======================================================================== */ |
749 | 758 | ||
@@ -760,7 +769,41 @@ if (typeof jQuery === 'undefined') { | |||
760 | $(element).on('click.bs.dropdown', this.toggle) | 769 | $(element).on('click.bs.dropdown', this.toggle) |
761 | } | 770 | } |
762 | 771 | ||
763 | Dropdown.VERSION = '3.3.0' | 772 | Dropdown.VERSION = '3.3.7' |
773 | |||
774 | function getParent($this) { | ||
775 | var selector = $this.attr('data-target') | ||
776 | |||
777 | if (!selector) { | ||
778 | selector = $this.attr('href') | ||
779 | selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 | ||
780 | } | ||
781 | |||
782 | var $parent = selector && $(selector) | ||
783 | |||
784 | return $parent && $parent.length ? $parent : $this.parent() | ||
785 | } | ||
786 | |||
787 | function clearMenus(e) { | ||
788 | if (e && e.which === 3) return | ||
789 | $(backdrop).remove() | ||
790 | $(toggle).each(function () { | ||
791 | var $this = $(this) | ||
792 | var $parent = getParent($this) | ||
793 | var relatedTarget = { relatedTarget: this } | ||
794 | |||
795 | if (!$parent.hasClass('open')) return | ||
796 | |||
797 | if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return | ||
798 | |||
799 | $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) | ||
800 | |||
801 | if (e.isDefaultPrevented()) return | ||
802 | |||
803 | $this.attr('aria-expanded', 'false') | ||
804 | $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) | ||
805 | }) | ||
806 | } | ||
764 | 807 | ||
765 | Dropdown.prototype.toggle = function (e) { | 808 | Dropdown.prototype.toggle = function (e) { |
766 | var $this = $(this) | 809 | var $this = $(this) |
@@ -775,7 +818,10 @@ if (typeof jQuery === 'undefined') { | |||
775 | if (!isActive) { | 818 | if (!isActive) { |
776 | if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { | 819 | if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { |
777 | // if mobile we use a backdrop because click events don't delegate | 820 | // if mobile we use a backdrop because click events don't delegate |
778 | $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus) | 821 | $(document.createElement('div')) |
822 | .addClass('dropdown-backdrop') | ||
823 | .insertAfter($(this)) | ||
824 | .on('click', clearMenus) | ||
779 | } | 825 | } |
780 | 826 | ||
781 | var relatedTarget = { relatedTarget: this } | 827 | var relatedTarget = { relatedTarget: this } |
@@ -789,14 +835,14 @@ if (typeof jQuery === 'undefined') { | |||
789 | 835 | ||
790 | $parent | 836 | $parent |
791 | .toggleClass('open') | 837 | .toggleClass('open') |
792 | .trigger('shown.bs.dropdown', relatedTarget) | 838 | .trigger($.Event('shown.bs.dropdown', relatedTarget)) |
793 | } | 839 | } |
794 | 840 | ||
795 | return false | 841 | return false |
796 | } | 842 | } |
797 | 843 | ||
798 | Dropdown.prototype.keydown = function (e) { | 844 | Dropdown.prototype.keydown = function (e) { |
799 | if (!/(38|40|27|32)/.test(e.which)) return | 845 | if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return |
800 | 846 | ||
801 | var $this = $(this) | 847 | var $this = $(this) |
802 | 848 | ||
@@ -808,57 +854,25 @@ if (typeof jQuery === 'undefined') { | |||
808 | var $parent = getParent($this) | 854 | var $parent = getParent($this) |
809 | var isActive = $parent.hasClass('open') | 855 | var isActive = $parent.hasClass('open') |
810 | 856 | ||
811 | if ((!isActive && e.which != 27) || (isActive && e.which == 27)) { | 857 | if (!isActive && e.which != 27 || isActive && e.which == 27) { |
812 | if (e.which == 27) $parent.find(toggle).trigger('focus') | 858 | if (e.which == 27) $parent.find(toggle).trigger('focus') |
813 | return $this.trigger('click') | 859 | return $this.trigger('click') |
814 | } | 860 | } |
815 | 861 | ||
816 | var desc = ' li:not(.divider):visible a' | 862 | var desc = ' li:not(.disabled):visible a' |
817 | var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc) | 863 | var $items = $parent.find('.dropdown-menu' + desc) |
818 | 864 | ||
819 | if (!$items.length) return | 865 | if (!$items.length) return |
820 | 866 | ||
821 | var index = $items.index(e.target) | 867 | var index = $items.index(e.target) |
822 | 868 | ||
823 | if (e.which == 38 && index > 0) index-- // up | 869 | if (e.which == 38 && index > 0) index-- // up |
824 | if (e.which == 40 && index < $items.length - 1) index++ // down | 870 | if (e.which == 40 && index < $items.length - 1) index++ // down |
825 | if (!~index) index = 0 | 871 | if (!~index) index = 0 |
826 | 872 | ||
827 | $items.eq(index).trigger('focus') | 873 | $items.eq(index).trigger('focus') |
828 | } | 874 | } |
829 | 875 | ||
830 | function clearMenus(e) { | ||
831 | if (e && e.which === 3) return | ||
832 | $(backdrop).remove() | ||
833 | $(toggle).each(function () { | ||
834 | var $this = $(this) | ||
835 | var $parent = getParent($this) | ||
836 | var relatedTarget = { relatedTarget: this } | ||
837 | |||
838 | if (!$parent.hasClass('open')) return | ||
839 | |||
840 | $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) | ||
841 | |||
842 | if (e.isDefaultPrevented()) return | ||
843 | |||
844 | $this.attr('aria-expanded', 'false') | ||
845 | $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) | ||
846 | }) | ||
847 | } | ||
848 | |||
849 | function getParent($this) { | ||
850 | var selector = $this.attr('data-target') | ||
851 | |||
852 | if (!selector) { | ||
853 | selector = $this.attr('href') | ||
854 | selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 | ||
855 | } | ||
856 | |||
857 | var $parent = selector && $(selector) | ||
858 | |||
859 | return $parent && $parent.length ? $parent : $this.parent() | ||
860 | } | ||
861 | |||
862 | 876 | ||
863 | // DROPDOWN PLUGIN DEFINITION | 877 | // DROPDOWN PLUGIN DEFINITION |
864 | // ========================== | 878 | // ========================== |
@@ -896,16 +910,15 @@ if (typeof jQuery === 'undefined') { | |||
896 | .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) | 910 | .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) |
897 | .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) | 911 | .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) |
898 | .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) | 912 | .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) |
899 | .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown) | 913 | .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) |
900 | .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown) | ||
901 | 914 | ||
902 | }(jQuery); | 915 | }(jQuery); |
903 | 916 | ||
904 | /* ======================================================================== | 917 | /* ======================================================================== |
905 | * Bootstrap: modal.js v3.3.0 | 918 | * Bootstrap: modal.js v3.3.7 |
906 | * http://getbootstrap.com/javascript/#modals | 919 | * http://getbootstrap.com/javascript/#modals |
907 | * ======================================================================== | 920 | * ======================================================================== |
908 | * Copyright 2011-2014 Twitter, Inc. | 921 | * Copyright 2011-2016 Twitter, Inc. |
909 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 922 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
910 | * ======================================================================== */ | 923 | * ======================================================================== */ |
911 | 924 | ||
@@ -917,12 +930,15 @@ if (typeof jQuery === 'undefined') { | |||
917 | // ====================== | 930 | // ====================== |
918 | 931 | ||
919 | var Modal = function (element, options) { | 932 | var Modal = function (element, options) { |
920 | this.options = options | 933 | this.options = options |
921 | this.$body = $(document.body) | 934 | this.$body = $(document.body) |
922 | this.$element = $(element) | 935 | this.$element = $(element) |
923 | this.$backdrop = | 936 | this.$dialog = this.$element.find('.modal-dialog') |
924 | this.isShown = null | 937 | this.$backdrop = null |
925 | this.scrollbarWidth = 0 | 938 | this.isShown = null |
939 | this.originalBodyPad = null | ||
940 | this.scrollbarWidth = 0 | ||
941 | this.ignoreBackdropClick = false | ||
926 | 942 | ||
927 | if (this.options.remote) { | 943 | if (this.options.remote) { |
928 | this.$element | 944 | this.$element |
@@ -933,7 +949,7 @@ if (typeof jQuery === 'undefined') { | |||
933 | } | 949 | } |
934 | } | 950 | } |
935 | 951 | ||
936 | Modal.VERSION = '3.3.0' | 952 | Modal.VERSION = '3.3.7' |
937 | 953 | ||
938 | Modal.TRANSITION_DURATION = 300 | 954 | Modal.TRANSITION_DURATION = 300 |
939 | Modal.BACKDROP_TRANSITION_DURATION = 150 | 955 | Modal.BACKDROP_TRANSITION_DURATION = 150 |
@@ -959,13 +975,20 @@ if (typeof jQuery === 'undefined') { | |||
959 | this.isShown = true | 975 | this.isShown = true |
960 | 976 | ||
961 | this.checkScrollbar() | 977 | this.checkScrollbar() |
978 | this.setScrollbar() | ||
962 | this.$body.addClass('modal-open') | 979 | this.$body.addClass('modal-open') |
963 | 980 | ||
964 | this.setScrollbar() | ||
965 | this.escape() | 981 | this.escape() |
982 | this.resize() | ||
966 | 983 | ||
967 | this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) | 984 | this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) |
968 | 985 | ||
986 | this.$dialog.on('mousedown.dismiss.bs.modal', function () { | ||
987 | that.$element.one('mouseup.dismiss.bs.modal', function (e) { | ||
988 | if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true | ||
989 | }) | ||
990 | }) | ||
991 | |||
969 | this.backdrop(function () { | 992 | this.backdrop(function () { |
970 | var transition = $.support.transition && that.$element.hasClass('fade') | 993 | var transition = $.support.transition && that.$element.hasClass('fade') |
971 | 994 | ||
@@ -977,20 +1000,20 @@ if (typeof jQuery === 'undefined') { | |||
977 | .show() | 1000 | .show() |
978 | .scrollTop(0) | 1001 | .scrollTop(0) |
979 | 1002 | ||
1003 | that.adjustDialog() | ||
1004 | |||
980 | if (transition) { | 1005 | if (transition) { |
981 | that.$element[0].offsetWidth // force reflow | 1006 | that.$element[0].offsetWidth // force reflow |
982 | } | 1007 | } |
983 | 1008 | ||
984 | that.$element | 1009 | that.$element.addClass('in') |
985 | .addClass('in') | ||
986 | .attr('aria-hidden', false) | ||
987 | 1010 | ||
988 | that.enforceFocus() | 1011 | that.enforceFocus() |
989 | 1012 | ||
990 | var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) | 1013 | var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) |
991 | 1014 | ||
992 | transition ? | 1015 | transition ? |
993 | that.$element.find('.modal-dialog') // wait for modal to slide in | 1016 | that.$dialog // wait for modal to slide in |
994 | .one('bsTransitionEnd', function () { | 1017 | .one('bsTransitionEnd', function () { |
995 | that.$element.trigger('focus').trigger(e) | 1018 | that.$element.trigger('focus').trigger(e) |
996 | }) | 1019 | }) |
@@ -1011,13 +1034,16 @@ if (typeof jQuery === 'undefined') { | |||
1011 | this.isShown = false | 1034 | this.isShown = false |
1012 | 1035 | ||
1013 | this.escape() | 1036 | this.escape() |
1037 | this.resize() | ||
1014 | 1038 | ||
1015 | $(document).off('focusin.bs.modal') | 1039 | $(document).off('focusin.bs.modal') |
1016 | 1040 | ||
1017 | this.$element | 1041 | this.$element |
1018 | .removeClass('in') | 1042 | .removeClass('in') |
1019 | .attr('aria-hidden', true) | ||
1020 | .off('click.dismiss.bs.modal') | 1043 | .off('click.dismiss.bs.modal') |
1044 | .off('mouseup.dismiss.bs.modal') | ||
1045 | |||
1046 | this.$dialog.off('mousedown.dismiss.bs.modal') | ||
1021 | 1047 | ||
1022 | $.support.transition && this.$element.hasClass('fade') ? | 1048 | $.support.transition && this.$element.hasClass('fade') ? |
1023 | this.$element | 1049 | this.$element |
@@ -1030,7 +1056,9 @@ if (typeof jQuery === 'undefined') { | |||
1030 | $(document) | 1056 | $(document) |
1031 | .off('focusin.bs.modal') // guard against infinite focus loop | 1057 | .off('focusin.bs.modal') // guard against infinite focus loop |
1032 | .on('focusin.bs.modal', $.proxy(function (e) { | 1058 | .on('focusin.bs.modal', $.proxy(function (e) { |
1033 | 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) { | ||
1034 | this.$element.trigger('focus') | 1062 | this.$element.trigger('focus') |
1035 | } | 1063 | } |
1036 | }, this)) | 1064 | }, this)) |
@@ -1046,11 +1074,20 @@ if (typeof jQuery === 'undefined') { | |||
1046 | } | 1074 | } |
1047 | } | 1075 | } |
1048 | 1076 | ||
1077 | Modal.prototype.resize = function () { | ||
1078 | if (this.isShown) { | ||
1079 | $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) | ||
1080 | } else { | ||
1081 | $(window).off('resize.bs.modal') | ||
1082 | } | ||
1083 | } | ||
1084 | |||
1049 | Modal.prototype.hideModal = function () { | 1085 | Modal.prototype.hideModal = function () { |
1050 | var that = this | 1086 | var that = this |
1051 | this.$element.hide() | 1087 | this.$element.hide() |
1052 | this.backdrop(function () { | 1088 | this.backdrop(function () { |
1053 | that.$body.removeClass('modal-open') | 1089 | that.$body.removeClass('modal-open') |
1090 | that.resetAdjustments() | ||
1054 | that.resetScrollbar() | 1091 | that.resetScrollbar() |
1055 | that.$element.trigger('hidden.bs.modal') | 1092 | that.$element.trigger('hidden.bs.modal') |
1056 | }) | 1093 | }) |
@@ -1068,14 +1105,20 @@ if (typeof jQuery === 'undefined') { | |||
1068 | if (this.isShown && this.options.backdrop) { | 1105 | if (this.isShown && this.options.backdrop) { |
1069 | var doAnimate = $.support.transition && animate | 1106 | var doAnimate = $.support.transition && animate |
1070 | 1107 | ||
1071 | this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') | 1108 | this.$backdrop = $(document.createElement('div')) |
1072 | .prependTo(this.$element) | 1109 | .addClass('modal-backdrop ' + animate) |
1073 | .on('click.dismiss.bs.modal', $.proxy(function (e) { | 1110 | .appendTo(this.$body) |
1074 | if (e.target !== e.currentTarget) return | 1111 | |
1075 | this.options.backdrop == 'static' | 1112 | this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { |
1076 | ? this.$element[0].focus.call(this.$element[0]) | 1113 | if (this.ignoreBackdropClick) { |
1077 | : this.hide.call(this) | 1114 | this.ignoreBackdropClick = false |
1078 | }, this)) | 1115 | return |
1116 | } | ||
1117 | if (e.target !== e.currentTarget) return | ||
1118 | this.options.backdrop == 'static' | ||
1119 | ? this.$element[0].focus() | ||
1120 | : this.hide() | ||
1121 | }, this)) | ||
1079 | 1122 | ||
1080 | if (doAnimate) this.$backdrop[0].offsetWidth // force reflow | 1123 | if (doAnimate) this.$backdrop[0].offsetWidth // force reflow |
1081 | 1124 | ||
@@ -1107,21 +1150,49 @@ if (typeof jQuery === 'undefined') { | |||
1107 | } | 1150 | } |
1108 | } | 1151 | } |
1109 | 1152 | ||
1153 | // these following methods are used to handle overflowing modals | ||
1154 | |||
1155 | Modal.prototype.handleUpdate = function () { | ||
1156 | this.adjustDialog() | ||
1157 | } | ||
1158 | |||
1159 | Modal.prototype.adjustDialog = function () { | ||
1160 | var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight | ||
1161 | |||
1162 | this.$element.css({ | ||
1163 | paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', | ||
1164 | paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' | ||
1165 | }) | ||
1166 | } | ||
1167 | |||
1168 | Modal.prototype.resetAdjustments = function () { | ||
1169 | this.$element.css({ | ||
1170 | paddingLeft: '', | ||
1171 | paddingRight: '' | ||
1172 | }) | ||
1173 | } | ||
1174 | |||
1110 | Modal.prototype.checkScrollbar = function () { | 1175 | Modal.prototype.checkScrollbar = function () { |
1176 | var fullWindowWidth = window.innerWidth | ||
1177 | if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 | ||
1178 | var documentElementRect = document.documentElement.getBoundingClientRect() | ||
1179 | fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) | ||
1180 | } | ||
1181 | this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth | ||
1111 | this.scrollbarWidth = this.measureScrollbar() | 1182 | this.scrollbarWidth = this.measureScrollbar() |
1112 | } | 1183 | } |
1113 | 1184 | ||
1114 | Modal.prototype.setScrollbar = function () { | 1185 | Modal.prototype.setScrollbar = function () { |
1115 | var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) | 1186 | var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) |
1116 | if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) | 1187 | this.originalBodyPad = document.body.style.paddingRight || '' |
1188 | if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) | ||
1117 | } | 1189 | } |
1118 | 1190 | ||
1119 | Modal.prototype.resetScrollbar = function () { | 1191 | Modal.prototype.resetScrollbar = function () { |
1120 | this.$body.css('padding-right', '') | 1192 | this.$body.css('padding-right', this.originalBodyPad) |
1121 | } | 1193 | } |
1122 | 1194 | ||
1123 | Modal.prototype.measureScrollbar = function () { // thx walsh | 1195 | Modal.prototype.measureScrollbar = function () { // thx walsh |
1124 | if (document.body.clientWidth >= window.innerWidth) return 0 | ||
1125 | var scrollDiv = document.createElement('div') | 1196 | var scrollDiv = document.createElement('div') |
1126 | scrollDiv.className = 'modal-scrollbar-measure' | 1197 | scrollDiv.className = 'modal-scrollbar-measure' |
1127 | this.$body.append(scrollDiv) | 1198 | this.$body.append(scrollDiv) |
@@ -1184,11 +1255,11 @@ if (typeof jQuery === 'undefined') { | |||
1184 | }(jQuery); | 1255 | }(jQuery); |
1185 | 1256 | ||
1186 | /* ======================================================================== | 1257 | /* ======================================================================== |
1187 | * Bootstrap: tooltip.js v3.3.0 | 1258 | * Bootstrap: tooltip.js v3.3.7 |
1188 | * http://getbootstrap.com/javascript/#tooltip | 1259 | * http://getbootstrap.com/javascript/#tooltip |
1189 | * Inspired by the original jQuery.tipsy by Jason Frame | 1260 | * Inspired by the original jQuery.tipsy by Jason Frame |
1190 | * ======================================================================== | 1261 | * ======================================================================== |
1191 | * Copyright 2011-2014 Twitter, Inc. | 1262 | * Copyright 2011-2016 Twitter, Inc. |
1192 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 1263 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
1193 | * ======================================================================== */ | 1264 | * ======================================================================== */ |
1194 | 1265 | ||
@@ -1200,17 +1271,18 @@ if (typeof jQuery === 'undefined') { | |||
1200 | // =============================== | 1271 | // =============================== |
1201 | 1272 | ||
1202 | var Tooltip = function (element, options) { | 1273 | var Tooltip = function (element, options) { |
1203 | this.type = | 1274 | this.type = null |
1204 | this.options = | 1275 | this.options = null |
1205 | this.enabled = | 1276 | this.enabled = null |
1206 | this.timeout = | 1277 | this.timeout = null |
1207 | this.hoverState = | 1278 | this.hoverState = null |
1208 | this.$element = null | 1279 | this.$element = null |
1280 | this.inState = null | ||
1209 | 1281 | ||
1210 | this.init('tooltip', element, options) | 1282 | this.init('tooltip', element, options) |
1211 | } | 1283 | } |
1212 | 1284 | ||
1213 | Tooltip.VERSION = '3.3.0' | 1285 | Tooltip.VERSION = '3.3.7' |
1214 | 1286 | ||
1215 | Tooltip.TRANSITION_DURATION = 150 | 1287 | Tooltip.TRANSITION_DURATION = 150 |
1216 | 1288 | ||
@@ -1235,7 +1307,12 @@ if (typeof jQuery === 'undefined') { | |||
1235 | this.type = type | 1307 | this.type = type |
1236 | this.$element = $(element) | 1308 | this.$element = $(element) |
1237 | this.options = this.getOptions(options) | 1309 | this.options = this.getOptions(options) |
1238 | this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport) | 1310 | this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) |
1311 | this.inState = { click: false, hover: false, focus: false } | ||
1312 | |||
1313 | if (this.$element[0] instanceof document.constructor && !this.options.selector) { | ||
1314 | throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') | ||
1315 | } | ||
1239 | 1316 | ||
1240 | var triggers = this.options.trigger.split(' ') | 1317 | var triggers = this.options.trigger.split(' ') |
1241 | 1318 | ||
@@ -1290,16 +1367,20 @@ if (typeof jQuery === 'undefined') { | |||
1290 | var self = obj instanceof this.constructor ? | 1367 | var self = obj instanceof this.constructor ? |
1291 | obj : $(obj.currentTarget).data('bs.' + this.type) | 1368 | obj : $(obj.currentTarget).data('bs.' + this.type) |
1292 | 1369 | ||
1293 | if (self && self.$tip && self.$tip.is(':visible')) { | ||
1294 | self.hoverState = 'in' | ||
1295 | return | ||
1296 | } | ||
1297 | |||
1298 | if (!self) { | 1370 | if (!self) { |
1299 | self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) | 1371 | self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) |
1300 | $(obj.currentTarget).data('bs.' + this.type, self) | 1372 | $(obj.currentTarget).data('bs.' + this.type, self) |
1301 | } | 1373 | } |
1302 | 1374 | ||
1375 | if (obj instanceof $.Event) { | ||
1376 | self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true | ||
1377 | } | ||
1378 | |||
1379 | if (self.tip().hasClass('in') || self.hoverState == 'in') { | ||
1380 | self.hoverState = 'in' | ||
1381 | return | ||
1382 | } | ||
1383 | |||
1303 | clearTimeout(self.timeout) | 1384 | clearTimeout(self.timeout) |
1304 | 1385 | ||
1305 | self.hoverState = 'in' | 1386 | self.hoverState = 'in' |
@@ -1311,6 +1392,14 @@ if (typeof jQuery === 'undefined') { | |||
1311 | }, self.options.delay.show) | 1392 | }, self.options.delay.show) |
1312 | } | 1393 | } |
1313 | 1394 | ||
1395 | Tooltip.prototype.isInStateTrue = function () { | ||
1396 | for (var key in this.inState) { | ||
1397 | if (this.inState[key]) return true | ||
1398 | } | ||
1399 | |||
1400 | return false | ||
1401 | } | ||
1402 | |||
1314 | Tooltip.prototype.leave = function (obj) { | 1403 | Tooltip.prototype.leave = function (obj) { |
1315 | var self = obj instanceof this.constructor ? | 1404 | var self = obj instanceof this.constructor ? |
1316 | obj : $(obj.currentTarget).data('bs.' + this.type) | 1405 | obj : $(obj.currentTarget).data('bs.' + this.type) |
@@ -1320,6 +1409,12 @@ if (typeof jQuery === 'undefined') { | |||
1320 | $(obj.currentTarget).data('bs.' + this.type, self) | 1409 | $(obj.currentTarget).data('bs.' + this.type, self) |
1321 | } | 1410 | } |
1322 | 1411 | ||
1412 | if (obj instanceof $.Event) { | ||
1413 | self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false | ||
1414 | } | ||
1415 | |||
1416 | if (self.isInStateTrue()) return | ||
1417 | |||
1323 | clearTimeout(self.timeout) | 1418 | clearTimeout(self.timeout) |
1324 | 1419 | ||
1325 | self.hoverState = 'out' | 1420 | self.hoverState = 'out' |
@@ -1366,6 +1461,7 @@ if (typeof jQuery === 'undefined') { | |||
1366 | .data('bs.' + this.type, this) | 1461 | .data('bs.' + this.type, this) |
1367 | 1462 | ||
1368 | this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) | 1463 | this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) |
1464 | this.$element.trigger('inserted.bs.' + this.type) | ||
1369 | 1465 | ||
1370 | var pos = this.getPosition() | 1466 | var pos = this.getPosition() |
1371 | var actualWidth = $tip[0].offsetWidth | 1467 | var actualWidth = $tip[0].offsetWidth |
@@ -1373,13 +1469,12 @@ if (typeof jQuery === 'undefined') { | |||
1373 | 1469 | ||
1374 | if (autoPlace) { | 1470 | if (autoPlace) { |
1375 | var orgPlacement = placement | 1471 | var orgPlacement = placement |
1376 | var $container = this.options.container ? $(this.options.container) : this.$element.parent() | 1472 | var viewportDim = this.getPosition(this.$viewport) |
1377 | var containerDim = this.getPosition($container) | ||
1378 | 1473 | ||
1379 | placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' : | 1474 | placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : |
1380 | placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' : | 1475 | placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : |
1381 | placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' : | 1476 | placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : |
1382 | placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' : | 1477 | placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : |
1383 | placement | 1478 | placement |
1384 | 1479 | ||
1385 | $tip | 1480 | $tip |
@@ -1420,8 +1515,8 @@ if (typeof jQuery === 'undefined') { | |||
1420 | if (isNaN(marginTop)) marginTop = 0 | 1515 | if (isNaN(marginTop)) marginTop = 0 |
1421 | if (isNaN(marginLeft)) marginLeft = 0 | 1516 | if (isNaN(marginLeft)) marginLeft = 0 |
1422 | 1517 | ||
1423 | offset.top = offset.top + marginTop | 1518 | offset.top += marginTop |
1424 | offset.left = offset.left + marginLeft | 1519 | offset.left += marginLeft |
1425 | 1520 | ||
1426 | // $.fn.offset doesn't round pixel values | 1521 | // $.fn.offset doesn't round pixel values |
1427 | // so we use setOffset directly with our own function B-0 | 1522 | // so we use setOffset directly with our own function B-0 |
@@ -1457,10 +1552,10 @@ if (typeof jQuery === 'undefined') { | |||
1457 | this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) | 1552 | this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) |
1458 | } | 1553 | } |
1459 | 1554 | ||
1460 | Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) { | 1555 | Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { |
1461 | this.arrow() | 1556 | this.arrow() |
1462 | .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') | 1557 | .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') |
1463 | .css(isHorizontal ? 'top' : 'left', '') | 1558 | .css(isVertical ? 'top' : 'left', '') |
1464 | } | 1559 | } |
1465 | 1560 | ||
1466 | Tooltip.prototype.setContent = function () { | 1561 | Tooltip.prototype.setContent = function () { |
@@ -1473,14 +1568,16 @@ if (typeof jQuery === 'undefined') { | |||
1473 | 1568 | ||
1474 | Tooltip.prototype.hide = function (callback) { | 1569 | Tooltip.prototype.hide = function (callback) { |
1475 | var that = this | 1570 | var that = this |
1476 | var $tip = this.tip() | 1571 | var $tip = $(this.$tip) |
1477 | var e = $.Event('hide.bs.' + this.type) | 1572 | var e = $.Event('hide.bs.' + this.type) |
1478 | 1573 | ||
1479 | function complete() { | 1574 | function complete() { |
1480 | if (that.hoverState != 'in') $tip.detach() | 1575 | if (that.hoverState != 'in') $tip.detach() |
1481 | that.$element | 1576 | if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary. |
1482 | .removeAttr('aria-describedby') | 1577 | that.$element |
1483 | .trigger('hidden.bs.' + that.type) | 1578 | .removeAttr('aria-describedby') |
1579 | .trigger('hidden.bs.' + that.type) | ||
1580 | } | ||
1484 | callback && callback() | 1581 | callback && callback() |
1485 | } | 1582 | } |
1486 | 1583 | ||
@@ -1490,7 +1587,7 @@ if (typeof jQuery === 'undefined') { | |||
1490 | 1587 | ||
1491 | $tip.removeClass('in') | 1588 | $tip.removeClass('in') |
1492 | 1589 | ||
1493 | $.support.transition && this.$tip.hasClass('fade') ? | 1590 | $.support.transition && $tip.hasClass('fade') ? |
1494 | $tip | 1591 | $tip |
1495 | .one('bsTransitionEnd', complete) | 1592 | .one('bsTransitionEnd', complete) |
1496 | .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : | 1593 | .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : |
@@ -1503,7 +1600,7 @@ if (typeof jQuery === 'undefined') { | |||
1503 | 1600 | ||
1504 | Tooltip.prototype.fixTitle = function () { | 1601 | Tooltip.prototype.fixTitle = function () { |
1505 | var $e = this.$element | 1602 | var $e = this.$element |
1506 | if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') { | 1603 | if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { |
1507 | $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') | 1604 | $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') |
1508 | } | 1605 | } |
1509 | } | 1606 | } |
@@ -1523,7 +1620,10 @@ if (typeof jQuery === 'undefined') { | |||
1523 | // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 | 1620 | // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 |
1524 | elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) | 1621 | elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) |
1525 | } | 1622 | } |
1526 | 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()) | ||
1527 | var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } | 1627 | var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } |
1528 | var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null | 1628 | var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null |
1529 | 1629 | ||
@@ -1531,10 +1631,10 @@ if (typeof jQuery === 'undefined') { | |||
1531 | } | 1631 | } |
1532 | 1632 | ||
1533 | Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { | 1633 | Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { |
1534 | return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : | 1634 | return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : |
1535 | placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : | 1635 | placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : |
1536 | placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : | 1636 | placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : |
1537 | /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } | 1637 | /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } |
1538 | 1638 | ||
1539 | } | 1639 | } |
1540 | 1640 | ||
@@ -1558,7 +1658,7 @@ if (typeof jQuery === 'undefined') { | |||
1558 | var rightEdgeOffset = pos.left + viewportPadding + actualWidth | 1658 | var rightEdgeOffset = pos.left + viewportPadding + actualWidth |
1559 | if (leftEdgeOffset < viewportDimensions.left) { // left overflow | 1659 | if (leftEdgeOffset < viewportDimensions.left) { // left overflow |
1560 | delta.left = viewportDimensions.left - leftEdgeOffset | 1660 | delta.left = viewportDimensions.left - leftEdgeOffset |
1561 | } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow | 1661 | } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow |
1562 | delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset | 1662 | delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset |
1563 | } | 1663 | } |
1564 | } | 1664 | } |
@@ -1584,7 +1684,13 @@ if (typeof jQuery === 'undefined') { | |||
1584 | } | 1684 | } |
1585 | 1685 | ||
1586 | Tooltip.prototype.tip = function () { | 1686 | Tooltip.prototype.tip = function () { |
1587 | return (this.$tip = this.$tip || $(this.options.template)) | 1687 | if (!this.$tip) { |
1688 | this.$tip = $(this.options.template) | ||
1689 | if (this.$tip.length != 1) { | ||
1690 | throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') | ||
1691 | } | ||
1692 | } | ||
1693 | return this.$tip | ||
1588 | } | 1694 | } |
1589 | 1695 | ||
1590 | Tooltip.prototype.arrow = function () { | 1696 | Tooltip.prototype.arrow = function () { |
@@ -1613,7 +1719,13 @@ if (typeof jQuery === 'undefined') { | |||
1613 | } | 1719 | } |
1614 | } | 1720 | } |
1615 | 1721 | ||
1616 | self.tip().hasClass('in') ? self.leave(self) : self.enter(self) | 1722 | if (e) { |
1723 | self.inState.click = !self.inState.click | ||
1724 | if (self.isInStateTrue()) self.enter(self) | ||
1725 | else self.leave(self) | ||
1726 | } else { | ||
1727 | self.tip().hasClass('in') ? self.leave(self) : self.enter(self) | ||
1728 | } | ||
1617 | } | 1729 | } |
1618 | 1730 | ||
1619 | Tooltip.prototype.destroy = function () { | 1731 | Tooltip.prototype.destroy = function () { |
@@ -1621,6 +1733,13 @@ if (typeof jQuery === 'undefined') { | |||
1621 | clearTimeout(this.timeout) | 1733 | clearTimeout(this.timeout) |
1622 | this.hide(function () { | 1734 | this.hide(function () { |
1623 | that.$element.off('.' + that.type).removeData('bs.' + that.type) | 1735 | that.$element.off('.' + that.type).removeData('bs.' + that.type) |
1736 | if (that.$tip) { | ||
1737 | that.$tip.detach() | ||
1738 | } | ||
1739 | that.$tip = null | ||
1740 | that.$arrow = null | ||
1741 | that.$viewport = null | ||
1742 | that.$element = null | ||
1624 | }) | 1743 | }) |
1625 | } | 1744 | } |
1626 | 1745 | ||
@@ -1630,18 +1749,12 @@ if (typeof jQuery === 'undefined') { | |||
1630 | 1749 | ||
1631 | function Plugin(option) { | 1750 | function Plugin(option) { |
1632 | return this.each(function () { | 1751 | return this.each(function () { |
1633 | var $this = $(this) | 1752 | var $this = $(this) |
1634 | var data = $this.data('bs.tooltip') | 1753 | var data = $this.data('bs.tooltip') |
1635 | var options = typeof option == 'object' && option | 1754 | var options = typeof option == 'object' && option |
1636 | var selector = options && options.selector | 1755 | |
1637 | 1756 | if (!data && /destroy|hide/.test(option)) return | |
1638 | if (!data && option == 'destroy') return | 1757 | if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) |
1639 | if (selector) { | ||
1640 | if (!data) $this.data('bs.tooltip', (data = {})) | ||
1641 | if (!data[selector]) data[selector] = new Tooltip(this, options) | ||
1642 | } else { | ||
1643 | if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) | ||
1644 | } | ||
1645 | if (typeof option == 'string') data[option]() | 1758 | if (typeof option == 'string') data[option]() |
1646 | }) | 1759 | }) |
1647 | } | 1760 | } |
@@ -1663,10 +1776,10 @@ if (typeof jQuery === 'undefined') { | |||
1663 | }(jQuery); | 1776 | }(jQuery); |
1664 | 1777 | ||
1665 | /* ======================================================================== | 1778 | /* ======================================================================== |
1666 | * Bootstrap: popover.js v3.3.0 | 1779 | * Bootstrap: popover.js v3.3.7 |
1667 | * http://getbootstrap.com/javascript/#popovers | 1780 | * http://getbootstrap.com/javascript/#popovers |
1668 | * ======================================================================== | 1781 | * ======================================================================== |
1669 | * Copyright 2011-2014 Twitter, Inc. | 1782 | * Copyright 2011-2016 Twitter, Inc. |
1670 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 1783 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
1671 | * ======================================================================== */ | 1784 | * ======================================================================== */ |
1672 | 1785 | ||
@@ -1683,7 +1796,7 @@ if (typeof jQuery === 'undefined') { | |||
1683 | 1796 | ||
1684 | if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') | 1797 | if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') |
1685 | 1798 | ||
1686 | Popover.VERSION = '3.3.0' | 1799 | Popover.VERSION = '3.3.7' |
1687 | 1800 | ||
1688 | Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { | 1801 | Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { |
1689 | placement: 'right', | 1802 | placement: 'right', |
@@ -1739,29 +1852,18 @@ if (typeof jQuery === 'undefined') { | |||
1739 | return (this.$arrow = this.$arrow || this.tip().find('.arrow')) | 1852 | return (this.$arrow = this.$arrow || this.tip().find('.arrow')) |
1740 | } | 1853 | } |
1741 | 1854 | ||
1742 | Popover.prototype.tip = function () { | ||
1743 | if (!this.$tip) this.$tip = $(this.options.template) | ||
1744 | return this.$tip | ||
1745 | } | ||
1746 | |||
1747 | 1855 | ||
1748 | // POPOVER PLUGIN DEFINITION | 1856 | // POPOVER PLUGIN DEFINITION |
1749 | // ========================= | 1857 | // ========================= |
1750 | 1858 | ||
1751 | function Plugin(option) { | 1859 | function Plugin(option) { |
1752 | return this.each(function () { | 1860 | return this.each(function () { |
1753 | var $this = $(this) | 1861 | var $this = $(this) |
1754 | var data = $this.data('bs.popover') | 1862 | var data = $this.data('bs.popover') |
1755 | var options = typeof option == 'object' && option | 1863 | var options = typeof option == 'object' && option |
1756 | var selector = options && options.selector | 1864 | |
1757 | 1865 | if (!data && /destroy|hide/.test(option)) return | |
1758 | if (!data && option == 'destroy') return | 1866 | if (!data) $this.data('bs.popover', (data = new Popover(this, options))) |
1759 | if (selector) { | ||
1760 | if (!data) $this.data('bs.popover', (data = {})) | ||
1761 | if (!data[selector]) data[selector] = new Popover(this, options) | ||
1762 | } else { | ||
1763 | if (!data) $this.data('bs.popover', (data = new Popover(this, options))) | ||
1764 | } | ||
1765 | if (typeof option == 'string') data[option]() | 1867 | if (typeof option == 'string') data[option]() |
1766 | }) | 1868 | }) |
1767 | } | 1869 | } |
@@ -1783,10 +1885,10 @@ if (typeof jQuery === 'undefined') { | |||
1783 | }(jQuery); | 1885 | }(jQuery); |
1784 | 1886 | ||
1785 | /* ======================================================================== | 1887 | /* ======================================================================== |
1786 | * Bootstrap: scrollspy.js v3.3.0 | 1888 | * Bootstrap: scrollspy.js v3.3.7 |
1787 | * http://getbootstrap.com/javascript/#scrollspy | 1889 | * http://getbootstrap.com/javascript/#scrollspy |
1788 | * ======================================================================== | 1890 | * ======================================================================== |
1789 | * Copyright 2011-2014 Twitter, Inc. | 1891 | * Copyright 2011-2016 Twitter, Inc. |
1790 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 1892 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
1791 | * ======================================================================== */ | 1893 | * ======================================================================== */ |
1792 | 1894 | ||
@@ -1798,10 +1900,8 @@ if (typeof jQuery === 'undefined') { | |||
1798 | // ========================== | 1900 | // ========================== |
1799 | 1901 | ||
1800 | function ScrollSpy(element, options) { | 1902 | function ScrollSpy(element, options) { |
1801 | var process = $.proxy(this.process, this) | 1903 | this.$body = $(document.body) |
1802 | 1904 | this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) | |
1803 | this.$body = $('body') | ||
1804 | this.$scrollElement = $(element).is('body') ? $(window) : $(element) | ||
1805 | this.options = $.extend({}, ScrollSpy.DEFAULTS, options) | 1905 | this.options = $.extend({}, ScrollSpy.DEFAULTS, options) |
1806 | this.selector = (this.options.target || '') + ' .nav li > a' | 1906 | this.selector = (this.options.target || '') + ' .nav li > a' |
1807 | this.offsets = [] | 1907 | this.offsets = [] |
@@ -1809,12 +1909,12 @@ if (typeof jQuery === 'undefined') { | |||
1809 | this.activeTarget = null | 1909 | this.activeTarget = null |
1810 | this.scrollHeight = 0 | 1910 | this.scrollHeight = 0 |
1811 | 1911 | ||
1812 | this.$scrollElement.on('scroll.bs.scrollspy', process) | 1912 | this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) |
1813 | this.refresh() | 1913 | this.refresh() |
1814 | this.process() | 1914 | this.process() |
1815 | } | 1915 | } |
1816 | 1916 | ||
1817 | ScrollSpy.VERSION = '3.3.0' | 1917 | ScrollSpy.VERSION = '3.3.7' |
1818 | 1918 | ||
1819 | ScrollSpy.DEFAULTS = { | 1919 | ScrollSpy.DEFAULTS = { |
1820 | offset: 10 | 1920 | offset: 10 |
@@ -1825,20 +1925,19 @@ if (typeof jQuery === 'undefined') { | |||
1825 | } | 1925 | } |
1826 | 1926 | ||
1827 | ScrollSpy.prototype.refresh = function () { | 1927 | ScrollSpy.prototype.refresh = function () { |
1828 | var offsetMethod = 'offset' | 1928 | var that = this |
1829 | var offsetBase = 0 | 1929 | var offsetMethod = 'offset' |
1930 | var offsetBase = 0 | ||
1931 | |||
1932 | this.offsets = [] | ||
1933 | this.targets = [] | ||
1934 | this.scrollHeight = this.getScrollHeight() | ||
1830 | 1935 | ||
1831 | if (!$.isWindow(this.$scrollElement[0])) { | 1936 | if (!$.isWindow(this.$scrollElement[0])) { |
1832 | offsetMethod = 'position' | 1937 | offsetMethod = 'position' |
1833 | offsetBase = this.$scrollElement.scrollTop() | 1938 | offsetBase = this.$scrollElement.scrollTop() |
1834 | } | 1939 | } |
1835 | 1940 | ||
1836 | this.offsets = [] | ||
1837 | this.targets = [] | ||
1838 | this.scrollHeight = this.getScrollHeight() | ||
1839 | |||
1840 | var self = this | ||
1841 | |||
1842 | this.$body | 1941 | this.$body |
1843 | .find(this.selector) | 1942 | .find(this.selector) |
1844 | .map(function () { | 1943 | .map(function () { |
@@ -1853,8 +1952,8 @@ if (typeof jQuery === 'undefined') { | |||
1853 | }) | 1952 | }) |
1854 | .sort(function (a, b) { return a[0] - b[0] }) | 1953 | .sort(function (a, b) { return a[0] - b[0] }) |
1855 | .each(function () { | 1954 | .each(function () { |
1856 | self.offsets.push(this[0]) | 1955 | that.offsets.push(this[0]) |
1857 | self.targets.push(this[1]) | 1956 | that.targets.push(this[1]) |
1858 | }) | 1957 | }) |
1859 | } | 1958 | } |
1860 | 1959 | ||
@@ -1883,7 +1982,7 @@ if (typeof jQuery === 'undefined') { | |||
1883 | for (i = offsets.length; i--;) { | 1982 | for (i = offsets.length; i--;) { |
1884 | activeTarget != targets[i] | 1983 | activeTarget != targets[i] |
1885 | && scrollTop >= offsets[i] | 1984 | && scrollTop >= offsets[i] |
1886 | && (!offsets[i + 1] || scrollTop <= offsets[i + 1]) | 1985 | && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) |
1887 | && this.activate(targets[i]) | 1986 | && this.activate(targets[i]) |
1888 | } | 1987 | } |
1889 | } | 1988 | } |
@@ -1894,8 +1993,8 @@ if (typeof jQuery === 'undefined') { | |||
1894 | this.clear() | 1993 | this.clear() |
1895 | 1994 | ||
1896 | var selector = this.selector + | 1995 | var selector = this.selector + |
1897 | '[data-target="' + target + '"],' + | 1996 | '[data-target="' + target + '"],' + |
1898 | this.selector + '[href="' + target + '"]' | 1997 | this.selector + '[href="' + target + '"]' |
1899 | 1998 | ||
1900 | var active = $(selector) | 1999 | var active = $(selector) |
1901 | .parents('li') | 2000 | .parents('li') |
@@ -1959,10 +2058,10 @@ if (typeof jQuery === 'undefined') { | |||
1959 | }(jQuery); | 2058 | }(jQuery); |
1960 | 2059 | ||
1961 | /* ======================================================================== | 2060 | /* ======================================================================== |
1962 | * Bootstrap: tab.js v3.3.0 | 2061 | * Bootstrap: tab.js v3.3.7 |
1963 | * http://getbootstrap.com/javascript/#tabs | 2062 | * http://getbootstrap.com/javascript/#tabs |
1964 | * ======================================================================== | 2063 | * ======================================================================== |
1965 | * Copyright 2011-2014 Twitter, Inc. | 2064 | * Copyright 2011-2016 Twitter, Inc. |
1966 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 2065 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
1967 | * ======================================================================== */ | 2066 | * ======================================================================== */ |
1968 | 2067 | ||
@@ -1974,10 +2073,12 @@ if (typeof jQuery === 'undefined') { | |||
1974 | // ==================== | 2073 | // ==================== |
1975 | 2074 | ||
1976 | var Tab = function (element) { | 2075 | var Tab = function (element) { |
2076 | // jscs:disable requireDollarBeforejQueryAssignment | ||
1977 | this.element = $(element) | 2077 | this.element = $(element) |
2078 | // jscs:enable requireDollarBeforejQueryAssignment | ||
1978 | } | 2079 | } |
1979 | 2080 | ||
1980 | Tab.VERSION = '3.3.0' | 2081 | Tab.VERSION = '3.3.7' |
1981 | 2082 | ||
1982 | Tab.TRANSITION_DURATION = 150 | 2083 | Tab.TRANSITION_DURATION = 150 |
1983 | 2084 | ||
@@ -2025,7 +2126,7 @@ if (typeof jQuery === 'undefined') { | |||
2025 | var $active = container.find('> .active') | 2126 | var $active = container.find('> .active') |
2026 | var transition = callback | 2127 | var transition = callback |
2027 | && $.support.transition | 2128 | && $.support.transition |
2028 | && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length) | 2129 | && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) |
2029 | 2130 | ||
2030 | function next() { | 2131 | function next() { |
2031 | $active | 2132 | $active |
@@ -2048,7 +2149,7 @@ if (typeof jQuery === 'undefined') { | |||
2048 | element.removeClass('fade') | 2149 | element.removeClass('fade') |
2049 | } | 2150 | } |
2050 | 2151 | ||
2051 | if (element.parent('.dropdown-menu')) { | 2152 | if (element.parent('.dropdown-menu').length) { |
2052 | element | 2153 | element |
2053 | .closest('li.dropdown') | 2154 | .closest('li.dropdown') |
2054 | .addClass('active') | 2155 | .addClass('active') |
@@ -2113,10 +2214,10 @@ if (typeof jQuery === 'undefined') { | |||
2113 | }(jQuery); | 2214 | }(jQuery); |
2114 | 2215 | ||
2115 | /* ======================================================================== | 2216 | /* ======================================================================== |
2116 | * Bootstrap: affix.js v3.3.0 | 2217 | * Bootstrap: affix.js v3.3.7 |
2117 | * http://getbootstrap.com/javascript/#affix | 2218 | * http://getbootstrap.com/javascript/#affix |
2118 | * ======================================================================== | 2219 | * ======================================================================== |
2119 | * Copyright 2011-2014 Twitter, Inc. | 2220 | * Copyright 2011-2016 Twitter, Inc. |
2120 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 2221 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
2121 | * ======================================================================== */ | 2222 | * ======================================================================== */ |
2122 | 2223 | ||
@@ -2135,14 +2236,14 @@ if (typeof jQuery === 'undefined') { | |||
2135 | .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) | 2236 | .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) |
2136 | 2237 | ||
2137 | this.$element = $(element) | 2238 | this.$element = $(element) |
2138 | this.affixed = | 2239 | this.affixed = null |
2139 | this.unpin = | 2240 | this.unpin = null |
2140 | this.pinnedOffset = null | 2241 | this.pinnedOffset = null |
2141 | 2242 | ||
2142 | this.checkPosition() | 2243 | this.checkPosition() |
2143 | } | 2244 | } |
2144 | 2245 | ||
2145 | Affix.VERSION = '3.3.0' | 2246 | Affix.VERSION = '3.3.7' |
2146 | 2247 | ||
2147 | Affix.RESET = 'affix affix-top affix-bottom' | 2248 | Affix.RESET = 'affix affix-top affix-bottom' |
2148 | 2249 | ||
@@ -2167,7 +2268,7 @@ if (typeof jQuery === 'undefined') { | |||
2167 | var colliderTop = initializing ? scrollTop : position.top | 2268 | var colliderTop = initializing ? scrollTop : position.top |
2168 | var colliderHeight = initializing ? targetHeight : height | 2269 | var colliderHeight = initializing ? targetHeight : height |
2169 | 2270 | ||
2170 | if (offsetTop != null && colliderTop <= offsetTop) return 'top' | 2271 | if (offsetTop != null && scrollTop <= offsetTop) return 'top' |
2171 | if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' | 2272 | if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' |
2172 | 2273 | ||
2173 | return false | 2274 | return false |
@@ -2192,7 +2293,7 @@ if (typeof jQuery === 'undefined') { | |||
2192 | var offset = this.options.offset | 2293 | var offset = this.options.offset |
2193 | var offsetTop = offset.top | 2294 | var offsetTop = offset.top |
2194 | var offsetBottom = offset.bottom | 2295 | var offsetBottom = offset.bottom |
2195 | var scrollHeight = $('body').height() | 2296 | var scrollHeight = Math.max($(document).height(), $(document.body).height()) |
2196 | 2297 | ||
2197 | if (typeof offset != 'object') offsetBottom = offsetTop = offset | 2298 | if (typeof offset != 'object') offsetBottom = offsetTop = offset |
2198 | if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) | 2299 | if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) |
diff --git a/dist/js/bootstrap.min.js b/dist/js/bootstrap.min.js index d8398659..9bcd2fcc 100644 --- a/dist/js/bootstrap.min.js +++ b/dist/js/bootstrap.min.js | |||
@@ -1,7 +1,7 @@ | |||
1 | /*! | 1 | /*! |
2 | * Bootstrap v3.3.1 (http://getbootstrap.com) | 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) |
3 | * Copyright 2011-2014 Twitter, Inc. | 3 | * Copyright 2011-2016 Twitter, Inc. |
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | 4 | * Licensed under the MIT license |
5 | */ | 5 | */ |
6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.1",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.1",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c="prev"==a?-1:1,d=this.getItemIndex(b),e=(d+c)%this.$items.length;return this.$items.eq(e)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i="next"==b?"first":"last",j=this;if(!f.length){if(!this.options.wrap)return;f=this.$element.find(".item")[i]()}if(f.hasClass("active"))return this.sliding=!1;var k=f[0],l=a.Event("slide.bs.carousel",{relatedTarget:k,direction:h});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var m=a(this.$indicators.children()[this.getItemIndex(f)]);m&&m.addClass("active")}var n=a.Event("slid.bs.carousel",{relatedTarget:k,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),j.sliding=!1,setTimeout(function(){j.$element.trigger(n)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(n)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.1",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.find("> .panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.1",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.1",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.options.backdrop&&d.adjustBackdrop(),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$element.find(".modal-dialog").one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop '+e+'" />').prependTo(this.$element).on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.tooltip",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var q=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=this.tip(),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.popover",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.1",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.1",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]}) | 6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){ |
7 | })}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.1",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=i?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file | 7 | this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file |