bootstrap 4.6.2 → 5.0.0.alpha1

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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap/alert.js +148 -73
  4. data/assets/javascripts/bootstrap/button.js +71 -154
  5. data/assets/javascripts/bootstrap/carousel.js +315 -209
  6. data/assets/javascripts/bootstrap/collapse.js +307 -153
  7. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  8. data/assets/javascripts/bootstrap/dom/event-handler.js +311 -0
  9. data/assets/javascripts/bootstrap/dom/manipulator.js +100 -0
  10. data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
  11. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  12. data/assets/javascripts/bootstrap/dropdown.js +257 -205
  13. data/assets/javascripts/bootstrap/modal.js +354 -250
  14. data/assets/javascripts/bootstrap/popover.js +85 -94
  15. data/assets/javascripts/bootstrap/scrollspy.js +179 -107
  16. data/assets/javascripts/bootstrap/tab.js +170 -99
  17. data/assets/javascripts/bootstrap/toast.js +181 -110
  18. data/assets/javascripts/bootstrap/tooltip.js +375 -226
  19. data/assets/javascripts/bootstrap-sprockets.js +5 -1
  20. data/assets/javascripts/bootstrap.js +2260 -1550
  21. data/assets/javascripts/bootstrap.min.js +3 -3
  22. data/assets/stylesheets/_bootstrap-grid.scss +53 -18
  23. data/assets/stylesheets/_bootstrap-reboot.scss +6 -3
  24. data/assets/stylesheets/_bootstrap.scss +16 -10
  25. data/assets/stylesheets/bootstrap/_alert.scss +3 -4
  26. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  27. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -17
  28. data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
  29. data/assets/stylesheets/bootstrap/_buttons.scss +27 -45
  30. data/assets/stylesheets/bootstrap/_card.scss +22 -68
  31. data/assets/stylesheets/bootstrap/_carousel.scss +15 -20
  32. data/assets/stylesheets/bootstrap/_close.scss +9 -13
  33. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  34. data/assets/stylesheets/bootstrap/_dropdown.scss +12 -9
  35. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  36. data/assets/stylesheets/bootstrap/_functions.scss +82 -69
  37. data/assets/stylesheets/bootstrap/_grid.scss +3 -54
  38. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  39. data/assets/stylesheets/bootstrap/_images.scss +1 -1
  40. data/assets/stylesheets/bootstrap/_list-group.scss +7 -4
  41. data/assets/stylesheets/bootstrap/_mixins.scss +6 -12
  42. data/assets/stylesheets/bootstrap/_modal.scss +36 -41
  43. data/assets/stylesheets/bootstrap/_nav.scss +7 -9
  44. data/assets/stylesheets/bootstrap/_navbar.scss +42 -82
  45. data/assets/stylesheets/bootstrap/_pagination.scss +7 -20
  46. data/assets/stylesheets/bootstrap/_popover.scss +14 -14
  47. data/assets/stylesheets/bootstrap/_progress.scss +3 -5
  48. data/assets/stylesheets/bootstrap/_reboot.scss +304 -172
  49. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  50. data/assets/stylesheets/bootstrap/_spinners.scss +8 -17
  51. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  52. data/assets/stylesheets/bootstrap/_toasts.scss +2 -4
  53. data/assets/stylesheets/bootstrap/_tooltip.scss +9 -9
  54. data/assets/stylesheets/bootstrap/_transitions.scss +0 -7
  55. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  56. data/assets/stylesheets/bootstrap/_utilities.scss +503 -18
  57. data/assets/stylesheets/bootstrap/_variables.scss +548 -437
  58. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  59. data/assets/stylesheets/bootstrap/forms/_form-check.scss +142 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-control.scss +116 -0
  61. data/assets/stylesheets/bootstrap/forms/_form-file.scss +91 -0
  62. data/assets/stylesheets/bootstrap/forms/_form-range.scss +136 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-select.scss +82 -0
  64. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  65. data/assets/stylesheets/bootstrap/forms/_input-group.scss +140 -0
  66. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  67. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  68. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  69. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  70. data/assets/stylesheets/bootstrap/helpers/_embed.scss +31 -0
  71. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  72. data/assets/stylesheets/bootstrap/helpers/_screenreaders.scss +8 -0
  73. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  74. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  75. data/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -4
  76. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +1 -1
  77. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -8
  78. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +62 -47
  79. data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
  80. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  81. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  82. data/assets/stylesheets/bootstrap/mixins/_forms.scss +23 -85
  83. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
  84. data/assets/stylesheets/bootstrap/mixins/_grid.scss +86 -34
  85. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  86. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -1
  87. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  88. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  89. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
  90. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +18 -24
  91. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  92. data/assets/stylesheets/bootstrap/mixins/_transition.scss +2 -2
  93. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
  94. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  95. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +214 -130
  96. data/bootstrap.gemspec +1 -1
  97. data/lib/bootstrap/version.rb +2 -2
  98. data/tasks/updater/js.rb +6 -18
  99. data/tasks/updater/network.rb +1 -7
  100. metadata +34 -42
  101. data/assets/javascripts/bootstrap/util.js +0 -189
  102. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  103. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
  104. data/assets/stylesheets/bootstrap/_input-group.scss +0 -211
  105. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  106. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  107. data/assets/stylesheets/bootstrap/_print.scss +0 -132
  108. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  109. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  110. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  111. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  112. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  113. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  114. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  115. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  116. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  117. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  118. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  119. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  120. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  121. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  122. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  123. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  124. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  125. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  126. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  127. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  128. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  129. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  130. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  131. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  132. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  133. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  134. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  135. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 26f3252ccbfe53a40fd0cdf9d0d9f3d717dcf854d19a9535c903cd072796313d
4
- data.tar.gz: bce01fe328a2cd98599d10c0ee56a356754159bc49ecf99593652ae227f29210
3
+ metadata.gz: da3029d47624ce88dca2ddb395d250b689f2bea68844f66718189fd25dff9b24
4
+ data.tar.gz: 99158148a82693decf171b07d999e45eeff3ab6fa157084b5b592ecda230426c
5
5
  SHA512:
6
- metadata.gz: c303b1722240f8db43117ae7b11680738e3f5dc1a0f41d65e3e0ddda579ec10d13f80e210e8e15819e56230844962325fd470b3fc0add59ee44441f0b15f7681
7
- data.tar.gz: 3e74aa08bcbdf56c5ee25eda907c2b4a57a67abc2bef1ce02485e4aab3c3067e7119f847fb3bb6d3c7278680c0ce46b7950d614e899ccbb8e701b9f06fccfafc
6
+ metadata.gz: e1790921eb6fefab26c74b036f316daec352870f6a9b2dfb795f0a51ae0fd65cd3c3b23f082d2de6b17bf59045bcf3db000f9ffc41c0ebfe809cabc370b79600
7
+ data.tar.gz: e2b21f142c4761d751d964b12fe4ed27b045f8df89ce87c6ad09a0d403e9e5d3ea9744f64d13a99bba76ce9058fe1e5f3f892804ff55a388dd630d2a1a60dfa0
data/README.md CHANGED
@@ -17,7 +17,7 @@ Please see the appropriate guide for your environment of choice:
17
17
  Add `bootstrap` to your Gemfile:
18
18
 
19
19
  ```ruby
20
- gem 'bootstrap', '~> 4.6.2'
20
+ gem 'bootstrap', '~> 5.0.0.alpha1'
21
21
  ```
22
22
 
23
23
  Ensure that `sprockets-rails` is at least v2.3.2.
@@ -1,62 +1,132 @@
1
1
  /*!
2
- * Bootstrap alert.js v4.6.2 (https://getbootstrap.com/)
3
- * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap alert.js v5.0.0-alpha1 (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/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.jQuery, global.Util));
10
- })(this, (function ($, Util) { 'use strict';
11
-
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
- var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
16
-
17
- function _defineProperties(target, props) {
18
- for (var i = 0; i < props.length; i++) {
19
- var descriptor = props[i];
20
- descriptor.enumerable = descriptor.enumerable || false;
21
- descriptor.configurable = true;
22
- if ("value" in descriptor) descriptor.writable = true;
23
- Object.defineProperty(target, descriptor.key, descriptor);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js'], factory) :
9
+ (global = global || self, global.Alert = factory(global.Data, global.EventHandler));
10
+ }(this, (function (Data, EventHandler) { 'use strict';
11
+
12
+ Data = Data && Object.prototype.hasOwnProperty.call(Data, 'default') ? Data['default'] : Data;
13
+ EventHandler = EventHandler && Object.prototype.hasOwnProperty.call(EventHandler, 'default') ? EventHandler['default'] : EventHandler;
14
+
15
+ /**
16
+ * --------------------------------------------------------------------------
17
+ * Bootstrap (v5.0.0-alpha1): util/index.js
18
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
19
+ * --------------------------------------------------------------------------
20
+ */
21
+ var MILLISECONDS_MULTIPLIER = 1000;
22
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
23
+
24
+ var getSelector = function getSelector(element) {
25
+ var selector = element.getAttribute('data-target');
26
+
27
+ if (!selector || selector === '#') {
28
+ var hrefAttr = element.getAttribute('href');
29
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
24
30
  }
25
- }
26
31
 
27
- function _createClass(Constructor, protoProps, staticProps) {
28
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
- if (staticProps) _defineProperties(Constructor, staticProps);
30
- Object.defineProperty(Constructor, "prototype", {
31
- writable: false
32
- });
33
- return Constructor;
34
- }
32
+ return selector;
33
+ };
34
+
35
+ var getElementFromSelector = function getElementFromSelector(element) {
36
+ var selector = getSelector(element);
37
+ return selector ? document.querySelector(selector) : null;
38
+ };
39
+
40
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
41
+ if (!element) {
42
+ return 0;
43
+ } // Get transition-duration of the element
44
+
35
45
 
46
+ var _window$getComputedSt = window.getComputedStyle(element),
47
+ transitionDuration = _window$getComputedSt.transitionDuration,
48
+ transitionDelay = _window$getComputedSt.transitionDelay;
49
+
50
+ var floatTransitionDuration = parseFloat(transitionDuration);
51
+ var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
52
+
53
+ if (!floatTransitionDuration && !floatTransitionDelay) {
54
+ return 0;
55
+ } // If multiple durations are defined, take the first
56
+
57
+
58
+ transitionDuration = transitionDuration.split(',')[0];
59
+ transitionDelay = transitionDelay.split(',')[0];
60
+ return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
61
+ };
62
+
63
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
64
+ element.dispatchEvent(new Event(TRANSITION_END));
65
+ };
66
+
67
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
68
+ var called = false;
69
+ var durationPadding = 5;
70
+ var emulatedDuration = duration + durationPadding;
71
+
72
+ function listener() {
73
+ called = true;
74
+ element.removeEventListener(TRANSITION_END, listener);
75
+ }
76
+
77
+ element.addEventListener(TRANSITION_END, listener);
78
+ setTimeout(function () {
79
+ if (!called) {
80
+ triggerTransitionEnd(element);
81
+ }
82
+ }, emulatedDuration);
83
+ };
84
+
85
+ var getjQuery = function getjQuery() {
86
+ var _window = window,
87
+ jQuery = _window.jQuery;
88
+
89
+ if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
90
+ return jQuery;
91
+ }
92
+
93
+ return null;
94
+ };
95
+
96
+ 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); } }
97
+
98
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
36
99
  /**
100
+ * ------------------------------------------------------------------------
37
101
  * Constants
102
+ * ------------------------------------------------------------------------
38
103
  */
39
104
 
40
105
  var NAME = 'alert';
41
- var VERSION = '4.6.2';
106
+ var VERSION = '5.0.0-alpha1';
42
107
  var DATA_KEY = 'bs.alert';
43
108
  var EVENT_KEY = "." + DATA_KEY;
44
109
  var DATA_API_KEY = '.data-api';
45
- var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
46
- var CLASS_NAME_ALERT = 'alert';
47
- var CLASS_NAME_FADE = 'fade';
48
- var CLASS_NAME_SHOW = 'show';
110
+ var SELECTOR_DISMISS = '[data-dismiss="alert"]';
49
111
  var EVENT_CLOSE = "close" + EVENT_KEY;
50
112
  var EVENT_CLOSED = "closed" + EVENT_KEY;
51
113
  var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
52
- var SELECTOR_DISMISS = '[data-dismiss="alert"]';
114
+ var CLASSNAME_ALERT = 'alert';
115
+ var CLASSNAME_FADE = 'fade';
116
+ var CLASSNAME_SHOW = 'show';
53
117
  /**
54
- * Class definition
118
+ * ------------------------------------------------------------------------
119
+ * Class Definition
120
+ * ------------------------------------------------------------------------
55
121
  */
56
122
 
57
123
  var Alert = /*#__PURE__*/function () {
58
124
  function Alert(element) {
59
125
  this._element = element;
126
+
127
+ if (this._element) {
128
+ Data.setData(element, DATA_KEY, this);
129
+ }
60
130
  } // Getters
61
131
 
62
132
 
@@ -72,7 +142,7 @@
72
142
 
73
143
  var customEvent = this._triggerCloseEvent(rootElement);
74
144
 
75
- if (customEvent.isDefaultPrevented()) {
145
+ if (customEvent === null || customEvent.defaultPrevented) {
76
146
  return;
77
147
  }
78
148
 
@@ -80,62 +150,52 @@
80
150
  };
81
151
 
82
152
  _proto.dispose = function dispose() {
83
- $__default["default"].removeData(this._element, DATA_KEY);
153
+ Data.removeData(this._element, DATA_KEY);
84
154
  this._element = null;
85
155
  } // Private
86
156
  ;
87
157
 
88
158
  _proto._getRootElement = function _getRootElement(element) {
89
- var selector = Util__default["default"].getSelectorFromElement(element);
90
- var parent = false;
91
-
92
- if (selector) {
93
- parent = document.querySelector(selector);
94
- }
95
-
96
- if (!parent) {
97
- parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0];
98
- }
99
-
100
- return parent;
159
+ return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT);
101
160
  };
102
161
 
103
162
  _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
104
- var closeEvent = $__default["default"].Event(EVENT_CLOSE);
105
- $__default["default"](element).trigger(closeEvent);
106
- return closeEvent;
163
+ return EventHandler.trigger(element, EVENT_CLOSE);
107
164
  };
108
165
 
109
166
  _proto._removeElement = function _removeElement(element) {
110
167
  var _this = this;
111
168
 
112
- $__default["default"](element).removeClass(CLASS_NAME_SHOW);
169
+ element.classList.remove(CLASSNAME_SHOW);
113
170
 
114
- if (!$__default["default"](element).hasClass(CLASS_NAME_FADE)) {
171
+ if (!element.classList.contains(CLASSNAME_FADE)) {
115
172
  this._destroyElement(element);
116
173
 
117
174
  return;
118
175
  }
119
176
 
120
- var transitionDuration = Util__default["default"].getTransitionDurationFromElement(element);
121
- $__default["default"](element).one(Util__default["default"].TRANSITION_END, function (event) {
122
- return _this._destroyElement(element, event);
123
- }).emulateTransitionEnd(transitionDuration);
177
+ var transitionDuration = getTransitionDurationFromElement(element);
178
+ EventHandler.one(element, TRANSITION_END, function () {
179
+ return _this._destroyElement(element);
180
+ });
181
+ emulateTransitionEnd(element, transitionDuration);
124
182
  };
125
183
 
126
184
  _proto._destroyElement = function _destroyElement(element) {
127
- $__default["default"](element).detach().trigger(EVENT_CLOSED).remove();
185
+ if (element.parentNode) {
186
+ element.parentNode.removeChild(element);
187
+ }
188
+
189
+ EventHandler.trigger(element, EVENT_CLOSED);
128
190
  } // Static
129
191
  ;
130
192
 
131
- Alert._jQueryInterface = function _jQueryInterface(config) {
193
+ Alert.jQueryInterface = function jQueryInterface(config) {
132
194
  return this.each(function () {
133
- var $element = $__default["default"](this);
134
- var data = $element.data(DATA_KEY);
195
+ var data = Data.getData(this, DATA_KEY);
135
196
 
136
197
  if (!data) {
137
198
  data = new Alert(this);
138
- $element.data(DATA_KEY, data);
139
199
  }
140
200
 
141
201
  if (config === 'close') {
@@ -144,7 +204,7 @@
144
204
  });
145
205
  };
146
206
 
147
- Alert._handleDismiss = function _handleDismiss(alertInstance) {
207
+ Alert.handleDismiss = function handleDismiss(alertInstance) {
148
208
  return function (event) {
149
209
  if (event) {
150
210
  event.preventDefault();
@@ -154,6 +214,10 @@
154
214
  };
155
215
  };
156
216
 
217
+ Alert.getInstance = function getInstance(element) {
218
+ return Data.getData(element, DATA_KEY);
219
+ };
220
+
157
221
  _createClass(Alert, null, [{
158
222
  key: "VERSION",
159
223
  get: function get() {
@@ -164,23 +228,34 @@
164
228
  return Alert;
165
229
  }();
166
230
  /**
167
- * Data API implementation
231
+ * ------------------------------------------------------------------------
232
+ * Data Api implementation
233
+ * ------------------------------------------------------------------------
168
234
  */
169
235
 
170
236
 
171
- $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));
237
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));
238
+ var $ = getjQuery();
172
239
  /**
240
+ * ------------------------------------------------------------------------
173
241
  * jQuery
242
+ * ------------------------------------------------------------------------
243
+ * add .alert to jQuery only if jQuery is present
174
244
  */
175
245
 
176
- $__default["default"].fn[NAME] = Alert._jQueryInterface;
177
- $__default["default"].fn[NAME].Constructor = Alert;
246
+ /* istanbul ignore if */
178
247
 
179
- $__default["default"].fn[NAME].noConflict = function () {
180
- $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
181
- return Alert._jQueryInterface;
182
- };
248
+ if ($) {
249
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
250
+ $.fn[NAME] = Alert.jQueryInterface;
251
+ $.fn[NAME].Constructor = Alert;
252
+
253
+ $.fn[NAME].noConflict = function () {
254
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
255
+ return Alert.jQueryInterface;
256
+ };
257
+ }
183
258
 
184
259
  return Alert;
185
260
 
186
- }));
261
+ })));
@@ -1,68 +1,62 @@
1
1
  /*!
2
- * Bootstrap button.js v4.6.2 (https://getbootstrap.com/)
3
- * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap button.js v5.0.0-alpha1 (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/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
8
- typeof define === 'function' && define.amd ? define(['jquery'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.jQuery));
10
- })(this, (function ($) { 'use strict';
11
-
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
-
16
- function _defineProperties(target, props) {
17
- for (var i = 0; i < props.length; i++) {
18
- var descriptor = props[i];
19
- descriptor.enumerable = descriptor.enumerable || false;
20
- descriptor.configurable = true;
21
- if ("value" in descriptor) descriptor.writable = true;
22
- Object.defineProperty(target, descriptor.key, descriptor);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js'], factory) :
9
+ (global = global || self, global.Button = factory(global.Data, global.EventHandler));
10
+ }(this, (function (Data, EventHandler) { 'use strict';
11
+
12
+ Data = Data && Object.prototype.hasOwnProperty.call(Data, 'default') ? Data['default'] : Data;
13
+ EventHandler = EventHandler && Object.prototype.hasOwnProperty.call(EventHandler, 'default') ? EventHandler['default'] : EventHandler;
14
+
15
+ /**
16
+ * --------------------------------------------------------------------------
17
+ * Bootstrap (v5.0.0-alpha1): util/index.js
18
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
19
+ * --------------------------------------------------------------------------
20
+ */
21
+
22
+ var getjQuery = function getjQuery() {
23
+ var _window = window,
24
+ jQuery = _window.jQuery;
25
+
26
+ if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
27
+ return jQuery;
23
28
  }
24
- }
25
29
 
26
- function _createClass(Constructor, protoProps, staticProps) {
27
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
28
- if (staticProps) _defineProperties(Constructor, staticProps);
29
- Object.defineProperty(Constructor, "prototype", {
30
- writable: false
31
- });
32
- return Constructor;
33
- }
30
+ return null;
31
+ };
32
+
33
+ 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); } }
34
34
 
35
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
35
36
  /**
37
+ * ------------------------------------------------------------------------
36
38
  * Constants
39
+ * ------------------------------------------------------------------------
37
40
  */
38
41
 
39
42
  var NAME = 'button';
40
- var VERSION = '4.6.2';
43
+ var VERSION = '5.0.0-alpha1';
41
44
  var DATA_KEY = 'bs.button';
42
45
  var EVENT_KEY = "." + DATA_KEY;
43
46
  var DATA_API_KEY = '.data-api';
44
- var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
45
47
  var CLASS_NAME_ACTIVE = 'active';
46
- var CLASS_NAME_BUTTON = 'btn';
47
- var CLASS_NAME_FOCUS = 'focus';
48
- var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
49
- var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY);
50
- var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
51
- var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
52
- var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';
53
48
  var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
54
- var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';
55
- var SELECTOR_INPUT = 'input:not([type="hidden"])';
56
- var SELECTOR_ACTIVE = '.active';
57
- var SELECTOR_BUTTON = '.btn';
49
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
58
50
  /**
59
- * Class definition
51
+ * ------------------------------------------------------------------------
52
+ * Class Definition
53
+ * ------------------------------------------------------------------------
60
54
  */
61
55
 
62
56
  var Button = /*#__PURE__*/function () {
63
57
  function Button(element) {
64
58
  this._element = element;
65
- this.shouldAvoidTriggerChange = false;
59
+ Data.setData(element, DATA_KEY, this);
66
60
  } // Getters
67
61
 
68
62
 
@@ -70,77 +64,34 @@
70
64
 
71
65
  // Public
72
66
  _proto.toggle = function toggle() {
73
- var triggerChangeEvent = true;
74
- var addAriaPressed = true;
75
- var rootElement = $__default["default"](this._element).closest(SELECTOR_DATA_TOGGLES)[0];
76
-
77
- if (rootElement) {
78
- var input = this._element.querySelector(SELECTOR_INPUT);
79
-
80
- if (input) {
81
- if (input.type === 'radio') {
82
- if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
83
- triggerChangeEvent = false;
84
- } else {
85
- var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);
86
-
87
- if (activeElement) {
88
- $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE);
89
- }
90
- }
91
- }
92
-
93
- if (triggerChangeEvent) {
94
- // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input
95
- if (input.type === 'checkbox' || input.type === 'radio') {
96
- input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);
97
- }
98
-
99
- if (!this.shouldAvoidTriggerChange) {
100
- $__default["default"](input).trigger('change');
101
- }
102
- }
103
-
104
- input.focus();
105
- addAriaPressed = false;
106
- }
107
- }
108
-
109
- if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {
110
- if (addAriaPressed) {
111
- this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));
112
- }
113
-
114
- if (triggerChangeEvent) {
115
- $__default["default"](this._element).toggleClass(CLASS_NAME_ACTIVE);
116
- }
117
- }
67
+ // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
68
+ this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
118
69
  };
119
70
 
120
71
  _proto.dispose = function dispose() {
121
- $__default["default"].removeData(this._element, DATA_KEY);
72
+ Data.removeData(this._element, DATA_KEY);
122
73
  this._element = null;
123
74
  } // Static
124
75
  ;
125
76
 
126
- Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {
77
+ Button.jQueryInterface = function jQueryInterface(config) {
127
78
  return this.each(function () {
128
- var $element = $__default["default"](this);
129
- var data = $element.data(DATA_KEY);
79
+ var data = Data.getData(this, DATA_KEY);
130
80
 
131
81
  if (!data) {
132
82
  data = new Button(this);
133
- $element.data(DATA_KEY, data);
134
83
  }
135
84
 
136
- data.shouldAvoidTriggerChange = avoidTriggerChange;
137
-
138
85
  if (config === 'toggle') {
139
86
  data[config]();
140
87
  }
141
88
  });
142
89
  };
143
90
 
91
+ Button.getInstance = function getInstance(element) {
92
+ return Data.getData(element, DATA_KEY);
93
+ };
94
+
144
95
  _createClass(Button, null, [{
145
96
  key: "VERSION",
146
97
  get: function get() {
@@ -151,78 +102,44 @@
151
102
  return Button;
152
103
  }();
153
104
  /**
154
- * Data API implementation
105
+ * ------------------------------------------------------------------------
106
+ * Data Api implementation
107
+ * ------------------------------------------------------------------------
155
108
  */
156
109
 
157
110
 
158
- $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
159
- var button = event.target;
160
- var initialButton = button;
161
-
162
- if (!$__default["default"](button).hasClass(CLASS_NAME_BUTTON)) {
163
- button = $__default["default"](button).closest(SELECTOR_BUTTON)[0];
164
- }
165
-
166
- if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {
167
- event.preventDefault(); // work around Firefox bug #1540995
168
- } else {
169
- var inputBtn = button.querySelector(SELECTOR_INPUT);
170
-
171
- if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {
172
- event.preventDefault(); // work around Firefox bug #1540995
173
-
174
- return;
175
- }
111
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
112
+ event.preventDefault();
113
+ var button = event.target.closest(SELECTOR_DATA_TOGGLE);
114
+ var data = Data.getData(button, DATA_KEY);
176
115
 
177
- if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {
178
- Button._jQueryInterface.call($__default["default"](button), 'toggle', initialButton.tagName === 'INPUT');
179
- }
116
+ if (!data) {
117
+ data = new Button(button);
180
118
  }
181
- }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
182
- var button = $__default["default"](event.target).closest(SELECTOR_BUTTON)[0];
183
- $__default["default"](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));
184
- });
185
- $__default["default"](window).on(EVENT_LOAD_DATA_API, function () {
186
- // ensure correct active class is set to match the controls' actual values/states
187
- // find all checkboxes/readio buttons inside data-toggle groups
188
- var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));
189
-
190
- for (var i = 0, len = buttons.length; i < len; i++) {
191
- var button = buttons[i];
192
- var input = button.querySelector(SELECTOR_INPUT);
193
-
194
- if (input.checked || input.hasAttribute('checked')) {
195
- button.classList.add(CLASS_NAME_ACTIVE);
196
- } else {
197
- button.classList.remove(CLASS_NAME_ACTIVE);
198
- }
199
- } // find all button toggles
200
-
201
-
202
- buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
203
119
 
204
- for (var _i = 0, _len = buttons.length; _i < _len; _i++) {
205
- var _button = buttons[_i];
206
-
207
- if (_button.getAttribute('aria-pressed') === 'true') {
208
- _button.classList.add(CLASS_NAME_ACTIVE);
209
- } else {
210
- _button.classList.remove(CLASS_NAME_ACTIVE);
211
- }
212
- }
120
+ data.toggle();
213
121
  });
122
+ var $ = getjQuery();
214
123
  /**
124
+ * ------------------------------------------------------------------------
215
125
  * jQuery
126
+ * ------------------------------------------------------------------------
127
+ * add .button to jQuery only if jQuery is present
216
128
  */
217
129
 
218
- $__default["default"].fn[NAME] = Button._jQueryInterface;
219
- $__default["default"].fn[NAME].Constructor = Button;
130
+ /* istanbul ignore if */
220
131
 
221
- $__default["default"].fn[NAME].noConflict = function () {
222
- $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
223
- return Button._jQueryInterface;
224
- };
132
+ if ($) {
133
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
134
+ $.fn[NAME] = Button.jQueryInterface;
135
+ $.fn[NAME].Constructor = Button;
136
+
137
+ $.fn[NAME].noConflict = function () {
138
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
139
+ return Button.jQueryInterface;
140
+ };
141
+ }
225
142
 
226
143
  return Button;
227
144
 
228
- }));
145
+ })));