bootstrap 4.4.1 → 5.0.0.alpha2

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 (136) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +12 -2
  3. data/README.md +1 -1
  4. data/assets/javascripts/bootstrap-sprockets.js +12 -8
  5. data/assets/javascripts/bootstrap.js +2094 -1562
  6. data/assets/javascripts/bootstrap.min.js +4 -4
  7. data/assets/javascripts/bootstrap/alert.js +145 -83
  8. data/assets/javascripts/bootstrap/button.js +66 -152
  9. data/assets/javascripts/bootstrap/carousel.js +307 -241
  10. data/assets/javascripts/bootstrap/collapse.js +287 -183
  11. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +315 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +96 -0
  14. data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
  15. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  16. data/assets/javascripts/bootstrap/dropdown.js +255 -261
  17. data/assets/javascripts/bootstrap/modal.js +364 -270
  18. data/assets/javascripts/bootstrap/popover.js +72 -113
  19. data/assets/javascripts/bootstrap/scrollspy.js +162 -147
  20. data/assets/javascripts/bootstrap/tab.js +176 -108
  21. data/assets/javascripts/bootstrap/toast.js +179 -139
  22. data/assets/javascripts/bootstrap/tooltip.js +369 -259
  23. data/assets/stylesheets/_bootstrap-grid.scss +54 -18
  24. data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
  25. data/assets/stylesheets/_bootstrap.scss +17 -11
  26. data/assets/stylesheets/bootstrap/_alert.scss +6 -7
  27. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  28. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -17
  29. data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
  30. data/assets/stylesheets/bootstrap/_buttons.scss +25 -40
  31. data/assets/stylesheets/bootstrap/_card.scss +43 -79
  32. data/assets/stylesheets/bootstrap/_carousel.scss +30 -15
  33. data/assets/stylesheets/bootstrap/_close.scss +31 -31
  34. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  35. data/assets/stylesheets/bootstrap/_dropdown.scss +54 -9
  36. data/assets/stylesheets/bootstrap/_forms.scss +9 -338
  37. data/assets/stylesheets/bootstrap/_functions.scss +97 -25
  38. data/assets/stylesheets/bootstrap/_grid.scss +3 -50
  39. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  40. data/assets/stylesheets/bootstrap/_list-group.scss +16 -17
  41. data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
  42. data/assets/stylesheets/bootstrap/_modal.scss +41 -45
  43. data/assets/stylesheets/bootstrap/_nav.scss +16 -9
  44. data/assets/stylesheets/bootstrap/_navbar.scss +43 -74
  45. data/assets/stylesheets/bootstrap/_pagination.scss +11 -20
  46. data/assets/stylesheets/bootstrap/_popover.scss +5 -5
  47. data/assets/stylesheets/bootstrap/_progress.scss +2 -3
  48. data/assets/stylesheets/bootstrap/_reboot.scss +310 -175
  49. data/assets/stylesheets/bootstrap/_root.scss +5 -9
  50. data/assets/stylesheets/bootstrap/_spinners.scss +5 -4
  51. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  52. data/assets/stylesheets/bootstrap/_toasts.scss +6 -2
  53. data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
  54. data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
  55. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  56. data/assets/stylesheets/bootstrap/_utilities.scss +531 -17
  57. data/assets/stylesheets/bootstrap/_variables.scss +609 -444
  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/_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 +0 -4
  76. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +35 -22
  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 +69 -51
  80. data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
  81. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  82. data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
  83. data/assets/stylesheets/bootstrap/mixins/_forms.scss +22 -66
  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 +2 -1
  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 +18 -8
  93. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
  94. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +28 -0
  95. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  96. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
  97. data/lib/bootstrap/version.rb +2 -2
  98. data/tasks/updater/js.rb +3 -3
  99. data/tasks/updater/network.rb +2 -2
  100. data/test/gemfiles/rails_6_0.gemfile +7 -0
  101. metadata +36 -41
  102. data/assets/javascripts/bootstrap/util.js +0 -188
  103. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  104. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -521
  105. data/assets/stylesheets/bootstrap/_input-group.scss +0 -191
  106. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  107. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  108. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  109. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -22
  110. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  111. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  112. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -71
  113. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  114. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  115. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  116. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  117. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  118. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  119. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  120. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  121. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  122. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  123. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  124. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  125. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  126. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  127. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  128. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  129. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  130. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  131. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  132. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  133. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  134. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  135. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  136. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,82 +1,149 @@
1
1
  /*!
2
- * Bootstrap carousel.js v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap carousel.js v5.0.0-alpha2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
9
- (global = global || self, global.Carousel = factory(global.jQuery, global.Util));
10
- }(this, (function ($, Util) { 'use strict';
11
-
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
14
-
15
- function _defineProperties(target, props) {
16
- for (var i = 0; i < props.length; i++) {
17
- var descriptor = props[i];
18
- descriptor.enumerable = descriptor.enumerable || false;
19
- descriptor.configurable = true;
20
- if ("value" in descriptor) descriptor.writable = true;
21
- Object.defineProperty(target, descriptor.key, descriptor);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], 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
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
+
19
+ /**
20
+ * --------------------------------------------------------------------------
21
+ * Bootstrap (v5.0.0-alpha2): 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;
22
31
  }
23
- }
24
32
 
25
- function _createClass(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
33
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
34
+ };
30
35
 
31
- function _defineProperty(obj, key, value) {
32
- if (key in obj) {
33
- Object.defineProperty(obj, key, {
34
- value: value,
35
- enumerable: true,
36
- configurable: true,
37
- writable: true
38
- });
39
- } else {
40
- obj[key] = value;
36
+ var getSelector = function getSelector(element) {
37
+ var selector = element.getAttribute('data-target');
38
+
39
+ if (!selector || selector === '#') {
40
+ var hrefAttr = element.getAttribute('href');
41
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
41
42
  }
42
43
 
43
- return obj;
44
- }
44
+ return selector;
45
+ };
45
46
 
46
- function ownKeys(object, enumerableOnly) {
47
- var keys = Object.keys(object);
47
+ var getElementFromSelector = function getElementFromSelector(element) {
48
+ var selector = getSelector(element);
49
+ return selector ? document.querySelector(selector) : null;
50
+ };
48
51
 
49
- if (Object.getOwnPropertySymbols) {
50
- var symbols = Object.getOwnPropertySymbols(object);
51
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
52
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
- });
54
- keys.push.apply(keys, symbols);
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 = parseFloat(transitionDuration);
63
+ var floatTransitionDelay = 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 (parseFloat(transitionDuration) + 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);
55
91
  }
56
92
 
57
- return keys;
58
- }
93
+ element.addEventListener(TRANSITION_END, listener);
94
+ setTimeout(function () {
95
+ if (!called) {
96
+ triggerTransitionEnd(element);
97
+ }
98
+ }, emulatedDuration);
99
+ };
59
100
 
60
- function _objectSpread2(target) {
61
- for (var i = 1; i < arguments.length; i++) {
62
- var source = arguments[i] != null ? arguments[i] : {};
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);
63
106
 
64
- if (i % 2) {
65
- ownKeys(Object(source), true).forEach(function (key) {
66
- _defineProperty(target, key, source[key]);
67
- });
68
- } else if (Object.getOwnPropertyDescriptors) {
69
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
70
- } else {
71
- ownKeys(Object(source)).forEach(function (key) {
72
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
73
- });
107
+ if (!new RegExp(expectedTypes).test(valueType)) {
108
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
74
109
  }
110
+ });
111
+ };
112
+
113
+ var isVisible = function isVisible(element) {
114
+ if (!element) {
115
+ return false;
75
116
  }
76
117
 
77
- return target;
78
- }
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-no-jquery')) {
136
+ return jQuery;
137
+ }
79
138
 
139
+ return null;
140
+ };
141
+
142
+ 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); }
143
+
144
+ 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); } }
145
+
146
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
80
147
  /**
81
148
  * ------------------------------------------------------------------------
82
149
  * Constants
@@ -84,15 +151,12 @@
84
151
  */
85
152
 
86
153
  var NAME = 'carousel';
87
- var VERSION = '4.4.1';
154
+ var VERSION = '5.0.0-alpha2';
88
155
  var DATA_KEY = 'bs.carousel';
89
156
  var EVENT_KEY = "." + DATA_KEY;
90
157
  var DATA_API_KEY = '.data-api';
91
- var JQUERY_NO_CONFLICT = $.fn[NAME];
92
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
93
-
94
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
95
-
158
+ var ARROW_LEFT_KEY = 'ArrowLeft';
159
+ var ARROW_RIGHT_KEY = 'ArrowRight';
96
160
  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
97
161
 
98
162
  var SWIPE_THRESHOLD = 40;
@@ -112,48 +176,39 @@
112
176
  wrap: 'boolean',
113
177
  touch: 'boolean'
114
178
  };
115
- var Direction = {
116
- NEXT: 'next',
117
- PREV: 'prev',
118
- LEFT: 'left',
119
- RIGHT: 'right'
120
- };
121
- var Event = {
122
- SLIDE: "slide" + EVENT_KEY,
123
- SLID: "slid" + EVENT_KEY,
124
- KEYDOWN: "keydown" + EVENT_KEY,
125
- MOUSEENTER: "mouseenter" + EVENT_KEY,
126
- MOUSELEAVE: "mouseleave" + EVENT_KEY,
127
- TOUCHSTART: "touchstart" + EVENT_KEY,
128
- TOUCHMOVE: "touchmove" + EVENT_KEY,
129
- TOUCHEND: "touchend" + EVENT_KEY,
130
- POINTERDOWN: "pointerdown" + EVENT_KEY,
131
- POINTERUP: "pointerup" + EVENT_KEY,
132
- DRAG_START: "dragstart" + EVENT_KEY,
133
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
134
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
135
- };
136
- var ClassName = {
137
- CAROUSEL: 'carousel',
138
- ACTIVE: 'active',
139
- SLIDE: 'slide',
140
- RIGHT: 'carousel-item-right',
141
- LEFT: 'carousel-item-left',
142
- NEXT: 'carousel-item-next',
143
- PREV: 'carousel-item-prev',
144
- ITEM: 'carousel-item',
145
- POINTER_EVENT: 'pointer-event'
146
- };
147
- var Selector = {
148
- ACTIVE: '.active',
149
- ACTIVE_ITEM: '.active.carousel-item',
150
- ITEM: '.carousel-item',
151
- ITEM_IMG: '.carousel-item img',
152
- NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
153
- INDICATORS: '.carousel-indicators',
154
- DATA_SLIDE: '[data-slide], [data-slide-to]',
155
- DATA_RIDE: '[data-ride="carousel"]'
156
- };
179
+ var DIRECTION_NEXT = 'next';
180
+ var DIRECTION_PREV = 'prev';
181
+ var DIRECTION_LEFT = 'left';
182
+ var DIRECTION_RIGHT = 'right';
183
+ var EVENT_SLIDE = "slide" + EVENT_KEY;
184
+ var EVENT_SLID = "slid" + EVENT_KEY;
185
+ var EVENT_KEYDOWN = "keydown" + EVENT_KEY;
186
+ var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY;
187
+ var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY;
188
+ var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY;
189
+ var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY;
190
+ var EVENT_TOUCHEND = "touchend" + EVENT_KEY;
191
+ var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY;
192
+ var EVENT_POINTERUP = "pointerup" + EVENT_KEY;
193
+ var EVENT_DRAG_START = "dragstart" + EVENT_KEY;
194
+ var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
195
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
196
+ var CLASS_NAME_CAROUSEL = 'carousel';
197
+ var CLASS_NAME_ACTIVE = 'active';
198
+ var CLASS_NAME_SLIDE = 'slide';
199
+ var CLASS_NAME_RIGHT = 'carousel-item-right';
200
+ var CLASS_NAME_LEFT = 'carousel-item-left';
201
+ var CLASS_NAME_NEXT = 'carousel-item-next';
202
+ var CLASS_NAME_PREV = 'carousel-item-prev';
203
+ var CLASS_NAME_POINTER_EVENT = 'pointer-event';
204
+ var SELECTOR_ACTIVE = '.active';
205
+ var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';
206
+ var SELECTOR_ITEM = '.carousel-item';
207
+ var SELECTOR_ITEM_IMG = '.carousel-item img';
208
+ var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
209
+ var SELECTOR_INDICATORS = '.carousel-indicators';
210
+ var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
211
+ var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
157
212
  var PointerType = {
158
213
  TOUCH: 'touch',
159
214
  PEN: 'pen'
@@ -164,9 +219,7 @@
164
219
  * ------------------------------------------------------------------------
165
220
  */
166
221
 
167
- var Carousel =
168
- /*#__PURE__*/
169
- function () {
222
+ var Carousel = /*#__PURE__*/function () {
170
223
  function Carousel(element, config) {
171
224
  this._items = null;
172
225
  this._interval = null;
@@ -178,11 +231,13 @@
178
231
  this.touchDeltaX = 0;
179
232
  this._config = this._getConfig(config);
180
233
  this._element = element;
181
- this._indicatorsElement = this._element.querySelector(Selector.INDICATORS);
234
+ this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, this._element);
182
235
  this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
183
- this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
236
+ this._pointerEvent = Boolean(window.PointerEvent);
184
237
 
185
238
  this._addEventListeners();
239
+
240
+ Data__default['default'].setData(element, DATA_KEY, this);
186
241
  } // Getters
187
242
 
188
243
 
@@ -191,21 +246,21 @@
191
246
  // Public
192
247
  _proto.next = function next() {
193
248
  if (!this._isSliding) {
194
- this._slide(Direction.NEXT);
249
+ this._slide(DIRECTION_NEXT);
195
250
  }
196
251
  };
197
252
 
198
253
  _proto.nextWhenVisible = function nextWhenVisible() {
199
254
  // Don't call next when the page isn't visible
200
255
  // or the carousel or its parent isn't visible
201
- if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
256
+ if (!document.hidden && isVisible(this._element)) {
202
257
  this.next();
203
258
  }
204
259
  };
205
260
 
206
261
  _proto.prev = function prev() {
207
262
  if (!this._isSliding) {
208
- this._slide(Direction.PREV);
263
+ this._slide(DIRECTION_PREV);
209
264
  }
210
265
  };
211
266
 
@@ -214,8 +269,8 @@
214
269
  this._isPaused = true;
215
270
  }
216
271
 
217
- if (this._element.querySelector(Selector.NEXT_PREV)) {
218
- Util.triggerTransitionEnd(this._element);
272
+ if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {
273
+ triggerTransitionEnd(this._element);
219
274
  this.cycle(true);
220
275
  }
221
276
 
@@ -233,7 +288,7 @@
233
288
  this._interval = null;
234
289
  }
235
290
 
236
- if (this._config.interval && !this._isPaused) {
291
+ if (this._config && this._config.interval && !this._isPaused) {
237
292
  this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
238
293
  }
239
294
  };
@@ -241,7 +296,7 @@
241
296
  _proto.to = function to(index) {
242
297
  var _this = this;
243
298
 
244
- this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);
299
+ this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
245
300
 
246
301
  var activeIndex = this._getItemIndex(this._activeElement);
247
302
 
@@ -250,7 +305,7 @@
250
305
  }
251
306
 
252
307
  if (this._isSliding) {
253
- $(this._element).one(Event.SLID, function () {
308
+ EventHandler__default['default'].one(this._element, EVENT_SLID, function () {
254
309
  return _this.to(index);
255
310
  });
256
311
  return;
@@ -262,14 +317,14 @@
262
317
  return;
263
318
  }
264
319
 
265
- var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
320
+ var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
266
321
 
267
322
  this._slide(direction, this._items[index]);
268
323
  };
269
324
 
270
325
  _proto.dispose = function dispose() {
271
- $(this._element).off(EVENT_KEY);
272
- $.removeData(this._element, DATA_KEY);
326
+ EventHandler__default['default'].off(this._element, EVENT_KEY);
327
+ Data__default['default'].removeData(this._element, DATA_KEY);
273
328
  this._items = null;
274
329
  this._config = null;
275
330
  this._element = null;
@@ -282,8 +337,8 @@
282
337
  ;
283
338
 
284
339
  _proto._getConfig = function _getConfig(config) {
285
- config = _objectSpread2({}, Default, {}, config);
286
- Util.typeCheckConfig(NAME, config, DefaultType);
340
+ config = _extends({}, Default, config);
341
+ typeCheckConfig(NAME, config, DefaultType);
287
342
  return config;
288
343
  };
289
344
 
@@ -311,20 +366,21 @@
311
366
  var _this2 = this;
312
367
 
313
368
  if (this._config.keyboard) {
314
- $(this._element).on(Event.KEYDOWN, function (event) {
369
+ EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {
315
370
  return _this2._keydown(event);
316
371
  });
317
372
  }
318
373
 
319
374
  if (this._config.pause === 'hover') {
320
- $(this._element).on(Event.MOUSEENTER, function (event) {
375
+ EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {
321
376
  return _this2.pause(event);
322
- }).on(Event.MOUSELEAVE, function (event) {
377
+ });
378
+ EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {
323
379
  return _this2.cycle(event);
324
380
  });
325
381
  }
326
382
 
327
- if (this._config.touch) {
383
+ if (this._config.touch && this._touchSupported) {
328
384
  this._addTouchEventListeners();
329
385
  }
330
386
  };
@@ -332,30 +388,26 @@
332
388
  _proto._addTouchEventListeners = function _addTouchEventListeners() {
333
389
  var _this3 = this;
334
390
 
335
- if (!this._touchSupported) {
336
- return;
337
- }
338
-
339
391
  var start = function start(event) {
340
- if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
341
- _this3.touchStartX = event.originalEvent.clientX;
392
+ if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
393
+ _this3.touchStartX = event.clientX;
342
394
  } else if (!_this3._pointerEvent) {
343
- _this3.touchStartX = event.originalEvent.touches[0].clientX;
395
+ _this3.touchStartX = event.touches[0].clientX;
344
396
  }
345
397
  };
346
398
 
347
399
  var move = function move(event) {
348
400
  // ensure swiping with one touch and not pinching
349
- if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
401
+ if (event.touches && event.touches.length > 1) {
350
402
  _this3.touchDeltaX = 0;
351
403
  } else {
352
- _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;
404
+ _this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX;
353
405
  }
354
406
  };
355
407
 
356
408
  var end = function end(event) {
357
- if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
358
- _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;
409
+ if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
410
+ _this3.touchDeltaX = event.clientX - _this3.touchStartX;
359
411
  }
360
412
 
361
413
  _this3._handleSwipe();
@@ -380,27 +432,29 @@
380
432
  }
381
433
  };
382
434
 
383
- $(this._element.querySelectorAll(Selector.ITEM_IMG)).on(Event.DRAG_START, function (e) {
384
- return e.preventDefault();
435
+ SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
436
+ EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, function (e) {
437
+ return e.preventDefault();
438
+ });
385
439
  });
386
440
 
387
441
  if (this._pointerEvent) {
388
- $(this._element).on(Event.POINTERDOWN, function (event) {
442
+ EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, function (event) {
389
443
  return start(event);
390
444
  });
391
- $(this._element).on(Event.POINTERUP, function (event) {
445
+ EventHandler__default['default'].on(this._element, EVENT_POINTERUP, function (event) {
392
446
  return end(event);
393
447
  });
394
448
 
395
- this._element.classList.add(ClassName.POINTER_EVENT);
449
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
396
450
  } else {
397
- $(this._element).on(Event.TOUCHSTART, function (event) {
451
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, function (event) {
398
452
  return start(event);
399
453
  });
400
- $(this._element).on(Event.TOUCHMOVE, function (event) {
454
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, function (event) {
401
455
  return move(event);
402
456
  });
403
- $(this._element).on(Event.TOUCHEND, function (event) {
457
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, function (event) {
404
458
  return end(event);
405
459
  });
406
460
  }
@@ -411,13 +465,13 @@
411
465
  return;
412
466
  }
413
467
 
414
- switch (event.which) {
415
- case ARROW_LEFT_KEYCODE:
468
+ switch (event.key) {
469
+ case ARROW_LEFT_KEY:
416
470
  event.preventDefault();
417
471
  this.prev();
418
472
  break;
419
473
 
420
- case ARROW_RIGHT_KEYCODE:
474
+ case ARROW_RIGHT_KEY:
421
475
  event.preventDefault();
422
476
  this.next();
423
477
  break;
@@ -425,13 +479,13 @@
425
479
  };
426
480
 
427
481
  _proto._getItemIndex = function _getItemIndex(element) {
428
- this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM)) : [];
482
+ this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];
429
483
  return this._items.indexOf(element);
430
484
  };
431
485
 
432
486
  _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
433
- var isNextDirection = direction === Direction.NEXT;
434
- var isPrevDirection = direction === Direction.PREV;
487
+ var isNextDirection = direction === DIRECTION_NEXT;
488
+ var isPrevDirection = direction === DIRECTION_PREV;
435
489
 
436
490
  var activeIndex = this._getItemIndex(activeElement);
437
491
 
@@ -442,7 +496,7 @@
442
496
  return activeElement;
443
497
  }
444
498
 
445
- var delta = direction === Direction.PREV ? -1 : 1;
499
+ var delta = direction === DIRECTION_PREV ? -1 : 1;
446
500
  var itemIndex = (activeIndex + delta) % this._items.length;
447
501
  return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
448
502
  };
@@ -450,27 +504,28 @@
450
504
  _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
451
505
  var targetIndex = this._getItemIndex(relatedTarget);
452
506
 
453
- var fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM));
507
+ var fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));
454
508
 
455
- var slideEvent = $.Event(Event.SLIDE, {
509
+ return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {
456
510
  relatedTarget: relatedTarget,
457
511
  direction: eventDirectionName,
458
512
  from: fromIndex,
459
513
  to: targetIndex
460
514
  });
461
- $(this._element).trigger(slideEvent);
462
- return slideEvent;
463
515
  };
464
516
 
465
517
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
466
518
  if (this._indicatorsElement) {
467
- var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE));
468
- $(indicators).removeClass(ClassName.ACTIVE);
519
+ var indicators = SelectorEngine__default['default'].find(SELECTOR_ACTIVE, this._indicatorsElement);
520
+
521
+ for (var i = 0; i < indicators.length; i++) {
522
+ indicators[i].classList.remove(CLASS_NAME_ACTIVE);
523
+ }
469
524
 
470
525
  var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
471
526
 
472
527
  if (nextIndicator) {
473
- $(nextIndicator).addClass(ClassName.ACTIVE);
528
+ nextIndicator.classList.add(CLASS_NAME_ACTIVE);
474
529
  }
475
530
  }
476
531
  };
@@ -478,7 +533,7 @@
478
533
  _proto._slide = function _slide(direction, element) {
479
534
  var _this4 = this;
480
535
 
481
- var activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);
536
+ var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
482
537
 
483
538
  var activeElementIndex = this._getItemIndex(activeElement);
484
539
 
@@ -491,24 +546,24 @@
491
546
  var orderClassName;
492
547
  var eventDirectionName;
493
548
 
494
- if (direction === Direction.NEXT) {
495
- directionalClassName = ClassName.LEFT;
496
- orderClassName = ClassName.NEXT;
497
- eventDirectionName = Direction.LEFT;
549
+ if (direction === DIRECTION_NEXT) {
550
+ directionalClassName = CLASS_NAME_LEFT;
551
+ orderClassName = CLASS_NAME_NEXT;
552
+ eventDirectionName = DIRECTION_LEFT;
498
553
  } else {
499
- directionalClassName = ClassName.RIGHT;
500
- orderClassName = ClassName.PREV;
501
- eventDirectionName = Direction.RIGHT;
554
+ directionalClassName = CLASS_NAME_RIGHT;
555
+ orderClassName = CLASS_NAME_PREV;
556
+ eventDirectionName = DIRECTION_RIGHT;
502
557
  }
503
558
 
504
- if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
559
+ if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {
505
560
  this._isSliding = false;
506
561
  return;
507
562
  }
508
563
 
509
564
  var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
510
565
 
511
- if (slideEvent.isDefaultPrevented()) {
566
+ if (slideEvent.defaultPrevented) {
512
567
  return;
513
568
  }
514
569
 
@@ -525,18 +580,11 @@
525
580
 
526
581
  this._setActiveIndicatorElement(nextElement);
527
582
 
528
- var slidEvent = $.Event(Event.SLID, {
529
- relatedTarget: nextElement,
530
- direction: eventDirectionName,
531
- from: activeElementIndex,
532
- to: nextElementIndex
533
- });
534
-
535
- if ($(this._element).hasClass(ClassName.SLIDE)) {
536
- $(nextElement).addClass(orderClassName);
537
- Util.reflow(nextElement);
538
- $(activeElement).addClass(directionalClassName);
539
- $(nextElement).addClass(directionalClassName);
583
+ if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
584
+ nextElement.classList.add(orderClassName);
585
+ reflow(nextElement);
586
+ activeElement.classList.add(directionalClassName);
587
+ nextElement.classList.add(directionalClassName);
540
588
  var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
541
589
 
542
590
  if (nextElementInterval) {
@@ -546,20 +594,32 @@
546
594
  this._config.interval = this._config.defaultInterval || this._config.interval;
547
595
  }
548
596
 
549
- var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
550
- $(activeElement).one(Util.TRANSITION_END, function () {
551
- $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
552
- $(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
597
+ var transitionDuration = getTransitionDurationFromElement(activeElement);
598
+ EventHandler__default['default'].one(activeElement, TRANSITION_END, function () {
599
+ nextElement.classList.remove(directionalClassName, orderClassName);
600
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
601
+ activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
553
602
  _this4._isSliding = false;
554
603
  setTimeout(function () {
555
- return $(_this4._element).trigger(slidEvent);
604
+ EventHandler__default['default'].trigger(_this4._element, EVENT_SLID, {
605
+ relatedTarget: nextElement,
606
+ direction: eventDirectionName,
607
+ from: activeElementIndex,
608
+ to: nextElementIndex
609
+ });
556
610
  }, 0);
557
- }).emulateTransitionEnd(transitionDuration);
611
+ });
612
+ emulateTransitionEnd(activeElement, transitionDuration);
558
613
  } else {
559
- $(activeElement).removeClass(ClassName.ACTIVE);
560
- $(nextElement).addClass(ClassName.ACTIVE);
614
+ activeElement.classList.remove(CLASS_NAME_ACTIVE);
615
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
561
616
  this._isSliding = false;
562
- $(this._element).trigger(slidEvent);
617
+ EventHandler__default['default'].trigger(this._element, EVENT_SLID, {
618
+ relatedTarget: nextElement,
619
+ direction: eventDirectionName,
620
+ from: activeElementIndex,
621
+ to: nextElementIndex
622
+ });
563
623
  }
564
624
 
565
625
  if (isCycling) {
@@ -568,52 +628,49 @@
568
628
  } // Static
569
629
  ;
570
630
 
571
- Carousel._jQueryInterface = function _jQueryInterface(config) {
572
- return this.each(function () {
573
- var data = $(this).data(DATA_KEY);
631
+ Carousel.carouselInterface = function carouselInterface(element, config) {
632
+ var data = Data__default['default'].getData(element, DATA_KEY);
574
633
 
575
- var _config = _objectSpread2({}, Default, {}, $(this).data());
634
+ var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element));
576
635
 
577
- if (typeof config === 'object') {
578
- _config = _objectSpread2({}, _config, {}, config);
579
- }
636
+ if (typeof config === 'object') {
637
+ _config = _extends({}, _config, config);
638
+ }
639
+
640
+ var action = typeof config === 'string' ? config : _config.slide;
580
641
 
581
- var action = typeof config === 'string' ? config : _config.slide;
642
+ if (!data) {
643
+ data = new Carousel(element, _config);
644
+ }
582
645
 
583
- if (!data) {
584
- data = new Carousel(this, _config);
585
- $(this).data(DATA_KEY, data);
646
+ if (typeof config === 'number') {
647
+ data.to(config);
648
+ } else if (typeof action === 'string') {
649
+ if (typeof data[action] === 'undefined') {
650
+ throw new TypeError("No method named \"" + action + "\"");
586
651
  }
587
652
 
588
- if (typeof config === 'number') {
589
- data.to(config);
590
- } else if (typeof action === 'string') {
591
- if (typeof data[action] === 'undefined') {
592
- throw new TypeError("No method named \"" + action + "\"");
593
- }
653
+ data[action]();
654
+ } else if (_config.interval && _config.ride) {
655
+ data.pause();
656
+ data.cycle();
657
+ }
658
+ };
594
659
 
595
- data[action]();
596
- } else if (_config.interval && _config.ride) {
597
- data.pause();
598
- data.cycle();
599
- }
660
+ Carousel.jQueryInterface = function jQueryInterface(config) {
661
+ return this.each(function () {
662
+ Carousel.carouselInterface(this, config);
600
663
  });
601
664
  };
602
665
 
603
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
604
- var selector = Util.getSelectorFromElement(this);
666
+ Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
667
+ var target = getElementFromSelector(this);
605
668
 
606
- if (!selector) {
669
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
607
670
  return;
608
671
  }
609
672
 
610
- var target = $(selector)[0];
611
-
612
- if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
613
- return;
614
- }
615
-
616
- var config = _objectSpread2({}, $(target).data(), {}, $(this).data());
673
+ var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
617
674
 
618
675
  var slideIndex = this.getAttribute('data-slide-to');
619
676
 
@@ -621,15 +678,19 @@
621
678
  config.interval = false;
622
679
  }
623
680
 
624
- Carousel._jQueryInterface.call($(target), config);
681
+ Carousel.carouselInterface(target, config);
625
682
 
626
683
  if (slideIndex) {
627
- $(target).data(DATA_KEY).to(slideIndex);
684
+ Data__default['default'].getData(target, DATA_KEY).to(slideIndex);
628
685
  }
629
686
 
630
687
  event.preventDefault();
631
688
  };
632
689
 
690
+ Carousel.getInstance = function getInstance(element) {
691
+ return Data__default['default'].getData(element, DATA_KEY);
692
+ };
693
+
633
694
  _createClass(Carousel, null, [{
634
695
  key: "VERSION",
635
696
  get: function get() {
@@ -651,29 +712,34 @@
651
712
  */
652
713
 
653
714
 
654
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
655
- $(window).on(Event.LOAD_DATA_API, function () {
656
- var carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE));
715
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
716
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
717
+ var carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);
657
718
 
658
719
  for (var i = 0, len = carousels.length; i < len; i++) {
659
- var $carousel = $(carousels[i]);
660
-
661
- Carousel._jQueryInterface.call($carousel, $carousel.data());
720
+ Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY));
662
721
  }
663
722
  });
723
+ var $ = getjQuery();
664
724
  /**
665
725
  * ------------------------------------------------------------------------
666
726
  * jQuery
667
727
  * ------------------------------------------------------------------------
728
+ * add .carousel to jQuery only if jQuery is present
668
729
  */
669
730
 
670
- $.fn[NAME] = Carousel._jQueryInterface;
671
- $.fn[NAME].Constructor = Carousel;
731
+ /* istanbul ignore if */
672
732
 
673
- $.fn[NAME].noConflict = function () {
674
- $.fn[NAME] = JQUERY_NO_CONFLICT;
675
- return Carousel._jQueryInterface;
676
- };
733
+ if ($) {
734
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
735
+ $.fn[NAME] = Carousel.jQueryInterface;
736
+ $.fn[NAME].Constructor = Carousel;
737
+
738
+ $.fn[NAME].noConflict = function () {
739
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
740
+ return Carousel.jQueryInterface;
741
+ };
742
+ }
677
743
 
678
744
  return Carousel;
679
745