bootstrap 4.3.1 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +15 -1
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +1 -1
  5. data/assets/javascripts/bootstrap/alert.js +26 -35
  6. data/assets/javascripts/bootstrap/button.js +93 -52
  7. data/assets/javascripts/bootstrap/carousel.js +122 -120
  8. data/assets/javascripts/bootstrap/collapse.js +75 -71
  9. data/assets/javascripts/bootstrap/dropdown.js +143 -140
  10. data/assets/javascripts/bootstrap/modal.js +165 -134
  11. data/assets/javascripts/bootstrap/popover.js +47 -39
  12. data/assets/javascripts/bootstrap/scrollspy.js +71 -71
  13. data/assets/javascripts/bootstrap/tab.js +51 -60
  14. data/assets/javascripts/bootstrap/toast.js +84 -72
  15. data/assets/javascripts/bootstrap/tooltip.js +141 -131
  16. data/assets/javascripts/bootstrap/util.js +28 -7
  17. data/assets/javascripts/bootstrap-sprockets.js +6 -6
  18. data/assets/javascripts/bootstrap.js +811 -826
  19. data/assets/javascripts/bootstrap.min.js +3 -3
  20. data/assets/stylesheets/_bootstrap-grid.scss +3 -3
  21. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  22. data/assets/stylesheets/_bootstrap.scss +3 -3
  23. data/assets/stylesheets/bootstrap/_badge.scss +1 -1
  24. data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -1
  25. data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
  26. data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
  27. data/assets/stylesheets/bootstrap/_card.scss +28 -35
  28. data/assets/stylesheets/bootstrap/_carousel.scss +6 -6
  29. data/assets/stylesheets/bootstrap/_close.scss +2 -3
  30. data/assets/stylesheets/bootstrap/_code.scss +1 -1
  31. data/assets/stylesheets/bootstrap/_custom-forms.scss +24 -9
  32. data/assets/stylesheets/bootstrap/_dropdown.scss +5 -4
  33. data/assets/stylesheets/bootstrap/_forms.scss +26 -9
  34. data/assets/stylesheets/bootstrap/_functions.scss +60 -5
  35. data/assets/stylesheets/bootstrap/_grid.scss +33 -8
  36. data/assets/stylesheets/bootstrap/_images.scss +2 -2
  37. data/assets/stylesheets/bootstrap/_input-group.scss +1 -2
  38. data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
  39. data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
  40. data/assets/stylesheets/bootstrap/_modal.scss +28 -16
  41. data/assets/stylesheets/bootstrap/_nav.scss +4 -3
  42. data/assets/stylesheets/bootstrap/_navbar.scss +45 -15
  43. data/assets/stylesheets/bootstrap/_pagination.scss +3 -2
  44. data/assets/stylesheets/bootstrap/_popover.scss +8 -9
  45. data/assets/stylesheets/bootstrap/_print.scss +2 -2
  46. data/assets/stylesheets/bootstrap/_progress.scss +6 -2
  47. data/assets/stylesheets/bootstrap/_reboot.scss +24 -27
  48. data/assets/stylesheets/bootstrap/_root.scss +1 -0
  49. data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
  50. data/assets/stylesheets/bootstrap/_tables.scss +3 -3
  51. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  52. data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
  53. data/assets/stylesheets/bootstrap/_variables.scss +46 -22
  54. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
  55. data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
  56. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +26 -13
  57. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +11 -8
  58. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
  59. data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
  60. data/assets/stylesheets/bootstrap/mixins/_forms.scss +34 -49
  61. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +30 -15
  62. data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -0
  63. data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
  64. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
  65. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
  66. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  67. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
  68. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  69. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +3 -2
  70. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
  71. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
  72. data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
  73. data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
  74. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  75. data/assets/stylesheets/bootstrap/utilities/_text.scss +3 -4
  76. data/bootstrap.gemspec +1 -1
  77. data/lib/bootstrap/version.rb +2 -2
  78. data/tasks/updater/network.rb +2 -2
  79. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  80. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  81. data/test/gemfiles/rails_6_0.gemfile +7 -0
  82. data/test/support/dummy_rails_integration.rb +3 -1
  83. data/test/test_helper.rb +18 -13
  84. metadata +11 -5
@@ -1,16 +1,16 @@
1
1
  /*!
2
- * Bootstrap popover.js v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap popover.js v4.5.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./tooltip.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery', './tooltip.js'], factory) :
9
9
  (global = global || self, global.Popover = factory(global.jQuery, global.Tooltip));
10
- }(this, function ($, Tooltip) { 'use strict';
10
+ }(this, (function ($, Tooltip) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Tooltip = Tooltip && Tooltip.hasOwnProperty('default') ? Tooltip['default'] : Tooltip;
12
+ $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
+ Tooltip = Tooltip && Object.prototype.hasOwnProperty.call(Tooltip, 'default') ? Tooltip['default'] : Tooltip;
14
14
 
15
15
  function _defineProperties(target, props) {
16
16
  for (var i = 0; i < props.length; i++) {
@@ -43,20 +43,35 @@
43
43
  return obj;
44
44
  }
45
45
 
46
- function _objectSpread(target) {
46
+ function ownKeys(object, enumerableOnly) {
47
+ var keys = Object.keys(object);
48
+
49
+ if (Object.getOwnPropertySymbols) {
50
+ var symbols = Object.getOwnPropertySymbols(object);
51
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
52
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
+ });
54
+ keys.push.apply(keys, symbols);
55
+ }
56
+
57
+ return keys;
58
+ }
59
+
60
+ function _objectSpread2(target) {
47
61
  for (var i = 1; i < arguments.length; i++) {
48
62
  var source = arguments[i] != null ? arguments[i] : {};
49
- var ownKeys = Object.keys(source);
50
63
 
51
- if (typeof Object.getOwnPropertySymbols === 'function') {
52
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
53
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
54
- }));
64
+ if (i % 2) {
65
+ ownKeys(Object(source), true).forEach(function (key) {
66
+ _defineProperty(target, key, source[key]);
67
+ });
68
+ } else if (Object.getOwnPropertyDescriptors) {
69
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
70
+ } else {
71
+ ownKeys(Object(source)).forEach(function (key) {
72
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
73
+ });
55
74
  }
56
-
57
- ownKeys.forEach(function (key) {
58
- _defineProperty(target, key, source[key]);
59
- });
60
75
  }
61
76
 
62
77
  return target;
@@ -75,32 +90,28 @@
75
90
  */
76
91
 
77
92
  var NAME = 'popover';
78
- var VERSION = '4.3.1';
93
+ var VERSION = '4.5.0';
79
94
  var DATA_KEY = 'bs.popover';
80
95
  var EVENT_KEY = "." + DATA_KEY;
81
96
  var JQUERY_NO_CONFLICT = $.fn[NAME];
82
97
  var CLASS_PREFIX = 'bs-popover';
83
98
  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
84
99
 
85
- var Default = _objectSpread({}, Tooltip.Default, {
100
+ var Default = _objectSpread2(_objectSpread2({}, Tooltip.Default), {}, {
86
101
  placement: 'right',
87
102
  trigger: 'click',
88
103
  content: '',
89
104
  template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
90
105
  });
91
106
 
92
- var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
107
+ var DefaultType = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
93
108
  content: '(string|element|function)'
94
109
  });
95
110
 
96
- var ClassName = {
97
- FADE: 'fade',
98
- SHOW: 'show'
99
- };
100
- var Selector = {
101
- TITLE: '.popover-header',
102
- CONTENT: '.popover-body'
103
- };
111
+ var CLASS_NAME_FADE = 'fade';
112
+ var CLASS_NAME_SHOW = 'show';
113
+ var SELECTOR_TITLE = '.popover-header';
114
+ var SELECTOR_CONTENT = '.popover-body';
104
115
  var Event = {
105
116
  HIDE: "hide" + EVENT_KEY,
106
117
  HIDDEN: "hidden" + EVENT_KEY,
@@ -112,17 +123,14 @@
112
123
  FOCUSOUT: "focusout" + EVENT_KEY,
113
124
  MOUSEENTER: "mouseenter" + EVENT_KEY,
114
125
  MOUSELEAVE: "mouseleave" + EVENT_KEY
115
- /**
116
- * ------------------------------------------------------------------------
117
- * Class Definition
118
- * ------------------------------------------------------------------------
119
- */
120
-
121
126
  };
127
+ /**
128
+ * ------------------------------------------------------------------------
129
+ * Class Definition
130
+ * ------------------------------------------------------------------------
131
+ */
122
132
 
123
- var Popover =
124
- /*#__PURE__*/
125
- function (_Tooltip) {
133
+ var Popover = /*#__PURE__*/function (_Tooltip) {
126
134
  _inheritsLoose(Popover, _Tooltip);
127
135
 
128
136
  function Popover() {
@@ -148,7 +156,7 @@
148
156
  _proto.setContent = function setContent() {
149
157
  var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
150
158
 
151
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
159
+ this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
152
160
 
153
161
  var content = this._getContent();
154
162
 
@@ -156,8 +164,8 @@
156
164
  content = content.call(this.element);
157
165
  }
158
166
 
159
- this.setElementContent($tip.find(Selector.CONTENT), content);
160
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
167
+ this.setElementContent($tip.find(SELECTOR_CONTENT), content);
168
+ $tip.removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW);
161
169
  } // Private
162
170
  ;
163
171
 
@@ -257,4 +265,4 @@
257
265
 
258
266
  return Popover;
259
267
 
260
- }));
268
+ })));
@@ -1,16 +1,16 @@
1
1
  /*!
2
- * Bootstrap scrollspy.js v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap scrollspy.js v4.5.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
9
9
  (global = global || self, global.ScrollSpy = factory(global.jQuery, global.Util));
10
- }(this, function ($, Util) { 'use strict';
10
+ }(this, (function ($, Util) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
12
+ $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
+ Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
14
14
 
15
15
  function _defineProperties(target, props) {
16
16
  for (var i = 0; i < props.length; i++) {
@@ -43,20 +43,35 @@
43
43
  return obj;
44
44
  }
45
45
 
46
- function _objectSpread(target) {
46
+ function ownKeys(object, enumerableOnly) {
47
+ var keys = Object.keys(object);
48
+
49
+ if (Object.getOwnPropertySymbols) {
50
+ var symbols = Object.getOwnPropertySymbols(object);
51
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
52
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
+ });
54
+ keys.push.apply(keys, symbols);
55
+ }
56
+
57
+ return keys;
58
+ }
59
+
60
+ function _objectSpread2(target) {
47
61
  for (var i = 1; i < arguments.length; i++) {
48
62
  var source = arguments[i] != null ? arguments[i] : {};
49
- var ownKeys = Object.keys(source);
50
63
 
51
- if (typeof Object.getOwnPropertySymbols === 'function') {
52
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
53
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
54
- }));
64
+ if (i % 2) {
65
+ ownKeys(Object(source), true).forEach(function (key) {
66
+ _defineProperty(target, key, source[key]);
67
+ });
68
+ } else if (Object.getOwnPropertyDescriptors) {
69
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
70
+ } else {
71
+ ownKeys(Object(source)).forEach(function (key) {
72
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
73
+ });
55
74
  }
56
-
57
- ownKeys.forEach(function (key) {
58
- _defineProperty(target, key, source[key]);
59
- });
60
75
  }
61
76
 
62
77
  return target;
@@ -69,7 +84,7 @@
69
84
  */
70
85
 
71
86
  var NAME = 'scrollspy';
72
- var VERSION = '4.3.1';
87
+ var VERSION = '4.5.0';
73
88
  var DATA_KEY = 'bs.scrollspy';
74
89
  var EVENT_KEY = "." + DATA_KEY;
75
90
  var DATA_API_KEY = '.data-api';
@@ -84,53 +99,40 @@
84
99
  method: 'string',
85
100
  target: '(string|element)'
86
101
  };
87
- var Event = {
88
- ACTIVATE: "activate" + EVENT_KEY,
89
- SCROLL: "scroll" + EVENT_KEY,
90
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
91
- };
92
- var ClassName = {
93
- DROPDOWN_ITEM: 'dropdown-item',
94
- DROPDOWN_MENU: 'dropdown-menu',
95
- ACTIVE: 'active'
96
- };
97
- var Selector = {
98
- DATA_SPY: '[data-spy="scroll"]',
99
- ACTIVE: '.active',
100
- NAV_LIST_GROUP: '.nav, .list-group',
101
- NAV_LINKS: '.nav-link',
102
- NAV_ITEMS: '.nav-item',
103
- LIST_ITEMS: '.list-group-item',
104
- DROPDOWN: '.dropdown',
105
- DROPDOWN_ITEMS: '.dropdown-item',
106
- DROPDOWN_TOGGLE: '.dropdown-toggle'
107
- };
108
- var OffsetMethod = {
109
- OFFSET: 'offset',
110
- POSITION: 'position'
111
- /**
112
- * ------------------------------------------------------------------------
113
- * Class Definition
114
- * ------------------------------------------------------------------------
115
- */
116
-
117
- };
102
+ var EVENT_ACTIVATE = "activate" + EVENT_KEY;
103
+ var EVENT_SCROLL = "scroll" + EVENT_KEY;
104
+ var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
105
+ var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
106
+ var CLASS_NAME_ACTIVE = 'active';
107
+ var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
108
+ var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
109
+ var SELECTOR_NAV_LINKS = '.nav-link';
110
+ var SELECTOR_NAV_ITEMS = '.nav-item';
111
+ var SELECTOR_LIST_ITEMS = '.list-group-item';
112
+ var SELECTOR_DROPDOWN = '.dropdown';
113
+ var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';
114
+ var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
115
+ var METHOD_OFFSET = 'offset';
116
+ var METHOD_POSITION = 'position';
117
+ /**
118
+ * ------------------------------------------------------------------------
119
+ * Class Definition
120
+ * ------------------------------------------------------------------------
121
+ */
118
122
 
119
- var ScrollSpy =
120
- /*#__PURE__*/
121
- function () {
123
+ var ScrollSpy = /*#__PURE__*/function () {
122
124
  function ScrollSpy(element, config) {
123
125
  var _this = this;
124
126
 
125
127
  this._element = element;
126
128
  this._scrollElement = element.tagName === 'BODY' ? window : element;
127
129
  this._config = this._getConfig(config);
128
- this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
130
+ this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " " + SELECTOR_DROPDOWN_ITEMS);
129
131
  this._offsets = [];
130
132
  this._targets = [];
131
133
  this._activeTarget = null;
132
134
  this._scrollHeight = 0;
133
- $(this._scrollElement).on(Event.SCROLL, function (event) {
135
+ $(this._scrollElement).on(EVENT_SCROLL, function (event) {
134
136
  return _this._process(event);
135
137
  });
136
138
  this.refresh();
@@ -145,9 +147,9 @@
145
147
  _proto.refresh = function refresh() {
146
148
  var _this2 = this;
147
149
 
148
- var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
150
+ var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
149
151
  var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
150
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
152
+ var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
151
153
  this._offsets = [];
152
154
  this._targets = [];
153
155
  this._scrollHeight = this._getScrollHeight();
@@ -196,9 +198,9 @@
196
198
  ;
197
199
 
198
200
  _proto._getConfig = function _getConfig(config) {
199
- config = _objectSpread({}, Default, typeof config === 'object' && config ? config : {});
201
+ config = _objectSpread2(_objectSpread2({}, Default), typeof config === 'object' && config ? config : {});
200
202
 
201
- if (typeof config.target !== 'string') {
203
+ if (typeof config.target !== 'string' && Util.isElement(config.target)) {
202
204
  var id = $(config.target).attr('id');
203
205
 
204
206
  if (!id) {
@@ -254,9 +256,7 @@
254
256
  return;
255
257
  }
256
258
 
257
- var offsetLength = this._offsets.length;
258
-
259
- for (var i = offsetLength; i--;) {
259
+ for (var i = this._offsets.length; i--;) {
260
260
  var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
261
261
 
262
262
  if (isActiveTarget) {
@@ -276,29 +276,29 @@
276
276
 
277
277
  var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
278
278
 
279
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
280
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
281
- $link.addClass(ClassName.ACTIVE);
279
+ if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {
280
+ $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE);
281
+ $link.addClass(CLASS_NAME_ACTIVE);
282
282
  } else {
283
283
  // Set triggered link as active
284
- $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
284
+ $link.addClass(CLASS_NAME_ACTIVE); // Set triggered links parents as active
285
285
  // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
286
286
 
287
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
287
+ $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE); // Handle special case when .nav-link is inside .nav-item
288
288
 
289
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
289
+ $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE);
290
290
  }
291
291
 
292
- $(this._scrollElement).trigger(Event.ACTIVATE, {
292
+ $(this._scrollElement).trigger(EVENT_ACTIVATE, {
293
293
  relatedTarget: target
294
294
  });
295
295
  };
296
296
 
297
297
  _proto._clear = function _clear() {
298
298
  [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
299
- return node.classList.contains(ClassName.ACTIVE);
299
+ return node.classList.contains(CLASS_NAME_ACTIVE);
300
300
  }).forEach(function (node) {
301
- return node.classList.remove(ClassName.ACTIVE);
301
+ return node.classList.remove(CLASS_NAME_ACTIVE);
302
302
  });
303
303
  } // Static
304
304
  ;
@@ -345,8 +345,8 @@
345
345
  */
346
346
 
347
347
 
348
- $(window).on(Event.LOAD_DATA_API, function () {
349
- var scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY));
348
+ $(window).on(EVENT_LOAD_DATA_API, function () {
349
+ var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));
350
350
  var scrollSpysLength = scrollSpys.length;
351
351
 
352
352
  for (var i = scrollSpysLength; i--;) {
@@ -371,4 +371,4 @@
371
371
 
372
372
  return ScrollSpy;
373
373
 
374
- }));
374
+ })));
@@ -1,16 +1,16 @@
1
1
  /*!
2
- * Bootstrap tab.js v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap tab.js v4.5.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
9
9
  (global = global || self, global.Tab = factory(global.jQuery, global.Util));
10
- }(this, function ($, Util) { 'use strict';
10
+ }(this, (function ($, Util) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
12
+ $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
+ Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
14
14
 
15
15
  function _defineProperties(target, props) {
16
16
  for (var i = 0; i < props.length; i++) {
@@ -35,44 +35,35 @@
35
35
  */
36
36
 
37
37
  var NAME = 'tab';
38
- var VERSION = '4.3.1';
38
+ var VERSION = '4.5.0';
39
39
  var DATA_KEY = 'bs.tab';
40
40
  var EVENT_KEY = "." + DATA_KEY;
41
41
  var DATA_API_KEY = '.data-api';
42
42
  var JQUERY_NO_CONFLICT = $.fn[NAME];
43
- var Event = {
44
- HIDE: "hide" + EVENT_KEY,
45
- HIDDEN: "hidden" + EVENT_KEY,
46
- SHOW: "show" + EVENT_KEY,
47
- SHOWN: "shown" + EVENT_KEY,
48
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
49
- };
50
- var ClassName = {
51
- DROPDOWN_MENU: 'dropdown-menu',
52
- ACTIVE: 'active',
53
- DISABLED: 'disabled',
54
- FADE: 'fade',
55
- SHOW: 'show'
56
- };
57
- var Selector = {
58
- DROPDOWN: '.dropdown',
59
- NAV_LIST_GROUP: '.nav, .list-group',
60
- ACTIVE: '.active',
61
- ACTIVE_UL: '> li > .active',
62
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
63
- DROPDOWN_TOGGLE: '.dropdown-toggle',
64
- DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
65
- /**
66
- * ------------------------------------------------------------------------
67
- * Class Definition
68
- * ------------------------------------------------------------------------
69
- */
70
-
71
- };
43
+ var EVENT_HIDE = "hide" + EVENT_KEY;
44
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
45
+ var EVENT_SHOW = "show" + EVENT_KEY;
46
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
47
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
48
+ var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
49
+ var CLASS_NAME_ACTIVE = 'active';
50
+ var CLASS_NAME_DISABLED = 'disabled';
51
+ var CLASS_NAME_FADE = 'fade';
52
+ var CLASS_NAME_SHOW = 'show';
53
+ var SELECTOR_DROPDOWN = '.dropdown';
54
+ var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
55
+ var SELECTOR_ACTIVE = '.active';
56
+ var SELECTOR_ACTIVE_UL = '> li > .active';
57
+ var SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
58
+ var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
59
+ var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';
60
+ /**
61
+ * ------------------------------------------------------------------------
62
+ * Class Definition
63
+ * ------------------------------------------------------------------------
64
+ */
72
65
 
73
- var Tab =
74
- /*#__PURE__*/
75
- function () {
66
+ var Tab = /*#__PURE__*/function () {
76
67
  function Tab(element) {
77
68
  this._element = element;
78
69
  } // Getters
@@ -84,25 +75,25 @@
84
75
  _proto.show = function show() {
85
76
  var _this = this;
86
77
 
87
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
78
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(CLASS_NAME_ACTIVE) || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
88
79
  return;
89
80
  }
90
81
 
91
82
  var target;
92
83
  var previous;
93
- var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
84
+ var listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0];
94
85
  var selector = Util.getSelectorFromElement(this._element);
95
86
 
96
87
  if (listElement) {
97
- var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
88
+ var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
98
89
  previous = $.makeArray($(listElement).find(itemSelector));
99
90
  previous = previous[previous.length - 1];
100
91
  }
101
92
 
102
- var hideEvent = $.Event(Event.HIDE, {
93
+ var hideEvent = $.Event(EVENT_HIDE, {
103
94
  relatedTarget: this._element
104
95
  });
105
- var showEvent = $.Event(Event.SHOW, {
96
+ var showEvent = $.Event(EVENT_SHOW, {
106
97
  relatedTarget: previous
107
98
  });
108
99
 
@@ -123,10 +114,10 @@
123
114
  this._activate(this._element, listElement);
124
115
 
125
116
  var complete = function complete() {
126
- var hiddenEvent = $.Event(Event.HIDDEN, {
117
+ var hiddenEvent = $.Event(EVENT_HIDDEN, {
127
118
  relatedTarget: _this._element
128
119
  });
129
- var shownEvent = $.Event(Event.SHOWN, {
120
+ var shownEvent = $.Event(EVENT_SHOWN, {
130
121
  relatedTarget: previous
131
122
  });
132
123
  $(previous).trigger(hiddenEvent);
@@ -149,9 +140,9 @@
149
140
  _proto._activate = function _activate(element, container, callback) {
150
141
  var _this2 = this;
151
142
 
152
- var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector.ACTIVE_UL) : $(container).children(Selector.ACTIVE);
143
+ var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(SELECTOR_ACTIVE_UL) : $(container).children(SELECTOR_ACTIVE);
153
144
  var active = activeElements[0];
154
- var isTransitioning = callback && active && $(active).hasClass(ClassName.FADE);
145
+ var isTransitioning = callback && active && $(active).hasClass(CLASS_NAME_FADE);
155
146
 
156
147
  var complete = function complete() {
157
148
  return _this2._transitionComplete(element, active, callback);
@@ -159,7 +150,7 @@
159
150
 
160
151
  if (active && isTransitioning) {
161
152
  var transitionDuration = Util.getTransitionDurationFromElement(active);
162
- $(active).removeClass(ClassName.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
153
+ $(active).removeClass(CLASS_NAME_SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
163
154
  } else {
164
155
  complete();
165
156
  }
@@ -167,11 +158,11 @@
167
158
 
168
159
  _proto._transitionComplete = function _transitionComplete(element, active, callback) {
169
160
  if (active) {
170
- $(active).removeClass(ClassName.ACTIVE);
171
- var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
161
+ $(active).removeClass(CLASS_NAME_ACTIVE);
162
+ var dropdownChild = $(active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];
172
163
 
173
164
  if (dropdownChild) {
174
- $(dropdownChild).removeClass(ClassName.ACTIVE);
165
+ $(dropdownChild).removeClass(CLASS_NAME_ACTIVE);
175
166
  }
176
167
 
177
168
  if (active.getAttribute('role') === 'tab') {
@@ -179,7 +170,7 @@
179
170
  }
180
171
  }
181
172
 
182
- $(element).addClass(ClassName.ACTIVE);
173
+ $(element).addClass(CLASS_NAME_ACTIVE);
183
174
 
184
175
  if (element.getAttribute('role') === 'tab') {
185
176
  element.setAttribute('aria-selected', true);
@@ -187,16 +178,16 @@
187
178
 
188
179
  Util.reflow(element);
189
180
 
190
- if (element.classList.contains(ClassName.FADE)) {
191
- element.classList.add(ClassName.SHOW);
181
+ if (element.classList.contains(CLASS_NAME_FADE)) {
182
+ element.classList.add(CLASS_NAME_SHOW);
192
183
  }
193
184
 
194
- if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
195
- var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
185
+ if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {
186
+ var dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0];
196
187
 
197
188
  if (dropdownElement) {
198
- var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
199
- $(dropdownToggleList).addClass(ClassName.ACTIVE);
189
+ var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE));
190
+ $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE);
200
191
  }
201
192
 
202
193
  element.setAttribute('aria-expanded', true);
@@ -244,7 +235,7 @@
244
235
  */
245
236
 
246
237
 
247
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
238
+ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
248
239
  event.preventDefault();
249
240
 
250
241
  Tab._jQueryInterface.call($(this), 'show');
@@ -265,4 +256,4 @@
265
256
 
266
257
  return Tab;
267
258
 
268
- }));
259
+ })));