bootstrap 4.5.0 → 5.0.0.alpha3

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 +12 -9
  5. data/assets/javascripts/bootstrap.js +1852 -1266
  6. data/assets/javascripts/bootstrap.min.js +3 -3
  7. data/assets/javascripts/bootstrap/alert.js +149 -69
  8. data/assets/javascripts/bootstrap/button.js +71 -141
  9. data/assets/javascripts/bootstrap/carousel.js +291 -192
  10. data/assets/javascripts/bootstrap/collapse.js +285 -161
  11. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +307 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +85 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +240 -218
  16. data/assets/javascripts/bootstrap/modal.js +342 -234
  17. data/assets/javascripts/bootstrap/popover.js +82 -106
  18. data/assets/javascripts/bootstrap/scrollspy.js +154 -114
  19. data/assets/javascripts/bootstrap/tab.js +166 -80
  20. data/assets/javascripts/bootstrap/toast.js +171 -113
  21. data/assets/javascripts/bootstrap/tooltip.js +351 -219
  22. data/assets/stylesheets/_bootstrap-grid.scss +52 -16
  23. data/assets/stylesheets/_bootstrap-reboot.scss +5 -2
  24. data/assets/stylesheets/_bootstrap.scss +16 -9
  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 +3 -19
  29. data/assets/stylesheets/bootstrap/_button-group.scss +16 -40
  30. data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
  31. data/assets/stylesheets/bootstrap/_card.scss +30 -97
  32. data/assets/stylesheets/bootstrap/_carousel.scss +30 -15
  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 +52 -8
  36. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  37. data/assets/stylesheets/bootstrap/_functions.scss +88 -23
  38. data/assets/stylesheets/bootstrap/_grid.scss +3 -58
  39. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  40. data/assets/stylesheets/bootstrap/_list-group.scss +14 -5
  41. data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
  42. data/assets/stylesheets/bootstrap/_modal.scss +41 -47
  43. data/assets/stylesheets/bootstrap/_nav.scss +14 -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 +6 -6
  47. data/assets/stylesheets/bootstrap/_progress.scss +3 -5
  48. data/assets/stylesheets/bootstrap/_reboot.scss +310 -171
  49. data/assets/stylesheets/bootstrap/_root.scss +5 -9
  50. data/assets/stylesheets/bootstrap/_spinners.scss +13 -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 +545 -18
  57. data/assets/stylesheets/bootstrap/_variables.scss +653 -469
  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 +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 +17 -77
  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 +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. 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 -522
  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 -81
  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 -71
  135. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,82 +1,157 @@
1
1
  /*!
2
- * Bootstrap carousel.js v4.5.0 (https://getbootstrap.com/)
2
+ * Bootstrap carousel.js v5.0.0-alpha3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
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
- $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
- Util = Util && Object.prototype.hasOwnProperty.call(Util, '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-alpha3): 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
-
25
- function _createClass(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
30
-
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;
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-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
+ };
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
45
56
 
46
- function ownKeys(object, enumerableOnly) {
47
- var keys = Object.keys(object);
48
57
 
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);
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;
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';
75
122
  }
76
123
 
77
- return target;
78
- }
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
+ }
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
+ 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); }
151
+
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); } }
79
153
 
154
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
80
155
  /**
81
156
  * ------------------------------------------------------------------------
82
157
  * Constants
@@ -84,15 +159,12 @@
84
159
  */
85
160
 
86
161
  var NAME = 'carousel';
87
- var VERSION = '4.5.0';
162
+ var VERSION = '5.0.0-alpha3';
88
163
  var DATA_KEY = 'bs.carousel';
89
164
  var EVENT_KEY = "." + DATA_KEY;
90
165
  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
-
166
+ var ARROW_LEFT_KEY = 'ArrowLeft';
167
+ var ARROW_RIGHT_KEY = 'ArrowRight';
96
168
  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
97
169
 
98
170
  var SWIPE_THRESHOLD = 40;
@@ -167,11 +239,13 @@
167
239
  this.touchDeltaX = 0;
168
240
  this._config = this._getConfig(config);
169
241
  this._element = element;
170
- this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);
242
+ this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, this._element);
171
243
  this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
172
- this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
244
+ this._pointerEvent = Boolean(window.PointerEvent);
173
245
 
174
246
  this._addEventListeners();
247
+
248
+ Data__default['default'].setData(element, DATA_KEY, this);
175
249
  } // Getters
176
250
 
177
251
 
@@ -187,7 +261,7 @@
187
261
  _proto.nextWhenVisible = function nextWhenVisible() {
188
262
  // Don't call next when the page isn't visible
189
263
  // or the carousel or its parent isn't visible
190
- if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
264
+ if (!document.hidden && isVisible(this._element)) {
191
265
  this.next();
192
266
  }
193
267
  };
@@ -203,8 +277,8 @@
203
277
  this._isPaused = true;
204
278
  }
205
279
 
206
- if (this._element.querySelector(SELECTOR_NEXT_PREV)) {
207
- Util.triggerTransitionEnd(this._element);
280
+ if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {
281
+ triggerTransitionEnd(this._element);
208
282
  this.cycle(true);
209
283
  }
210
284
 
@@ -222,7 +296,9 @@
222
296
  this._interval = null;
223
297
  }
224
298
 
225
- if (this._config.interval && !this._isPaused) {
299
+ if (this._config && this._config.interval && !this._isPaused) {
300
+ this._updateInterval();
301
+
226
302
  this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
227
303
  }
228
304
  };
@@ -230,7 +306,7 @@
230
306
  _proto.to = function to(index) {
231
307
  var _this = this;
232
308
 
233
- this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
309
+ this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
234
310
 
235
311
  var activeIndex = this._getItemIndex(this._activeElement);
236
312
 
@@ -239,7 +315,7 @@
239
315
  }
240
316
 
241
317
  if (this._isSliding) {
242
- $(this._element).one(EVENT_SLID, function () {
318
+ EventHandler__default['default'].one(this._element, EVENT_SLID, function () {
243
319
  return _this.to(index);
244
320
  });
245
321
  return;
@@ -257,8 +333,8 @@
257
333
  };
258
334
 
259
335
  _proto.dispose = function dispose() {
260
- $(this._element).off(EVENT_KEY);
261
- $.removeData(this._element, DATA_KEY);
336
+ EventHandler__default['default'].off(this._element, EVENT_KEY);
337
+ Data__default['default'].removeData(this._element, DATA_KEY);
262
338
  this._items = null;
263
339
  this._config = null;
264
340
  this._element = null;
@@ -271,8 +347,8 @@
271
347
  ;
272
348
 
273
349
  _proto._getConfig = function _getConfig(config) {
274
- config = _objectSpread2(_objectSpread2({}, Default), config);
275
- Util.typeCheckConfig(NAME, config, DefaultType);
350
+ config = _extends({}, Default, config);
351
+ typeCheckConfig(NAME, config, DefaultType);
276
352
  return config;
277
353
  };
278
354
 
@@ -300,20 +376,21 @@
300
376
  var _this2 = this;
301
377
 
302
378
  if (this._config.keyboard) {
303
- $(this._element).on(EVENT_KEYDOWN, function (event) {
379
+ EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {
304
380
  return _this2._keydown(event);
305
381
  });
306
382
  }
307
383
 
308
384
  if (this._config.pause === 'hover') {
309
- $(this._element).on(EVENT_MOUSEENTER, function (event) {
385
+ EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {
310
386
  return _this2.pause(event);
311
- }).on(EVENT_MOUSELEAVE, function (event) {
387
+ });
388
+ EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {
312
389
  return _this2.cycle(event);
313
390
  });
314
391
  }
315
392
 
316
- if (this._config.touch) {
393
+ if (this._config.touch && this._touchSupported) {
317
394
  this._addTouchEventListeners();
318
395
  }
319
396
  };
@@ -321,30 +398,26 @@
321
398
  _proto._addTouchEventListeners = function _addTouchEventListeners() {
322
399
  var _this3 = this;
323
400
 
324
- if (!this._touchSupported) {
325
- return;
326
- }
327
-
328
401
  var start = function start(event) {
329
- if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
330
- _this3.touchStartX = event.originalEvent.clientX;
402
+ if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
403
+ _this3.touchStartX = event.clientX;
331
404
  } else if (!_this3._pointerEvent) {
332
- _this3.touchStartX = event.originalEvent.touches[0].clientX;
405
+ _this3.touchStartX = event.touches[0].clientX;
333
406
  }
334
407
  };
335
408
 
336
409
  var move = function move(event) {
337
410
  // ensure swiping with one touch and not pinching
338
- if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
411
+ if (event.touches && event.touches.length > 1) {
339
412
  _this3.touchDeltaX = 0;
340
413
  } else {
341
- _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;
414
+ _this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX;
342
415
  }
343
416
  };
344
417
 
345
418
  var end = function end(event) {
346
- if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
347
- _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;
419
+ if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
420
+ _this3.touchDeltaX = event.clientX - _this3.touchStartX;
348
421
  }
349
422
 
350
423
  _this3._handleSwipe();
@@ -369,27 +442,29 @@
369
442
  }
370
443
  };
371
444
 
372
- $(this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {
373
- return e.preventDefault();
445
+ SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
446
+ EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, function (e) {
447
+ return e.preventDefault();
448
+ });
374
449
  });
375
450
 
376
451
  if (this._pointerEvent) {
377
- $(this._element).on(EVENT_POINTERDOWN, function (event) {
452
+ EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, function (event) {
378
453
  return start(event);
379
454
  });
380
- $(this._element).on(EVENT_POINTERUP, function (event) {
455
+ EventHandler__default['default'].on(this._element, EVENT_POINTERUP, function (event) {
381
456
  return end(event);
382
457
  });
383
458
 
384
459
  this._element.classList.add(CLASS_NAME_POINTER_EVENT);
385
460
  } else {
386
- $(this._element).on(EVENT_TOUCHSTART, function (event) {
461
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, function (event) {
387
462
  return start(event);
388
463
  });
389
- $(this._element).on(EVENT_TOUCHMOVE, function (event) {
464
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, function (event) {
390
465
  return move(event);
391
466
  });
392
- $(this._element).on(EVENT_TOUCHEND, function (event) {
467
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, function (event) {
393
468
  return end(event);
394
469
  });
395
470
  }
@@ -400,13 +475,13 @@
400
475
  return;
401
476
  }
402
477
 
403
- switch (event.which) {
404
- case ARROW_LEFT_KEYCODE:
478
+ switch (event.key) {
479
+ case ARROW_LEFT_KEY:
405
480
  event.preventDefault();
406
481
  this.prev();
407
482
  break;
408
483
 
409
- case ARROW_RIGHT_KEYCODE:
484
+ case ARROW_RIGHT_KEY:
410
485
  event.preventDefault();
411
486
  this.next();
412
487
  break;
@@ -414,7 +489,7 @@
414
489
  };
415
490
 
416
491
  _proto._getItemIndex = function _getItemIndex(element) {
417
- this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];
492
+ this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];
418
493
  return this._items.indexOf(element);
419
494
  };
420
495
 
@@ -439,35 +514,53 @@
439
514
  _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
440
515
  var targetIndex = this._getItemIndex(relatedTarget);
441
516
 
442
- var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));
517
+ var fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));
443
518
 
444
- var slideEvent = $.Event(EVENT_SLIDE, {
519
+ return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {
445
520
  relatedTarget: relatedTarget,
446
521
  direction: eventDirectionName,
447
522
  from: fromIndex,
448
523
  to: targetIndex
449
524
  });
450
- $(this._element).trigger(slideEvent);
451
- return slideEvent;
452
525
  };
453
526
 
454
527
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
455
528
  if (this._indicatorsElement) {
456
- var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE));
457
- $(indicators).removeClass(CLASS_NAME_ACTIVE);
529
+ var indicators = SelectorEngine__default['default'].find(SELECTOR_ACTIVE, this._indicatorsElement);
530
+
531
+ for (var i = 0; i < indicators.length; i++) {
532
+ indicators[i].classList.remove(CLASS_NAME_ACTIVE);
533
+ }
458
534
 
459
535
  var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
460
536
 
461
537
  if (nextIndicator) {
462
- $(nextIndicator).addClass(CLASS_NAME_ACTIVE);
538
+ nextIndicator.classList.add(CLASS_NAME_ACTIVE);
463
539
  }
464
540
  }
465
541
  };
466
542
 
543
+ _proto._updateInterval = function _updateInterval() {
544
+ var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
545
+
546
+ if (!element) {
547
+ return;
548
+ }
549
+
550
+ var elementInterval = parseInt(element.getAttribute('data-interval'), 10);
551
+
552
+ if (elementInterval) {
553
+ this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
554
+ this._config.interval = elementInterval;
555
+ } else {
556
+ this._config.interval = this._config.defaultInterval || this._config.interval;
557
+ }
558
+ };
559
+
467
560
  _proto._slide = function _slide(direction, element) {
468
561
  var _this4 = this;
469
562
 
470
- var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
563
+ var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
471
564
 
472
565
  var activeElementIndex = this._getItemIndex(activeElement);
473
566
 
@@ -490,14 +583,14 @@
490
583
  eventDirectionName = DIRECTION_RIGHT;
491
584
  }
492
585
 
493
- if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {
586
+ if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {
494
587
  this._isSliding = false;
495
588
  return;
496
589
  }
497
590
 
498
591
  var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
499
592
 
500
- if (slideEvent.isDefaultPrevented()) {
593
+ if (slideEvent.defaultPrevented) {
501
594
  return;
502
595
  }
503
596
 
@@ -514,41 +607,39 @@
514
607
 
515
608
  this._setActiveIndicatorElement(nextElement);
516
609
 
517
- var slidEvent = $.Event(EVENT_SLID, {
518
- relatedTarget: nextElement,
519
- direction: eventDirectionName,
520
- from: activeElementIndex,
521
- to: nextElementIndex
522
- });
523
-
524
- if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {
525
- $(nextElement).addClass(orderClassName);
526
- Util.reflow(nextElement);
527
- $(activeElement).addClass(directionalClassName);
528
- $(nextElement).addClass(directionalClassName);
529
- var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
530
-
531
- if (nextElementInterval) {
532
- this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
533
- this._config.interval = nextElementInterval;
534
- } else {
535
- this._config.interval = this._config.defaultInterval || this._config.interval;
536
- }
537
-
538
- var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
539
- $(activeElement).one(Util.TRANSITION_END, function () {
540
- $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE);
541
- $(activeElement).removeClass(CLASS_NAME_ACTIVE + " " + orderClassName + " " + directionalClassName);
610
+ this._activeElement = nextElement;
611
+
612
+ if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
613
+ nextElement.classList.add(orderClassName);
614
+ reflow(nextElement);
615
+ activeElement.classList.add(directionalClassName);
616
+ nextElement.classList.add(directionalClassName);
617
+ var transitionDuration = getTransitionDurationFromElement(activeElement);
618
+ EventHandler__default['default'].one(activeElement, TRANSITION_END, function () {
619
+ nextElement.classList.remove(directionalClassName, orderClassName);
620
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
621
+ activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
542
622
  _this4._isSliding = false;
543
623
  setTimeout(function () {
544
- return $(_this4._element).trigger(slidEvent);
624
+ EventHandler__default['default'].trigger(_this4._element, EVENT_SLID, {
625
+ relatedTarget: nextElement,
626
+ direction: eventDirectionName,
627
+ from: activeElementIndex,
628
+ to: nextElementIndex
629
+ });
545
630
  }, 0);
546
- }).emulateTransitionEnd(transitionDuration);
631
+ });
632
+ emulateTransitionEnd(activeElement, transitionDuration);
547
633
  } else {
548
- $(activeElement).removeClass(CLASS_NAME_ACTIVE);
549
- $(nextElement).addClass(CLASS_NAME_ACTIVE);
634
+ activeElement.classList.remove(CLASS_NAME_ACTIVE);
635
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
550
636
  this._isSliding = false;
551
- $(this._element).trigger(slidEvent);
637
+ EventHandler__default['default'].trigger(this._element, EVENT_SLID, {
638
+ relatedTarget: nextElement,
639
+ direction: eventDirectionName,
640
+ from: activeElementIndex,
641
+ to: nextElementIndex
642
+ });
552
643
  }
553
644
 
554
645
  if (isCycling) {
@@ -557,52 +648,49 @@
557
648
  } // Static
558
649
  ;
559
650
 
560
- Carousel._jQueryInterface = function _jQueryInterface(config) {
561
- return this.each(function () {
562
- var data = $(this).data(DATA_KEY);
651
+ Carousel.carouselInterface = function carouselInterface(element, config) {
652
+ var data = Data__default['default'].getData(element, DATA_KEY);
563
653
 
564
- var _config = _objectSpread2(_objectSpread2({}, Default), $(this).data());
654
+ var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element));
565
655
 
566
- if (typeof config === 'object') {
567
- _config = _objectSpread2(_objectSpread2({}, _config), config);
568
- }
656
+ if (typeof config === 'object') {
657
+ _config = _extends({}, _config, config);
658
+ }
569
659
 
570
- var action = typeof config === 'string' ? config : _config.slide;
660
+ var action = typeof config === 'string' ? config : _config.slide;
571
661
 
572
- if (!data) {
573
- data = new Carousel(this, _config);
574
- $(this).data(DATA_KEY, data);
662
+ if (!data) {
663
+ data = new Carousel(element, _config);
664
+ }
665
+
666
+ if (typeof config === 'number') {
667
+ data.to(config);
668
+ } else if (typeof action === 'string') {
669
+ if (typeof data[action] === 'undefined') {
670
+ throw new TypeError("No method named \"" + action + "\"");
575
671
  }
576
672
 
577
- if (typeof config === 'number') {
578
- data.to(config);
579
- } else if (typeof action === 'string') {
580
- if (typeof data[action] === 'undefined') {
581
- throw new TypeError("No method named \"" + action + "\"");
582
- }
673
+ data[action]();
674
+ } else if (_config.interval && _config.ride) {
675
+ data.pause();
676
+ data.cycle();
677
+ }
678
+ };
583
679
 
584
- data[action]();
585
- } else if (_config.interval && _config.ride) {
586
- data.pause();
587
- data.cycle();
588
- }
680
+ Carousel.jQueryInterface = function jQueryInterface(config) {
681
+ return this.each(function () {
682
+ Carousel.carouselInterface(this, config);
589
683
  });
590
684
  };
591
685
 
592
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
593
- var selector = Util.getSelectorFromElement(this);
686
+ Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
687
+ var target = getElementFromSelector(this);
594
688
 
595
- if (!selector) {
689
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
596
690
  return;
597
691
  }
598
692
 
599
- var target = $(selector)[0];
600
-
601
- if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {
602
- return;
603
- }
604
-
605
- var config = _objectSpread2(_objectSpread2({}, $(target).data()), $(this).data());
693
+ var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
606
694
 
607
695
  var slideIndex = this.getAttribute('data-slide-to');
608
696
 
@@ -610,15 +698,19 @@
610
698
  config.interval = false;
611
699
  }
612
700
 
613
- Carousel._jQueryInterface.call($(target), config);
701
+ Carousel.carouselInterface(target, config);
614
702
 
615
703
  if (slideIndex) {
616
- $(target).data(DATA_KEY).to(slideIndex);
704
+ Data__default['default'].getData(target, DATA_KEY).to(slideIndex);
617
705
  }
618
706
 
619
707
  event.preventDefault();
620
708
  };
621
709
 
710
+ Carousel.getInstance = function getInstance(element) {
711
+ return Data__default['default'].getData(element, DATA_KEY);
712
+ };
713
+
622
714
  _createClass(Carousel, null, [{
623
715
  key: "VERSION",
624
716
  get: function get() {
@@ -640,29 +732,36 @@
640
732
  */
641
733
 
642
734
 
643
- $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);
644
- $(window).on(EVENT_LOAD_DATA_API, function () {
645
- var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));
735
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
736
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
737
+ var carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);
646
738
 
647
739
  for (var i = 0, len = carousels.length; i < len; i++) {
648
- var $carousel = $(carousels[i]);
649
-
650
- Carousel._jQueryInterface.call($carousel, $carousel.data());
740
+ Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY));
651
741
  }
652
742
  });
653
743
  /**
654
744
  * ------------------------------------------------------------------------
655
745
  * jQuery
656
746
  * ------------------------------------------------------------------------
747
+ * add .Carousel to jQuery only if jQuery is present
657
748
  */
658
749
 
659
- $.fn[NAME] = Carousel._jQueryInterface;
660
- $.fn[NAME].Constructor = Carousel;
750
+ onDOMContentLoaded(function () {
751
+ var $ = getjQuery();
752
+ /* istanbul ignore if */
661
753
 
662
- $.fn[NAME].noConflict = function () {
663
- $.fn[NAME] = JQUERY_NO_CONFLICT;
664
- return Carousel._jQueryInterface;
665
- };
754
+ if ($) {
755
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
756
+ $.fn[NAME] = Carousel.jQueryInterface;
757
+ $.fn[NAME].Constructor = Carousel;
758
+
759
+ $.fn[NAME].noConflict = function () {
760
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
761
+ return Carousel.jQueryInterface;
762
+ };
763
+ }
764
+ });
666
765
 
667
766
  return Carousel;
668
767