bootstrap 4.6.0 → 5.0.0.beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -1
  3. data/README.md +7 -4
  4. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  5. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  6. data/assets/javascripts/bootstrap-sprockets.js +14 -8
  7. data/assets/javascripts/bootstrap.js +2152 -1633
  8. data/assets/javascripts/bootstrap.min.js +2 -2
  9. data/assets/javascripts/bootstrap/alert.js +179 -64
  10. data/assets/javascripts/bootstrap/base-component.js +75 -0
  11. data/assets/javascripts/bootstrap/button.js +94 -143
  12. data/assets/javascripts/bootstrap/carousel.js +386 -202
  13. data/assets/javascripts/bootstrap/collapse.js +349 -132
  14. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  15. data/assets/javascripts/bootstrap/dom/event-handler.js +310 -0
  16. data/assets/javascripts/bootstrap/dom/manipulator.js +86 -0
  17. data/assets/javascripts/bootstrap/dom/selector-engine.js +93 -0
  18. data/assets/javascripts/bootstrap/dropdown.js +387 -224
  19. data/assets/javascripts/bootstrap/modal.js +391 -220
  20. data/assets/javascripts/bootstrap/popover.js +94 -49
  21. data/assets/javascripts/bootstrap/scrollspy.js +212 -80
  22. data/assets/javascripts/bootstrap/tab.js +198 -79
  23. data/assets/javascripts/bootstrap/toast.js +211 -78
  24. data/assets/javascripts/bootstrap/tooltip.js +558 -300
  25. data/assets/stylesheets/_bootstrap-grid.scss +51 -16
  26. data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
  27. data/assets/stylesheets/_bootstrap.scss +15 -8
  28. data/assets/stylesheets/bootstrap/_accordion.scss +126 -0
  29. data/assets/stylesheets/bootstrap/_alert.scss +15 -10
  30. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  31. data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
  32. data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
  33. data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
  34. data/assets/stylesheets/bootstrap/_card.scss +21 -92
  35. data/assets/stylesheets/bootstrap/_carousel.scss +65 -33
  36. data/assets/stylesheets/bootstrap/_close.scss +30 -30
  37. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  38. data/assets/stylesheets/bootstrap/_dropdown.scss +95 -38
  39. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  40. data/assets/stylesheets/bootstrap/_functions.scss +84 -23
  41. data/assets/stylesheets/bootstrap/_grid.scss +3 -54
  42. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  43. data/assets/stylesheets/bootstrap/_list-group.scss +17 -8
  44. data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
  45. data/assets/stylesheets/bootstrap/_modal.scss +41 -46
  46. data/assets/stylesheets/bootstrap/_nav.scss +16 -4
  47. data/assets/stylesheets/bootstrap/_navbar.scss +43 -71
  48. data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
  49. data/assets/stylesheets/bootstrap/_popover.scss +15 -27
  50. data/assets/stylesheets/bootstrap/_progress.scss +2 -4
  51. data/assets/stylesheets/bootstrap/_reboot.scss +314 -163
  52. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  53. data/assets/stylesheets/bootstrap/_spinners.scss +5 -5
  54. data/assets/stylesheets/bootstrap/_tables.scss +79 -114
  55. data/assets/stylesheets/bootstrap/_toasts.scss +20 -15
  56. data/assets/stylesheets/bootstrap/_tooltip.scss +17 -17
  57. data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
  58. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  59. data/assets/stylesheets/bootstrap/_utilities.scss +566 -18
  60. data/assets/stylesheets/bootstrap/_variables.scss +673 -463
  61. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  62. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
  64. data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
  65. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  66. data/assets/stylesheets/bootstrap/forms/_form-select.scss +67 -0
  67. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  68. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  69. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  70. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  71. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  72. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  73. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  74. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  75. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  76. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  77. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  78. data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -5
  79. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +8 -8
  80. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  81. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
  82. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -47
  83. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
  84. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  85. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  86. data/assets/stylesheets/bootstrap/mixins/_forms.scss +27 -88
  87. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  88. data/assets/stylesheets/bootstrap/mixins/_grid.scss +83 -32
  89. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  90. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
  91. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  92. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  93. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  94. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  95. data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
  96. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
  97. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
  98. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  99. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
  100. data/bootstrap.gemspec +1 -3
  101. data/lib/bootstrap/version.rb +2 -2
  102. data/tasks/updater/js.rb +20 -5
  103. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  104. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  105. data/test/dummy_rails/app/views/pages/root.html +89 -0
  106. data/test/dummy_rails/config/application.rb +0 -3
  107. data/test/gemfiles/rails_6_1.gemfile +7 -0
  108. metadata +44 -75
  109. data/assets/javascripts/bootstrap/util.js +0 -192
  110. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  111. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
  112. data/assets/stylesheets/bootstrap/_input-group.scss +0 -208
  113. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  114. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  115. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  116. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  117. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  118. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  119. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  120. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  121. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  122. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  123. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  124. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  125. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  126. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  127. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  128. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  129. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  130. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  131. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  132. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  133. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  134. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  135. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  136. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  137. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  138. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  139. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  140. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  141. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  142. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  143. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  144. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
  145. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
@@ -1,18 +1,21 @@
1
1
  /*!
2
- * Bootstrap carousel.js v4.6.0 (https://getbootstrap.com/)
2
+ * Bootstrap carousel.js v5.0.0-beta2 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.jQuery, global.Util));
10
- }(this, (function ($, Util) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
+ }(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
13
 
14
- var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
- var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
16
19
 
17
20
  function _defineProperties(target, props) {
18
21
  for (var i = 0; i < props.length; i++) {
@@ -48,6 +51,186 @@
48
51
  return _extends.apply(this, arguments);
49
52
  }
50
53
 
54
+ function _inheritsLoose(subClass, superClass) {
55
+ subClass.prototype = Object.create(superClass.prototype);
56
+ subClass.prototype.constructor = subClass;
57
+
58
+ _setPrototypeOf(subClass, superClass);
59
+ }
60
+
61
+ function _setPrototypeOf(o, p) {
62
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
63
+ o.__proto__ = p;
64
+ return o;
65
+ };
66
+
67
+ return _setPrototypeOf(o, p);
68
+ }
69
+
70
+ /**
71
+ * --------------------------------------------------------------------------
72
+ * Bootstrap (v5.0.0-beta2): util/index.js
73
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
74
+ * --------------------------------------------------------------------------
75
+ */
76
+ var MILLISECONDS_MULTIPLIER = 1000;
77
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
78
+
79
+ var toType = function toType(obj) {
80
+ if (obj === null || obj === undefined) {
81
+ return "" + obj;
82
+ }
83
+
84
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
85
+ };
86
+
87
+ var getSelector = function getSelector(element) {
88
+ var selector = element.getAttribute('data-bs-target');
89
+
90
+ if (!selector || selector === '#') {
91
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
92
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
93
+ // `document.querySelector` will rightfully complain it is invalid.
94
+ // See https://github.com/twbs/bootstrap/issues/32273
95
+
96
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
97
+ return null;
98
+ } // Just in case some CMS puts out a full URL with the anchor appended
99
+
100
+
101
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
102
+ hrefAttr = '#' + hrefAttr.split('#')[1];
103
+ }
104
+
105
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
106
+ }
107
+
108
+ return selector;
109
+ };
110
+
111
+ var getElementFromSelector = function getElementFromSelector(element) {
112
+ var selector = getSelector(element);
113
+ return selector ? document.querySelector(selector) : null;
114
+ };
115
+
116
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
117
+ if (!element) {
118
+ return 0;
119
+ } // Get transition-duration of the element
120
+
121
+
122
+ var _window$getComputedSt = window.getComputedStyle(element),
123
+ transitionDuration = _window$getComputedSt.transitionDuration,
124
+ transitionDelay = _window$getComputedSt.transitionDelay;
125
+
126
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
127
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
128
+
129
+ if (!floatTransitionDuration && !floatTransitionDelay) {
130
+ return 0;
131
+ } // If multiple durations are defined, take the first
132
+
133
+
134
+ transitionDuration = transitionDuration.split(',')[0];
135
+ transitionDelay = transitionDelay.split(',')[0];
136
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
137
+ };
138
+
139
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
140
+ element.dispatchEvent(new Event(TRANSITION_END));
141
+ };
142
+
143
+ var isElement = function isElement(obj) {
144
+ return (obj[0] || obj).nodeType;
145
+ };
146
+
147
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
148
+ var called = false;
149
+ var durationPadding = 5;
150
+ var emulatedDuration = duration + durationPadding;
151
+
152
+ function listener() {
153
+ called = true;
154
+ element.removeEventListener(TRANSITION_END, listener);
155
+ }
156
+
157
+ element.addEventListener(TRANSITION_END, listener);
158
+ setTimeout(function () {
159
+ if (!called) {
160
+ triggerTransitionEnd(element);
161
+ }
162
+ }, emulatedDuration);
163
+ };
164
+
165
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
166
+ Object.keys(configTypes).forEach(function (property) {
167
+ var expectedTypes = configTypes[property];
168
+ var value = config[property];
169
+ var valueType = value && isElement(value) ? 'element' : toType(value);
170
+
171
+ if (!new RegExp(expectedTypes).test(valueType)) {
172
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
173
+ }
174
+ });
175
+ };
176
+
177
+ var isVisible = function isVisible(element) {
178
+ if (!element) {
179
+ return false;
180
+ }
181
+
182
+ if (element.style && element.parentNode && element.parentNode.style) {
183
+ var elementStyle = getComputedStyle(element);
184
+ var parentNodeStyle = getComputedStyle(element.parentNode);
185
+ return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
186
+ }
187
+
188
+ return false;
189
+ };
190
+
191
+ var reflow = function reflow(element) {
192
+ return element.offsetHeight;
193
+ };
194
+
195
+ var getjQuery = function getjQuery() {
196
+ var _window = window,
197
+ jQuery = _window.jQuery;
198
+
199
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
200
+ return jQuery;
201
+ }
202
+
203
+ return null;
204
+ };
205
+
206
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
207
+ if (document.readyState === 'loading') {
208
+ document.addEventListener('DOMContentLoaded', callback);
209
+ } else {
210
+ callback();
211
+ }
212
+ };
213
+
214
+ var isRTL = document.documentElement.dir === 'rtl';
215
+
216
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
217
+ onDOMContentLoaded(function () {
218
+ var $ = getjQuery();
219
+ /* istanbul ignore if */
220
+
221
+ if ($) {
222
+ var JQUERY_NO_CONFLICT = $.fn[name];
223
+ $.fn[name] = plugin.jQueryInterface;
224
+ $.fn[name].Constructor = plugin;
225
+
226
+ $.fn[name].noConflict = function () {
227
+ $.fn[name] = JQUERY_NO_CONFLICT;
228
+ return plugin.jQueryInterface;
229
+ };
230
+ }
231
+ });
232
+ };
233
+
51
234
  /**
52
235
  * ------------------------------------------------------------------------
53
236
  * Constants
@@ -55,15 +238,11 @@
55
238
  */
56
239
 
57
240
  var NAME = 'carousel';
58
- var VERSION = '4.6.0';
59
241
  var DATA_KEY = 'bs.carousel';
60
242
  var EVENT_KEY = "." + DATA_KEY;
61
243
  var DATA_API_KEY = '.data-api';
62
- var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
63
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
64
-
65
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
66
-
244
+ var ARROW_LEFT_KEY = 'ArrowLeft';
245
+ var ARROW_RIGHT_KEY = 'ArrowRight';
67
246
  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
68
247
 
69
248
  var SWIPE_THRESHOLD = 40;
@@ -103,8 +282,8 @@
103
282
  var CLASS_NAME_CAROUSEL = 'carousel';
104
283
  var CLASS_NAME_ACTIVE = 'active';
105
284
  var CLASS_NAME_SLIDE = 'slide';
106
- var CLASS_NAME_RIGHT = 'carousel-item-right';
107
- var CLASS_NAME_LEFT = 'carousel-item-left';
285
+ var CLASS_NAME_END = 'carousel-item-end';
286
+ var CLASS_NAME_START = 'carousel-item-start';
108
287
  var CLASS_NAME_NEXT = 'carousel-item-next';
109
288
  var CLASS_NAME_PREV = 'carousel-item-prev';
110
289
  var CLASS_NAME_POINTER_EVENT = 'pointer-event';
@@ -114,35 +293,40 @@
114
293
  var SELECTOR_ITEM_IMG = '.carousel-item img';
115
294
  var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
116
295
  var SELECTOR_INDICATORS = '.carousel-indicators';
117
- var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
118
- var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
119
- var PointerType = {
120
- TOUCH: 'touch',
121
- PEN: 'pen'
122
- };
296
+ var SELECTOR_INDICATOR = '[data-bs-target]';
297
+ var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
298
+ var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
299
+ var POINTER_TYPE_TOUCH = 'touch';
300
+ var POINTER_TYPE_PEN = 'pen';
123
301
  /**
124
302
  * ------------------------------------------------------------------------
125
303
  * Class Definition
126
304
  * ------------------------------------------------------------------------
127
305
  */
128
306
 
129
- var Carousel = /*#__PURE__*/function () {
307
+ var Carousel = /*#__PURE__*/function (_BaseComponent) {
308
+ _inheritsLoose(Carousel, _BaseComponent);
309
+
130
310
  function Carousel(element, config) {
131
- this._items = null;
132
- this._interval = null;
133
- this._activeElement = null;
134
- this._isPaused = false;
135
- this._isSliding = false;
136
- this.touchTimeout = null;
137
- this.touchStartX = 0;
138
- this.touchDeltaX = 0;
139
- this._config = this._getConfig(config);
140
- this._element = element;
141
- this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);
142
- this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
143
- this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
144
-
145
- this._addEventListeners();
311
+ var _this;
312
+
313
+ _this = _BaseComponent.call(this, element) || this;
314
+ _this._items = null;
315
+ _this._interval = null;
316
+ _this._activeElement = null;
317
+ _this._isPaused = false;
318
+ _this._isSliding = false;
319
+ _this.touchTimeout = null;
320
+ _this.touchStartX = 0;
321
+ _this.touchDeltaX = 0;
322
+ _this._config = _this._getConfig(config);
323
+ _this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, _this._element);
324
+ _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
325
+ _this._pointerEvent = Boolean(window.PointerEvent);
326
+
327
+ _this._addEventListeners();
328
+
329
+ return _this;
146
330
  } // Getters
147
331
 
148
332
 
@@ -156,10 +340,9 @@
156
340
  };
157
341
 
158
342
  _proto.nextWhenVisible = function nextWhenVisible() {
159
- var $element = $__default['default'](this._element); // Don't call next when the page isn't visible
343
+ // Don't call next when the page isn't visible
160
344
  // or the carousel or its parent isn't visible
161
-
162
- if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {
345
+ if (!document.hidden && isVisible(this._element)) {
163
346
  this.next();
164
347
  }
165
348
  };
@@ -175,8 +358,8 @@
175
358
  this._isPaused = true;
176
359
  }
177
360
 
178
- if (this._element.querySelector(SELECTOR_NEXT_PREV)) {
179
- Util__default['default'].triggerTransitionEnd(this._element);
361
+ if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {
362
+ triggerTransitionEnd(this._element);
180
363
  this.cycle(true);
181
364
  }
182
365
 
@@ -194,7 +377,7 @@
194
377
  this._interval = null;
195
378
  }
196
379
 
197
- if (this._config.interval && !this._isPaused) {
380
+ if (this._config && this._config.interval && !this._isPaused) {
198
381
  this._updateInterval();
199
382
 
200
383
  this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
@@ -202,9 +385,9 @@
202
385
  };
203
386
 
204
387
  _proto.to = function to(index) {
205
- var _this = this;
388
+ var _this2 = this;
206
389
 
207
- this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
390
+ this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
208
391
 
209
392
  var activeIndex = this._getItemIndex(this._activeElement);
210
393
 
@@ -213,8 +396,8 @@
213
396
  }
214
397
 
215
398
  if (this._isSliding) {
216
- $__default['default'](this._element).one(EVENT_SLID, function () {
217
- return _this.to(index);
399
+ EventHandler__default['default'].one(this._element, EVENT_SLID, function () {
400
+ return _this2.to(index);
218
401
  });
219
402
  return;
220
403
  }
@@ -231,11 +414,11 @@
231
414
  };
232
415
 
233
416
  _proto.dispose = function dispose() {
234
- $__default['default'](this._element).off(EVENT_KEY);
235
- $__default['default'].removeData(this._element, DATA_KEY);
417
+ _BaseComponent.prototype.dispose.call(this);
418
+
419
+ EventHandler__default['default'].off(this._element, EVENT_KEY);
236
420
  this._items = null;
237
421
  this._config = null;
238
- this._element = null;
239
422
  this._interval = null;
240
423
  this._isPaused = null;
241
424
  this._isSliding = null;
@@ -246,7 +429,7 @@
246
429
 
247
430
  _proto._getConfig = function _getConfig(config) {
248
431
  config = _extends({}, Default, config);
249
- Util__default['default'].typeCheckConfig(NAME, config, DefaultType);
432
+ typeCheckConfig(NAME, config, DefaultType);
250
433
  return config;
251
434
  };
252
435
 
@@ -261,69 +444,74 @@
261
444
  this.touchDeltaX = 0; // swipe left
262
445
 
263
446
  if (direction > 0) {
264
- this.prev();
447
+ if (isRTL) {
448
+ this.next();
449
+ } else {
450
+ this.prev();
451
+ }
265
452
  } // swipe right
266
453
 
267
454
 
268
455
  if (direction < 0) {
269
- this.next();
456
+ if (isRTL) {
457
+ this.prev();
458
+ } else {
459
+ this.next();
460
+ }
270
461
  }
271
462
  };
272
463
 
273
464
  _proto._addEventListeners = function _addEventListeners() {
274
- var _this2 = this;
465
+ var _this3 = this;
275
466
 
276
467
  if (this._config.keyboard) {
277
- $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) {
278
- return _this2._keydown(event);
468
+ EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {
469
+ return _this3._keydown(event);
279
470
  });
280
471
  }
281
472
 
282
473
  if (this._config.pause === 'hover') {
283
- $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) {
284
- return _this2.pause(event);
285
- }).on(EVENT_MOUSELEAVE, function (event) {
286
- return _this2.cycle(event);
474
+ EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {
475
+ return _this3.pause(event);
476
+ });
477
+ EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {
478
+ return _this3.cycle(event);
287
479
  });
288
480
  }
289
481
 
290
- if (this._config.touch) {
482
+ if (this._config.touch && this._touchSupported) {
291
483
  this._addTouchEventListeners();
292
484
  }
293
485
  };
294
486
 
295
487
  _proto._addTouchEventListeners = function _addTouchEventListeners() {
296
- var _this3 = this;
297
-
298
- if (!this._touchSupported) {
299
- return;
300
- }
488
+ var _this4 = this;
301
489
 
302
490
  var start = function start(event) {
303
- if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
304
- _this3.touchStartX = event.originalEvent.clientX;
305
- } else if (!_this3._pointerEvent) {
306
- _this3.touchStartX = event.originalEvent.touches[0].clientX;
491
+ if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
492
+ _this4.touchStartX = event.clientX;
493
+ } else if (!_this4._pointerEvent) {
494
+ _this4.touchStartX = event.touches[0].clientX;
307
495
  }
308
496
  };
309
497
 
310
498
  var move = function move(event) {
311
499
  // ensure swiping with one touch and not pinching
312
- if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
313
- _this3.touchDeltaX = 0;
500
+ if (event.touches && event.touches.length > 1) {
501
+ _this4.touchDeltaX = 0;
314
502
  } else {
315
- _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;
503
+ _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;
316
504
  }
317
505
  };
318
506
 
319
507
  var end = function end(event) {
320
- if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
321
- _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;
508
+ if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
509
+ _this4.touchDeltaX = event.clientX - _this4.touchStartX;
322
510
  }
323
511
 
324
- _this3._handleSwipe();
512
+ _this4._handleSwipe();
325
513
 
326
- if (_this3._config.pause === 'hover') {
514
+ if (_this4._config.pause === 'hover') {
327
515
  // If it's a touch-enabled device, mouseenter/leave are fired as
328
516
  // part of the mouse compatibility events on first tap - the carousel
329
517
  // would stop cycling until user tapped out of it;
@@ -331,39 +519,41 @@
331
519
  // (as if it's the second time we tap on it, mouseenter compat event
332
520
  // is NOT fired) and after a timeout (to allow for mouse compatibility
333
521
  // events to fire) we explicitly restart cycling
334
- _this3.pause();
522
+ _this4.pause();
335
523
 
336
- if (_this3.touchTimeout) {
337
- clearTimeout(_this3.touchTimeout);
524
+ if (_this4.touchTimeout) {
525
+ clearTimeout(_this4.touchTimeout);
338
526
  }
339
527
 
340
- _this3.touchTimeout = setTimeout(function (event) {
341
- return _this3.cycle(event);
342
- }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
528
+ _this4.touchTimeout = setTimeout(function (event) {
529
+ return _this4.cycle(event);
530
+ }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);
343
531
  }
344
532
  };
345
533
 
346
- $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {
347
- return e.preventDefault();
534
+ SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
535
+ EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, function (e) {
536
+ return e.preventDefault();
537
+ });
348
538
  });
349
539
 
350
540
  if (this._pointerEvent) {
351
- $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) {
541
+ EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, function (event) {
352
542
  return start(event);
353
543
  });
354
- $__default['default'](this._element).on(EVENT_POINTERUP, function (event) {
544
+ EventHandler__default['default'].on(this._element, EVENT_POINTERUP, function (event) {
355
545
  return end(event);
356
546
  });
357
547
 
358
548
  this._element.classList.add(CLASS_NAME_POINTER_EVENT);
359
549
  } else {
360
- $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) {
550
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, function (event) {
361
551
  return start(event);
362
552
  });
363
- $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) {
553
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, function (event) {
364
554
  return move(event);
365
555
  });
366
- $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) {
556
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, function (event) {
367
557
  return end(event);
368
558
  });
369
559
  }
@@ -374,21 +564,27 @@
374
564
  return;
375
565
  }
376
566
 
377
- switch (event.which) {
378
- case ARROW_LEFT_KEYCODE:
379
- event.preventDefault();
567
+ if (event.key === ARROW_LEFT_KEY) {
568
+ event.preventDefault();
569
+
570
+ if (isRTL) {
571
+ this.next();
572
+ } else {
380
573
  this.prev();
381
- break;
574
+ }
575
+ } else if (event.key === ARROW_RIGHT_KEY) {
576
+ event.preventDefault();
382
577
 
383
- case ARROW_RIGHT_KEYCODE:
384
- event.preventDefault();
578
+ if (isRTL) {
579
+ this.prev();
580
+ } else {
385
581
  this.next();
386
- break;
582
+ }
387
583
  }
388
584
  };
389
585
 
390
586
  _proto._getItemIndex = function _getItemIndex(element) {
391
- this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];
587
+ this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];
392
588
  return this._items.indexOf(element);
393
589
  };
394
590
 
@@ -413,39 +609,41 @@
413
609
  _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
414
610
  var targetIndex = this._getItemIndex(relatedTarget);
415
611
 
416
- var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));
612
+ var fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));
417
613
 
418
- var slideEvent = $__default['default'].Event(EVENT_SLIDE, {
614
+ return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {
419
615
  relatedTarget: relatedTarget,
420
616
  direction: eventDirectionName,
421
617
  from: fromIndex,
422
618
  to: targetIndex
423
619
  });
424
- $__default['default'](this._element).trigger(slideEvent);
425
- return slideEvent;
426
620
  };
427
621
 
428
622
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
429
623
  if (this._indicatorsElement) {
430
- var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE));
431
- $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE);
432
-
433
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
434
-
435
- if (nextIndicator) {
436
- $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE);
624
+ var activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement);
625
+ activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
626
+ activeIndicator.removeAttribute('aria-current');
627
+ var indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement);
628
+
629
+ for (var i = 0; i < indicators.length; i++) {
630
+ if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {
631
+ indicators[i].classList.add(CLASS_NAME_ACTIVE);
632
+ indicators[i].setAttribute('aria-current', 'true');
633
+ break;
634
+ }
437
635
  }
438
636
  }
439
637
  };
440
638
 
441
639
  _proto._updateInterval = function _updateInterval() {
442
- var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);
640
+ var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
443
641
 
444
642
  if (!element) {
445
643
  return;
446
644
  }
447
645
 
448
- var elementInterval = parseInt(element.getAttribute('data-interval'), 10);
646
+ var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
449
647
 
450
648
  if (elementInterval) {
451
649
  this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
@@ -456,9 +654,9 @@
456
654
  };
457
655
 
458
656
  _proto._slide = function _slide(direction, element) {
459
- var _this4 = this;
657
+ var _this5 = this;
460
658
 
461
- var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
659
+ var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
462
660
 
463
661
  var activeElementIndex = this._getItemIndex(activeElement);
464
662
 
@@ -467,28 +665,18 @@
467
665
  var nextElementIndex = this._getItemIndex(nextElement);
468
666
 
469
667
  var isCycling = Boolean(this._interval);
470
- var directionalClassName;
471
- var orderClassName;
472
- var eventDirectionName;
473
-
474
- if (direction === DIRECTION_NEXT) {
475
- directionalClassName = CLASS_NAME_LEFT;
476
- orderClassName = CLASS_NAME_NEXT;
477
- eventDirectionName = DIRECTION_LEFT;
478
- } else {
479
- directionalClassName = CLASS_NAME_RIGHT;
480
- orderClassName = CLASS_NAME_PREV;
481
- eventDirectionName = DIRECTION_RIGHT;
482
- }
668
+ var directionalClassName = direction === DIRECTION_NEXT ? CLASS_NAME_START : CLASS_NAME_END;
669
+ var orderClassName = direction === DIRECTION_NEXT ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
670
+ var eventDirectionName = direction === DIRECTION_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT;
483
671
 
484
- if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE)) {
672
+ if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {
485
673
  this._isSliding = false;
486
674
  return;
487
675
  }
488
676
 
489
677
  var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
490
678
 
491
- if (slideEvent.isDefaultPrevented()) {
679
+ if (slideEvent.defaultPrevented) {
492
680
  return;
493
681
  }
494
682
 
@@ -506,32 +694,38 @@
506
694
  this._setActiveIndicatorElement(nextElement);
507
695
 
508
696
  this._activeElement = nextElement;
509
- var slidEvent = $__default['default'].Event(EVENT_SLID, {
510
- relatedTarget: nextElement,
511
- direction: eventDirectionName,
512
- from: activeElementIndex,
513
- to: nextElementIndex
514
- });
515
697
 
516
- if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) {
517
- $__default['default'](nextElement).addClass(orderClassName);
518
- Util__default['default'].reflow(nextElement);
519
- $__default['default'](activeElement).addClass(directionalClassName);
520
- $__default['default'](nextElement).addClass(directionalClassName);
521
- var transitionDuration = Util__default['default'].getTransitionDurationFromElement(activeElement);
522
- $__default['default'](activeElement).one(Util__default['default'].TRANSITION_END, function () {
523
- $__default['default'](nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE);
524
- $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE + " " + orderClassName + " " + directionalClassName);
525
- _this4._isSliding = false;
698
+ if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
699
+ nextElement.classList.add(orderClassName);
700
+ reflow(nextElement);
701
+ activeElement.classList.add(directionalClassName);
702
+ nextElement.classList.add(directionalClassName);
703
+ var transitionDuration = getTransitionDurationFromElement(activeElement);
704
+ EventHandler__default['default'].one(activeElement, 'transitionend', function () {
705
+ nextElement.classList.remove(directionalClassName, orderClassName);
706
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
707
+ activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
708
+ _this5._isSliding = false;
526
709
  setTimeout(function () {
527
- return $__default['default'](_this4._element).trigger(slidEvent);
710
+ EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, {
711
+ relatedTarget: nextElement,
712
+ direction: eventDirectionName,
713
+ from: activeElementIndex,
714
+ to: nextElementIndex
715
+ });
528
716
  }, 0);
529
- }).emulateTransitionEnd(transitionDuration);
717
+ });
718
+ emulateTransitionEnd(activeElement, transitionDuration);
530
719
  } else {
531
- $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);
532
- $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE);
720
+ activeElement.classList.remove(CLASS_NAME_ACTIVE);
721
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
533
722
  this._isSliding = false;
534
- $__default['default'](this._element).trigger(slidEvent);
723
+ EventHandler__default['default'].trigger(this._element, EVENT_SLID, {
724
+ relatedTarget: nextElement,
725
+ direction: eventDirectionName,
726
+ from: activeElementIndex,
727
+ to: nextElementIndex
728
+ });
535
729
  }
536
730
 
537
731
  if (isCycling) {
@@ -540,82 +734,79 @@
540
734
  } // Static
541
735
  ;
542
736
 
543
- Carousel._jQueryInterface = function _jQueryInterface(config) {
544
- return this.each(function () {
545
- var data = $__default['default'](this).data(DATA_KEY);
737
+ Carousel.carouselInterface = function carouselInterface(element, config) {
738
+ var data = Data__default['default'].getData(element, DATA_KEY);
546
739
 
547
- var _config = _extends({}, Default, $__default['default'](this).data());
740
+ var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element));
548
741
 
549
- if (typeof config === 'object') {
550
- _config = _extends({}, _config, config);
551
- }
742
+ if (typeof config === 'object') {
743
+ _config = _extends({}, _config, config);
744
+ }
745
+
746
+ var action = typeof config === 'string' ? config : _config.slide;
552
747
 
553
- var action = typeof config === 'string' ? config : _config.slide;
748
+ if (!data) {
749
+ data = new Carousel(element, _config);
750
+ }
554
751
 
555
- if (!data) {
556
- data = new Carousel(this, _config);
557
- $__default['default'](this).data(DATA_KEY, data);
752
+ if (typeof config === 'number') {
753
+ data.to(config);
754
+ } else if (typeof action === 'string') {
755
+ if (typeof data[action] === 'undefined') {
756
+ throw new TypeError("No method named \"" + action + "\"");
558
757
  }
559
758
 
560
- if (typeof config === 'number') {
561
- data.to(config);
562
- } else if (typeof action === 'string') {
563
- if (typeof data[action] === 'undefined') {
564
- throw new TypeError("No method named \"" + action + "\"");
565
- }
759
+ data[action]();
760
+ } else if (_config.interval && _config.ride) {
761
+ data.pause();
762
+ data.cycle();
763
+ }
764
+ };
566
765
 
567
- data[action]();
568
- } else if (_config.interval && _config.ride) {
569
- data.pause();
570
- data.cycle();
571
- }
766
+ Carousel.jQueryInterface = function jQueryInterface(config) {
767
+ return this.each(function () {
768
+ Carousel.carouselInterface(this, config);
572
769
  });
573
770
  };
574
771
 
575
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
576
- var selector = Util__default['default'].getSelectorFromElement(this);
772
+ Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
773
+ var target = getElementFromSelector(this);
577
774
 
578
- if (!selector) {
775
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
579
776
  return;
580
777
  }
581
778
 
582
- var target = $__default['default'](selector)[0];
583
-
584
- if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) {
585
- return;
586
- }
779
+ var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
587
780
 
588
- var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data());
589
-
590
- var slideIndex = this.getAttribute('data-slide-to');
781
+ var slideIndex = this.getAttribute('data-bs-slide-to');
591
782
 
592
783
  if (slideIndex) {
593
784
  config.interval = false;
594
785
  }
595
786
 
596
- Carousel._jQueryInterface.call($__default['default'](target), config);
787
+ Carousel.carouselInterface(target, config);
597
788
 
598
789
  if (slideIndex) {
599
- $__default['default'](target).data(DATA_KEY).to(slideIndex);
790
+ Data__default['default'].getData(target, DATA_KEY).to(slideIndex);
600
791
  }
601
792
 
602
793
  event.preventDefault();
603
794
  };
604
795
 
605
796
  _createClass(Carousel, null, [{
606
- key: "VERSION",
797
+ key: "Default",
607
798
  get: function get() {
608
- return VERSION;
799
+ return Default;
609
800
  }
610
801
  }, {
611
- key: "Default",
802
+ key: "DATA_KEY",
612
803
  get: function get() {
613
- return Default;
804
+ return DATA_KEY;
614
805
  }
615
806
  }]);
616
807
 
617
808
  return Carousel;
618
- }();
809
+ }(BaseComponent__default['default']);
619
810
  /**
620
811
  * ------------------------------------------------------------------------
621
812
  * Data Api implementation
@@ -623,29 +814,22 @@
623
814
  */
624
815
 
625
816
 
626
- $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);
627
- $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {
628
- var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));
817
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
818
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
819
+ var carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);
629
820
 
630
821
  for (var i = 0, len = carousels.length; i < len; i++) {
631
- var $carousel = $__default['default'](carousels[i]);
632
-
633
- Carousel._jQueryInterface.call($carousel, $carousel.data());
822
+ Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY));
634
823
  }
635
824
  });
636
825
  /**
637
826
  * ------------------------------------------------------------------------
638
827
  * jQuery
639
828
  * ------------------------------------------------------------------------
829
+ * add .Carousel to jQuery only if jQuery is present
640
830
  */
641
831
 
642
- $__default['default'].fn[NAME] = Carousel._jQueryInterface;
643
- $__default['default'].fn[NAME].Constructor = Carousel;
644
-
645
- $__default['default'].fn[NAME].noConflict = function () {
646
- $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
647
- return Carousel._jQueryInterface;
648
- };
832
+ defineJQueryPlugin(NAME, Carousel);
649
833
 
650
834
  return Carousel;
651
835