bootstrap 5.0.0.beta1 → 5.0.0.beta2

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/README.md +3 -3
  4. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  5. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  6. data/assets/javascripts/bootstrap-sprockets.js +3 -0
  7. data/assets/javascripts/bootstrap.js +429 -486
  8. data/assets/javascripts/bootstrap.min.js +3 -3
  9. data/assets/javascripts/bootstrap/alert.js +81 -80
  10. data/assets/javascripts/bootstrap/base-component.js +75 -0
  11. data/assets/javascripts/bootstrap/button.js +60 -72
  12. data/assets/javascripts/bootstrap/carousel.js +131 -110
  13. data/assets/javascripts/bootstrap/collapse.js +94 -77
  14. data/assets/javascripts/bootstrap/dom/data.js +3 -3
  15. data/assets/javascripts/bootstrap/dom/event-handler.js +6 -5
  16. data/assets/javascripts/bootstrap/dom/manipulator.js +3 -3
  17. data/assets/javascripts/bootstrap/dom/selector-engine.js +6 -11
  18. data/assets/javascripts/bootstrap/dropdown.js +159 -90
  19. data/assets/javascripts/bootstrap/modal.js +132 -125
  20. data/assets/javascripts/bootstrap/popover.js +73 -25
  21. data/assets/javascripts/bootstrap/scrollspy.js +93 -76
  22. data/assets/javascripts/bootstrap/tab.js +78 -82
  23. data/assets/javascripts/bootstrap/toast.js +79 -75
  24. data/assets/javascripts/bootstrap/tooltip.js +207 -185
  25. data/assets/stylesheets/_bootstrap-grid.scss +3 -3
  26. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  27. data/assets/stylesheets/_bootstrap.scss +3 -3
  28. data/assets/stylesheets/bootstrap/_accordion.scss +1 -0
  29. data/assets/stylesheets/bootstrap/_alert.scss +6 -6
  30. data/assets/stylesheets/bootstrap/_carousel.scss +12 -6
  31. data/assets/stylesheets/bootstrap/_close.scss +1 -1
  32. data/assets/stylesheets/bootstrap/_dropdown.scss +29 -15
  33. data/assets/stylesheets/bootstrap/_list-group.scss +5 -5
  34. data/assets/stylesheets/bootstrap/_nav.scss +5 -0
  35. data/assets/stylesheets/bootstrap/_navbar.scss +12 -1
  36. data/assets/stylesheets/bootstrap/_pagination.scss +2 -2
  37. data/assets/stylesheets/bootstrap/_popover.scss +0 -15
  38. data/assets/stylesheets/bootstrap/_reboot.scss +6 -6
  39. data/assets/stylesheets/bootstrap/_tables.scss +1 -1
  40. data/assets/stylesheets/bootstrap/_toasts.scss +1 -0
  41. data/assets/stylesheets/bootstrap/_utilities.scss +6 -0
  42. data/assets/stylesheets/bootstrap/_variables.scss +30 -7
  43. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +5 -5
  44. data/assets/stylesheets/bootstrap/forms/_form-check.scss +1 -0
  45. data/assets/stylesheets/bootstrap/forms/_form-range.scss +1 -1
  46. data/assets/stylesheets/bootstrap/forms/_form-select.scss +1 -2
  47. data/assets/stylesheets/bootstrap/forms/_validation.scss +1 -1
  48. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +2 -2
  49. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +1 -1
  50. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +4 -4
  51. data/assets/stylesheets/bootstrap/mixins/_forms.scss +13 -6
  52. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +4 -0
  53. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +3 -2
  54. data/assets/stylesheets/bootstrap/utilities/_api.scss +1 -1
  55. data/bootstrap.gemspec +1 -3
  56. data/lib/bootstrap/version.rb +2 -2
  57. data/tasks/updater/js.rb +15 -2
  58. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  59. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  60. data/test/dummy_rails/app/views/pages/root.html +89 -0
  61. data/test/dummy_rails/config/application.rb +0 -3
  62. data/test/gemfiles/rails_6_1.gemfile +7 -0
  63. metadata +13 -36
  64. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
@@ -1,13 +1,13 @@
1
1
  /*!
2
- * Bootstrap carousel.js v5.0.0-beta1 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap carousel.js v5.0.0-beta2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
10
- }(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
+ }(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
13
 
@@ -15,10 +15,61 @@
15
15
  var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
16
  var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
17
  var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
19
+
20
+ function _defineProperties(target, props) {
21
+ for (var i = 0; i < props.length; i++) {
22
+ var descriptor = props[i];
23
+ descriptor.enumerable = descriptor.enumerable || false;
24
+ descriptor.configurable = true;
25
+ if ("value" in descriptor) descriptor.writable = true;
26
+ Object.defineProperty(target, descriptor.key, descriptor);
27
+ }
28
+ }
29
+
30
+ function _createClass(Constructor, protoProps, staticProps) {
31
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
32
+ if (staticProps) _defineProperties(Constructor, staticProps);
33
+ return Constructor;
34
+ }
35
+
36
+ function _extends() {
37
+ _extends = Object.assign || function (target) {
38
+ for (var i = 1; i < arguments.length; i++) {
39
+ var source = arguments[i];
40
+
41
+ for (var key in source) {
42
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
43
+ target[key] = source[key];
44
+ }
45
+ }
46
+ }
47
+
48
+ return target;
49
+ };
50
+
51
+ return _extends.apply(this, arguments);
52
+ }
53
+
54
+ function _inheritsLoose(subClass, superClass) {
55
+ subClass.prototype = Object.create(superClass.prototype);
56
+ subClass.prototype.constructor = subClass;
57
+
58
+ _setPrototypeOf(subClass, superClass);
59
+ }
60
+
61
+ function _setPrototypeOf(o, p) {
62
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
63
+ o.__proto__ = p;
64
+ return o;
65
+ };
66
+
67
+ return _setPrototypeOf(o, p);
68
+ }
18
69
 
19
70
  /**
20
71
  * --------------------------------------------------------------------------
21
- * Bootstrap (v5.0.0-beta1): util/index.js
72
+ * Bootstrap (v5.0.0-beta2): util/index.js
22
73
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
23
74
  * --------------------------------------------------------------------------
24
75
  */
@@ -37,7 +88,20 @@
37
88
  var selector = element.getAttribute('data-bs-target');
38
89
 
39
90
  if (!selector || selector === '#') {
40
- var hrefAttr = element.getAttribute('href');
91
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
92
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
93
+ // `document.querySelector` will rightfully complain it is invalid.
94
+ // See https://github.com/twbs/bootstrap/issues/32273
95
+
96
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
97
+ return null;
98
+ } // Just in case some CMS puts out a full URL with the anchor appended
99
+
100
+
101
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
102
+ hrefAttr = '#' + hrefAttr.split('#')[1];
103
+ }
104
+
41
105
  selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
42
106
  }
43
107
 
@@ -105,7 +169,7 @@
105
169
  var valueType = value && isElement(value) ? 'element' : toType(value);
106
170
 
107
171
  if (!new RegExp(expectedTypes).test(valueType)) {
108
- throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
172
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
109
173
  }
110
174
  });
111
175
  };
@@ -149,57 +213,24 @@
149
213
 
150
214
  var isRTL = document.documentElement.dir === 'rtl';
151
215
 
152
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
153
-
154
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
155
- /**
156
- * ------------------------------------------------------------------------
157
- * Constants
158
- * ------------------------------------------------------------------------
159
- */
160
-
161
- var VERSION = '5.0.0-beta1';
162
-
163
- var BaseComponent = /*#__PURE__*/function () {
164
- function BaseComponent(element) {
165
- if (!element) {
166
- return;
167
- }
168
-
169
- this._element = element;
170
- Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
171
- }
216
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
217
+ onDOMContentLoaded(function () {
218
+ var $ = getjQuery();
219
+ /* istanbul ignore if */
172
220
 
173
- var _proto = BaseComponent.prototype;
174
-
175
- _proto.dispose = function dispose() {
176
- Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
177
- this._element = null;
178
- }
179
- /** Static */
180
- ;
181
-
182
- BaseComponent.getInstance = function getInstance(element) {
183
- return Data__default['default'].getData(element, this.DATA_KEY);
184
- };
221
+ if ($) {
222
+ var JQUERY_NO_CONFLICT = $.fn[name];
223
+ $.fn[name] = plugin.jQueryInterface;
224
+ $.fn[name].Constructor = plugin;
185
225
 
186
- _createClass(BaseComponent, null, [{
187
- key: "VERSION",
188
- get: function get() {
189
- return VERSION;
226
+ $.fn[name].noConflict = function () {
227
+ $.fn[name] = JQUERY_NO_CONFLICT;
228
+ return plugin.jQueryInterface;
229
+ };
190
230
  }
191
- }]);
192
-
193
- return BaseComponent;
194
- }();
195
-
196
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
197
-
198
- function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
199
-
200
- function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
231
+ });
232
+ };
201
233
 
202
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
203
234
  /**
204
235
  * ------------------------------------------------------------------------
205
236
  * Constants
@@ -262,12 +293,11 @@
262
293
  var SELECTOR_ITEM_IMG = '.carousel-item img';
263
294
  var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
264
295
  var SELECTOR_INDICATORS = '.carousel-indicators';
296
+ var SELECTOR_INDICATOR = '[data-bs-target]';
265
297
  var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
266
298
  var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
267
- var PointerType = {
268
- TOUCH: 'touch',
269
- PEN: 'pen'
270
- };
299
+ var POINTER_TYPE_TOUCH = 'touch';
300
+ var POINTER_TYPE_PEN = 'pen';
271
301
  /**
272
302
  * ------------------------------------------------------------------------
273
303
  * Class Definition
@@ -414,12 +444,20 @@
414
444
  this.touchDeltaX = 0; // swipe left
415
445
 
416
446
  if (direction > 0) {
417
- this.prev();
447
+ if (isRTL) {
448
+ this.next();
449
+ } else {
450
+ this.prev();
451
+ }
418
452
  } // swipe right
419
453
 
420
454
 
421
455
  if (direction < 0) {
422
- this.next();
456
+ if (isRTL) {
457
+ this.prev();
458
+ } else {
459
+ this.next();
460
+ }
423
461
  }
424
462
  };
425
463
 
@@ -450,7 +488,7 @@
450
488
  var _this4 = this;
451
489
 
452
490
  var start = function start(event) {
453
- if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
491
+ if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
454
492
  _this4.touchStartX = event.clientX;
455
493
  } else if (!_this4._pointerEvent) {
456
494
  _this4.touchStartX = event.touches[0].clientX;
@@ -467,7 +505,7 @@
467
505
  };
468
506
 
469
507
  var end = function end(event) {
470
- if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
508
+ if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
471
509
  _this4.touchDeltaX = event.clientX - _this4.touchStartX;
472
510
  }
473
511
 
@@ -526,16 +564,22 @@
526
564
  return;
527
565
  }
528
566
 
529
- switch (event.key) {
530
- case ARROW_LEFT_KEY:
531
- event.preventDefault();
567
+ if (event.key === ARROW_LEFT_KEY) {
568
+ event.preventDefault();
569
+
570
+ if (isRTL) {
571
+ this.next();
572
+ } else {
532
573
  this.prev();
533
- break;
574
+ }
575
+ } else if (event.key === ARROW_RIGHT_KEY) {
576
+ event.preventDefault();
534
577
 
535
- case ARROW_RIGHT_KEY:
536
- event.preventDefault();
578
+ if (isRTL) {
579
+ this.prev();
580
+ } else {
537
581
  this.next();
538
- break;
582
+ }
539
583
  }
540
584
  };
541
585
 
@@ -577,16 +621,17 @@
577
621
 
578
622
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
579
623
  if (this._indicatorsElement) {
580
- var indicators = SelectorEngine__default['default'].find(SELECTOR_ACTIVE, this._indicatorsElement);
624
+ var activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement);
625
+ activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
626
+ activeIndicator.removeAttribute('aria-current');
627
+ var indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement);
581
628
 
582
629
  for (var i = 0; i < indicators.length; i++) {
583
- indicators[i].classList.remove(CLASS_NAME_ACTIVE);
584
- }
585
-
586
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
587
-
588
- if (nextIndicator) {
589
- nextIndicator.classList.add(CLASS_NAME_ACTIVE);
630
+ if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {
631
+ indicators[i].classList.add(CLASS_NAME_ACTIVE);
632
+ indicators[i].setAttribute('aria-current', 'true');
633
+ break;
634
+ }
590
635
  }
591
636
  }
592
637
  };
@@ -620,19 +665,9 @@
620
665
  var nextElementIndex = this._getItemIndex(nextElement);
621
666
 
622
667
  var isCycling = Boolean(this._interval);
623
- var directionalClassName;
624
- var orderClassName;
625
- var eventDirectionName;
626
-
627
- if (direction === DIRECTION_NEXT) {
628
- directionalClassName = CLASS_NAME_START;
629
- orderClassName = CLASS_NAME_NEXT;
630
- eventDirectionName = DIRECTION_LEFT;
631
- } else {
632
- directionalClassName = CLASS_NAME_END;
633
- orderClassName = CLASS_NAME_PREV;
634
- eventDirectionName = DIRECTION_RIGHT;
635
- }
668
+ var directionalClassName = direction === DIRECTION_NEXT ? CLASS_NAME_START : CLASS_NAME_END;
669
+ var orderClassName = direction === DIRECTION_NEXT ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
670
+ var eventDirectionName = direction === DIRECTION_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT;
636
671
 
637
672
  if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {
638
673
  this._isSliding = false;
@@ -666,7 +701,7 @@
666
701
  activeElement.classList.add(directionalClassName);
667
702
  nextElement.classList.add(directionalClassName);
668
703
  var transitionDuration = getTransitionDurationFromElement(activeElement);
669
- EventHandler__default['default'].one(activeElement, TRANSITION_END, function () {
704
+ EventHandler__default['default'].one(activeElement, 'transitionend', function () {
670
705
  nextElement.classList.remove(directionalClassName, orderClassName);
671
706
  nextElement.classList.add(CLASS_NAME_ACTIVE);
672
707
  activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
@@ -758,7 +793,7 @@
758
793
  event.preventDefault();
759
794
  };
760
795
 
761
- _createClass$1(Carousel, null, [{
796
+ _createClass(Carousel, null, [{
762
797
  key: "Default",
763
798
  get: function get() {
764
799
  return Default;
@@ -771,7 +806,7 @@
771
806
  }]);
772
807
 
773
808
  return Carousel;
774
- }(BaseComponent);
809
+ }(BaseComponent__default['default']);
775
810
  /**
776
811
  * ------------------------------------------------------------------------
777
812
  * Data Api implementation
@@ -794,21 +829,7 @@
794
829
  * add .Carousel to jQuery only if jQuery is present
795
830
  */
796
831
 
797
- onDOMContentLoaded(function () {
798
- var $ = getjQuery();
799
- /* istanbul ignore if */
800
-
801
- if ($) {
802
- var JQUERY_NO_CONFLICT = $.fn[NAME];
803
- $.fn[NAME] = Carousel.jQueryInterface;
804
- $.fn[NAME].Constructor = Carousel;
805
-
806
- $.fn[NAME].noConflict = function () {
807
- $.fn[NAME] = JQUERY_NO_CONFLICT;
808
- return Carousel.jQueryInterface;
809
- };
810
- }
811
- });
832
+ defineJQueryPlugin(NAME, Carousel);
812
833
 
813
834
  return Carousel;
814
835
 
@@ -1,13 +1,13 @@
1
1
  /*!
2
- * Bootstrap collapse.js v5.0.0-beta1 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap collapse.js v5.0.0-beta2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
10
- }(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
+ }(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
13
 
@@ -15,10 +15,61 @@
15
15
  var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
16
  var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
17
  var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
19
+
20
+ function _defineProperties(target, props) {
21
+ for (var i = 0; i < props.length; i++) {
22
+ var descriptor = props[i];
23
+ descriptor.enumerable = descriptor.enumerable || false;
24
+ descriptor.configurable = true;
25
+ if ("value" in descriptor) descriptor.writable = true;
26
+ Object.defineProperty(target, descriptor.key, descriptor);
27
+ }
28
+ }
29
+
30
+ function _createClass(Constructor, protoProps, staticProps) {
31
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
32
+ if (staticProps) _defineProperties(Constructor, staticProps);
33
+ return Constructor;
34
+ }
35
+
36
+ function _extends() {
37
+ _extends = Object.assign || function (target) {
38
+ for (var i = 1; i < arguments.length; i++) {
39
+ var source = arguments[i];
40
+
41
+ for (var key in source) {
42
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
43
+ target[key] = source[key];
44
+ }
45
+ }
46
+ }
47
+
48
+ return target;
49
+ };
50
+
51
+ return _extends.apply(this, arguments);
52
+ }
53
+
54
+ function _inheritsLoose(subClass, superClass) {
55
+ subClass.prototype = Object.create(superClass.prototype);
56
+ subClass.prototype.constructor = subClass;
57
+
58
+ _setPrototypeOf(subClass, superClass);
59
+ }
60
+
61
+ function _setPrototypeOf(o, p) {
62
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
63
+ o.__proto__ = p;
64
+ return o;
65
+ };
66
+
67
+ return _setPrototypeOf(o, p);
68
+ }
18
69
 
19
70
  /**
20
71
  * --------------------------------------------------------------------------
21
- * Bootstrap (v5.0.0-beta1): util/index.js
72
+ * Bootstrap (v5.0.0-beta2): util/index.js
22
73
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
23
74
  * --------------------------------------------------------------------------
24
75
  */
@@ -37,7 +88,20 @@
37
88
  var selector = element.getAttribute('data-bs-target');
38
89
 
39
90
  if (!selector || selector === '#') {
40
- var hrefAttr = element.getAttribute('href');
91
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
92
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
93
+ // `document.querySelector` will rightfully complain it is invalid.
94
+ // See https://github.com/twbs/bootstrap/issues/32273
95
+
96
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
97
+ return null;
98
+ } // Just in case some CMS puts out a full URL with the anchor appended
99
+
100
+
101
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
102
+ hrefAttr = '#' + hrefAttr.split('#')[1];
103
+ }
104
+
41
105
  selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
42
106
  }
43
107
 
@@ -115,7 +179,7 @@
115
179
  var valueType = value && isElement(value) ? 'element' : toType(value);
116
180
 
117
181
  if (!new RegExp(expectedTypes).test(valueType)) {
118
- throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
182
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
119
183
  }
120
184
  });
121
185
  };
@@ -143,59 +207,26 @@
143
207
  }
144
208
  };
145
209
 
146
- var isRTL = document.documentElement.dir === 'rtl';
147
-
148
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
149
-
150
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
151
- /**
152
- * ------------------------------------------------------------------------
153
- * Constants
154
- * ------------------------------------------------------------------------
155
- */
156
-
157
- var VERSION = '5.0.0-beta1';
158
-
159
- var BaseComponent = /*#__PURE__*/function () {
160
- function BaseComponent(element) {
161
- if (!element) {
162
- return;
163
- }
164
-
165
- this._element = element;
166
- Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
167
- }
168
-
169
- var _proto = BaseComponent.prototype;
210
+ document.documentElement.dir === 'rtl';
170
211
 
171
- _proto.dispose = function dispose() {
172
- Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
173
- this._element = null;
174
- }
175
- /** Static */
176
- ;
212
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
213
+ onDOMContentLoaded(function () {
214
+ var $ = getjQuery();
215
+ /* istanbul ignore if */
177
216
 
178
- BaseComponent.getInstance = function getInstance(element) {
179
- return Data__default['default'].getData(element, this.DATA_KEY);
180
- };
217
+ if ($) {
218
+ var JQUERY_NO_CONFLICT = $.fn[name];
219
+ $.fn[name] = plugin.jQueryInterface;
220
+ $.fn[name].Constructor = plugin;
181
221
 
182
- _createClass(BaseComponent, null, [{
183
- key: "VERSION",
184
- get: function get() {
185
- return VERSION;
222
+ $.fn[name].noConflict = function () {
223
+ $.fn[name] = JQUERY_NO_CONFLICT;
224
+ return plugin.jQueryInterface;
225
+ };
186
226
  }
187
- }]);
188
-
189
- return BaseComponent;
190
- }();
191
-
192
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
193
-
194
- function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
195
-
196
- function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
227
+ });
228
+ };
197
229
 
198
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
199
230
  /**
200
231
  * ------------------------------------------------------------------------
201
232
  * Constants
@@ -371,7 +402,7 @@
371
402
  var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
372
403
  var scrollSize = "scroll" + capitalizedDimension;
373
404
  var transitionDuration = getTransitionDurationFromElement(this._element);
374
- EventHandler__default['default'].one(this._element, TRANSITION_END, complete);
405
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
375
406
  emulateTransitionEnd(this._element, transitionDuration);
376
407
  this._element.style[dimension] = this._element[scrollSize] + "px";
377
408
  };
@@ -426,7 +457,7 @@
426
457
 
427
458
  this._element.style[dimension] = '';
428
459
  var transitionDuration = getTransitionDurationFromElement(this._element);
429
- EventHandler__default['default'].one(this._element, TRANSITION_END, complete);
460
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
430
461
  emulateTransitionEnd(this._element, transitionDuration);
431
462
  };
432
463
 
@@ -525,7 +556,7 @@
525
556
  });
526
557
  };
527
558
 
528
- _createClass$1(Collapse, null, [{
559
+ _createClass(Collapse, null, [{
529
560
  key: "Default",
530
561
  get: function get() {
531
562
  return Default;
@@ -538,7 +569,7 @@
538
569
  }]);
539
570
 
540
571
  return Collapse;
541
- }(BaseComponent);
572
+ }(BaseComponent__default['default']);
542
573
  /**
543
574
  * ------------------------------------------------------------------------
544
575
  * Data Api implementation
@@ -548,7 +579,7 @@
548
579
 
549
580
  EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
550
581
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
551
- if (event.target.tagName === 'A') {
582
+ if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
552
583
  event.preventDefault();
553
584
  }
554
585
 
@@ -581,21 +612,7 @@
581
612
  * add .Collapse to jQuery only if jQuery is present
582
613
  */
583
614
 
584
- onDOMContentLoaded(function () {
585
- var $ = getjQuery();
586
- /* istanbul ignore if */
587
-
588
- if ($) {
589
- var JQUERY_NO_CONFLICT = $.fn[NAME];
590
- $.fn[NAME] = Collapse.jQueryInterface;
591
- $.fn[NAME].Constructor = Collapse;
592
-
593
- $.fn[NAME].noConflict = function () {
594
- $.fn[NAME] = JQUERY_NO_CONFLICT;
595
- return Collapse.jQueryInterface;
596
- };
597
- }
598
- });
615
+ defineJQueryPlugin(NAME, Collapse);
599
616
 
600
617
  return Collapse;
601
618