bootstrap 4.5.2 → 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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +12 -8
- data/assets/javascripts/bootstrap.js +1876 -1220
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +133 -48
- data/assets/javascripts/bootstrap/button.js +56 -123
- data/assets/javascripts/bootstrap/carousel.js +268 -129
- data/assets/javascripts/bootstrap/collapse.js +285 -106
- data/assets/javascripts/bootstrap/dom/data.js +81 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +311 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +100 -0
- data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
- data/assets/javascripts/bootstrap/dropdown.js +235 -161
- data/assets/javascripts/bootstrap/modal.js +322 -193
- data/assets/javascripts/bootstrap/popover.js +72 -41
- data/assets/javascripts/bootstrap/scrollspy.js +151 -56
- data/assets/javascripts/bootstrap/tab.js +151 -64
- data/assets/javascripts/bootstrap/toast.js +163 -65
- data/assets/javascripts/bootstrap/tooltip.js +336 -155
- data/assets/stylesheets/_bootstrap-grid.scss +51 -15
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
- data/assets/stylesheets/_bootstrap.scss +14 -8
- data/assets/stylesheets/bootstrap/_alert.scss +3 -3
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
- data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
- data/assets/stylesheets/bootstrap/_buttons.scss +27 -45
- data/assets/stylesheets/bootstrap/_card.scss +18 -64
- data/assets/stylesheets/bootstrap/_carousel.scss +13 -15
- data/assets/stylesheets/bootstrap/_close.scss +9 -13
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +10 -7
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +82 -20
- data/assets/stylesheets/bootstrap/_grid.scss +3 -54
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +6 -3
- data/assets/stylesheets/bootstrap/_mixins.scss +6 -12
- data/assets/stylesheets/bootstrap/_modal.scss +34 -39
- data/assets/stylesheets/bootstrap/_nav.scss +8 -8
- data/assets/stylesheets/bootstrap/_navbar.scss +42 -74
- data/assets/stylesheets/bootstrap/_pagination.scss +7 -20
- data/assets/stylesheets/bootstrap/_popover.scss +5 -5
- data/assets/stylesheets/bootstrap/_progress.scss +2 -4
- data/assets/stylesheets/bootstrap/_reboot.scss +300 -164
- data/assets/stylesheets/bootstrap/_root.scss +5 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +2 -2
- data/assets/stylesheets/bootstrap/_tables.scss +80 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +2 -4
- data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +503 -18
- data/assets/stylesheets/bootstrap/_variables.scss +544 -424
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +142 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +116 -0
- data/assets/stylesheets/bootstrap/forms/_form-file.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +136 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +82 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +140 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_embed.scss +31 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_screenreaders.scss +8 -0
- data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -4
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -8
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +62 -47
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +22 -67
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +84 -32
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +16 -22
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +3 -3
- metadata +31 -39
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -523
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -141
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
|
@@ -1,18 +1,147 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap carousel.js
|
|
2
|
+
* Bootstrap carousel.js v5.0.0-alpha1 (https://getbootstrap.com/)
|
|
3
3
|
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['
|
|
9
|
-
(global =
|
|
10
|
-
}(this, (function (
|
|
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
11
|
|
|
12
|
-
|
|
13
|
-
|
|
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;
|
|
14
16
|
|
|
15
|
-
|
|
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;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var getSelector = function getSelector(element) {
|
|
35
|
+
var selector = element.getAttribute('data-target');
|
|
36
|
+
|
|
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);
|
|
95
|
+
}
|
|
96
|
+
}, emulatedDuration);
|
|
97
|
+
};
|
|
98
|
+
|
|
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);
|
|
104
|
+
|
|
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; }
|
|
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; }
|
|
16
145
|
|
|
17
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); } }
|
|
18
147
|
|
|
@@ -24,15 +153,12 @@
|
|
|
24
153
|
*/
|
|
25
154
|
|
|
26
155
|
var NAME = 'carousel';
|
|
27
|
-
var VERSION = '
|
|
156
|
+
var VERSION = '5.0.0-alpha1';
|
|
28
157
|
var DATA_KEY = 'bs.carousel';
|
|
29
158
|
var EVENT_KEY = "." + DATA_KEY;
|
|
30
159
|
var DATA_API_KEY = '.data-api';
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
|
|
35
|
-
|
|
160
|
+
var ARROW_LEFT_KEY = 'ArrowLeft';
|
|
161
|
+
var ARROW_RIGHT_KEY = 'ArrowRight';
|
|
36
162
|
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
|
|
37
163
|
|
|
38
164
|
var SWIPE_THRESHOLD = 40;
|
|
@@ -107,11 +233,13 @@
|
|
|
107
233
|
this.touchDeltaX = 0;
|
|
108
234
|
this._config = this._getConfig(config);
|
|
109
235
|
this._element = element;
|
|
110
|
-
this._indicatorsElement = this._element
|
|
236
|
+
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
|
|
111
237
|
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
|
|
112
|
-
this._pointerEvent = Boolean(window.PointerEvent
|
|
238
|
+
this._pointerEvent = Boolean(window.PointerEvent);
|
|
113
239
|
|
|
114
240
|
this._addEventListeners();
|
|
241
|
+
|
|
242
|
+
Data.setData(element, DATA_KEY, this);
|
|
115
243
|
} // Getters
|
|
116
244
|
|
|
117
245
|
|
|
@@ -127,7 +255,7 @@
|
|
|
127
255
|
_proto.nextWhenVisible = function nextWhenVisible() {
|
|
128
256
|
// Don't call next when the page isn't visible
|
|
129
257
|
// or the carousel or its parent isn't visible
|
|
130
|
-
if (!document.hidden &&
|
|
258
|
+
if (!document.hidden && isVisible(this._element)) {
|
|
131
259
|
this.next();
|
|
132
260
|
}
|
|
133
261
|
};
|
|
@@ -143,8 +271,8 @@
|
|
|
143
271
|
this._isPaused = true;
|
|
144
272
|
}
|
|
145
273
|
|
|
146
|
-
if (this._element
|
|
147
|
-
|
|
274
|
+
if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {
|
|
275
|
+
triggerTransitionEnd(this._element);
|
|
148
276
|
this.cycle(true);
|
|
149
277
|
}
|
|
150
278
|
|
|
@@ -162,7 +290,7 @@
|
|
|
162
290
|
this._interval = null;
|
|
163
291
|
}
|
|
164
292
|
|
|
165
|
-
if (this._config.interval && !this._isPaused) {
|
|
293
|
+
if (this._config && this._config.interval && !this._isPaused) {
|
|
166
294
|
this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
|
|
167
295
|
}
|
|
168
296
|
};
|
|
@@ -170,7 +298,7 @@
|
|
|
170
298
|
_proto.to = function to(index) {
|
|
171
299
|
var _this = this;
|
|
172
300
|
|
|
173
|
-
this._activeElement = this._element
|
|
301
|
+
this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
|
|
174
302
|
|
|
175
303
|
var activeIndex = this._getItemIndex(this._activeElement);
|
|
176
304
|
|
|
@@ -179,7 +307,7 @@
|
|
|
179
307
|
}
|
|
180
308
|
|
|
181
309
|
if (this._isSliding) {
|
|
182
|
-
|
|
310
|
+
EventHandler.one(this._element, EVENT_SLID, function () {
|
|
183
311
|
return _this.to(index);
|
|
184
312
|
});
|
|
185
313
|
return;
|
|
@@ -197,8 +325,8 @@
|
|
|
197
325
|
};
|
|
198
326
|
|
|
199
327
|
_proto.dispose = function dispose() {
|
|
200
|
-
|
|
201
|
-
|
|
328
|
+
EventHandler.off(this._element, EVENT_KEY);
|
|
329
|
+
Data.removeData(this._element, DATA_KEY);
|
|
202
330
|
this._items = null;
|
|
203
331
|
this._config = null;
|
|
204
332
|
this._element = null;
|
|
@@ -211,8 +339,8 @@
|
|
|
211
339
|
;
|
|
212
340
|
|
|
213
341
|
_proto._getConfig = function _getConfig(config) {
|
|
214
|
-
config =
|
|
215
|
-
|
|
342
|
+
config = _objectSpread(_objectSpread({}, Default), config);
|
|
343
|
+
typeCheckConfig(NAME, config, DefaultType);
|
|
216
344
|
return config;
|
|
217
345
|
};
|
|
218
346
|
|
|
@@ -240,20 +368,21 @@
|
|
|
240
368
|
var _this2 = this;
|
|
241
369
|
|
|
242
370
|
if (this._config.keyboard) {
|
|
243
|
-
|
|
371
|
+
EventHandler.on(this._element, EVENT_KEYDOWN, function (event) {
|
|
244
372
|
return _this2._keydown(event);
|
|
245
373
|
});
|
|
246
374
|
}
|
|
247
375
|
|
|
248
376
|
if (this._config.pause === 'hover') {
|
|
249
|
-
|
|
377
|
+
EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) {
|
|
250
378
|
return _this2.pause(event);
|
|
251
|
-
})
|
|
379
|
+
});
|
|
380
|
+
EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) {
|
|
252
381
|
return _this2.cycle(event);
|
|
253
382
|
});
|
|
254
383
|
}
|
|
255
384
|
|
|
256
|
-
if (this._config.touch) {
|
|
385
|
+
if (this._config.touch && this._touchSupported) {
|
|
257
386
|
this._addTouchEventListeners();
|
|
258
387
|
}
|
|
259
388
|
};
|
|
@@ -261,30 +390,26 @@
|
|
|
261
390
|
_proto._addTouchEventListeners = function _addTouchEventListeners() {
|
|
262
391
|
var _this3 = this;
|
|
263
392
|
|
|
264
|
-
if (!this._touchSupported) {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
393
|
var start = function start(event) {
|
|
269
|
-
if (_this3._pointerEvent && PointerType[event.
|
|
270
|
-
_this3.touchStartX = event.
|
|
394
|
+
if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
|
|
395
|
+
_this3.touchStartX = event.clientX;
|
|
271
396
|
} else if (!_this3._pointerEvent) {
|
|
272
|
-
_this3.touchStartX = event.
|
|
397
|
+
_this3.touchStartX = event.touches[0].clientX;
|
|
273
398
|
}
|
|
274
399
|
};
|
|
275
400
|
|
|
276
401
|
var move = function move(event) {
|
|
277
402
|
// ensure swiping with one touch and not pinching
|
|
278
|
-
if (event.
|
|
403
|
+
if (event.touches && event.touches.length > 1) {
|
|
279
404
|
_this3.touchDeltaX = 0;
|
|
280
405
|
} else {
|
|
281
|
-
_this3.touchDeltaX = event.
|
|
406
|
+
_this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX;
|
|
282
407
|
}
|
|
283
408
|
};
|
|
284
409
|
|
|
285
410
|
var end = function end(event) {
|
|
286
|
-
if (_this3._pointerEvent && PointerType[event.
|
|
287
|
-
_this3.touchDeltaX = event.
|
|
411
|
+
if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
|
|
412
|
+
_this3.touchDeltaX = event.clientX - _this3.touchStartX;
|
|
288
413
|
}
|
|
289
414
|
|
|
290
415
|
_this3._handleSwipe();
|
|
@@ -309,27 +434,29 @@
|
|
|
309
434
|
}
|
|
310
435
|
};
|
|
311
436
|
|
|
312
|
-
|
|
313
|
-
|
|
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
|
+
});
|
|
314
441
|
});
|
|
315
442
|
|
|
316
443
|
if (this._pointerEvent) {
|
|
317
|
-
|
|
444
|
+
EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) {
|
|
318
445
|
return start(event);
|
|
319
446
|
});
|
|
320
|
-
|
|
447
|
+
EventHandler.on(this._element, EVENT_POINTERUP, function (event) {
|
|
321
448
|
return end(event);
|
|
322
449
|
});
|
|
323
450
|
|
|
324
451
|
this._element.classList.add(CLASS_NAME_POINTER_EVENT);
|
|
325
452
|
} else {
|
|
326
|
-
|
|
453
|
+
EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) {
|
|
327
454
|
return start(event);
|
|
328
455
|
});
|
|
329
|
-
|
|
456
|
+
EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) {
|
|
330
457
|
return move(event);
|
|
331
458
|
});
|
|
332
|
-
|
|
459
|
+
EventHandler.on(this._element, EVENT_TOUCHEND, function (event) {
|
|
333
460
|
return end(event);
|
|
334
461
|
});
|
|
335
462
|
}
|
|
@@ -340,13 +467,13 @@
|
|
|
340
467
|
return;
|
|
341
468
|
}
|
|
342
469
|
|
|
343
|
-
switch (event.
|
|
344
|
-
case
|
|
470
|
+
switch (event.key) {
|
|
471
|
+
case ARROW_LEFT_KEY:
|
|
345
472
|
event.preventDefault();
|
|
346
473
|
this.prev();
|
|
347
474
|
break;
|
|
348
475
|
|
|
349
|
-
case
|
|
476
|
+
case ARROW_RIGHT_KEY:
|
|
350
477
|
event.preventDefault();
|
|
351
478
|
this.next();
|
|
352
479
|
break;
|
|
@@ -354,7 +481,7 @@
|
|
|
354
481
|
};
|
|
355
482
|
|
|
356
483
|
_proto._getItemIndex = function _getItemIndex(element) {
|
|
357
|
-
this._items = element && element.parentNode ?
|
|
484
|
+
this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];
|
|
358
485
|
return this._items.indexOf(element);
|
|
359
486
|
};
|
|
360
487
|
|
|
@@ -379,27 +506,28 @@
|
|
|
379
506
|
_proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
|
|
380
507
|
var targetIndex = this._getItemIndex(relatedTarget);
|
|
381
508
|
|
|
382
|
-
var fromIndex = this._getItemIndex(this._element
|
|
509
|
+
var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element));
|
|
383
510
|
|
|
384
|
-
|
|
511
|
+
return EventHandler.trigger(this._element, EVENT_SLIDE, {
|
|
385
512
|
relatedTarget: relatedTarget,
|
|
386
513
|
direction: eventDirectionName,
|
|
387
514
|
from: fromIndex,
|
|
388
515
|
to: targetIndex
|
|
389
516
|
});
|
|
390
|
-
$(this._element).trigger(slideEvent);
|
|
391
|
-
return slideEvent;
|
|
392
517
|
};
|
|
393
518
|
|
|
394
519
|
_proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
|
|
395
520
|
if (this._indicatorsElement) {
|
|
396
|
-
var indicators =
|
|
397
|
-
|
|
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
|
+
}
|
|
398
526
|
|
|
399
527
|
var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
|
|
400
528
|
|
|
401
529
|
if (nextIndicator) {
|
|
402
|
-
|
|
530
|
+
nextIndicator.classList.add(CLASS_NAME_ACTIVE);
|
|
403
531
|
}
|
|
404
532
|
}
|
|
405
533
|
};
|
|
@@ -407,7 +535,7 @@
|
|
|
407
535
|
_proto._slide = function _slide(direction, element) {
|
|
408
536
|
var _this4 = this;
|
|
409
537
|
|
|
410
|
-
var activeElement = this._element
|
|
538
|
+
var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
|
|
411
539
|
|
|
412
540
|
var activeElementIndex = this._getItemIndex(activeElement);
|
|
413
541
|
|
|
@@ -430,14 +558,14 @@
|
|
|
430
558
|
eventDirectionName = DIRECTION_RIGHT;
|
|
431
559
|
}
|
|
432
560
|
|
|
433
|
-
if (nextElement &&
|
|
561
|
+
if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {
|
|
434
562
|
this._isSliding = false;
|
|
435
563
|
return;
|
|
436
564
|
}
|
|
437
565
|
|
|
438
566
|
var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
|
|
439
567
|
|
|
440
|
-
if (slideEvent.
|
|
568
|
+
if (slideEvent.defaultPrevented) {
|
|
441
569
|
return;
|
|
442
570
|
}
|
|
443
571
|
|
|
@@ -454,18 +582,11 @@
|
|
|
454
582
|
|
|
455
583
|
this._setActiveIndicatorElement(nextElement);
|
|
456
584
|
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
});
|
|
463
|
-
|
|
464
|
-
if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {
|
|
465
|
-
$(nextElement).addClass(orderClassName);
|
|
466
|
-
Util.reflow(nextElement);
|
|
467
|
-
$(activeElement).addClass(directionalClassName);
|
|
468
|
-
$(nextElement).addClass(directionalClassName);
|
|
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);
|
|
469
590
|
var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
|
|
470
591
|
|
|
471
592
|
if (nextElementInterval) {
|
|
@@ -475,20 +596,32 @@
|
|
|
475
596
|
this._config.interval = this._config.defaultInterval || this._config.interval;
|
|
476
597
|
}
|
|
477
598
|
|
|
478
|
-
var transitionDuration =
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
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);
|
|
482
604
|
_this4._isSliding = false;
|
|
483
605
|
setTimeout(function () {
|
|
484
|
-
|
|
606
|
+
EventHandler.trigger(_this4._element, EVENT_SLID, {
|
|
607
|
+
relatedTarget: nextElement,
|
|
608
|
+
direction: eventDirectionName,
|
|
609
|
+
from: activeElementIndex,
|
|
610
|
+
to: nextElementIndex
|
|
611
|
+
});
|
|
485
612
|
}, 0);
|
|
486
|
-
})
|
|
613
|
+
});
|
|
614
|
+
emulateTransitionEnd(activeElement, transitionDuration);
|
|
487
615
|
} else {
|
|
488
|
-
|
|
489
|
-
|
|
616
|
+
activeElement.classList.remove(CLASS_NAME_ACTIVE);
|
|
617
|
+
nextElement.classList.add(CLASS_NAME_ACTIVE);
|
|
490
618
|
this._isSliding = false;
|
|
491
|
-
|
|
619
|
+
EventHandler.trigger(this._element, EVENT_SLID, {
|
|
620
|
+
relatedTarget: nextElement,
|
|
621
|
+
direction: eventDirectionName,
|
|
622
|
+
from: activeElementIndex,
|
|
623
|
+
to: nextElementIndex
|
|
624
|
+
});
|
|
492
625
|
}
|
|
493
626
|
|
|
494
627
|
if (isCycling) {
|
|
@@ -497,52 +630,49 @@
|
|
|
497
630
|
} // Static
|
|
498
631
|
;
|
|
499
632
|
|
|
500
|
-
Carousel.
|
|
501
|
-
|
|
502
|
-
var data = $(this).data(DATA_KEY);
|
|
633
|
+
Carousel.carouselInterface = function carouselInterface(element, config) {
|
|
634
|
+
var data = Data.getData(element, DATA_KEY);
|
|
503
635
|
|
|
504
|
-
|
|
636
|
+
var _config = _objectSpread(_objectSpread({}, Default), Manipulator.getDataAttributes(element));
|
|
505
637
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
638
|
+
if (typeof config === 'object') {
|
|
639
|
+
_config = _objectSpread(_objectSpread({}, _config), config);
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
var action = typeof config === 'string' ? config : _config.slide;
|
|
509
643
|
|
|
510
|
-
|
|
644
|
+
if (!data) {
|
|
645
|
+
data = new Carousel(element, _config);
|
|
646
|
+
}
|
|
511
647
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
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 + "\"");
|
|
515
653
|
}
|
|
516
654
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
655
|
+
data[action]();
|
|
656
|
+
} else if (_config.interval && _config.ride) {
|
|
657
|
+
data.pause();
|
|
658
|
+
data.cycle();
|
|
659
|
+
}
|
|
660
|
+
};
|
|
523
661
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
data.cycle();
|
|
528
|
-
}
|
|
662
|
+
Carousel.jQueryInterface = function jQueryInterface(config) {
|
|
663
|
+
return this.each(function () {
|
|
664
|
+
Carousel.carouselInterface(this, config);
|
|
529
665
|
});
|
|
530
666
|
};
|
|
531
667
|
|
|
532
|
-
Carousel.
|
|
533
|
-
var
|
|
668
|
+
Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
|
|
669
|
+
var target = getElementFromSelector(this);
|
|
534
670
|
|
|
535
|
-
if (!
|
|
671
|
+
if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
|
|
536
672
|
return;
|
|
537
673
|
}
|
|
538
674
|
|
|
539
|
-
var
|
|
540
|
-
|
|
541
|
-
if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {
|
|
542
|
-
return;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
var config = _extends({}, $(target).data(), $(this).data());
|
|
675
|
+
var config = _objectSpread(_objectSpread({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
|
|
546
676
|
|
|
547
677
|
var slideIndex = this.getAttribute('data-slide-to');
|
|
548
678
|
|
|
@@ -550,15 +680,19 @@
|
|
|
550
680
|
config.interval = false;
|
|
551
681
|
}
|
|
552
682
|
|
|
553
|
-
Carousel.
|
|
683
|
+
Carousel.carouselInterface(target, config);
|
|
554
684
|
|
|
555
685
|
if (slideIndex) {
|
|
556
|
-
|
|
686
|
+
Data.getData(target, DATA_KEY).to(slideIndex);
|
|
557
687
|
}
|
|
558
688
|
|
|
559
689
|
event.preventDefault();
|
|
560
690
|
};
|
|
561
691
|
|
|
692
|
+
Carousel.getInstance = function getInstance(element) {
|
|
693
|
+
return Data.getData(element, DATA_KEY);
|
|
694
|
+
};
|
|
695
|
+
|
|
562
696
|
_createClass(Carousel, null, [{
|
|
563
697
|
key: "VERSION",
|
|
564
698
|
get: function get() {
|
|
@@ -580,29 +714,34 @@
|
|
|
580
714
|
*/
|
|
581
715
|
|
|
582
716
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
var carousels =
|
|
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);
|
|
586
720
|
|
|
587
721
|
for (var i = 0, len = carousels.length; i < len; i++) {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
Carousel._jQueryInterface.call($carousel, $carousel.data());
|
|
722
|
+
Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY));
|
|
591
723
|
}
|
|
592
724
|
});
|
|
725
|
+
var $ = getjQuery();
|
|
593
726
|
/**
|
|
594
727
|
* ------------------------------------------------------------------------
|
|
595
728
|
* jQuery
|
|
596
729
|
* ------------------------------------------------------------------------
|
|
730
|
+
* add .carousel to jQuery only if jQuery is present
|
|
597
731
|
*/
|
|
598
732
|
|
|
599
|
-
|
|
600
|
-
$.fn[NAME].Constructor = Carousel;
|
|
733
|
+
/* istanbul ignore if */
|
|
601
734
|
|
|
602
|
-
|
|
603
|
-
$.fn[NAME]
|
|
604
|
-
|
|
605
|
-
|
|
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
|
+
}
|
|
606
745
|
|
|
607
746
|
return Carousel;
|
|
608
747
|
|