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