bootstrap-sass 3.3.5 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +8 -12
- data/CHANGELOG.md +20 -0
- data/Gemfile +1 -4
- data/LICENSE +2 -1
- data/README.md +79 -74
- data/Rakefile +46 -11
- data/assets/javascripts/bootstrap/affix.js +7 -5
- data/assets/javascripts/bootstrap/alert.js +6 -5
- data/assets/javascripts/bootstrap/button.js +14 -9
- data/assets/javascripts/bootstrap/carousel.js +16 -7
- data/assets/javascripts/bootstrap/collapse.js +7 -6
- data/assets/javascripts/bootstrap/dropdown.js +7 -7
- data/assets/javascripts/bootstrap/modal.js +44 -23
- data/assets/javascripts/bootstrap/popover.js +25 -10
- data/assets/javascripts/bootstrap/scrollspy.js +4 -4
- data/assets/javascripts/bootstrap/tab.js +10 -10
- data/assets/javascripts/bootstrap/tooltip.js +177 -14
- data/assets/javascripts/bootstrap/transition.js +5 -5
- data/assets/javascripts/bootstrap-sprockets.js +2 -2
- data/assets/javascripts/bootstrap.js +326 -109
- data/assets/javascripts/bootstrap.min.js +3 -4
- data/assets/stylesheets/_bootstrap-mincer.scss +2 -2
- data/assets/stylesheets/_bootstrap.scss +2 -2
- data/assets/stylesheets/bootstrap/_alerts.scss +3 -3
- data/assets/stylesheets/bootstrap/_badges.scss +3 -3
- data/assets/stylesheets/bootstrap/_breadcrumbs.scss +3 -1
- data/assets/stylesheets/bootstrap/_button-groups.scss +8 -8
- data/assets/stylesheets/bootstrap/_buttons.scss +4 -4
- data/assets/stylesheets/bootstrap/_carousel.scss +33 -31
- data/assets/stylesheets/bootstrap/_close.scss +1 -0
- data/assets/stylesheets/bootstrap/_code.scss +3 -3
- data/assets/stylesheets/bootstrap/_component-animations.scss +1 -0
- data/assets/stylesheets/bootstrap/_dropdowns.scss +20 -23
- data/assets/stylesheets/bootstrap/_forms.scss +56 -60
- data/assets/stylesheets/bootstrap/_glyphicons.scss +11 -11
- data/assets/stylesheets/bootstrap/_grid.scss +10 -0
- data/assets/stylesheets/bootstrap/_input-groups.scss +9 -5
- data/assets/stylesheets/bootstrap/_jumbotron.scss +5 -3
- data/assets/stylesheets/bootstrap/_labels.scss +1 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +30 -32
- data/assets/stylesheets/bootstrap/_media.scss +1 -1
- data/assets/stylesheets/bootstrap/_modals.scss +8 -8
- data/assets/stylesheets/bootstrap/_navbar.scss +75 -81
- data/assets/stylesheets/bootstrap/_navs.scss +4 -4
- data/assets/stylesheets/bootstrap/_normalize.scss +5 -2
- data/assets/stylesheets/bootstrap/_pager.scss +2 -2
- data/assets/stylesheets/bootstrap/_pagination.scss +13 -16
- data/assets/stylesheets/bootstrap/_panels.scss +5 -5
- data/assets/stylesheets/bootstrap/_popovers.scss +47 -52
- data/assets/stylesheets/bootstrap/_print.scss +90 -92
- data/assets/stylesheets/bootstrap/_progress-bars.scss +3 -3
- data/assets/stylesheets/bootstrap/_responsive-embed.scss +2 -2
- data/assets/stylesheets/bootstrap/_responsive-utilities.scss +3 -3
- data/assets/stylesheets/bootstrap/_scaffolding.scss +7 -7
- data/assets/stylesheets/bootstrap/_tables.scss +23 -23
- data/assets/stylesheets/bootstrap/_theme.scss +21 -17
- data/assets/stylesheets/bootstrap/_thumbnails.scss +1 -1
- data/assets/stylesheets/bootstrap/_tooltip.scss +38 -27
- data/assets/stylesheets/bootstrap/_type.scss +11 -11
- data/assets/stylesheets/bootstrap/_variables.scss +9 -7
- data/assets/stylesheets/bootstrap/_wells.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_alerts.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +7 -14
- data/assets/stylesheets/bootstrap/mixins/_center-block.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +6 -8
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +7 -7
- data/assets/stylesheets/bootstrap/mixins/_hide-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_image.scss +5 -10
- data/assets/stylesheets/bootstrap/mixins/_opacity.scss +2 -3
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_resize.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +0 -4
- data/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +3 -3
- data/bootstrap-sass.gemspec +10 -9
- data/bower.json +4 -3
- data/composer.json +2 -2
- data/eyeglass-exports.js +7 -0
- data/lib/bootstrap-sass/engine.rb +6 -1
- data/lib/bootstrap-sass/version.rb +2 -2
- data/lib/bootstrap-sass.rb +17 -10
- data/package-lock.json +1611 -0
- data/package.json +20 -6
- data/sache.json +1 -1
- data/tasks/converter/less_conversion.rb +12 -8
- data/tasks/converter/network.rb +2 -2
- data/templates/project/_bootstrap-variables.sass +10 -8
- data/test/compilation_test.rb +24 -12
- data/test/dummy_rails/config/application.rb +2 -1
- data/test/dummy_rails/config/boot.rb +1 -1
- data/test/dummy_sass_only/Gemfile +1 -1
- data/test/dummy_sass_only/compile.rb +14 -7
- data/test/dummy_sass_only/import_all.scss +2 -0
- data/test/gemfiles/default.gemfile +3 -0
- data/test/node_mincer_test.rb +2 -3
- data/test/node_sass_compile_test.sh +4 -3
- data/test/sass_test.rb +10 -7
- data/test/sprockets_rails_test.rb +12 -8
- data/test/support/dummy_rails_integration.rb +1 -1
- data/test/support/reporting.rb +10 -0
- data/test/test_helper.rb +3 -2
- metadata +37 -28
- data/test/compass_test.rb +0 -9
- data/test/dummy_sass_only/import_all.sass +0 -2
- data/test/gemfiles/sass_3_2.gemfile +0 -6
- data/test/gemfiles/sass_3_3.gemfile +0 -6
- data/test/gemfiles/sass_3_4.gemfile +0 -7
- data/test/gemfiles/sass_head.gemfile +0 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap v3.
|
|
3
|
-
* Copyright 2011-
|
|
2
|
+
* Bootstrap v3.4.1 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
4
4
|
* Licensed under the MIT license
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -11,16 +11,16 @@ if (typeof jQuery === 'undefined') {
|
|
|
11
11
|
+function ($) {
|
|
12
12
|
'use strict';
|
|
13
13
|
var version = $.fn.jquery.split(' ')[0].split('.')
|
|
14
|
-
if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
|
|
15
|
-
throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
|
|
14
|
+
if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {
|
|
15
|
+
throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')
|
|
16
16
|
}
|
|
17
17
|
}(jQuery);
|
|
18
18
|
|
|
19
19
|
/* ========================================================================
|
|
20
|
-
* Bootstrap: transition.js v3.
|
|
21
|
-
*
|
|
20
|
+
* Bootstrap: transition.js v3.4.1
|
|
21
|
+
* https://getbootstrap.com/docs/3.4/javascript/#transitions
|
|
22
22
|
* ========================================================================
|
|
23
|
-
* Copyright 2011-
|
|
23
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
24
24
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
25
25
|
* ======================================================================== */
|
|
26
26
|
|
|
@@ -28,7 +28,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
28
28
|
+function ($) {
|
|
29
29
|
'use strict';
|
|
30
30
|
|
|
31
|
-
// CSS TRANSITION SUPPORT (Shoutout:
|
|
31
|
+
// CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)
|
|
32
32
|
// ============================================================
|
|
33
33
|
|
|
34
34
|
function transitionEnd() {
|
|
@@ -50,7 +50,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
50
50
|
return false // explicit for ie8 ( ._.)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
//
|
|
53
|
+
// https://blog.alexmaccaw.com/css-transitions
|
|
54
54
|
$.fn.emulateTransitionEnd = function (duration) {
|
|
55
55
|
var called = false
|
|
56
56
|
var $el = this
|
|
@@ -77,10 +77,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
77
77
|
}(jQuery);
|
|
78
78
|
|
|
79
79
|
/* ========================================================================
|
|
80
|
-
* Bootstrap: alert.js v3.
|
|
81
|
-
*
|
|
80
|
+
* Bootstrap: alert.js v3.4.1
|
|
81
|
+
* https://getbootstrap.com/docs/3.4/javascript/#alerts
|
|
82
82
|
* ========================================================================
|
|
83
|
-
* Copyright 2011-
|
|
83
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
84
84
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
85
85
|
* ======================================================================== */
|
|
86
86
|
|
|
@@ -96,7 +96,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
96
96
|
$(el).on('click', dismiss, this.close)
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
Alert.VERSION = '3.
|
|
99
|
+
Alert.VERSION = '3.4.1'
|
|
100
100
|
|
|
101
101
|
Alert.TRANSITION_DURATION = 150
|
|
102
102
|
|
|
@@ -109,7 +109,8 @@ if (typeof jQuery === 'undefined') {
|
|
|
109
109
|
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
selector = selector === '#' ? [] : selector
|
|
113
|
+
var $parent = $(document).find(selector)
|
|
113
114
|
|
|
114
115
|
if (e) e.preventDefault()
|
|
115
116
|
|
|
@@ -172,10 +173,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
172
173
|
}(jQuery);
|
|
173
174
|
|
|
174
175
|
/* ========================================================================
|
|
175
|
-
* Bootstrap: button.js v3.
|
|
176
|
-
*
|
|
176
|
+
* Bootstrap: button.js v3.4.1
|
|
177
|
+
* https://getbootstrap.com/docs/3.4/javascript/#buttons
|
|
177
178
|
* ========================================================================
|
|
178
|
-
* Copyright 2011-
|
|
179
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
179
180
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
180
181
|
* ======================================================================== */
|
|
181
182
|
|
|
@@ -192,7 +193,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
192
193
|
this.isLoading = false
|
|
193
194
|
}
|
|
194
195
|
|
|
195
|
-
Button.VERSION = '3.
|
|
196
|
+
Button.VERSION = '3.4.1'
|
|
196
197
|
|
|
197
198
|
Button.DEFAULTS = {
|
|
198
199
|
loadingText: 'loading...'
|
|
@@ -214,10 +215,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
214
215
|
|
|
215
216
|
if (state == 'loadingText') {
|
|
216
217
|
this.isLoading = true
|
|
217
|
-
$el.addClass(d).attr(d, d)
|
|
218
|
+
$el.addClass(d).attr(d, d).prop(d, true)
|
|
218
219
|
} else if (this.isLoading) {
|
|
219
220
|
this.isLoading = false
|
|
220
|
-
$el.removeClass(d).removeAttr(d)
|
|
221
|
+
$el.removeClass(d).removeAttr(d).prop(d, false)
|
|
221
222
|
}
|
|
222
223
|
}, this), 0)
|
|
223
224
|
}
|
|
@@ -281,10 +282,15 @@ if (typeof jQuery === 'undefined') {
|
|
|
281
282
|
|
|
282
283
|
$(document)
|
|
283
284
|
.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
|
284
|
-
var $btn = $(e.target)
|
|
285
|
-
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
|
285
|
+
var $btn = $(e.target).closest('.btn')
|
|
286
286
|
Plugin.call($btn, 'toggle')
|
|
287
|
-
if (!($(e.target).is('input[type="radio"]
|
|
287
|
+
if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) {
|
|
288
|
+
// Prevent double click on radios, and the double selections (so cancellation) on checkboxes
|
|
289
|
+
e.preventDefault()
|
|
290
|
+
// The target component still receive the focus
|
|
291
|
+
if ($btn.is('input,button')) $btn.trigger('focus')
|
|
292
|
+
else $btn.find('input:visible,button:visible').first().trigger('focus')
|
|
293
|
+
}
|
|
288
294
|
})
|
|
289
295
|
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
|
290
296
|
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
|
@@ -293,10 +299,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
293
299
|
}(jQuery);
|
|
294
300
|
|
|
295
301
|
/* ========================================================================
|
|
296
|
-
* Bootstrap: carousel.js v3.
|
|
297
|
-
*
|
|
302
|
+
* Bootstrap: carousel.js v3.4.1
|
|
303
|
+
* https://getbootstrap.com/docs/3.4/javascript/#carousel
|
|
298
304
|
* ========================================================================
|
|
299
|
-
* Copyright 2011-
|
|
305
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
300
306
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
301
307
|
* ======================================================================== */
|
|
302
308
|
|
|
@@ -324,7 +330,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
324
330
|
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
|
325
331
|
}
|
|
326
332
|
|
|
327
|
-
Carousel.VERSION = '3.
|
|
333
|
+
Carousel.VERSION = '3.4.1'
|
|
328
334
|
|
|
329
335
|
Carousel.TRANSITION_DURATION = 600
|
|
330
336
|
|
|
@@ -438,7 +444,9 @@ if (typeof jQuery === 'undefined') {
|
|
|
438
444
|
var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
|
|
439
445
|
if ($.support.transition && this.$element.hasClass('slide')) {
|
|
440
446
|
$next.addClass(type)
|
|
441
|
-
$next
|
|
447
|
+
if (typeof $next === 'object' && $next.length) {
|
|
448
|
+
$next[0].offsetWidth // force reflow
|
|
449
|
+
}
|
|
442
450
|
$active.addClass(direction)
|
|
443
451
|
$next.addClass(direction)
|
|
444
452
|
$active
|
|
@@ -500,10 +508,17 @@ if (typeof jQuery === 'undefined') {
|
|
|
500
508
|
// =================
|
|
501
509
|
|
|
502
510
|
var clickHandler = function (e) {
|
|
503
|
-
var href
|
|
504
511
|
var $this = $(this)
|
|
505
|
-
var
|
|
512
|
+
var href = $this.attr('href')
|
|
513
|
+
if (href) {
|
|
514
|
+
href = href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
var target = $this.attr('data-target') || href
|
|
518
|
+
var $target = $(document).find(target)
|
|
519
|
+
|
|
506
520
|
if (!$target.hasClass('carousel')) return
|
|
521
|
+
|
|
507
522
|
var options = $.extend({}, $target.data(), $this.data())
|
|
508
523
|
var slideIndex = $this.attr('data-slide-to')
|
|
509
524
|
if (slideIndex) options.interval = false
|
|
@@ -531,13 +546,14 @@ if (typeof jQuery === 'undefined') {
|
|
|
531
546
|
}(jQuery);
|
|
532
547
|
|
|
533
548
|
/* ========================================================================
|
|
534
|
-
* Bootstrap: collapse.js v3.
|
|
535
|
-
*
|
|
549
|
+
* Bootstrap: collapse.js v3.4.1
|
|
550
|
+
* https://getbootstrap.com/docs/3.4/javascript/#collapse
|
|
536
551
|
* ========================================================================
|
|
537
|
-
* Copyright 2011-
|
|
552
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
538
553
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
539
554
|
* ======================================================================== */
|
|
540
555
|
|
|
556
|
+
/* jshint latedef: false */
|
|
541
557
|
|
|
542
558
|
+function ($) {
|
|
543
559
|
'use strict';
|
|
@@ -561,7 +577,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
561
577
|
if (this.options.toggle) this.toggle()
|
|
562
578
|
}
|
|
563
579
|
|
|
564
|
-
Collapse.VERSION = '3.
|
|
580
|
+
Collapse.VERSION = '3.4.1'
|
|
565
581
|
|
|
566
582
|
Collapse.TRANSITION_DURATION = 350
|
|
567
583
|
|
|
@@ -668,7 +684,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
668
684
|
}
|
|
669
685
|
|
|
670
686
|
Collapse.prototype.getParent = function () {
|
|
671
|
-
return $(this.options.parent)
|
|
687
|
+
return $(document).find(this.options.parent)
|
|
672
688
|
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
|
|
673
689
|
.each($.proxy(function (i, element) {
|
|
674
690
|
var $element = $(element)
|
|
@@ -691,7 +707,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
691
707
|
var target = $trigger.attr('data-target')
|
|
692
708
|
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
|
693
709
|
|
|
694
|
-
return $(target)
|
|
710
|
+
return $(document).find(target)
|
|
695
711
|
}
|
|
696
712
|
|
|
697
713
|
|
|
@@ -743,10 +759,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
743
759
|
}(jQuery);
|
|
744
760
|
|
|
745
761
|
/* ========================================================================
|
|
746
|
-
* Bootstrap: dropdown.js v3.
|
|
747
|
-
*
|
|
762
|
+
* Bootstrap: dropdown.js v3.4.1
|
|
763
|
+
* https://getbootstrap.com/docs/3.4/javascript/#dropdowns
|
|
748
764
|
* ========================================================================
|
|
749
|
-
* Copyright 2011-
|
|
765
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
750
766
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
751
767
|
* ======================================================================== */
|
|
752
768
|
|
|
@@ -763,7 +779,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
763
779
|
$(element).on('click.bs.dropdown', this.toggle)
|
|
764
780
|
}
|
|
765
781
|
|
|
766
|
-
Dropdown.VERSION = '3.
|
|
782
|
+
Dropdown.VERSION = '3.4.1'
|
|
767
783
|
|
|
768
784
|
function getParent($this) {
|
|
769
785
|
var selector = $this.attr('data-target')
|
|
@@ -773,7 +789,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
773
789
|
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
|
774
790
|
}
|
|
775
791
|
|
|
776
|
-
var $parent = selector
|
|
792
|
+
var $parent = selector !== '#' ? $(document).find(selector) : null
|
|
777
793
|
|
|
778
794
|
return $parent && $parent.length ? $parent : $this.parent()
|
|
779
795
|
}
|
|
@@ -795,7 +811,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
795
811
|
if (e.isDefaultPrevented()) return
|
|
796
812
|
|
|
797
813
|
$this.attr('aria-expanded', 'false')
|
|
798
|
-
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
|
|
814
|
+
$parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
|
|
799
815
|
})
|
|
800
816
|
}
|
|
801
817
|
|
|
@@ -829,7 +845,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
829
845
|
|
|
830
846
|
$parent
|
|
831
847
|
.toggleClass('open')
|
|
832
|
-
.trigger('shown.bs.dropdown', relatedTarget)
|
|
848
|
+
.trigger($.Event('shown.bs.dropdown', relatedTarget))
|
|
833
849
|
}
|
|
834
850
|
|
|
835
851
|
return false
|
|
@@ -909,10 +925,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
909
925
|
}(jQuery);
|
|
910
926
|
|
|
911
927
|
/* ========================================================================
|
|
912
|
-
* Bootstrap: modal.js v3.
|
|
913
|
-
*
|
|
928
|
+
* Bootstrap: modal.js v3.4.1
|
|
929
|
+
* https://getbootstrap.com/docs/3.4/javascript/#modals
|
|
914
930
|
* ========================================================================
|
|
915
|
-
* Copyright 2011-
|
|
931
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
916
932
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
917
933
|
* ======================================================================== */
|
|
918
934
|
|
|
@@ -924,15 +940,16 @@ if (typeof jQuery === 'undefined') {
|
|
|
924
940
|
// ======================
|
|
925
941
|
|
|
926
942
|
var Modal = function (element, options) {
|
|
927
|
-
this.options
|
|
928
|
-
this.$body
|
|
929
|
-
this.$element
|
|
930
|
-
this.$dialog
|
|
931
|
-
this.$backdrop
|
|
932
|
-
this.isShown
|
|
933
|
-
this.originalBodyPad
|
|
934
|
-
this.scrollbarWidth
|
|
943
|
+
this.options = options
|
|
944
|
+
this.$body = $(document.body)
|
|
945
|
+
this.$element = $(element)
|
|
946
|
+
this.$dialog = this.$element.find('.modal-dialog')
|
|
947
|
+
this.$backdrop = null
|
|
948
|
+
this.isShown = null
|
|
949
|
+
this.originalBodyPad = null
|
|
950
|
+
this.scrollbarWidth = 0
|
|
935
951
|
this.ignoreBackdropClick = false
|
|
952
|
+
this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'
|
|
936
953
|
|
|
937
954
|
if (this.options.remote) {
|
|
938
955
|
this.$element
|
|
@@ -943,7 +960,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
943
960
|
}
|
|
944
961
|
}
|
|
945
962
|
|
|
946
|
-
Modal.VERSION
|
|
963
|
+
Modal.VERSION = '3.4.1'
|
|
947
964
|
|
|
948
965
|
Modal.TRANSITION_DURATION = 300
|
|
949
966
|
Modal.BACKDROP_TRANSITION_DURATION = 150
|
|
@@ -960,7 +977,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
960
977
|
|
|
961
978
|
Modal.prototype.show = function (_relatedTarget) {
|
|
962
979
|
var that = this
|
|
963
|
-
var e
|
|
980
|
+
var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
|
|
964
981
|
|
|
965
982
|
this.$element.trigger(e)
|
|
966
983
|
|
|
@@ -1050,7 +1067,9 @@ if (typeof jQuery === 'undefined') {
|
|
|
1050
1067
|
$(document)
|
|
1051
1068
|
.off('focusin.bs.modal') // guard against infinite focus loop
|
|
1052
1069
|
.on('focusin.bs.modal', $.proxy(function (e) {
|
|
1053
|
-
if (
|
|
1070
|
+
if (document !== e.target &&
|
|
1071
|
+
this.$element[0] !== e.target &&
|
|
1072
|
+
!this.$element.has(e.target).length) {
|
|
1054
1073
|
this.$element.trigger('focus')
|
|
1055
1074
|
}
|
|
1056
1075
|
}, this))
|
|
@@ -1152,7 +1171,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
1152
1171
|
var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
|
|
1153
1172
|
|
|
1154
1173
|
this.$element.css({
|
|
1155
|
-
paddingLeft:
|
|
1174
|
+
paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
|
|
1156
1175
|
paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
|
|
1157
1176
|
})
|
|
1158
1177
|
}
|
|
@@ -1177,11 +1196,26 @@ if (typeof jQuery === 'undefined') {
|
|
|
1177
1196
|
Modal.prototype.setScrollbar = function () {
|
|
1178
1197
|
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
|
|
1179
1198
|
this.originalBodyPad = document.body.style.paddingRight || ''
|
|
1180
|
-
|
|
1199
|
+
var scrollbarWidth = this.scrollbarWidth
|
|
1200
|
+
if (this.bodyIsOverflowing) {
|
|
1201
|
+
this.$body.css('padding-right', bodyPad + scrollbarWidth)
|
|
1202
|
+
$(this.fixedContent).each(function (index, element) {
|
|
1203
|
+
var actualPadding = element.style.paddingRight
|
|
1204
|
+
var calculatedPadding = $(element).css('padding-right')
|
|
1205
|
+
$(element)
|
|
1206
|
+
.data('padding-right', actualPadding)
|
|
1207
|
+
.css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')
|
|
1208
|
+
})
|
|
1209
|
+
}
|
|
1181
1210
|
}
|
|
1182
1211
|
|
|
1183
1212
|
Modal.prototype.resetScrollbar = function () {
|
|
1184
1213
|
this.$body.css('padding-right', this.originalBodyPad)
|
|
1214
|
+
$(this.fixedContent).each(function (index, element) {
|
|
1215
|
+
var padding = $(element).data('padding-right')
|
|
1216
|
+
$(element).removeData('padding-right')
|
|
1217
|
+
element.style.paddingRight = padding ? padding : ''
|
|
1218
|
+
})
|
|
1185
1219
|
}
|
|
1186
1220
|
|
|
1187
1221
|
Modal.prototype.measureScrollbar = function () { // thx walsh
|
|
@@ -1199,8 +1233,8 @@ if (typeof jQuery === 'undefined') {
|
|
|
1199
1233
|
|
|
1200
1234
|
function Plugin(option, _relatedTarget) {
|
|
1201
1235
|
return this.each(function () {
|
|
1202
|
-
var $this
|
|
1203
|
-
var data
|
|
1236
|
+
var $this = $(this)
|
|
1237
|
+
var data = $this.data('bs.modal')
|
|
1204
1238
|
var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
|
1205
1239
|
|
|
1206
1240
|
if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
|
|
@@ -1211,7 +1245,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
1211
1245
|
|
|
1212
1246
|
var old = $.fn.modal
|
|
1213
1247
|
|
|
1214
|
-
$.fn.modal
|
|
1248
|
+
$.fn.modal = Plugin
|
|
1215
1249
|
$.fn.modal.Constructor = Modal
|
|
1216
1250
|
|
|
1217
1251
|
|
|
@@ -1228,10 +1262,13 @@ if (typeof jQuery === 'undefined') {
|
|
|
1228
1262
|
// ==============
|
|
1229
1263
|
|
|
1230
1264
|
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
|
|
1231
|
-
var $this
|
|
1232
|
-
var href
|
|
1233
|
-
var
|
|
1234
|
-
|
|
1265
|
+
var $this = $(this)
|
|
1266
|
+
var href = $this.attr('href')
|
|
1267
|
+
var target = $this.attr('data-target') ||
|
|
1268
|
+
(href && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
|
|
1269
|
+
|
|
1270
|
+
var $target = $(document).find(target)
|
|
1271
|
+
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
|
1235
1272
|
|
|
1236
1273
|
if ($this.is('a')) e.preventDefault()
|
|
1237
1274
|
|
|
@@ -1247,18 +1284,148 @@ if (typeof jQuery === 'undefined') {
|
|
|
1247
1284
|
}(jQuery);
|
|
1248
1285
|
|
|
1249
1286
|
/* ========================================================================
|
|
1250
|
-
* Bootstrap: tooltip.js v3.
|
|
1251
|
-
*
|
|
1287
|
+
* Bootstrap: tooltip.js v3.4.1
|
|
1288
|
+
* https://getbootstrap.com/docs/3.4/javascript/#tooltip
|
|
1252
1289
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
|
1253
1290
|
* ========================================================================
|
|
1254
|
-
* Copyright 2011-
|
|
1291
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
1255
1292
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
1256
1293
|
* ======================================================================== */
|
|
1257
1294
|
|
|
1258
|
-
|
|
1259
1295
|
+function ($) {
|
|
1260
1296
|
'use strict';
|
|
1261
1297
|
|
|
1298
|
+
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']
|
|
1299
|
+
|
|
1300
|
+
var uriAttrs = [
|
|
1301
|
+
'background',
|
|
1302
|
+
'cite',
|
|
1303
|
+
'href',
|
|
1304
|
+
'itemtype',
|
|
1305
|
+
'longdesc',
|
|
1306
|
+
'poster',
|
|
1307
|
+
'src',
|
|
1308
|
+
'xlink:href'
|
|
1309
|
+
]
|
|
1310
|
+
|
|
1311
|
+
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i
|
|
1312
|
+
|
|
1313
|
+
var DefaultWhitelist = {
|
|
1314
|
+
// Global attributes allowed on any supplied element below.
|
|
1315
|
+
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
|
|
1316
|
+
a: ['target', 'href', 'title', 'rel'],
|
|
1317
|
+
area: [],
|
|
1318
|
+
b: [],
|
|
1319
|
+
br: [],
|
|
1320
|
+
col: [],
|
|
1321
|
+
code: [],
|
|
1322
|
+
div: [],
|
|
1323
|
+
em: [],
|
|
1324
|
+
hr: [],
|
|
1325
|
+
h1: [],
|
|
1326
|
+
h2: [],
|
|
1327
|
+
h3: [],
|
|
1328
|
+
h4: [],
|
|
1329
|
+
h5: [],
|
|
1330
|
+
h6: [],
|
|
1331
|
+
i: [],
|
|
1332
|
+
img: ['src', 'alt', 'title', 'width', 'height'],
|
|
1333
|
+
li: [],
|
|
1334
|
+
ol: [],
|
|
1335
|
+
p: [],
|
|
1336
|
+
pre: [],
|
|
1337
|
+
s: [],
|
|
1338
|
+
small: [],
|
|
1339
|
+
span: [],
|
|
1340
|
+
sub: [],
|
|
1341
|
+
sup: [],
|
|
1342
|
+
strong: [],
|
|
1343
|
+
u: [],
|
|
1344
|
+
ul: []
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
/**
|
|
1348
|
+
* A pattern that recognizes a commonly useful subset of URLs that are safe.
|
|
1349
|
+
*
|
|
1350
|
+
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
|
1351
|
+
*/
|
|
1352
|
+
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi
|
|
1353
|
+
|
|
1354
|
+
/**
|
|
1355
|
+
* A pattern that matches safe data URLs. Only matches image, video and audio types.
|
|
1356
|
+
*
|
|
1357
|
+
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
|
1358
|
+
*/
|
|
1359
|
+
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i
|
|
1360
|
+
|
|
1361
|
+
function allowedAttribute(attr, allowedAttributeList) {
|
|
1362
|
+
var attrName = attr.nodeName.toLowerCase()
|
|
1363
|
+
|
|
1364
|
+
if ($.inArray(attrName, allowedAttributeList) !== -1) {
|
|
1365
|
+
if ($.inArray(attrName, uriAttrs) !== -1) {
|
|
1366
|
+
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
return true
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
var regExp = $(allowedAttributeList).filter(function (index, value) {
|
|
1373
|
+
return value instanceof RegExp
|
|
1374
|
+
})
|
|
1375
|
+
|
|
1376
|
+
// Check if a regular expression validates the attribute.
|
|
1377
|
+
for (var i = 0, l = regExp.length; i < l; i++) {
|
|
1378
|
+
if (attrName.match(regExp[i])) {
|
|
1379
|
+
return true
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
return false
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
|
|
1387
|
+
if (unsafeHtml.length === 0) {
|
|
1388
|
+
return unsafeHtml
|
|
1389
|
+
}
|
|
1390
|
+
|
|
1391
|
+
if (sanitizeFn && typeof sanitizeFn === 'function') {
|
|
1392
|
+
return sanitizeFn(unsafeHtml)
|
|
1393
|
+
}
|
|
1394
|
+
|
|
1395
|
+
// IE 8 and below don't support createHTMLDocument
|
|
1396
|
+
if (!document.implementation || !document.implementation.createHTMLDocument) {
|
|
1397
|
+
return unsafeHtml
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
var createdDocument = document.implementation.createHTMLDocument('sanitization')
|
|
1401
|
+
createdDocument.body.innerHTML = unsafeHtml
|
|
1402
|
+
|
|
1403
|
+
var whitelistKeys = $.map(whiteList, function (el, i) { return i })
|
|
1404
|
+
var elements = $(createdDocument.body).find('*')
|
|
1405
|
+
|
|
1406
|
+
for (var i = 0, len = elements.length; i < len; i++) {
|
|
1407
|
+
var el = elements[i]
|
|
1408
|
+
var elName = el.nodeName.toLowerCase()
|
|
1409
|
+
|
|
1410
|
+
if ($.inArray(elName, whitelistKeys) === -1) {
|
|
1411
|
+
el.parentNode.removeChild(el)
|
|
1412
|
+
|
|
1413
|
+
continue
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
var attributeList = $.map(el.attributes, function (el) { return el })
|
|
1417
|
+
var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])
|
|
1418
|
+
|
|
1419
|
+
for (var j = 0, len2 = attributeList.length; j < len2; j++) {
|
|
1420
|
+
if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {
|
|
1421
|
+
el.removeAttribute(attributeList[j].nodeName)
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
return createdDocument.body.innerHTML
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1262
1429
|
// TOOLTIP PUBLIC CLASS DEFINITION
|
|
1263
1430
|
// ===============================
|
|
1264
1431
|
|
|
@@ -1274,7 +1441,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
1274
1441
|
this.init('tooltip', element, options)
|
|
1275
1442
|
}
|
|
1276
1443
|
|
|
1277
|
-
Tooltip.VERSION = '3.
|
|
1444
|
+
Tooltip.VERSION = '3.4.1'
|
|
1278
1445
|
|
|
1279
1446
|
Tooltip.TRANSITION_DURATION = 150
|
|
1280
1447
|
|
|
@@ -1291,7 +1458,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
1291
1458
|
viewport: {
|
|
1292
1459
|
selector: 'body',
|
|
1293
1460
|
padding: 0
|
|
1294
|
-
}
|
|
1461
|
+
},
|
|
1462
|
+
sanitize : true,
|
|
1463
|
+
sanitizeFn : null,
|
|
1464
|
+
whiteList : DefaultWhitelist
|
|
1295
1465
|
}
|
|
1296
1466
|
|
|
1297
1467
|
Tooltip.prototype.init = function (type, element, options) {
|
|
@@ -1299,7 +1469,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
1299
1469
|
this.type = type
|
|
1300
1470
|
this.$element = $(element)
|
|
1301
1471
|
this.options = this.getOptions(options)
|
|
1302
|
-
this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
|
|
1472
|
+
this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
|
|
1303
1473
|
this.inState = { click: false, hover: false, focus: false }
|
|
1304
1474
|
|
|
1305
1475
|
if (this.$element[0] instanceof document.constructor && !this.options.selector) {
|
|
@@ -1332,7 +1502,15 @@ if (typeof jQuery === 'undefined') {
|
|
|
1332
1502
|
}
|
|
1333
1503
|
|
|
1334
1504
|
Tooltip.prototype.getOptions = function (options) {
|
|
1335
|
-
|
|
1505
|
+
var dataAttributes = this.$element.data()
|
|
1506
|
+
|
|
1507
|
+
for (var dataAttr in dataAttributes) {
|
|
1508
|
+
if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {
|
|
1509
|
+
delete dataAttributes[dataAttr]
|
|
1510
|
+
}
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
options = $.extend({}, this.getDefaults(), dataAttributes, options)
|
|
1336
1514
|
|
|
1337
1515
|
if (options.delay && typeof options.delay == 'number') {
|
|
1338
1516
|
options.delay = {
|
|
@@ -1341,6 +1519,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
1341
1519
|
}
|
|
1342
1520
|
}
|
|
1343
1521
|
|
|
1522
|
+
if (options.sanitize) {
|
|
1523
|
+
options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)
|
|
1524
|
+
}
|
|
1525
|
+
|
|
1344
1526
|
return options
|
|
1345
1527
|
}
|
|
1346
1528
|
|
|
@@ -1452,7 +1634,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
1452
1634
|
.addClass(placement)
|
|
1453
1635
|
.data('bs.' + this.type, this)
|
|
1454
1636
|
|
|
1455
|
-
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
|
1637
|
+
this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)
|
|
1456
1638
|
this.$element.trigger('inserted.bs.' + this.type)
|
|
1457
1639
|
|
|
1458
1640
|
var pos = this.getPosition()
|
|
@@ -1554,7 +1736,16 @@ if (typeof jQuery === 'undefined') {
|
|
|
1554
1736
|
var $tip = this.tip()
|
|
1555
1737
|
var title = this.getTitle()
|
|
1556
1738
|
|
|
1557
|
-
|
|
1739
|
+
if (this.options.html) {
|
|
1740
|
+
if (this.options.sanitize) {
|
|
1741
|
+
title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)
|
|
1742
|
+
}
|
|
1743
|
+
|
|
1744
|
+
$tip.find('.tooltip-inner').html(title)
|
|
1745
|
+
} else {
|
|
1746
|
+
$tip.find('.tooltip-inner').text(title)
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1558
1749
|
$tip.removeClass('fade in top bottom left right')
|
|
1559
1750
|
}
|
|
1560
1751
|
|
|
@@ -1565,9 +1756,11 @@ if (typeof jQuery === 'undefined') {
|
|
|
1565
1756
|
|
|
1566
1757
|
function complete() {
|
|
1567
1758
|
if (that.hoverState != 'in') $tip.detach()
|
|
1568
|
-
that.$element
|
|
1569
|
-
|
|
1570
|
-
|
|
1759
|
+
if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.
|
|
1760
|
+
that.$element
|
|
1761
|
+
.removeAttr('aria-describedby')
|
|
1762
|
+
.trigger('hidden.bs.' + that.type)
|
|
1763
|
+
}
|
|
1571
1764
|
callback && callback()
|
|
1572
1765
|
}
|
|
1573
1766
|
|
|
@@ -1610,7 +1803,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
1610
1803
|
// width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
|
|
1611
1804
|
elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
|
|
1612
1805
|
}
|
|
1613
|
-
var
|
|
1806
|
+
var isSvg = window.SVGElement && el instanceof window.SVGElement
|
|
1807
|
+
// Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.
|
|
1808
|
+
// See https://github.com/twbs/bootstrap/issues/20280
|
|
1809
|
+
var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())
|
|
1614
1810
|
var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
|
|
1615
1811
|
var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
|
|
1616
1812
|
|
|
@@ -1726,9 +1922,13 @@ if (typeof jQuery === 'undefined') {
|
|
|
1726
1922
|
that.$tip = null
|
|
1727
1923
|
that.$arrow = null
|
|
1728
1924
|
that.$viewport = null
|
|
1925
|
+
that.$element = null
|
|
1729
1926
|
})
|
|
1730
1927
|
}
|
|
1731
1928
|
|
|
1929
|
+
Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {
|
|
1930
|
+
return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)
|
|
1931
|
+
}
|
|
1732
1932
|
|
|
1733
1933
|
// TOOLTIP PLUGIN DEFINITION
|
|
1734
1934
|
// =========================
|
|
@@ -1762,10 +1962,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
1762
1962
|
}(jQuery);
|
|
1763
1963
|
|
|
1764
1964
|
/* ========================================================================
|
|
1765
|
-
* Bootstrap: popover.js v3.
|
|
1766
|
-
*
|
|
1965
|
+
* Bootstrap: popover.js v3.4.1
|
|
1966
|
+
* https://getbootstrap.com/docs/3.4/javascript/#popovers
|
|
1767
1967
|
* ========================================================================
|
|
1768
|
-
* Copyright 2011-
|
|
1968
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
1769
1969
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
1770
1970
|
* ======================================================================== */
|
|
1771
1971
|
|
|
@@ -1782,7 +1982,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
1782
1982
|
|
|
1783
1983
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
|
1784
1984
|
|
|
1785
|
-
Popover.VERSION = '3.
|
|
1985
|
+
Popover.VERSION = '3.4.1'
|
|
1786
1986
|
|
|
1787
1987
|
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
|
1788
1988
|
placement: 'right',
|
|
@@ -1808,10 +2008,25 @@ if (typeof jQuery === 'undefined') {
|
|
|
1808
2008
|
var title = this.getTitle()
|
|
1809
2009
|
var content = this.getContent()
|
|
1810
2010
|
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
2011
|
+
if (this.options.html) {
|
|
2012
|
+
var typeContent = typeof content
|
|
2013
|
+
|
|
2014
|
+
if (this.options.sanitize) {
|
|
2015
|
+
title = this.sanitizeHtml(title)
|
|
2016
|
+
|
|
2017
|
+
if (typeContent === 'string') {
|
|
2018
|
+
content = this.sanitizeHtml(content)
|
|
2019
|
+
}
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
$tip.find('.popover-title').html(title)
|
|
2023
|
+
$tip.find('.popover-content').children().detach().end()[
|
|
2024
|
+
typeContent === 'string' ? 'html' : 'append'
|
|
2025
|
+
](content)
|
|
2026
|
+
} else {
|
|
2027
|
+
$tip.find('.popover-title').text(title)
|
|
2028
|
+
$tip.find('.popover-content').children().detach().end().text(content)
|
|
2029
|
+
}
|
|
1815
2030
|
|
|
1816
2031
|
$tip.removeClass('fade top bottom left right in')
|
|
1817
2032
|
|
|
@@ -1830,8 +2045,8 @@ if (typeof jQuery === 'undefined') {
|
|
|
1830
2045
|
|
|
1831
2046
|
return $e.attr('data-content')
|
|
1832
2047
|
|| (typeof o.content == 'function' ?
|
|
1833
|
-
|
|
1834
|
-
|
|
2048
|
+
o.content.call($e[0]) :
|
|
2049
|
+
o.content)
|
|
1835
2050
|
}
|
|
1836
2051
|
|
|
1837
2052
|
Popover.prototype.arrow = function () {
|
|
@@ -1871,10 +2086,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
1871
2086
|
}(jQuery);
|
|
1872
2087
|
|
|
1873
2088
|
/* ========================================================================
|
|
1874
|
-
* Bootstrap: scrollspy.js v3.
|
|
1875
|
-
*
|
|
2089
|
+
* Bootstrap: scrollspy.js v3.4.1
|
|
2090
|
+
* https://getbootstrap.com/docs/3.4/javascript/#scrollspy
|
|
1876
2091
|
* ========================================================================
|
|
1877
|
-
* Copyright 2011-
|
|
2092
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
1878
2093
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
1879
2094
|
* ======================================================================== */
|
|
1880
2095
|
|
|
@@ -1900,7 +2115,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
1900
2115
|
this.process()
|
|
1901
2116
|
}
|
|
1902
2117
|
|
|
1903
|
-
ScrollSpy.VERSION = '3.
|
|
2118
|
+
ScrollSpy.VERSION = '3.4.1'
|
|
1904
2119
|
|
|
1905
2120
|
ScrollSpy.DEFAULTS = {
|
|
1906
2121
|
offset: 10
|
|
@@ -2044,10 +2259,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
2044
2259
|
}(jQuery);
|
|
2045
2260
|
|
|
2046
2261
|
/* ========================================================================
|
|
2047
|
-
* Bootstrap: tab.js v3.
|
|
2048
|
-
*
|
|
2262
|
+
* Bootstrap: tab.js v3.4.1
|
|
2263
|
+
* https://getbootstrap.com/docs/3.4/javascript/#tabs
|
|
2049
2264
|
* ========================================================================
|
|
2050
|
-
* Copyright 2011-
|
|
2265
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
2051
2266
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
2052
2267
|
* ======================================================================== */
|
|
2053
2268
|
|
|
@@ -2064,7 +2279,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
2064
2279
|
// jscs:enable requireDollarBeforejQueryAssignment
|
|
2065
2280
|
}
|
|
2066
2281
|
|
|
2067
|
-
Tab.VERSION = '3.
|
|
2282
|
+
Tab.VERSION = '3.4.1'
|
|
2068
2283
|
|
|
2069
2284
|
Tab.TRANSITION_DURATION = 150
|
|
2070
2285
|
|
|
@@ -2093,7 +2308,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
2093
2308
|
|
|
2094
2309
|
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
|
|
2095
2310
|
|
|
2096
|
-
var $target = $(selector)
|
|
2311
|
+
var $target = $(document).find(selector)
|
|
2097
2312
|
|
|
2098
2313
|
this.activate($this.closest('li'), $ul)
|
|
2099
2314
|
this.activate($target, $target.parent(), function () {
|
|
@@ -2118,15 +2333,15 @@ if (typeof jQuery === 'undefined') {
|
|
|
2118
2333
|
$active
|
|
2119
2334
|
.removeClass('active')
|
|
2120
2335
|
.find('> .dropdown-menu > .active')
|
|
2121
|
-
|
|
2336
|
+
.removeClass('active')
|
|
2122
2337
|
.end()
|
|
2123
2338
|
.find('[data-toggle="tab"]')
|
|
2124
|
-
|
|
2339
|
+
.attr('aria-expanded', false)
|
|
2125
2340
|
|
|
2126
2341
|
element
|
|
2127
2342
|
.addClass('active')
|
|
2128
2343
|
.find('[data-toggle="tab"]')
|
|
2129
|
-
|
|
2344
|
+
.attr('aria-expanded', true)
|
|
2130
2345
|
|
|
2131
2346
|
if (transition) {
|
|
2132
2347
|
element[0].offsetWidth // reflow for transition
|
|
@@ -2138,10 +2353,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
2138
2353
|
if (element.parent('.dropdown-menu').length) {
|
|
2139
2354
|
element
|
|
2140
2355
|
.closest('li.dropdown')
|
|
2141
|
-
|
|
2356
|
+
.addClass('active')
|
|
2142
2357
|
.end()
|
|
2143
2358
|
.find('[data-toggle="tab"]')
|
|
2144
|
-
|
|
2359
|
+
.attr('aria-expanded', true)
|
|
2145
2360
|
}
|
|
2146
2361
|
|
|
2147
2362
|
callback && callback()
|
|
@@ -2200,10 +2415,10 @@ if (typeof jQuery === 'undefined') {
|
|
|
2200
2415
|
}(jQuery);
|
|
2201
2416
|
|
|
2202
2417
|
/* ========================================================================
|
|
2203
|
-
* Bootstrap: affix.js v3.
|
|
2204
|
-
*
|
|
2418
|
+
* Bootstrap: affix.js v3.4.1
|
|
2419
|
+
* https://getbootstrap.com/docs/3.4/javascript/#affix
|
|
2205
2420
|
* ========================================================================
|
|
2206
|
-
* Copyright 2011-
|
|
2421
|
+
* Copyright 2011-2019 Twitter, Inc.
|
|
2207
2422
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
2208
2423
|
* ======================================================================== */
|
|
2209
2424
|
|
|
@@ -2217,7 +2432,9 @@ if (typeof jQuery === 'undefined') {
|
|
|
2217
2432
|
var Affix = function (element, options) {
|
|
2218
2433
|
this.options = $.extend({}, Affix.DEFAULTS, options)
|
|
2219
2434
|
|
|
2220
|
-
|
|
2435
|
+
var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)
|
|
2436
|
+
|
|
2437
|
+
this.$target = target
|
|
2221
2438
|
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
|
|
2222
2439
|
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
|
|
2223
2440
|
|
|
@@ -2229,7 +2446,7 @@ if (typeof jQuery === 'undefined') {
|
|
|
2229
2446
|
this.checkPosition()
|
|
2230
2447
|
}
|
|
2231
2448
|
|
|
2232
|
-
Affix.VERSION = '3.
|
|
2449
|
+
Affix.VERSION = '3.4.1'
|
|
2233
2450
|
|
|
2234
2451
|
Affix.RESET = 'affix affix-top affix-bottom'
|
|
2235
2452
|
|