bootstrap-sass 3.4.0 → 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.

Potentially problematic release.


This version of bootstrap-sass might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '07850cc5ac85a4f204ab4cbe524fc42449a1762ca221683251cfeb3081157f9d'
4
- data.tar.gz: a66f6e021f0448cb037cedd5ab7aff7b86eb094f5cd77e4e57008d7e900b4223
3
+ metadata.gz: 58feea8410ac26aa16a8887d49c39915f01053fac4d547549f22ad09cca903a2
4
+ data.tar.gz: ab2888314daa99c23c67034bb52e89cab7ad5c80fc94cafa2aa000964e6ac4a6
5
5
  SHA512:
6
- metadata.gz: f5d1ed2c991b539000b7f50542c112b6269552c57a778eb07c14a48924107acd915a35805ee6c7764a2702b927974d00f31d71dc8b56cbb25e1ef3c66a535493
7
- data.tar.gz: 9c0ef034d7059f44b7daa5579f70bfd33a7b4bccb3114f32cc626e97ee5b40e56514a20ba0b846742eaa557d133ec64d8918b338e3f921be572fb88844ed5175
6
+ metadata.gz: 524b345c929bbd2013145b9d0efff1e9a9ae40dd92bf10084bbed4d00f1cd4a629258d337d497131be7d386badf3a512951a82670a6e6e1fc82ff34a1d6002ca
7
+ data.tar.gz: cf05215a71378dcd0f25293cd32095d947b7b748113c3e89c1d65c6f5030dc50ad6b5ecc2817695f8d530ba0ec7ef388e819c4b232c68ad2d03a564718896051
data/README.md CHANGED
@@ -23,8 +23,8 @@ Please see the appropriate guide for your environment of choice:
23
23
  In your Gemfile you need to add the `bootstrap-sass` gem, and ensure that the `sass-rails` gem is present - it is added to new Rails applications by default.
24
24
 
25
25
  ```ruby
26
- gem 'bootstrap-sass', '~> 3.4.0'
27
- gem 'sassc-rails', '>= 2.0.0'
26
+ gem 'bootstrap-sass', '~> 3.4.1'
27
+ gem 'sassc-rails', '>= 2.1.0'
28
28
  ```
29
29
 
30
30
  `bundle install` and restart your server to make the files available through the pipeline.
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ require 'bundler/gem_tasks'
2
+
1
3
  lib_path = File.join(__dir__, 'lib')
2
4
  $:.unshift(lib_path) unless $:.include?(lib_path)
3
5
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap v3.4.0 (https://getbootstrap.com/)
3
- * Copyright 2011-2018 Twitter, Inc.
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
 
@@ -17,10 +17,10 @@ if (typeof jQuery === 'undefined') {
17
17
  }(jQuery);
18
18
 
19
19
  /* ========================================================================
20
- * Bootstrap: transition.js v3.4.0
20
+ * Bootstrap: transition.js v3.4.1
21
21
  * https://getbootstrap.com/docs/3.4/javascript/#transitions
22
22
  * ========================================================================
23
- * Copyright 2011-2018 Twitter, Inc.
23
+ * Copyright 2011-2019 Twitter, Inc.
24
24
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
25
25
  * ======================================================================== */
26
26
 
@@ -77,10 +77,10 @@ if (typeof jQuery === 'undefined') {
77
77
  }(jQuery);
78
78
 
79
79
  /* ========================================================================
80
- * Bootstrap: alert.js v3.4.0
80
+ * Bootstrap: alert.js v3.4.1
81
81
  * https://getbootstrap.com/docs/3.4/javascript/#alerts
82
82
  * ========================================================================
83
- * Copyright 2011-2018 Twitter, Inc.
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.4.0'
99
+ Alert.VERSION = '3.4.1'
100
100
 
101
101
  Alert.TRANSITION_DURATION = 150
102
102
 
@@ -173,10 +173,10 @@ if (typeof jQuery === 'undefined') {
173
173
  }(jQuery);
174
174
 
175
175
  /* ========================================================================
176
- * Bootstrap: button.js v3.4.0
176
+ * Bootstrap: button.js v3.4.1
177
177
  * https://getbootstrap.com/docs/3.4/javascript/#buttons
178
178
  * ========================================================================
179
- * Copyright 2011-2018 Twitter, Inc.
179
+ * Copyright 2011-2019 Twitter, Inc.
180
180
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
181
181
  * ======================================================================== */
182
182
 
@@ -193,7 +193,7 @@ if (typeof jQuery === 'undefined') {
193
193
  this.isLoading = false
194
194
  }
195
195
 
196
- Button.VERSION = '3.4.0'
196
+ Button.VERSION = '3.4.1'
197
197
 
198
198
  Button.DEFAULTS = {
199
199
  loadingText: 'loading...'
@@ -299,10 +299,10 @@ if (typeof jQuery === 'undefined') {
299
299
  }(jQuery);
300
300
 
301
301
  /* ========================================================================
302
- * Bootstrap: carousel.js v3.4.0
302
+ * Bootstrap: carousel.js v3.4.1
303
303
  * https://getbootstrap.com/docs/3.4/javascript/#carousel
304
304
  * ========================================================================
305
- * Copyright 2011-2018 Twitter, Inc.
305
+ * Copyright 2011-2019 Twitter, Inc.
306
306
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
307
307
  * ======================================================================== */
308
308
 
@@ -330,7 +330,7 @@ if (typeof jQuery === 'undefined') {
330
330
  .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
331
331
  }
332
332
 
333
- Carousel.VERSION = '3.4.0'
333
+ Carousel.VERSION = '3.4.1'
334
334
 
335
335
  Carousel.TRANSITION_DURATION = 600
336
336
 
@@ -546,10 +546,10 @@ if (typeof jQuery === 'undefined') {
546
546
  }(jQuery);
547
547
 
548
548
  /* ========================================================================
549
- * Bootstrap: collapse.js v3.4.0
549
+ * Bootstrap: collapse.js v3.4.1
550
550
  * https://getbootstrap.com/docs/3.4/javascript/#collapse
551
551
  * ========================================================================
552
- * Copyright 2011-2018 Twitter, Inc.
552
+ * Copyright 2011-2019 Twitter, Inc.
553
553
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
554
554
  * ======================================================================== */
555
555
 
@@ -577,7 +577,7 @@ if (typeof jQuery === 'undefined') {
577
577
  if (this.options.toggle) this.toggle()
578
578
  }
579
579
 
580
- Collapse.VERSION = '3.4.0'
580
+ Collapse.VERSION = '3.4.1'
581
581
 
582
582
  Collapse.TRANSITION_DURATION = 350
583
583
 
@@ -759,10 +759,10 @@ if (typeof jQuery === 'undefined') {
759
759
  }(jQuery);
760
760
 
761
761
  /* ========================================================================
762
- * Bootstrap: dropdown.js v3.4.0
762
+ * Bootstrap: dropdown.js v3.4.1
763
763
  * https://getbootstrap.com/docs/3.4/javascript/#dropdowns
764
764
  * ========================================================================
765
- * Copyright 2011-2018 Twitter, Inc.
765
+ * Copyright 2011-2019 Twitter, Inc.
766
766
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
767
767
  * ======================================================================== */
768
768
 
@@ -779,7 +779,7 @@ if (typeof jQuery === 'undefined') {
779
779
  $(element).on('click.bs.dropdown', this.toggle)
780
780
  }
781
781
 
782
- Dropdown.VERSION = '3.4.0'
782
+ Dropdown.VERSION = '3.4.1'
783
783
 
784
784
  function getParent($this) {
785
785
  var selector = $this.attr('data-target')
@@ -789,7 +789,7 @@ if (typeof jQuery === 'undefined') {
789
789
  selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
790
790
  }
791
791
 
792
- var $parent = selector && $(document).find(selector)
792
+ var $parent = selector !== '#' ? $(document).find(selector) : null
793
793
 
794
794
  return $parent && $parent.length ? $parent : $this.parent()
795
795
  }
@@ -925,10 +925,10 @@ if (typeof jQuery === 'undefined') {
925
925
  }(jQuery);
926
926
 
927
927
  /* ========================================================================
928
- * Bootstrap: modal.js v3.4.0
928
+ * Bootstrap: modal.js v3.4.1
929
929
  * https://getbootstrap.com/docs/3.4/javascript/#modals
930
930
  * ========================================================================
931
- * Copyright 2011-2018 Twitter, Inc.
931
+ * Copyright 2011-2019 Twitter, Inc.
932
932
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
933
933
  * ======================================================================== */
934
934
 
@@ -960,7 +960,7 @@ if (typeof jQuery === 'undefined') {
960
960
  }
961
961
  }
962
962
 
963
- Modal.VERSION = '3.4.0'
963
+ Modal.VERSION = '3.4.1'
964
964
 
965
965
  Modal.TRANSITION_DURATION = 300
966
966
  Modal.BACKDROP_TRANSITION_DURATION = 150
@@ -1284,18 +1284,148 @@ if (typeof jQuery === 'undefined') {
1284
1284
  }(jQuery);
1285
1285
 
1286
1286
  /* ========================================================================
1287
- * Bootstrap: tooltip.js v3.4.0
1287
+ * Bootstrap: tooltip.js v3.4.1
1288
1288
  * https://getbootstrap.com/docs/3.4/javascript/#tooltip
1289
1289
  * Inspired by the original jQuery.tipsy by Jason Frame
1290
1290
  * ========================================================================
1291
- * Copyright 2011-2018 Twitter, Inc.
1291
+ * Copyright 2011-2019 Twitter, Inc.
1292
1292
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1293
1293
  * ======================================================================== */
1294
1294
 
1295
-
1296
1295
  +function ($) {
1297
1296
  'use strict';
1298
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
+
1299
1429
  // TOOLTIP PUBLIC CLASS DEFINITION
1300
1430
  // ===============================
1301
1431
 
@@ -1311,7 +1441,7 @@ if (typeof jQuery === 'undefined') {
1311
1441
  this.init('tooltip', element, options)
1312
1442
  }
1313
1443
 
1314
- Tooltip.VERSION = '3.4.0'
1444
+ Tooltip.VERSION = '3.4.1'
1315
1445
 
1316
1446
  Tooltip.TRANSITION_DURATION = 150
1317
1447
 
@@ -1328,7 +1458,10 @@ if (typeof jQuery === 'undefined') {
1328
1458
  viewport: {
1329
1459
  selector: 'body',
1330
1460
  padding: 0
1331
- }
1461
+ },
1462
+ sanitize : true,
1463
+ sanitizeFn : null,
1464
+ whiteList : DefaultWhitelist
1332
1465
  }
1333
1466
 
1334
1467
  Tooltip.prototype.init = function (type, element, options) {
@@ -1369,7 +1502,15 @@ if (typeof jQuery === 'undefined') {
1369
1502
  }
1370
1503
 
1371
1504
  Tooltip.prototype.getOptions = function (options) {
1372
- options = $.extend({}, this.getDefaults(), this.$element.data(), options)
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)
1373
1514
 
1374
1515
  if (options.delay && typeof options.delay == 'number') {
1375
1516
  options.delay = {
@@ -1378,6 +1519,10 @@ if (typeof jQuery === 'undefined') {
1378
1519
  }
1379
1520
  }
1380
1521
 
1522
+ if (options.sanitize) {
1523
+ options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)
1524
+ }
1525
+
1381
1526
  return options
1382
1527
  }
1383
1528
 
@@ -1591,7 +1736,16 @@ if (typeof jQuery === 'undefined') {
1591
1736
  var $tip = this.tip()
1592
1737
  var title = this.getTitle()
1593
1738
 
1594
- $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
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
+
1595
1749
  $tip.removeClass('fade in top bottom left right')
1596
1750
  }
1597
1751
 
@@ -1772,6 +1926,9 @@ if (typeof jQuery === 'undefined') {
1772
1926
  })
1773
1927
  }
1774
1928
 
1929
+ Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {
1930
+ return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)
1931
+ }
1775
1932
 
1776
1933
  // TOOLTIP PLUGIN DEFINITION
1777
1934
  // =========================
@@ -1805,10 +1962,10 @@ if (typeof jQuery === 'undefined') {
1805
1962
  }(jQuery);
1806
1963
 
1807
1964
  /* ========================================================================
1808
- * Bootstrap: popover.js v3.4.0
1965
+ * Bootstrap: popover.js v3.4.1
1809
1966
  * https://getbootstrap.com/docs/3.4/javascript/#popovers
1810
1967
  * ========================================================================
1811
- * Copyright 2011-2018 Twitter, Inc.
1968
+ * Copyright 2011-2019 Twitter, Inc.
1812
1969
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1813
1970
  * ======================================================================== */
1814
1971
 
@@ -1825,7 +1982,7 @@ if (typeof jQuery === 'undefined') {
1825
1982
 
1826
1983
  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1827
1984
 
1828
- Popover.VERSION = '3.4.0'
1985
+ Popover.VERSION = '3.4.1'
1829
1986
 
1830
1987
  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
1831
1988
  placement: 'right',
@@ -1851,10 +2008,25 @@ if (typeof jQuery === 'undefined') {
1851
2008
  var title = this.getTitle()
1852
2009
  var content = this.getContent()
1853
2010
 
1854
- $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1855
- $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
1856
- this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
1857
- ](content)
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
+ }
1858
2030
 
1859
2031
  $tip.removeClass('fade top bottom left right in')
1860
2032
 
@@ -1914,10 +2086,10 @@ if (typeof jQuery === 'undefined') {
1914
2086
  }(jQuery);
1915
2087
 
1916
2088
  /* ========================================================================
1917
- * Bootstrap: scrollspy.js v3.4.0
2089
+ * Bootstrap: scrollspy.js v3.4.1
1918
2090
  * https://getbootstrap.com/docs/3.4/javascript/#scrollspy
1919
2091
  * ========================================================================
1920
- * Copyright 2011-2018 Twitter, Inc.
2092
+ * Copyright 2011-2019 Twitter, Inc.
1921
2093
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1922
2094
  * ======================================================================== */
1923
2095
 
@@ -1943,7 +2115,7 @@ if (typeof jQuery === 'undefined') {
1943
2115
  this.process()
1944
2116
  }
1945
2117
 
1946
- ScrollSpy.VERSION = '3.4.0'
2118
+ ScrollSpy.VERSION = '3.4.1'
1947
2119
 
1948
2120
  ScrollSpy.DEFAULTS = {
1949
2121
  offset: 10
@@ -2087,10 +2259,10 @@ if (typeof jQuery === 'undefined') {
2087
2259
  }(jQuery);
2088
2260
 
2089
2261
  /* ========================================================================
2090
- * Bootstrap: tab.js v3.4.0
2262
+ * Bootstrap: tab.js v3.4.1
2091
2263
  * https://getbootstrap.com/docs/3.4/javascript/#tabs
2092
2264
  * ========================================================================
2093
- * Copyright 2011-2018 Twitter, Inc.
2265
+ * Copyright 2011-2019 Twitter, Inc.
2094
2266
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2095
2267
  * ======================================================================== */
2096
2268
 
@@ -2107,7 +2279,7 @@ if (typeof jQuery === 'undefined') {
2107
2279
  // jscs:enable requireDollarBeforejQueryAssignment
2108
2280
  }
2109
2281
 
2110
- Tab.VERSION = '3.4.0'
2282
+ Tab.VERSION = '3.4.1'
2111
2283
 
2112
2284
  Tab.TRANSITION_DURATION = 150
2113
2285
 
@@ -2243,10 +2415,10 @@ if (typeof jQuery === 'undefined') {
2243
2415
  }(jQuery);
2244
2416
 
2245
2417
  /* ========================================================================
2246
- * Bootstrap: affix.js v3.4.0
2418
+ * Bootstrap: affix.js v3.4.1
2247
2419
  * https://getbootstrap.com/docs/3.4/javascript/#affix
2248
2420
  * ========================================================================
2249
- * Copyright 2011-2018 Twitter, Inc.
2421
+ * Copyright 2011-2019 Twitter, Inc.
2250
2422
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2251
2423
  * ======================================================================== */
2252
2424
 
@@ -2274,7 +2446,7 @@ if (typeof jQuery === 'undefined') {
2274
2446
  this.checkPosition()
2275
2447
  }
2276
2448
 
2277
- Affix.VERSION = '3.4.0'
2449
+ Affix.VERSION = '3.4.1'
2278
2450
 
2279
2451
  Affix.RESET = 'affix affix-top affix-bottom'
2280
2452