bootstrap 4.3.1 → 4.5.0

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 might be problematic. Click here for more details.

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
+ })));