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