bootstrap 4.6.0 → 5.0.0.alpha1

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