bootstrap 4.6.1 → 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 (133) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap/alert.js +148 -70
  4. data/assets/javascripts/bootstrap/button.js +71 -151
  5. data/assets/javascripts/bootstrap/carousel.js +314 -206
  6. data/assets/javascripts/bootstrap/collapse.js +306 -150
  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 +256 -202
  13. data/assets/javascripts/bootstrap/modal.js +353 -247
  14. data/assets/javascripts/bootstrap/popover.js +83 -91
  15. data/assets/javascripts/bootstrap/scrollspy.js +175 -103
  16. data/assets/javascripts/bootstrap/tab.js +170 -96
  17. data/assets/javascripts/bootstrap/toast.js +180 -107
  18. data/assets/javascripts/bootstrap/tooltip.js +374 -223
  19. data/assets/javascripts/bootstrap-sprockets.js +11 -7
  20. data/assets/javascripts/bootstrap.js +2257 -1548
  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 -4
  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 +6 -15
  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 -1
  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 -436
  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 +2 -2
  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/lib/bootstrap/version.rb +2 -2
  97. data/tasks/updater/js.rb +3 -3
  98. metadata +32 -40
  99. data/assets/javascripts/bootstrap/util.js +0 -189
  100. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  101. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
  102. data/assets/stylesheets/bootstrap/_input-group.scss +0 -211
  103. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  104. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  105. data/assets/stylesheets/bootstrap/_print.scss +0 -132
  106. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  107. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  108. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  109. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  110. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  111. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  112. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  113. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  114. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  115. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  116. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  117. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  118. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  119. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  120. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  121. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  122. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  123. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  124. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  125. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  126. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  127. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  128. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  129. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  130. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  131. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  132. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  133. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,69 +1,144 @@
1
1
  /*!
2
- * Bootstrap tab.js v4.6.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
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
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.Tab = 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'), 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;
24
31
  }
25
- }
26
32
 
27
- function _createClass(Constructor, protoProps, staticProps) {
28
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
- if (staticProps) _defineProperties(Constructor, staticProps);
30
- return Constructor;
31
- }
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
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); } }
32
102
 
103
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
33
104
  /**
105
+ * ------------------------------------------------------------------------
34
106
  * Constants
107
+ * ------------------------------------------------------------------------
35
108
  */
36
109
 
37
110
  var NAME = 'tab';
38
- var VERSION = '4.6.1';
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 = $__default["default"].fn[NAME];
43
- var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
44
- var CLASS_NAME_ACTIVE = 'active';
45
- var CLASS_NAME_DISABLED = 'disabled';
46
- var CLASS_NAME_FADE = 'fade';
47
- var CLASS_NAME_SHOW = 'show';
48
115
  var EVENT_HIDE = "hide" + EVENT_KEY;
49
116
  var EVENT_HIDDEN = "hidden" + EVENT_KEY;
50
117
  var EVENT_SHOW = "show" + EVENT_KEY;
51
118
  var EVENT_SHOWN = "shown" + EVENT_KEY;
52
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';
53
125
  var SELECTOR_DROPDOWN = '.dropdown';
54
126
  var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
55
127
  var SELECTOR_ACTIVE = '.active';
56
- var SELECTOR_ACTIVE_UL = '> li > .active';
128
+ var SELECTOR_ACTIVE_UL = ':scope > li > .active';
57
129
  var SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
58
130
  var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
59
- var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';
131
+ var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
60
132
  /**
61
- * Class definition
133
+ * ------------------------------------------------------------------------
134
+ * Class Definition
135
+ * ------------------------------------------------------------------------
62
136
  */
63
137
 
64
138
  var Tab = /*#__PURE__*/function () {
65
139
  function Tab(element) {
66
140
  this._element = element;
141
+ Data.setData(this._element, DATA_KEY, this);
67
142
  } // Getters
68
143
 
69
144
 
@@ -73,53 +148,46 @@
73
148
  _proto.show = function show() {
74
149
  var _this = this;
75
150
 
76
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default["default"](this._element).hasClass(CLASS_NAME_ACTIVE) || $__default["default"](this._element).hasClass(CLASS_NAME_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)) {
77
152
  return;
78
153
  }
79
154
 
80
- var target;
81
155
  var previous;
82
- var listElement = $__default["default"](this._element).closest(SELECTOR_NAV_LIST_GROUP)[0];
83
- var selector = Util__default["default"].getSelectorFromElement(this._element);
156
+ var target = getElementFromSelector(this._element);
157
+
158
+ var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);
84
159
 
85
160
  if (listElement) {
86
161
  var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
87
- previous = $__default["default"].makeArray($__default["default"](listElement).find(itemSelector));
162
+ previous = SelectorEngine.find(itemSelector, listElement);
88
163
  previous = previous[previous.length - 1];
89
164
  }
90
165
 
91
- var hideEvent = $__default["default"].Event(EVENT_HIDE, {
92
- relatedTarget: this._element
93
- });
94
- var showEvent = $__default["default"].Event(EVENT_SHOW, {
95
- relatedTarget: previous
96
- });
166
+ var hideEvent = null;
97
167
 
98
168
  if (previous) {
99
- $__default["default"](previous).trigger(hideEvent);
169
+ hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {
170
+ relatedTarget: this._element
171
+ });
100
172
  }
101
173
 
102
- $__default["default"](this._element).trigger(showEvent);
174
+ var showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {
175
+ relatedTarget: previous
176
+ });
103
177
 
104
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
178
+ if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {
105
179
  return;
106
180
  }
107
181
 
108
- if (selector) {
109
- target = document.querySelector(selector);
110
- }
111
-
112
182
  this._activate(this._element, listElement);
113
183
 
114
184
  var complete = function complete() {
115
- var hiddenEvent = $__default["default"].Event(EVENT_HIDDEN, {
185
+ EventHandler.trigger(previous, EVENT_HIDDEN, {
116
186
  relatedTarget: _this._element
117
187
  });
118
- var shownEvent = $__default["default"].Event(EVENT_SHOWN, {
188
+ EventHandler.trigger(_this._element, EVENT_SHOWN, {
119
189
  relatedTarget: previous
120
190
  });
121
- $__default["default"](previous).trigger(hiddenEvent);
122
- $__default["default"](_this._element).trigger(shownEvent);
123
191
  };
124
192
 
125
193
  if (target) {
@@ -130,7 +198,7 @@
130
198
  };
131
199
 
132
200
  _proto.dispose = function dispose() {
133
- $__default["default"].removeData(this._element, DATA_KEY);
201
+ Data.removeData(this._element, DATA_KEY);
134
202
  this._element = null;
135
203
  } // Private
136
204
  ;
@@ -138,17 +206,19 @@
138
206
  _proto._activate = function _activate(element, container, callback) {
139
207
  var _this2 = this;
140
208
 
141
- var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default["default"](container).find(SELECTOR_ACTIVE_UL) : $__default["default"](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);
142
210
  var active = activeElements[0];
143
- var isTransitioning = callback && active && $__default["default"](active).hasClass(CLASS_NAME_FADE);
211
+ var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE);
144
212
 
145
213
  var complete = function complete() {
146
214
  return _this2._transitionComplete(element, active, callback);
147
215
  };
148
216
 
149
217
  if (active && isTransitioning) {
150
- var transitionDuration = Util__default["default"].getTransitionDurationFromElement(active);
151
- $__default["default"](active).removeClass(CLASS_NAME_SHOW).one(Util__default["default"].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);
152
222
  } else {
153
223
  complete();
154
224
  }
@@ -156,11 +226,11 @@
156
226
 
157
227
  _proto._transitionComplete = function _transitionComplete(element, active, callback) {
158
228
  if (active) {
159
- $__default["default"](active).removeClass(CLASS_NAME_ACTIVE);
160
- var dropdownChild = $__default["default"](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);
161
231
 
162
232
  if (dropdownChild) {
163
- $__default["default"](dropdownChild).removeClass(CLASS_NAME_ACTIVE);
233
+ dropdownChild.classList.remove(CLASS_NAME_ACTIVE);
164
234
  }
165
235
 
166
236
  if (active.getAttribute('role') === 'tab') {
@@ -168,30 +238,25 @@
168
238
  }
169
239
  }
170
240
 
171
- $__default["default"](element).addClass(CLASS_NAME_ACTIVE);
241
+ element.classList.add(CLASS_NAME_ACTIVE);
172
242
 
173
243
  if (element.getAttribute('role') === 'tab') {
174
244
  element.setAttribute('aria-selected', true);
175
245
  }
176
246
 
177
- Util__default["default"].reflow(element);
247
+ reflow(element);
178
248
 
179
249
  if (element.classList.contains(CLASS_NAME_FADE)) {
180
250
  element.classList.add(CLASS_NAME_SHOW);
181
251
  }
182
252
 
183
- var parent = element.parentNode;
184
-
185
- if (parent && parent.nodeName === 'LI') {
186
- parent = parent.parentNode;
187
- }
188
-
189
- if (parent && $__default["default"](parent).hasClass(CLASS_NAME_DROPDOWN_MENU)) {
190
- var dropdownElement = $__default["default"](element).closest(SELECTOR_DROPDOWN)[0];
253
+ if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
254
+ var dropdownElement = element.closest(SELECTOR_DROPDOWN);
191
255
 
192
256
  if (dropdownElement) {
193
- var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE));
194
- $__default["default"](dropdownToggleList).addClass(CLASS_NAME_ACTIVE);
257
+ SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE).forEach(function (dropdown) {
258
+ return dropdown.classList.add(CLASS_NAME_ACTIVE);
259
+ });
195
260
  }
196
261
 
197
262
  element.setAttribute('aria-expanded', true);
@@ -203,15 +268,9 @@
203
268
  } // Static
204
269
  ;
205
270
 
206
- Tab._jQueryInterface = function _jQueryInterface(config) {
271
+ Tab.jQueryInterface = function jQueryInterface(config) {
207
272
  return this.each(function () {
208
- var $this = $__default["default"](this);
209
- var data = $this.data(DATA_KEY);
210
-
211
- if (!data) {
212
- data = new Tab(this);
213
- $this.data(DATA_KEY, data);
214
- }
273
+ var data = Data.getData(this, DATA_KEY) || new Tab(this);
215
274
 
216
275
  if (typeof config === 'string') {
217
276
  if (typeof data[config] === 'undefined') {
@@ -223,6 +282,10 @@
223
282
  });
224
283
  };
225
284
 
285
+ Tab.getInstance = function getInstance(element) {
286
+ return Data.getData(element, DATA_KEY);
287
+ };
288
+
226
289
  _createClass(Tab, null, [{
227
290
  key: "VERSION",
228
291
  get: function get() {
@@ -233,27 +296,38 @@
233
296
  return Tab;
234
297
  }();
235
298
  /**
236
- * Data API implementation
299
+ * ------------------------------------------------------------------------
300
+ * Data Api implementation
301
+ * ------------------------------------------------------------------------
237
302
  */
238
303
 
239
304
 
240
- $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
305
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
241
306
  event.preventDefault();
242
-
243
- Tab._jQueryInterface.call($__default["default"](this), 'show');
307
+ var data = Data.getData(this, DATA_KEY) || new Tab(this);
308
+ data.show();
244
309
  });
310
+ var $ = getjQuery();
245
311
  /**
312
+ * ------------------------------------------------------------------------
246
313
  * jQuery
314
+ * ------------------------------------------------------------------------
315
+ * add .tab to jQuery only if jQuery is present
247
316
  */
248
317
 
249
- $__default["default"].fn[NAME] = Tab._jQueryInterface;
250
- $__default["default"].fn[NAME].Constructor = Tab;
318
+ /* istanbul ignore if */
251
319
 
252
- $__default["default"].fn[NAME].noConflict = function () {
253
- $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
254
- return Tab._jQueryInterface;
255
- };
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
+ }
256
330
 
257
331
  return Tab;
258
332
 
259
- }));
333
+ })));