bootstrap 4.5.0 → 5.0.0.alpha3

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/.travis.yml +1 -1
  3. data/README.md +5 -2
  4. data/assets/javascripts/bootstrap-sprockets.js +12 -9
  5. data/assets/javascripts/bootstrap.js +1852 -1266
  6. data/assets/javascripts/bootstrap.min.js +3 -3
  7. data/assets/javascripts/bootstrap/alert.js +149 -69
  8. data/assets/javascripts/bootstrap/button.js +71 -141
  9. data/assets/javascripts/bootstrap/carousel.js +291 -192
  10. data/assets/javascripts/bootstrap/collapse.js +285 -161
  11. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +307 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +85 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +240 -218
  16. data/assets/javascripts/bootstrap/modal.js +342 -234
  17. data/assets/javascripts/bootstrap/popover.js +82 -106
  18. data/assets/javascripts/bootstrap/scrollspy.js +154 -114
  19. data/assets/javascripts/bootstrap/tab.js +166 -80
  20. data/assets/javascripts/bootstrap/toast.js +171 -113
  21. data/assets/javascripts/bootstrap/tooltip.js +351 -219
  22. data/assets/stylesheets/_bootstrap-grid.scss +52 -16
  23. data/assets/stylesheets/_bootstrap-reboot.scss +5 -2
  24. data/assets/stylesheets/_bootstrap.scss +16 -9
  25. data/assets/stylesheets/bootstrap/_accordion.scss +125 -0
  26. data/assets/stylesheets/bootstrap/_alert.scss +15 -9
  27. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  28. data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -19
  29. data/assets/stylesheets/bootstrap/_button-group.scss +16 -40
  30. data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
  31. data/assets/stylesheets/bootstrap/_card.scss +30 -97
  32. data/assets/stylesheets/bootstrap/_carousel.scss +30 -15
  33. data/assets/stylesheets/bootstrap/_close.scss +30 -30
  34. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  35. data/assets/stylesheets/bootstrap/_dropdown.scss +52 -8
  36. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  37. data/assets/stylesheets/bootstrap/_functions.scss +88 -23
  38. data/assets/stylesheets/bootstrap/_grid.scss +3 -58
  39. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  40. data/assets/stylesheets/bootstrap/_list-group.scss +14 -5
  41. data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
  42. data/assets/stylesheets/bootstrap/_modal.scss +41 -47
  43. data/assets/stylesheets/bootstrap/_nav.scss +14 -8
  44. data/assets/stylesheets/bootstrap/_navbar.scss +43 -74
  45. data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
  46. data/assets/stylesheets/bootstrap/_popover.scss +6 -6
  47. data/assets/stylesheets/bootstrap/_progress.scss +3 -5
  48. data/assets/stylesheets/bootstrap/_reboot.scss +310 -171
  49. data/assets/stylesheets/bootstrap/_root.scss +5 -9
  50. data/assets/stylesheets/bootstrap/_spinners.scss +13 -4
  51. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  52. data/assets/stylesheets/bootstrap/_toasts.scss +6 -2
  53. data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
  54. data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
  55. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  56. data/assets/stylesheets/bootstrap/_utilities.scss +545 -18
  57. data/assets/stylesheets/bootstrap/_variables.scss +653 -469
  58. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  59. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-check.scss +151 -0
  61. data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
  62. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-select.scss +68 -0
  64. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  65. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -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/_position.scss +30 -0
  71. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  72. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  73. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  74. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  75. data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -5
  76. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +9 -9
  77. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  78. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
  79. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -47
  80. data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
  81. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  82. data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
  83. data/assets/stylesheets/bootstrap/mixins/_forms.scss +17 -77
  84. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
  85. data/assets/stylesheets/bootstrap/mixins/_grid.scss +84 -33
  86. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  87. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
  88. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  89. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  90. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  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/mixins/_visually-hidden.scss +28 -0
  95. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  96. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
  97. data/lib/bootstrap/version.rb +2 -2
  98. data/tasks/updater/js.rb +3 -3
  99. metadata +33 -41
  100. data/assets/javascripts/bootstrap/util.js +0 -192
  101. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  102. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -522
  103. data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
  104. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  105. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  106. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  107. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  108. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  109. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  110. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -81
  111. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  112. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  113. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  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 -71
  135. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,33 +1,116 @@
1
1
  /*!
2
- * Bootstrap tab.js v4.5.0 (https://getbootstrap.com/)
2
+ * Bootstrap tab.js v5.0.0-alpha3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
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.js'], factory) :
9
- (global = global || self, global.Tab = factory(global.jQuery, global.Util));
10
- }(this, (function ($, Util) { 'use strict';
11
-
12
- $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
- Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
14
-
15
- function _defineProperties(target, props) {
16
- for (var i = 0; i < props.length; i++) {
17
- var descriptor = props[i];
18
- descriptor.enumerable = descriptor.enumerable || false;
19
- descriptor.configurable = true;
20
- if ("value" in descriptor) descriptor.writable = true;
21
- 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'), require('./dom/selector-engine.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/selector-engine.js'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Data, global.EventHandler, global.SelectorEngine));
10
+ }(this, (function (Data, EventHandler, SelectorEngine) { 'use strict';
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
17
+
18
+ /**
19
+ * --------------------------------------------------------------------------
20
+ * Bootstrap (v5.0.0-alpha3): util/index.js
21
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
22
+ * --------------------------------------------------------------------------
23
+ */
24
+ var MILLISECONDS_MULTIPLIER = 1000;
25
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
26
+
27
+ var getSelector = function getSelector(element) {
28
+ var selector = element.getAttribute('data-target');
29
+
30
+ if (!selector || selector === '#') {
31
+ var hrefAttr = element.getAttribute('href');
32
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
33
+ }
34
+
35
+ return selector;
36
+ };
37
+
38
+ var getElementFromSelector = function getElementFromSelector(element) {
39
+ var selector = getSelector(element);
40
+ return selector ? document.querySelector(selector) : null;
41
+ };
42
+
43
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
44
+ if (!element) {
45
+ return 0;
46
+ } // Get transition-duration of the element
47
+
48
+
49
+ var _window$getComputedSt = window.getComputedStyle(element),
50
+ transitionDuration = _window$getComputedSt.transitionDuration,
51
+ transitionDelay = _window$getComputedSt.transitionDelay;
52
+
53
+ var floatTransitionDuration = parseFloat(transitionDuration);
54
+ var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
55
+
56
+ if (!floatTransitionDuration && !floatTransitionDelay) {
57
+ return 0;
58
+ } // If multiple durations are defined, take the first
59
+
60
+
61
+ transitionDuration = transitionDuration.split(',')[0];
62
+ transitionDelay = transitionDelay.split(',')[0];
63
+ return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
64
+ };
65
+
66
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
67
+ element.dispatchEvent(new Event(TRANSITION_END));
68
+ };
69
+
70
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
71
+ var called = false;
72
+ var durationPadding = 5;
73
+ var emulatedDuration = duration + durationPadding;
74
+
75
+ function listener() {
76
+ called = true;
77
+ element.removeEventListener(TRANSITION_END, listener);
78
+ }
79
+
80
+ element.addEventListener(TRANSITION_END, listener);
81
+ setTimeout(function () {
82
+ if (!called) {
83
+ triggerTransitionEnd(element);
84
+ }
85
+ }, emulatedDuration);
86
+ };
87
+
88
+ var reflow = function reflow(element) {
89
+ return element.offsetHeight;
90
+ };
91
+
92
+ var getjQuery = function getjQuery() {
93
+ var _window = window,
94
+ jQuery = _window.jQuery;
95
+
96
+ if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
97
+ return jQuery;
98
+ }
99
+
100
+ return null;
101
+ };
102
+
103
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
104
+ if (document.readyState === 'loading') {
105
+ document.addEventListener('DOMContentLoaded', callback);
106
+ } else {
107
+ callback();
22
108
  }
23
- }
109
+ };
24
110
 
25
- function _createClass(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
111
+ 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); } }
30
112
 
113
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31
114
  /**
32
115
  * ------------------------------------------------------------------------
33
116
  * Constants
@@ -35,11 +118,10 @@
35
118
  */
36
119
 
37
120
  var NAME = 'tab';
38
- var VERSION = '4.5.0';
121
+ var VERSION = '5.0.0-alpha3';
39
122
  var DATA_KEY = 'bs.tab';
40
123
  var EVENT_KEY = "." + DATA_KEY;
41
124
  var DATA_API_KEY = '.data-api';
42
- var JQUERY_NO_CONFLICT = $.fn[NAME];
43
125
  var EVENT_HIDE = "hide" + EVENT_KEY;
44
126
  var EVENT_HIDDEN = "hidden" + EVENT_KEY;
45
127
  var EVENT_SHOW = "show" + EVENT_KEY;
@@ -53,10 +135,10 @@
53
135
  var SELECTOR_DROPDOWN = '.dropdown';
54
136
  var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
55
137
  var SELECTOR_ACTIVE = '.active';
56
- var SELECTOR_ACTIVE_UL = '> li > .active';
138
+ var SELECTOR_ACTIVE_UL = ':scope > li > .active';
57
139
  var SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
58
140
  var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
59
- var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';
141
+ var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
60
142
  /**
61
143
  * ------------------------------------------------------------------------
62
144
  * Class Definition
@@ -66,6 +148,7 @@
66
148
  var Tab = /*#__PURE__*/function () {
67
149
  function Tab(element) {
68
150
  this._element = element;
151
+ Data__default['default'].setData(this._element, DATA_KEY, this);
69
152
  } // Getters
70
153
 
71
154
 
@@ -75,53 +158,46 @@
75
158
  _proto.show = function show() {
76
159
  var _this = this;
77
160
 
78
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(CLASS_NAME_ACTIVE) || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
161
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || this._element.classList.contains(CLASS_NAME_DISABLED)) {
79
162
  return;
80
163
  }
81
164
 
82
- var target;
83
165
  var previous;
84
- var listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0];
85
- var selector = Util.getSelectorFromElement(this._element);
166
+ var target = getElementFromSelector(this._element);
167
+
168
+ var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);
86
169
 
87
170
  if (listElement) {
88
171
  var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
89
- previous = $.makeArray($(listElement).find(itemSelector));
172
+ previous = SelectorEngine__default['default'].find(itemSelector, listElement);
90
173
  previous = previous[previous.length - 1];
91
174
  }
92
175
 
93
- var hideEvent = $.Event(EVENT_HIDE, {
94
- relatedTarget: this._element
95
- });
96
- var showEvent = $.Event(EVENT_SHOW, {
97
- relatedTarget: previous
98
- });
176
+ var hideEvent = null;
99
177
 
100
178
  if (previous) {
101
- $(previous).trigger(hideEvent);
179
+ hideEvent = EventHandler__default['default'].trigger(previous, EVENT_HIDE, {
180
+ relatedTarget: this._element
181
+ });
102
182
  }
103
183
 
104
- $(this._element).trigger(showEvent);
184
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
185
+ relatedTarget: previous
186
+ });
105
187
 
106
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
188
+ if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {
107
189
  return;
108
190
  }
109
191
 
110
- if (selector) {
111
- target = document.querySelector(selector);
112
- }
113
-
114
192
  this._activate(this._element, listElement);
115
193
 
116
194
  var complete = function complete() {
117
- var hiddenEvent = $.Event(EVENT_HIDDEN, {
195
+ EventHandler__default['default'].trigger(previous, EVENT_HIDDEN, {
118
196
  relatedTarget: _this._element
119
197
  });
120
- var shownEvent = $.Event(EVENT_SHOWN, {
198
+ EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN, {
121
199
  relatedTarget: previous
122
200
  });
123
- $(previous).trigger(hiddenEvent);
124
- $(_this._element).trigger(shownEvent);
125
201
  };
126
202
 
127
203
  if (target) {
@@ -132,7 +208,7 @@
132
208
  };
133
209
 
134
210
  _proto.dispose = function dispose() {
135
- $.removeData(this._element, DATA_KEY);
211
+ Data__default['default'].removeData(this._element, DATA_KEY);
136
212
  this._element = null;
137
213
  } // Private
138
214
  ;
@@ -140,17 +216,19 @@
140
216
  _proto._activate = function _activate(element, container, callback) {
141
217
  var _this2 = this;
142
218
 
143
- var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(SELECTOR_ACTIVE_UL) : $(container).children(SELECTOR_ACTIVE);
219
+ var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine__default['default'].find(SELECTOR_ACTIVE_UL, container) : SelectorEngine__default['default'].children(container, SELECTOR_ACTIVE);
144
220
  var active = activeElements[0];
145
- var isTransitioning = callback && active && $(active).hasClass(CLASS_NAME_FADE);
221
+ var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE);
146
222
 
147
223
  var complete = function complete() {
148
224
  return _this2._transitionComplete(element, active, callback);
149
225
  };
150
226
 
151
227
  if (active && isTransitioning) {
152
- var transitionDuration = Util.getTransitionDurationFromElement(active);
153
- $(active).removeClass(CLASS_NAME_SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
228
+ var transitionDuration = getTransitionDurationFromElement(active);
229
+ active.classList.remove(CLASS_NAME_SHOW);
230
+ EventHandler__default['default'].one(active, TRANSITION_END, complete);
231
+ emulateTransitionEnd(active, transitionDuration);
154
232
  } else {
155
233
  complete();
156
234
  }
@@ -158,11 +236,11 @@
158
236
 
159
237
  _proto._transitionComplete = function _transitionComplete(element, active, callback) {
160
238
  if (active) {
161
- $(active).removeClass(CLASS_NAME_ACTIVE);
162
- var dropdownChild = $(active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];
239
+ active.classList.remove(CLASS_NAME_ACTIVE);
240
+ var dropdownChild = SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);
163
241
 
164
242
  if (dropdownChild) {
165
- $(dropdownChild).removeClass(CLASS_NAME_ACTIVE);
243
+ dropdownChild.classList.remove(CLASS_NAME_ACTIVE);
166
244
  }
167
245
 
168
246
  if (active.getAttribute('role') === 'tab') {
@@ -170,24 +248,25 @@
170
248
  }
171
249
  }
172
250
 
173
- $(element).addClass(CLASS_NAME_ACTIVE);
251
+ element.classList.add(CLASS_NAME_ACTIVE);
174
252
 
175
253
  if (element.getAttribute('role') === 'tab') {
176
254
  element.setAttribute('aria-selected', true);
177
255
  }
178
256
 
179
- Util.reflow(element);
257
+ reflow(element);
180
258
 
181
259
  if (element.classList.contains(CLASS_NAME_FADE)) {
182
260
  element.classList.add(CLASS_NAME_SHOW);
183
261
  }
184
262
 
185
- if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {
186
- var dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0];
263
+ if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
264
+ var dropdownElement = element.closest(SELECTOR_DROPDOWN);
187
265
 
188
266
  if (dropdownElement) {
189
- var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE));
190
- $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE);
267
+ SelectorEngine__default['default'].find(SELECTOR_DROPDOWN_TOGGLE).forEach(function (dropdown) {
268
+ return dropdown.classList.add(CLASS_NAME_ACTIVE);
269
+ });
191
270
  }
192
271
 
193
272
  element.setAttribute('aria-expanded', true);
@@ -199,15 +278,9 @@
199
278
  } // Static
200
279
  ;
201
280
 
202
- Tab._jQueryInterface = function _jQueryInterface(config) {
281
+ Tab.jQueryInterface = function jQueryInterface(config) {
203
282
  return this.each(function () {
204
- var $this = $(this);
205
- var data = $this.data(DATA_KEY);
206
-
207
- if (!data) {
208
- data = new Tab(this);
209
- $this.data(DATA_KEY, data);
210
- }
283
+ var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);
211
284
 
212
285
  if (typeof config === 'string') {
213
286
  if (typeof data[config] === 'undefined') {
@@ -219,6 +292,10 @@
219
292
  });
220
293
  };
221
294
 
295
+ Tab.getInstance = function getInstance(element) {
296
+ return Data__default['default'].getData(element, DATA_KEY);
297
+ };
298
+
222
299
  _createClass(Tab, null, [{
223
300
  key: "VERSION",
224
301
  get: function get() {
@@ -235,24 +312,33 @@
235
312
  */
236
313
 
237
314
 
238
- $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
315
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
239
316
  event.preventDefault();
240
-
241
- Tab._jQueryInterface.call($(this), 'show');
317
+ var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);
318
+ data.show();
242
319
  });
243
320
  /**
244
321
  * ------------------------------------------------------------------------
245
322
  * jQuery
246
323
  * ------------------------------------------------------------------------
324
+ * add .Tab to jQuery only if jQuery is present
247
325
  */
248
326
 
249
- $.fn[NAME] = Tab._jQueryInterface;
250
- $.fn[NAME].Constructor = Tab;
327
+ onDOMContentLoaded(function () {
328
+ var $ = getjQuery();
329
+ /* istanbul ignore if */
251
330
 
252
- $.fn[NAME].noConflict = function () {
253
- $.fn[NAME] = JQUERY_NO_CONFLICT;
254
- return Tab._jQueryInterface;
255
- };
331
+ if ($) {
332
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
333
+ $.fn[NAME] = Tab.jQueryInterface;
334
+ $.fn[NAME].Constructor = Tab;
335
+
336
+ $.fn[NAME].noConflict = function () {
337
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
338
+ return Tab.jQueryInterface;
339
+ };
340
+ }
341
+ });
256
342
 
257
343
  return Tab;
258
344
 
@@ -1,82 +1,126 @@
1
1
  /*!
2
- * Bootstrap toast.js v4.5.0 (https://getbootstrap.com/)
2
+ * Bootstrap toast.js v5.0.0-alpha3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
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.js'], factory) :
9
- (global = global || self, global.Toast = factory(global.jQuery, global.Util));
10
- }(this, (function ($, Util) { 'use strict';
11
-
12
- $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
- Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
14
-
15
- function _defineProperties(target, props) {
16
- for (var i = 0; i < props.length; i++) {
17
- var descriptor = props[i];
18
- descriptor.enumerable = descriptor.enumerable || false;
19
- descriptor.configurable = true;
20
- if ("value" in descriptor) descriptor.writable = true;
21
- Object.defineProperty(target, descriptor.key, descriptor);
22
- }
23
- }
24
-
25
- function _createClass(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
30
-
31
- function _defineProperty(obj, key, value) {
32
- if (key in obj) {
33
- Object.defineProperty(obj, key, {
34
- value: value,
35
- enumerable: true,
36
- configurable: true,
37
- writable: true
38
- });
39
- } else {
40
- obj[key] = value;
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.Data, global.EventHandler, global.Manipulator));
10
+ }(this, (function (Data, EventHandler, Manipulator) { 'use strict';
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
+
18
+ /**
19
+ * --------------------------------------------------------------------------
20
+ * Bootstrap (v5.0.0-alpha3): util/index.js
21
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
22
+ * --------------------------------------------------------------------------
23
+ */
24
+ var MILLISECONDS_MULTIPLIER = 1000;
25
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
26
+
27
+ var toType = function toType(obj) {
28
+ if (obj === null || obj === undefined) {
29
+ return "" + obj;
41
30
  }
42
31
 
43
- return obj;
44
- }
32
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
33
+ };
45
34
 
46
- function ownKeys(object, enumerableOnly) {
47
- var keys = Object.keys(object);
35
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
36
+ if (!element) {
37
+ return 0;
38
+ } // Get transition-duration of the element
48
39
 
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);
40
+
41
+ var _window$getComputedSt = window.getComputedStyle(element),
42
+ transitionDuration = _window$getComputedSt.transitionDuration,
43
+ transitionDelay = _window$getComputedSt.transitionDelay;
44
+
45
+ var floatTransitionDuration = parseFloat(transitionDuration);
46
+ var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
47
+
48
+ if (!floatTransitionDuration && !floatTransitionDelay) {
49
+ return 0;
50
+ } // If multiple durations are defined, take the first
51
+
52
+
53
+ transitionDuration = transitionDuration.split(',')[0];
54
+ transitionDelay = transitionDelay.split(',')[0];
55
+ return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
56
+ };
57
+
58
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
59
+ element.dispatchEvent(new Event(TRANSITION_END));
60
+ };
61
+
62
+ var isElement = function isElement(obj) {
63
+ return (obj[0] || obj).nodeType;
64
+ };
65
+
66
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
67
+ var called = false;
68
+ var durationPadding = 5;
69
+ var emulatedDuration = duration + durationPadding;
70
+
71
+ function listener() {
72
+ called = true;
73
+ element.removeEventListener(TRANSITION_END, listener);
55
74
  }
56
75
 
57
- return keys;
58
- }
76
+ element.addEventListener(TRANSITION_END, listener);
77
+ setTimeout(function () {
78
+ if (!called) {
79
+ triggerTransitionEnd(element);
80
+ }
81
+ }, emulatedDuration);
82
+ };
59
83
 
60
- function _objectSpread2(target) {
61
- for (var i = 1; i < arguments.length; i++) {
62
- var source = arguments[i] != null ? arguments[i] : {};
84
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
85
+ Object.keys(configTypes).forEach(function (property) {
86
+ var expectedTypes = configTypes[property];
87
+ var value = config[property];
88
+ var valueType = value && isElement(value) ? 'element' : toType(value);
63
89
 
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
- });
90
+ if (!new RegExp(expectedTypes).test(valueType)) {
91
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
74
92
  }
93
+ });
94
+ };
95
+
96
+ var reflow = function reflow(element) {
97
+ return element.offsetHeight;
98
+ };
99
+
100
+ var getjQuery = function getjQuery() {
101
+ var _window = window,
102
+ jQuery = _window.jQuery;
103
+
104
+ if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
105
+ return jQuery;
75
106
  }
76
107
 
77
- return target;
78
- }
108
+ return null;
109
+ };
110
+
111
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
112
+ if (document.readyState === 'loading') {
113
+ document.addEventListener('DOMContentLoaded', callback);
114
+ } else {
115
+ callback();
116
+ }
117
+ };
118
+
119
+ 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); }
120
+
121
+ 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); } }
79
122
 
123
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
80
124
  /**
81
125
  * ------------------------------------------------------------------------
82
126
  * Constants
@@ -84,10 +128,9 @@
84
128
  */
85
129
 
86
130
  var NAME = 'toast';
87
- var VERSION = '4.5.0';
131
+ var VERSION = '5.0.0-alpha3';
88
132
  var DATA_KEY = 'bs.toast';
89
133
  var EVENT_KEY = "." + DATA_KEY;
90
- var JQUERY_NO_CONFLICT = $.fn[NAME];
91
134
  var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
92
135
  var EVENT_HIDE = "hide" + EVENT_KEY;
93
136
  var EVENT_HIDDEN = "hidden" + EVENT_KEY;
@@ -105,7 +148,7 @@
105
148
  var Default = {
106
149
  animation: true,
107
150
  autohide: true,
108
- delay: 500
151
+ delay: 5000
109
152
  };
110
153
  var SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]';
111
154
  /**
@@ -121,6 +164,8 @@
121
164
  this._timeout = null;
122
165
 
123
166
  this._setListeners();
167
+
168
+ Data__default['default'].setData(element, DATA_KEY, this);
124
169
  } // Getters
125
170
 
126
171
 
@@ -130,13 +175,14 @@
130
175
  _proto.show = function show() {
131
176
  var _this = this;
132
177
 
133
- var showEvent = $.Event(EVENT_SHOW);
134
- $(this._element).trigger(showEvent);
178
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
135
179
 
136
- if (showEvent.isDefaultPrevented()) {
180
+ if (showEvent.defaultPrevented) {
137
181
  return;
138
182
  }
139
183
 
184
+ this._clearTimeout();
185
+
140
186
  if (this._config.animation) {
141
187
  this._element.classList.add(CLASS_NAME_FADE);
142
188
  }
@@ -146,7 +192,7 @@
146
192
 
147
193
  _this._element.classList.add(CLASS_NAME_SHOW);
148
194
 
149
- $(_this._element).trigger(EVENT_SHOWN);
195
+ EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN);
150
196
 
151
197
  if (_this._config.autohide) {
152
198
  _this._timeout = setTimeout(function () {
@@ -157,92 +203,91 @@
157
203
 
158
204
  this._element.classList.remove(CLASS_NAME_HIDE);
159
205
 
160
- Util.reflow(this._element);
206
+ reflow(this._element);
161
207
 
162
208
  this._element.classList.add(CLASS_NAME_SHOWING);
163
209
 
164
210
  if (this._config.animation) {
165
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
166
- $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
211
+ var transitionDuration = getTransitionDurationFromElement(this._element);
212
+ EventHandler__default['default'].one(this._element, TRANSITION_END, complete);
213
+ emulateTransitionEnd(this._element, transitionDuration);
167
214
  } else {
168
215
  complete();
169
216
  }
170
217
  };
171
218
 
172
219
  _proto.hide = function hide() {
220
+ var _this2 = this;
221
+
173
222
  if (!this._element.classList.contains(CLASS_NAME_SHOW)) {
174
223
  return;
175
224
  }
176
225
 
177
- var hideEvent = $.Event(EVENT_HIDE);
178
- $(this._element).trigger(hideEvent);
226
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
179
227
 
180
- if (hideEvent.isDefaultPrevented()) {
228
+ if (hideEvent.defaultPrevented) {
181
229
  return;
182
230
  }
183
231
 
184
- this._close();
232
+ var complete = function complete() {
233
+ _this2._element.classList.add(CLASS_NAME_HIDE);
234
+
235
+ EventHandler__default['default'].trigger(_this2._element, EVENT_HIDDEN);
236
+ };
237
+
238
+ this._element.classList.remove(CLASS_NAME_SHOW);
239
+
240
+ if (this._config.animation) {
241
+ var transitionDuration = getTransitionDurationFromElement(this._element);
242
+ EventHandler__default['default'].one(this._element, TRANSITION_END, complete);
243
+ emulateTransitionEnd(this._element, transitionDuration);
244
+ } else {
245
+ complete();
246
+ }
185
247
  };
186
248
 
187
249
  _proto.dispose = function dispose() {
188
- clearTimeout(this._timeout);
189
- this._timeout = null;
250
+ this._clearTimeout();
190
251
 
191
252
  if (this._element.classList.contains(CLASS_NAME_SHOW)) {
192
253
  this._element.classList.remove(CLASS_NAME_SHOW);
193
254
  }
194
255
 
195
- $(this._element).off(EVENT_CLICK_DISMISS);
196
- $.removeData(this._element, DATA_KEY);
256
+ EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
257
+ Data__default['default'].removeData(this._element, DATA_KEY);
197
258
  this._element = null;
198
259
  this._config = null;
199
260
  } // Private
200
261
  ;
201
262
 
202
263
  _proto._getConfig = function _getConfig(config) {
203
- config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default), $(this._element).data()), typeof config === 'object' && config ? config : {});
204
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
264
+ config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this._element), typeof config === 'object' && config ? config : {});
265
+ typeCheckConfig(NAME, config, this.constructor.DefaultType);
205
266
  return config;
206
267
  };
207
268
 
208
269
  _proto._setListeners = function _setListeners() {
209
- var _this2 = this;
270
+ var _this3 = this;
210
271
 
211
- $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {
212
- return _this2.hide();
272
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {
273
+ return _this3.hide();
213
274
  });
214
275
  };
215
276
 
216
- _proto._close = function _close() {
217
- var _this3 = this;
218
-
219
- var complete = function complete() {
220
- _this3._element.classList.add(CLASS_NAME_HIDE);
221
-
222
- $(_this3._element).trigger(EVENT_HIDDEN);
223
- };
224
-
225
- this._element.classList.remove(CLASS_NAME_SHOW);
226
-
227
- if (this._config.animation) {
228
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
229
- $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
230
- } else {
231
- complete();
232
- }
277
+ _proto._clearTimeout = function _clearTimeout() {
278
+ clearTimeout(this._timeout);
279
+ this._timeout = null;
233
280
  } // Static
234
281
  ;
235
282
 
236
- Toast._jQueryInterface = function _jQueryInterface(config) {
283
+ Toast.jQueryInterface = function jQueryInterface(config) {
237
284
  return this.each(function () {
238
- var $element = $(this);
239
- var data = $element.data(DATA_KEY);
285
+ var data = Data__default['default'].getData(this, DATA_KEY);
240
286
 
241
287
  var _config = typeof config === 'object' && config;
242
288
 
243
289
  if (!data) {
244
290
  data = new Toast(this, _config);
245
- $element.data(DATA_KEY, data);
246
291
  }
247
292
 
248
293
  if (typeof config === 'string') {
@@ -255,6 +300,10 @@
255
300
  });
256
301
  };
257
302
 
303
+ Toast.getInstance = function getInstance(element) {
304
+ return Data__default['default'].getData(element, DATA_KEY);
305
+ };
306
+
258
307
  _createClass(Toast, null, [{
259
308
  key: "VERSION",
260
309
  get: function get() {
@@ -278,16 +327,25 @@
278
327
  * ------------------------------------------------------------------------
279
328
  * jQuery
280
329
  * ------------------------------------------------------------------------
330
+ * add .Toast to jQuery only if jQuery is present
281
331
  */
282
332
 
283
333
 
284
- $.fn[NAME] = Toast._jQueryInterface;
285
- $.fn[NAME].Constructor = Toast;
334
+ onDOMContentLoaded(function () {
335
+ var $ = getjQuery();
336
+ /* istanbul ignore if */
286
337
 
287
- $.fn[NAME].noConflict = function () {
288
- $.fn[NAME] = JQUERY_NO_CONFLICT;
289
- return Toast._jQueryInterface;
290
- };
338
+ if ($) {
339
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
340
+ $.fn[NAME] = Toast.jQueryInterface;
341
+ $.fn[NAME].Constructor = Toast;
342
+
343
+ $.fn[NAME].noConflict = function () {
344
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
345
+ return Toast.jQueryInterface;
346
+ };
347
+ }
348
+ });
291
349
 
292
350
  return Toast;
293
351