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 collapse.js v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap collapse.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.Collapse = 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 = 'collapse';
72
- var VERSION = '4.3.1';
87
+ var VERSION = '4.5.0';
73
88
  var DATA_KEY = 'bs.collapse';
74
89
  var EVENT_KEY = "." + DATA_KEY;
75
90
  var DATA_API_KEY = '.data-api';
@@ -82,43 +97,32 @@
82
97
  toggle: 'boolean',
83
98
  parent: '(string|element)'
84
99
  };
85
- var Event = {
86
- SHOW: "show" + EVENT_KEY,
87
- SHOWN: "shown" + EVENT_KEY,
88
- HIDE: "hide" + EVENT_KEY,
89
- HIDDEN: "hidden" + EVENT_KEY,
90
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
91
- };
92
- var ClassName = {
93
- SHOW: 'show',
94
- COLLAPSE: 'collapse',
95
- COLLAPSING: 'collapsing',
96
- COLLAPSED: 'collapsed'
97
- };
98
- var Dimension = {
99
- WIDTH: 'width',
100
- HEIGHT: 'height'
101
- };
102
- var Selector = {
103
- ACTIVES: '.show, .collapsing',
104
- DATA_TOGGLE: '[data-toggle="collapse"]'
105
- /**
106
- * ------------------------------------------------------------------------
107
- * Class Definition
108
- * ------------------------------------------------------------------------
109
- */
110
-
111
- };
100
+ var EVENT_SHOW = "show" + EVENT_KEY;
101
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
102
+ var EVENT_HIDE = "hide" + EVENT_KEY;
103
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
104
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
105
+ var CLASS_NAME_SHOW = 'show';
106
+ var CLASS_NAME_COLLAPSE = 'collapse';
107
+ var CLASS_NAME_COLLAPSING = 'collapsing';
108
+ var CLASS_NAME_COLLAPSED = 'collapsed';
109
+ var DIMENSION_WIDTH = 'width';
110
+ var DIMENSION_HEIGHT = 'height';
111
+ var SELECTOR_ACTIVES = '.show, .collapsing';
112
+ var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
113
+ /**
114
+ * ------------------------------------------------------------------------
115
+ * Class Definition
116
+ * ------------------------------------------------------------------------
117
+ */
112
118
 
113
- var Collapse =
114
- /*#__PURE__*/
115
- function () {
119
+ var Collapse = /*#__PURE__*/function () {
116
120
  function Collapse(element, config) {
117
121
  this._isTransitioning = false;
118
122
  this._element = element;
119
123
  this._config = this._getConfig(config);
120
124
  this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
121
- var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
125
+ var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
122
126
 
123
127
  for (var i = 0, len = toggleList.length; i < len; i++) {
124
128
  var elem = toggleList[i];
@@ -150,7 +154,7 @@
150
154
 
151
155
  // Public
152
156
  _proto.toggle = function toggle() {
153
- if ($(this._element).hasClass(ClassName.SHOW)) {
157
+ if ($(this._element).hasClass(CLASS_NAME_SHOW)) {
154
158
  this.hide();
155
159
  } else {
156
160
  this.show();
@@ -160,7 +164,7 @@
160
164
  _proto.show = function show() {
161
165
  var _this = this;
162
166
 
163
- if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
167
+ if (this._isTransitioning || $(this._element).hasClass(CLASS_NAME_SHOW)) {
164
168
  return;
165
169
  }
166
170
 
@@ -168,12 +172,12 @@
168
172
  var activesData;
169
173
 
170
174
  if (this._parent) {
171
- actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {
175
+ actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {
172
176
  if (typeof _this._config.parent === 'string') {
173
177
  return elem.getAttribute('data-parent') === _this._config.parent;
174
178
  }
175
179
 
176
- return elem.classList.contains(ClassName.COLLAPSE);
180
+ return elem.classList.contains(CLASS_NAME_COLLAPSE);
177
181
  });
178
182
 
179
183
  if (actives.length === 0) {
@@ -189,7 +193,7 @@
189
193
  }
190
194
  }
191
195
 
192
- var startEvent = $.Event(Event.SHOW);
196
+ var startEvent = $.Event(EVENT_SHOW);
193
197
  $(this._element).trigger(startEvent);
194
198
 
195
199
  if (startEvent.isDefaultPrevented()) {
@@ -206,22 +210,22 @@
206
210
 
207
211
  var dimension = this._getDimension();
208
212
 
209
- $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
213
+ $(this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
210
214
  this._element.style[dimension] = 0;
211
215
 
212
216
  if (this._triggerArray.length) {
213
- $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
217
+ $(this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);
214
218
  }
215
219
 
216
220
  this.setTransitioning(true);
217
221
 
218
222
  var complete = function complete() {
219
- $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
223
+ $(_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
220
224
  _this._element.style[dimension] = '';
221
225
 
222
226
  _this.setTransitioning(false);
223
227
 
224
- $(_this._element).trigger(Event.SHOWN);
228
+ $(_this._element).trigger(EVENT_SHOWN);
225
229
  };
226
230
 
227
231
  var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
@@ -234,11 +238,11 @@
234
238
  _proto.hide = function hide() {
235
239
  var _this2 = this;
236
240
 
237
- if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
241
+ if (this._isTransitioning || !$(this._element).hasClass(CLASS_NAME_SHOW)) {
238
242
  return;
239
243
  }
240
244
 
241
- var startEvent = $.Event(Event.HIDE);
245
+ var startEvent = $.Event(EVENT_HIDE);
242
246
  $(this._element).trigger(startEvent);
243
247
 
244
248
  if (startEvent.isDefaultPrevented()) {
@@ -249,7 +253,7 @@
249
253
 
250
254
  this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
251
255
  Util.reflow(this._element);
252
- $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
256
+ $(this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
253
257
  var triggerArrayLength = this._triggerArray.length;
254
258
 
255
259
  if (triggerArrayLength > 0) {
@@ -260,8 +264,8 @@
260
264
  if (selector !== null) {
261
265
  var $elem = $([].slice.call(document.querySelectorAll(selector)));
262
266
 
263
- if (!$elem.hasClass(ClassName.SHOW)) {
264
- $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
267
+ if (!$elem.hasClass(CLASS_NAME_SHOW)) {
268
+ $(trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
265
269
  }
266
270
  }
267
271
  }
@@ -272,7 +276,7 @@
272
276
  var complete = function complete() {
273
277
  _this2.setTransitioning(false);
274
278
 
275
- $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
279
+ $(_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);
276
280
  };
277
281
 
278
282
  this._element.style[dimension] = '';
@@ -295,7 +299,7 @@
295
299
  ;
296
300
 
297
301
  _proto._getConfig = function _getConfig(config) {
298
- config = _objectSpread({}, Default, config);
302
+ config = _objectSpread2(_objectSpread2({}, Default), config);
299
303
  config.toggle = Boolean(config.toggle); // Coerce string values
300
304
 
301
305
  Util.typeCheckConfig(NAME, config, DefaultType);
@@ -303,8 +307,8 @@
303
307
  };
304
308
 
305
309
  _proto._getDimension = function _getDimension() {
306
- var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
307
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
310
+ var hasWidth = $(this._element).hasClass(DIMENSION_WIDTH);
311
+ return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
308
312
  };
309
313
 
310
314
  _proto._getParent = function _getParent() {
@@ -331,10 +335,10 @@
331
335
  };
332
336
 
333
337
  _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
334
- var isOpen = $(element).hasClass(ClassName.SHOW);
338
+ var isOpen = $(element).hasClass(CLASS_NAME_SHOW);
335
339
 
336
340
  if (triggerArray.length) {
337
- $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
341
+ $(triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
338
342
  }
339
343
  } // Static
340
344
  ;
@@ -349,9 +353,9 @@
349
353
  var $this = $(this);
350
354
  var data = $this.data(DATA_KEY);
351
355
 
352
- var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
356
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default), $this.data()), typeof config === 'object' && config ? config : {});
353
357
 
354
- if (!data && _config.toggle && /show|hide/.test(config)) {
358
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
355
359
  _config.toggle = false;
356
360
  }
357
361
 
@@ -391,7 +395,7 @@
391
395
  */
392
396
 
393
397
 
394
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
398
+ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
395
399
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
396
400
  if (event.currentTarget.tagName === 'A') {
397
401
  event.preventDefault();
@@ -424,4 +428,4 @@
424
428
 
425
429
  return Collapse;
426
430
 
427
- }));
431
+ })));