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