bootstrap 4.6.0 → 5.0.0.beta2
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 +2 -1
- data/README.md +7 -4
- data/assets/javascripts/bootstrap-global-this-define.js +6 -0
- data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
- data/assets/javascripts/bootstrap-sprockets.js +14 -8
- data/assets/javascripts/bootstrap.js +2152 -1633
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +179 -64
- data/assets/javascripts/bootstrap/base-component.js +75 -0
- data/assets/javascripts/bootstrap/button.js +94 -143
- data/assets/javascripts/bootstrap/carousel.js +386 -202
- data/assets/javascripts/bootstrap/collapse.js +349 -132
- data/assets/javascripts/bootstrap/dom/data.js +81 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +310 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +86 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +93 -0
- data/assets/javascripts/bootstrap/dropdown.js +387 -224
- data/assets/javascripts/bootstrap/modal.js +391 -220
- data/assets/javascripts/bootstrap/popover.js +94 -49
- data/assets/javascripts/bootstrap/scrollspy.js +212 -80
- data/assets/javascripts/bootstrap/tab.js +198 -79
- data/assets/javascripts/bootstrap/toast.js +211 -78
- data/assets/javascripts/bootstrap/tooltip.js +558 -300
- data/assets/stylesheets/_bootstrap-grid.scss +51 -16
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
- data/assets/stylesheets/_bootstrap.scss +15 -8
- data/assets/stylesheets/bootstrap/_accordion.scss +126 -0
- data/assets/stylesheets/bootstrap/_alert.scss +15 -10
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
- data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
- data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
- data/assets/stylesheets/bootstrap/_card.scss +21 -92
- data/assets/stylesheets/bootstrap/_carousel.scss +65 -33
- data/assets/stylesheets/bootstrap/_close.scss +30 -30
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +95 -38
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +84 -23
- data/assets/stylesheets/bootstrap/_grid.scss +3 -54
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +17 -8
- data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
- data/assets/stylesheets/bootstrap/_modal.scss +41 -46
- data/assets/stylesheets/bootstrap/_nav.scss +16 -4
- data/assets/stylesheets/bootstrap/_navbar.scss +43 -71
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
- data/assets/stylesheets/bootstrap/_popover.scss +15 -27
- data/assets/stylesheets/bootstrap/_progress.scss +2 -4
- data/assets/stylesheets/bootstrap/_reboot.scss +314 -163
- data/assets/stylesheets/bootstrap/_root.scss +5 -8
- data/assets/stylesheets/bootstrap/_spinners.scss +5 -5
- data/assets/stylesheets/bootstrap/_tables.scss +79 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +20 -15
- data/assets/stylesheets/bootstrap/_tooltip.scss +17 -17
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +566 -18
- data/assets/stylesheets/bootstrap/_variables.scss +673 -463
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +67 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -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/_position.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -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/helpers/_visually-hidden.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -5
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -47
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
- 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 +27 -88
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +83 -32
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
- 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/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
- data/bootstrap.gemspec +1 -3
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +20 -5
- data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
- data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
- data/test/dummy_rails/app/views/pages/root.html +89 -0
- data/test/dummy_rails/config/application.rb +0 -3
- data/test/gemfiles/rails_6_1.gemfile +7 -0
- metadata +44 -75
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -208
- 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/_screen-reader.scss +0 -34
- 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
- data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap carousel.js
|
|
2
|
+
* Bootstrap carousel.js v5.0.0-beta2 (https://getbootstrap.com/)
|
|
3
3
|
* Copyright 2011-2021 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 = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(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'), require('./base-component.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
|
|
10
|
+
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
|
|
11
11
|
|
|
12
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
13
|
|
|
14
|
-
var
|
|
15
|
-
var
|
|
14
|
+
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
+
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
17
|
+
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
18
|
+
var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
16
19
|
|
|
17
20
|
function _defineProperties(target, props) {
|
|
18
21
|
for (var i = 0; i < props.length; i++) {
|
|
@@ -48,6 +51,186 @@
|
|
|
48
51
|
return _extends.apply(this, arguments);
|
|
49
52
|
}
|
|
50
53
|
|
|
54
|
+
function _inheritsLoose(subClass, superClass) {
|
|
55
|
+
subClass.prototype = Object.create(superClass.prototype);
|
|
56
|
+
subClass.prototype.constructor = subClass;
|
|
57
|
+
|
|
58
|
+
_setPrototypeOf(subClass, superClass);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function _setPrototypeOf(o, p) {
|
|
62
|
+
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
63
|
+
o.__proto__ = p;
|
|
64
|
+
return o;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
return _setPrototypeOf(o, p);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* --------------------------------------------------------------------------
|
|
72
|
+
* Bootstrap (v5.0.0-beta2): util/index.js
|
|
73
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
74
|
+
* --------------------------------------------------------------------------
|
|
75
|
+
*/
|
|
76
|
+
var MILLISECONDS_MULTIPLIER = 1000;
|
|
77
|
+
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
|
78
|
+
|
|
79
|
+
var toType = function toType(obj) {
|
|
80
|
+
if (obj === null || obj === undefined) {
|
|
81
|
+
return "" + obj;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
var getSelector = function getSelector(element) {
|
|
88
|
+
var selector = element.getAttribute('data-bs-target');
|
|
89
|
+
|
|
90
|
+
if (!selector || selector === '#') {
|
|
91
|
+
var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
|
|
92
|
+
// so everything starting with `#` or `.`. If a "real" URL is used as the selector,
|
|
93
|
+
// `document.querySelector` will rightfully complain it is invalid.
|
|
94
|
+
// See https://github.com/twbs/bootstrap/issues/32273
|
|
95
|
+
|
|
96
|
+
if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
|
|
97
|
+
return null;
|
|
98
|
+
} // Just in case some CMS puts out a full URL with the anchor appended
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
|
|
102
|
+
hrefAttr = '#' + hrefAttr.split('#')[1];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return selector;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
var getElementFromSelector = function getElementFromSelector(element) {
|
|
112
|
+
var selector = getSelector(element);
|
|
113
|
+
return selector ? document.querySelector(selector) : null;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
|
|
117
|
+
if (!element) {
|
|
118
|
+
return 0;
|
|
119
|
+
} // Get transition-duration of the element
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
var _window$getComputedSt = window.getComputedStyle(element),
|
|
123
|
+
transitionDuration = _window$getComputedSt.transitionDuration,
|
|
124
|
+
transitionDelay = _window$getComputedSt.transitionDelay;
|
|
125
|
+
|
|
126
|
+
var floatTransitionDuration = Number.parseFloat(transitionDuration);
|
|
127
|
+
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
|
|
128
|
+
|
|
129
|
+
if (!floatTransitionDuration && !floatTransitionDelay) {
|
|
130
|
+
return 0;
|
|
131
|
+
} // If multiple durations are defined, take the first
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
transitionDuration = transitionDuration.split(',')[0];
|
|
135
|
+
transitionDelay = transitionDelay.split(',')[0];
|
|
136
|
+
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
var triggerTransitionEnd = function triggerTransitionEnd(element) {
|
|
140
|
+
element.dispatchEvent(new Event(TRANSITION_END));
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
var isElement = function isElement(obj) {
|
|
144
|
+
return (obj[0] || obj).nodeType;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
|
|
148
|
+
var called = false;
|
|
149
|
+
var durationPadding = 5;
|
|
150
|
+
var emulatedDuration = duration + durationPadding;
|
|
151
|
+
|
|
152
|
+
function listener() {
|
|
153
|
+
called = true;
|
|
154
|
+
element.removeEventListener(TRANSITION_END, listener);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
element.addEventListener(TRANSITION_END, listener);
|
|
158
|
+
setTimeout(function () {
|
|
159
|
+
if (!called) {
|
|
160
|
+
triggerTransitionEnd(element);
|
|
161
|
+
}
|
|
162
|
+
}, emulatedDuration);
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
|
|
166
|
+
Object.keys(configTypes).forEach(function (property) {
|
|
167
|
+
var expectedTypes = configTypes[property];
|
|
168
|
+
var value = config[property];
|
|
169
|
+
var valueType = value && isElement(value) ? 'element' : toType(value);
|
|
170
|
+
|
|
171
|
+
if (!new RegExp(expectedTypes).test(valueType)) {
|
|
172
|
+
throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
var isVisible = function isVisible(element) {
|
|
178
|
+
if (!element) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (element.style && element.parentNode && element.parentNode.style) {
|
|
183
|
+
var elementStyle = getComputedStyle(element);
|
|
184
|
+
var parentNodeStyle = getComputedStyle(element.parentNode);
|
|
185
|
+
return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return false;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
var reflow = function reflow(element) {
|
|
192
|
+
return element.offsetHeight;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
var getjQuery = function getjQuery() {
|
|
196
|
+
var _window = window,
|
|
197
|
+
jQuery = _window.jQuery;
|
|
198
|
+
|
|
199
|
+
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
|
|
200
|
+
return jQuery;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
return null;
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
|
|
207
|
+
if (document.readyState === 'loading') {
|
|
208
|
+
document.addEventListener('DOMContentLoaded', callback);
|
|
209
|
+
} else {
|
|
210
|
+
callback();
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
var isRTL = document.documentElement.dir === 'rtl';
|
|
215
|
+
|
|
216
|
+
var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
|
|
217
|
+
onDOMContentLoaded(function () {
|
|
218
|
+
var $ = getjQuery();
|
|
219
|
+
/* istanbul ignore if */
|
|
220
|
+
|
|
221
|
+
if ($) {
|
|
222
|
+
var JQUERY_NO_CONFLICT = $.fn[name];
|
|
223
|
+
$.fn[name] = plugin.jQueryInterface;
|
|
224
|
+
$.fn[name].Constructor = plugin;
|
|
225
|
+
|
|
226
|
+
$.fn[name].noConflict = function () {
|
|
227
|
+
$.fn[name] = JQUERY_NO_CONFLICT;
|
|
228
|
+
return plugin.jQueryInterface;
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
|
|
51
234
|
/**
|
|
52
235
|
* ------------------------------------------------------------------------
|
|
53
236
|
* Constants
|
|
@@ -55,15 +238,11 @@
|
|
|
55
238
|
*/
|
|
56
239
|
|
|
57
240
|
var NAME = 'carousel';
|
|
58
|
-
var VERSION = '4.6.0';
|
|
59
241
|
var DATA_KEY = 'bs.carousel';
|
|
60
242
|
var EVENT_KEY = "." + DATA_KEY;
|
|
61
243
|
var DATA_API_KEY = '.data-api';
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
|
|
65
|
-
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
|
|
66
|
-
|
|
244
|
+
var ARROW_LEFT_KEY = 'ArrowLeft';
|
|
245
|
+
var ARROW_RIGHT_KEY = 'ArrowRight';
|
|
67
246
|
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
|
|
68
247
|
|
|
69
248
|
var SWIPE_THRESHOLD = 40;
|
|
@@ -103,8 +282,8 @@
|
|
|
103
282
|
var CLASS_NAME_CAROUSEL = 'carousel';
|
|
104
283
|
var CLASS_NAME_ACTIVE = 'active';
|
|
105
284
|
var CLASS_NAME_SLIDE = 'slide';
|
|
106
|
-
var
|
|
107
|
-
var
|
|
285
|
+
var CLASS_NAME_END = 'carousel-item-end';
|
|
286
|
+
var CLASS_NAME_START = 'carousel-item-start';
|
|
108
287
|
var CLASS_NAME_NEXT = 'carousel-item-next';
|
|
109
288
|
var CLASS_NAME_PREV = 'carousel-item-prev';
|
|
110
289
|
var CLASS_NAME_POINTER_EVENT = 'pointer-event';
|
|
@@ -114,35 +293,40 @@
|
|
|
114
293
|
var SELECTOR_ITEM_IMG = '.carousel-item img';
|
|
115
294
|
var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
|
|
116
295
|
var SELECTOR_INDICATORS = '.carousel-indicators';
|
|
117
|
-
var
|
|
118
|
-
var
|
|
119
|
-
var
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
};
|
|
296
|
+
var SELECTOR_INDICATOR = '[data-bs-target]';
|
|
297
|
+
var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
|
|
298
|
+
var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
|
|
299
|
+
var POINTER_TYPE_TOUCH = 'touch';
|
|
300
|
+
var POINTER_TYPE_PEN = 'pen';
|
|
123
301
|
/**
|
|
124
302
|
* ------------------------------------------------------------------------
|
|
125
303
|
* Class Definition
|
|
126
304
|
* ------------------------------------------------------------------------
|
|
127
305
|
*/
|
|
128
306
|
|
|
129
|
-
var Carousel = /*#__PURE__*/function () {
|
|
307
|
+
var Carousel = /*#__PURE__*/function (_BaseComponent) {
|
|
308
|
+
_inheritsLoose(Carousel, _BaseComponent);
|
|
309
|
+
|
|
130
310
|
function Carousel(element, config) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
311
|
+
var _this;
|
|
312
|
+
|
|
313
|
+
_this = _BaseComponent.call(this, element) || this;
|
|
314
|
+
_this._items = null;
|
|
315
|
+
_this._interval = null;
|
|
316
|
+
_this._activeElement = null;
|
|
317
|
+
_this._isPaused = false;
|
|
318
|
+
_this._isSliding = false;
|
|
319
|
+
_this.touchTimeout = null;
|
|
320
|
+
_this.touchStartX = 0;
|
|
321
|
+
_this.touchDeltaX = 0;
|
|
322
|
+
_this._config = _this._getConfig(config);
|
|
323
|
+
_this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, _this._element);
|
|
324
|
+
_this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
|
|
325
|
+
_this._pointerEvent = Boolean(window.PointerEvent);
|
|
326
|
+
|
|
327
|
+
_this._addEventListeners();
|
|
328
|
+
|
|
329
|
+
return _this;
|
|
146
330
|
} // Getters
|
|
147
331
|
|
|
148
332
|
|
|
@@ -156,10 +340,9 @@
|
|
|
156
340
|
};
|
|
157
341
|
|
|
158
342
|
_proto.nextWhenVisible = function nextWhenVisible() {
|
|
159
|
-
|
|
343
|
+
// Don't call next when the page isn't visible
|
|
160
344
|
// or the carousel or its parent isn't visible
|
|
161
|
-
|
|
162
|
-
if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {
|
|
345
|
+
if (!document.hidden && isVisible(this._element)) {
|
|
163
346
|
this.next();
|
|
164
347
|
}
|
|
165
348
|
};
|
|
@@ -175,8 +358,8 @@
|
|
|
175
358
|
this._isPaused = true;
|
|
176
359
|
}
|
|
177
360
|
|
|
178
|
-
if (this._element
|
|
179
|
-
|
|
361
|
+
if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {
|
|
362
|
+
triggerTransitionEnd(this._element);
|
|
180
363
|
this.cycle(true);
|
|
181
364
|
}
|
|
182
365
|
|
|
@@ -194,7 +377,7 @@
|
|
|
194
377
|
this._interval = null;
|
|
195
378
|
}
|
|
196
379
|
|
|
197
|
-
if (this._config.interval && !this._isPaused) {
|
|
380
|
+
if (this._config && this._config.interval && !this._isPaused) {
|
|
198
381
|
this._updateInterval();
|
|
199
382
|
|
|
200
383
|
this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
|
|
@@ -202,9 +385,9 @@
|
|
|
202
385
|
};
|
|
203
386
|
|
|
204
387
|
_proto.to = function to(index) {
|
|
205
|
-
var
|
|
388
|
+
var _this2 = this;
|
|
206
389
|
|
|
207
|
-
this._activeElement = this._element
|
|
390
|
+
this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
|
|
208
391
|
|
|
209
392
|
var activeIndex = this._getItemIndex(this._activeElement);
|
|
210
393
|
|
|
@@ -213,8 +396,8 @@
|
|
|
213
396
|
}
|
|
214
397
|
|
|
215
398
|
if (this._isSliding) {
|
|
216
|
-
|
|
217
|
-
return
|
|
399
|
+
EventHandler__default['default'].one(this._element, EVENT_SLID, function () {
|
|
400
|
+
return _this2.to(index);
|
|
218
401
|
});
|
|
219
402
|
return;
|
|
220
403
|
}
|
|
@@ -231,11 +414,11 @@
|
|
|
231
414
|
};
|
|
232
415
|
|
|
233
416
|
_proto.dispose = function dispose() {
|
|
234
|
-
|
|
235
|
-
|
|
417
|
+
_BaseComponent.prototype.dispose.call(this);
|
|
418
|
+
|
|
419
|
+
EventHandler__default['default'].off(this._element, EVENT_KEY);
|
|
236
420
|
this._items = null;
|
|
237
421
|
this._config = null;
|
|
238
|
-
this._element = null;
|
|
239
422
|
this._interval = null;
|
|
240
423
|
this._isPaused = null;
|
|
241
424
|
this._isSliding = null;
|
|
@@ -246,7 +429,7 @@
|
|
|
246
429
|
|
|
247
430
|
_proto._getConfig = function _getConfig(config) {
|
|
248
431
|
config = _extends({}, Default, config);
|
|
249
|
-
|
|
432
|
+
typeCheckConfig(NAME, config, DefaultType);
|
|
250
433
|
return config;
|
|
251
434
|
};
|
|
252
435
|
|
|
@@ -261,69 +444,74 @@
|
|
|
261
444
|
this.touchDeltaX = 0; // swipe left
|
|
262
445
|
|
|
263
446
|
if (direction > 0) {
|
|
264
|
-
|
|
447
|
+
if (isRTL) {
|
|
448
|
+
this.next();
|
|
449
|
+
} else {
|
|
450
|
+
this.prev();
|
|
451
|
+
}
|
|
265
452
|
} // swipe right
|
|
266
453
|
|
|
267
454
|
|
|
268
455
|
if (direction < 0) {
|
|
269
|
-
|
|
456
|
+
if (isRTL) {
|
|
457
|
+
this.prev();
|
|
458
|
+
} else {
|
|
459
|
+
this.next();
|
|
460
|
+
}
|
|
270
461
|
}
|
|
271
462
|
};
|
|
272
463
|
|
|
273
464
|
_proto._addEventListeners = function _addEventListeners() {
|
|
274
|
-
var
|
|
465
|
+
var _this3 = this;
|
|
275
466
|
|
|
276
467
|
if (this._config.keyboard) {
|
|
277
|
-
|
|
278
|
-
return
|
|
468
|
+
EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {
|
|
469
|
+
return _this3._keydown(event);
|
|
279
470
|
});
|
|
280
471
|
}
|
|
281
472
|
|
|
282
473
|
if (this._config.pause === 'hover') {
|
|
283
|
-
|
|
284
|
-
return
|
|
285
|
-
})
|
|
286
|
-
|
|
474
|
+
EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {
|
|
475
|
+
return _this3.pause(event);
|
|
476
|
+
});
|
|
477
|
+
EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {
|
|
478
|
+
return _this3.cycle(event);
|
|
287
479
|
});
|
|
288
480
|
}
|
|
289
481
|
|
|
290
|
-
if (this._config.touch) {
|
|
482
|
+
if (this._config.touch && this._touchSupported) {
|
|
291
483
|
this._addTouchEventListeners();
|
|
292
484
|
}
|
|
293
485
|
};
|
|
294
486
|
|
|
295
487
|
_proto._addTouchEventListeners = function _addTouchEventListeners() {
|
|
296
|
-
var
|
|
297
|
-
|
|
298
|
-
if (!this._touchSupported) {
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
488
|
+
var _this4 = this;
|
|
301
489
|
|
|
302
490
|
var start = function start(event) {
|
|
303
|
-
if (
|
|
304
|
-
|
|
305
|
-
} else if (!
|
|
306
|
-
|
|
491
|
+
if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
|
|
492
|
+
_this4.touchStartX = event.clientX;
|
|
493
|
+
} else if (!_this4._pointerEvent) {
|
|
494
|
+
_this4.touchStartX = event.touches[0].clientX;
|
|
307
495
|
}
|
|
308
496
|
};
|
|
309
497
|
|
|
310
498
|
var move = function move(event) {
|
|
311
499
|
// ensure swiping with one touch and not pinching
|
|
312
|
-
if (event.
|
|
313
|
-
|
|
500
|
+
if (event.touches && event.touches.length > 1) {
|
|
501
|
+
_this4.touchDeltaX = 0;
|
|
314
502
|
} else {
|
|
315
|
-
|
|
503
|
+
_this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;
|
|
316
504
|
}
|
|
317
505
|
};
|
|
318
506
|
|
|
319
507
|
var end = function end(event) {
|
|
320
|
-
if (
|
|
321
|
-
|
|
508
|
+
if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
|
|
509
|
+
_this4.touchDeltaX = event.clientX - _this4.touchStartX;
|
|
322
510
|
}
|
|
323
511
|
|
|
324
|
-
|
|
512
|
+
_this4._handleSwipe();
|
|
325
513
|
|
|
326
|
-
if (
|
|
514
|
+
if (_this4._config.pause === 'hover') {
|
|
327
515
|
// If it's a touch-enabled device, mouseenter/leave are fired as
|
|
328
516
|
// part of the mouse compatibility events on first tap - the carousel
|
|
329
517
|
// would stop cycling until user tapped out of it;
|
|
@@ -331,39 +519,41 @@
|
|
|
331
519
|
// (as if it's the second time we tap on it, mouseenter compat event
|
|
332
520
|
// is NOT fired) and after a timeout (to allow for mouse compatibility
|
|
333
521
|
// events to fire) we explicitly restart cycling
|
|
334
|
-
|
|
522
|
+
_this4.pause();
|
|
335
523
|
|
|
336
|
-
if (
|
|
337
|
-
clearTimeout(
|
|
524
|
+
if (_this4.touchTimeout) {
|
|
525
|
+
clearTimeout(_this4.touchTimeout);
|
|
338
526
|
}
|
|
339
527
|
|
|
340
|
-
|
|
341
|
-
return
|
|
342
|
-
}, TOUCHEVENT_COMPAT_WAIT +
|
|
528
|
+
_this4.touchTimeout = setTimeout(function (event) {
|
|
529
|
+
return _this4.cycle(event);
|
|
530
|
+
}, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);
|
|
343
531
|
}
|
|
344
532
|
};
|
|
345
533
|
|
|
346
|
-
|
|
347
|
-
|
|
534
|
+
SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
|
|
535
|
+
EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, function (e) {
|
|
536
|
+
return e.preventDefault();
|
|
537
|
+
});
|
|
348
538
|
});
|
|
349
539
|
|
|
350
540
|
if (this._pointerEvent) {
|
|
351
|
-
|
|
541
|
+
EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, function (event) {
|
|
352
542
|
return start(event);
|
|
353
543
|
});
|
|
354
|
-
|
|
544
|
+
EventHandler__default['default'].on(this._element, EVENT_POINTERUP, function (event) {
|
|
355
545
|
return end(event);
|
|
356
546
|
});
|
|
357
547
|
|
|
358
548
|
this._element.classList.add(CLASS_NAME_POINTER_EVENT);
|
|
359
549
|
} else {
|
|
360
|
-
|
|
550
|
+
EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, function (event) {
|
|
361
551
|
return start(event);
|
|
362
552
|
});
|
|
363
|
-
|
|
553
|
+
EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, function (event) {
|
|
364
554
|
return move(event);
|
|
365
555
|
});
|
|
366
|
-
|
|
556
|
+
EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, function (event) {
|
|
367
557
|
return end(event);
|
|
368
558
|
});
|
|
369
559
|
}
|
|
@@ -374,21 +564,27 @@
|
|
|
374
564
|
return;
|
|
375
565
|
}
|
|
376
566
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
567
|
+
if (event.key === ARROW_LEFT_KEY) {
|
|
568
|
+
event.preventDefault();
|
|
569
|
+
|
|
570
|
+
if (isRTL) {
|
|
571
|
+
this.next();
|
|
572
|
+
} else {
|
|
380
573
|
this.prev();
|
|
381
|
-
|
|
574
|
+
}
|
|
575
|
+
} else if (event.key === ARROW_RIGHT_KEY) {
|
|
576
|
+
event.preventDefault();
|
|
382
577
|
|
|
383
|
-
|
|
384
|
-
|
|
578
|
+
if (isRTL) {
|
|
579
|
+
this.prev();
|
|
580
|
+
} else {
|
|
385
581
|
this.next();
|
|
386
|
-
|
|
582
|
+
}
|
|
387
583
|
}
|
|
388
584
|
};
|
|
389
585
|
|
|
390
586
|
_proto._getItemIndex = function _getItemIndex(element) {
|
|
391
|
-
this._items = element && element.parentNode ? [].
|
|
587
|
+
this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];
|
|
392
588
|
return this._items.indexOf(element);
|
|
393
589
|
};
|
|
394
590
|
|
|
@@ -413,39 +609,41 @@
|
|
|
413
609
|
_proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
|
|
414
610
|
var targetIndex = this._getItemIndex(relatedTarget);
|
|
415
611
|
|
|
416
|
-
var fromIndex = this._getItemIndex(this._element
|
|
612
|
+
var fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));
|
|
417
613
|
|
|
418
|
-
|
|
614
|
+
return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {
|
|
419
615
|
relatedTarget: relatedTarget,
|
|
420
616
|
direction: eventDirectionName,
|
|
421
617
|
from: fromIndex,
|
|
422
618
|
to: targetIndex
|
|
423
619
|
});
|
|
424
|
-
$__default['default'](this._element).trigger(slideEvent);
|
|
425
|
-
return slideEvent;
|
|
426
620
|
};
|
|
427
621
|
|
|
428
622
|
_proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
|
|
429
623
|
if (this._indicatorsElement) {
|
|
430
|
-
var
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
var
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
624
|
+
var activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement);
|
|
625
|
+
activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
|
|
626
|
+
activeIndicator.removeAttribute('aria-current');
|
|
627
|
+
var indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement);
|
|
628
|
+
|
|
629
|
+
for (var i = 0; i < indicators.length; i++) {
|
|
630
|
+
if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {
|
|
631
|
+
indicators[i].classList.add(CLASS_NAME_ACTIVE);
|
|
632
|
+
indicators[i].setAttribute('aria-current', 'true');
|
|
633
|
+
break;
|
|
634
|
+
}
|
|
437
635
|
}
|
|
438
636
|
}
|
|
439
637
|
};
|
|
440
638
|
|
|
441
639
|
_proto._updateInterval = function _updateInterval() {
|
|
442
|
-
var element = this._activeElement || this._element
|
|
640
|
+
var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
|
|
443
641
|
|
|
444
642
|
if (!element) {
|
|
445
643
|
return;
|
|
446
644
|
}
|
|
447
645
|
|
|
448
|
-
var elementInterval = parseInt(element.getAttribute('data-interval'), 10);
|
|
646
|
+
var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
|
|
449
647
|
|
|
450
648
|
if (elementInterval) {
|
|
451
649
|
this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
|
|
@@ -456,9 +654,9 @@
|
|
|
456
654
|
};
|
|
457
655
|
|
|
458
656
|
_proto._slide = function _slide(direction, element) {
|
|
459
|
-
var
|
|
657
|
+
var _this5 = this;
|
|
460
658
|
|
|
461
|
-
var activeElement = this._element
|
|
659
|
+
var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
|
|
462
660
|
|
|
463
661
|
var activeElementIndex = this._getItemIndex(activeElement);
|
|
464
662
|
|
|
@@ -467,28 +665,18 @@
|
|
|
467
665
|
var nextElementIndex = this._getItemIndex(nextElement);
|
|
468
666
|
|
|
469
667
|
var isCycling = Boolean(this._interval);
|
|
470
|
-
var directionalClassName;
|
|
471
|
-
var orderClassName;
|
|
472
|
-
var eventDirectionName;
|
|
473
|
-
|
|
474
|
-
if (direction === DIRECTION_NEXT) {
|
|
475
|
-
directionalClassName = CLASS_NAME_LEFT;
|
|
476
|
-
orderClassName = CLASS_NAME_NEXT;
|
|
477
|
-
eventDirectionName = DIRECTION_LEFT;
|
|
478
|
-
} else {
|
|
479
|
-
directionalClassName = CLASS_NAME_RIGHT;
|
|
480
|
-
orderClassName = CLASS_NAME_PREV;
|
|
481
|
-
eventDirectionName = DIRECTION_RIGHT;
|
|
482
|
-
}
|
|
668
|
+
var directionalClassName = direction === DIRECTION_NEXT ? CLASS_NAME_START : CLASS_NAME_END;
|
|
669
|
+
var orderClassName = direction === DIRECTION_NEXT ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
|
|
670
|
+
var eventDirectionName = direction === DIRECTION_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT;
|
|
483
671
|
|
|
484
|
-
if (nextElement &&
|
|
672
|
+
if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {
|
|
485
673
|
this._isSliding = false;
|
|
486
674
|
return;
|
|
487
675
|
}
|
|
488
676
|
|
|
489
677
|
var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
|
|
490
678
|
|
|
491
|
-
if (slideEvent.
|
|
679
|
+
if (slideEvent.defaultPrevented) {
|
|
492
680
|
return;
|
|
493
681
|
}
|
|
494
682
|
|
|
@@ -506,32 +694,38 @@
|
|
|
506
694
|
this._setActiveIndicatorElement(nextElement);
|
|
507
695
|
|
|
508
696
|
this._activeElement = nextElement;
|
|
509
|
-
var slidEvent = $__default['default'].Event(EVENT_SLID, {
|
|
510
|
-
relatedTarget: nextElement,
|
|
511
|
-
direction: eventDirectionName,
|
|
512
|
-
from: activeElementIndex,
|
|
513
|
-
to: nextElementIndex
|
|
514
|
-
});
|
|
515
697
|
|
|
516
|
-
if (
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
var transitionDuration =
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
698
|
+
if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
|
|
699
|
+
nextElement.classList.add(orderClassName);
|
|
700
|
+
reflow(nextElement);
|
|
701
|
+
activeElement.classList.add(directionalClassName);
|
|
702
|
+
nextElement.classList.add(directionalClassName);
|
|
703
|
+
var transitionDuration = getTransitionDurationFromElement(activeElement);
|
|
704
|
+
EventHandler__default['default'].one(activeElement, 'transitionend', function () {
|
|
705
|
+
nextElement.classList.remove(directionalClassName, orderClassName);
|
|
706
|
+
nextElement.classList.add(CLASS_NAME_ACTIVE);
|
|
707
|
+
activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
|
|
708
|
+
_this5._isSliding = false;
|
|
526
709
|
setTimeout(function () {
|
|
527
|
-
|
|
710
|
+
EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, {
|
|
711
|
+
relatedTarget: nextElement,
|
|
712
|
+
direction: eventDirectionName,
|
|
713
|
+
from: activeElementIndex,
|
|
714
|
+
to: nextElementIndex
|
|
715
|
+
});
|
|
528
716
|
}, 0);
|
|
529
|
-
})
|
|
717
|
+
});
|
|
718
|
+
emulateTransitionEnd(activeElement, transitionDuration);
|
|
530
719
|
} else {
|
|
531
|
-
|
|
532
|
-
|
|
720
|
+
activeElement.classList.remove(CLASS_NAME_ACTIVE);
|
|
721
|
+
nextElement.classList.add(CLASS_NAME_ACTIVE);
|
|
533
722
|
this._isSliding = false;
|
|
534
|
-
|
|
723
|
+
EventHandler__default['default'].trigger(this._element, EVENT_SLID, {
|
|
724
|
+
relatedTarget: nextElement,
|
|
725
|
+
direction: eventDirectionName,
|
|
726
|
+
from: activeElementIndex,
|
|
727
|
+
to: nextElementIndex
|
|
728
|
+
});
|
|
535
729
|
}
|
|
536
730
|
|
|
537
731
|
if (isCycling) {
|
|
@@ -540,82 +734,79 @@
|
|
|
540
734
|
} // Static
|
|
541
735
|
;
|
|
542
736
|
|
|
543
|
-
Carousel.
|
|
544
|
-
|
|
545
|
-
var data = $__default['default'](this).data(DATA_KEY);
|
|
737
|
+
Carousel.carouselInterface = function carouselInterface(element, config) {
|
|
738
|
+
var data = Data__default['default'].getData(element, DATA_KEY);
|
|
546
739
|
|
|
547
|
-
|
|
740
|
+
var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element));
|
|
548
741
|
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
742
|
+
if (typeof config === 'object') {
|
|
743
|
+
_config = _extends({}, _config, config);
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
var action = typeof config === 'string' ? config : _config.slide;
|
|
552
747
|
|
|
553
|
-
|
|
748
|
+
if (!data) {
|
|
749
|
+
data = new Carousel(element, _config);
|
|
750
|
+
}
|
|
554
751
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
752
|
+
if (typeof config === 'number') {
|
|
753
|
+
data.to(config);
|
|
754
|
+
} else if (typeof action === 'string') {
|
|
755
|
+
if (typeof data[action] === 'undefined') {
|
|
756
|
+
throw new TypeError("No method named \"" + action + "\"");
|
|
558
757
|
}
|
|
559
758
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
759
|
+
data[action]();
|
|
760
|
+
} else if (_config.interval && _config.ride) {
|
|
761
|
+
data.pause();
|
|
762
|
+
data.cycle();
|
|
763
|
+
}
|
|
764
|
+
};
|
|
566
765
|
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
data.cycle();
|
|
571
|
-
}
|
|
766
|
+
Carousel.jQueryInterface = function jQueryInterface(config) {
|
|
767
|
+
return this.each(function () {
|
|
768
|
+
Carousel.carouselInterface(this, config);
|
|
572
769
|
});
|
|
573
770
|
};
|
|
574
771
|
|
|
575
|
-
Carousel.
|
|
576
|
-
var
|
|
772
|
+
Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
|
|
773
|
+
var target = getElementFromSelector(this);
|
|
577
774
|
|
|
578
|
-
if (!
|
|
775
|
+
if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
|
|
579
776
|
return;
|
|
580
777
|
}
|
|
581
778
|
|
|
582
|
-
var
|
|
583
|
-
|
|
584
|
-
if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) {
|
|
585
|
-
return;
|
|
586
|
-
}
|
|
779
|
+
var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
|
|
587
780
|
|
|
588
|
-
var
|
|
589
|
-
|
|
590
|
-
var slideIndex = this.getAttribute('data-slide-to');
|
|
781
|
+
var slideIndex = this.getAttribute('data-bs-slide-to');
|
|
591
782
|
|
|
592
783
|
if (slideIndex) {
|
|
593
784
|
config.interval = false;
|
|
594
785
|
}
|
|
595
786
|
|
|
596
|
-
Carousel.
|
|
787
|
+
Carousel.carouselInterface(target, config);
|
|
597
788
|
|
|
598
789
|
if (slideIndex) {
|
|
599
|
-
|
|
790
|
+
Data__default['default'].getData(target, DATA_KEY).to(slideIndex);
|
|
600
791
|
}
|
|
601
792
|
|
|
602
793
|
event.preventDefault();
|
|
603
794
|
};
|
|
604
795
|
|
|
605
796
|
_createClass(Carousel, null, [{
|
|
606
|
-
key: "
|
|
797
|
+
key: "Default",
|
|
607
798
|
get: function get() {
|
|
608
|
-
return
|
|
799
|
+
return Default;
|
|
609
800
|
}
|
|
610
801
|
}, {
|
|
611
|
-
key: "
|
|
802
|
+
key: "DATA_KEY",
|
|
612
803
|
get: function get() {
|
|
613
|
-
return
|
|
804
|
+
return DATA_KEY;
|
|
614
805
|
}
|
|
615
806
|
}]);
|
|
616
807
|
|
|
617
808
|
return Carousel;
|
|
618
|
-
}();
|
|
809
|
+
}(BaseComponent__default['default']);
|
|
619
810
|
/**
|
|
620
811
|
* ------------------------------------------------------------------------
|
|
621
812
|
* Data Api implementation
|
|
@@ -623,29 +814,22 @@
|
|
|
623
814
|
*/
|
|
624
815
|
|
|
625
816
|
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
var carousels = [].
|
|
817
|
+
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
|
|
818
|
+
EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
|
|
819
|
+
var carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);
|
|
629
820
|
|
|
630
821
|
for (var i = 0, len = carousels.length; i < len; i++) {
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
Carousel._jQueryInterface.call($carousel, $carousel.data());
|
|
822
|
+
Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY));
|
|
634
823
|
}
|
|
635
824
|
});
|
|
636
825
|
/**
|
|
637
826
|
* ------------------------------------------------------------------------
|
|
638
827
|
* jQuery
|
|
639
828
|
* ------------------------------------------------------------------------
|
|
829
|
+
* add .Carousel to jQuery only if jQuery is present
|
|
640
830
|
*/
|
|
641
831
|
|
|
642
|
-
|
|
643
|
-
$__default['default'].fn[NAME].Constructor = Carousel;
|
|
644
|
-
|
|
645
|
-
$__default['default'].fn[NAME].noConflict = function () {
|
|
646
|
-
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
647
|
-
return Carousel._jQueryInterface;
|
|
648
|
-
};
|
|
832
|
+
defineJQueryPlugin(NAME, Carousel);
|
|
649
833
|
|
|
650
834
|
return Carousel;
|
|
651
835
|
|