bootstrap 4.5.2 → 5.0.0.beta1

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