@coreui/coreui 4.2.1 → 4.2.3
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.
- package/README.md +1 -1
- package/dist/css/coreui-grid.css +61 -61
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +1 -1
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +62 -62
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +2 -2
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +1 -1
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +1 -1
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +2 -2
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +2 -2
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +72 -2
- package/dist/css/coreui-utilities.css.map +1 -1
- package/dist/css/coreui-utilities.min.css +2 -2
- package/dist/css/coreui-utilities.min.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.css +73 -3
- package/dist/css/coreui-utilities.rtl.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.min.css +3 -3
- package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
- package/dist/css/coreui.css +195 -208
- package/dist/css/coreui.css.map +1 -1
- package/dist/css/coreui.min.css +2 -2
- package/dist/css/coreui.min.css.map +1 -1
- package/dist/css/coreui.rtl.css +196 -169
- package/dist/css/coreui.rtl.css.map +1 -1
- package/dist/css/coreui.rtl.min.css +3 -3
- package/dist/css/coreui.rtl.min.css.map +1 -1
- package/dist/js/coreui.bundle.js +704 -1534
- package/dist/js/coreui.bundle.js.map +1 -1
- package/dist/js/coreui.bundle.min.js +2 -2
- package/dist/js/coreui.bundle.min.js.map +1 -1
- package/dist/js/coreui.esm.js +641 -1482
- package/dist/js/coreui.esm.js.map +1 -1
- package/dist/js/coreui.esm.min.js +2 -2
- package/dist/js/coreui.esm.min.js.map +1 -1
- package/dist/js/coreui.js +642 -1483
- package/dist/js/coreui.js.map +1 -1
- package/dist/js/coreui.min.js +2 -2
- package/dist/js/coreui.min.js.map +1 -1
- package/js/dist/alert.js +15 -21
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +14 -25
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +13 -12
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +27 -103
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +27 -84
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +8 -12
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +32 -69
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +4 -17
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +41 -24
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +55 -118
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +42 -109
- package/js/dist/modal.js.map +1 -1
- package/js/dist/navigation.js +27 -59
- package/js/dist/navigation.js.map +1 -1
- package/js/dist/offcanvas.js +26 -70
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +18 -21
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +43 -71
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/sidebar.js +21 -65
- package/js/dist/sidebar.js.map +1 -1
- package/js/dist/tab.js +41 -105
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +26 -60
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +88 -201
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +24 -43
- package/js/dist/util/backdrop.js.map +1 -1
- package/js/dist/util/component-functions.js +14 -12
- package/js/dist/util/component-functions.js.map +1 -1
- package/js/dist/util/config.js +14 -20
- package/js/dist/util/config.js.map +1 -1
- package/js/dist/util/focustrap.js +15 -23
- package/js/dist/util/focustrap.js.map +1 -1
- package/js/dist/util/index.js +41 -110
- package/js/dist/util/index.js.map +1 -1
- package/js/dist/util/sanitizer.js +10 -20
- package/js/dist/util/sanitizer.js.map +1 -1
- package/js/dist/util/scrollbar.js +20 -39
- package/js/dist/util/scrollbar.js.map +1 -1
- package/js/dist/util/swipe.js +19 -33
- package/js/dist/util/swipe.js.map +1 -1
- package/js/dist/util/template-factory.js +22 -42
- package/js/dist/util/template-factory.js.map +1 -1
- package/js/src/alert.js +5 -5
- package/js/src/base-component.js +6 -6
- package/js/src/button.js +4 -6
- package/js/src/carousel.js +8 -9
- package/js/src/collapse.js +9 -14
- package/js/src/dom/data.js +2 -2
- package/js/src/dom/event-handler.js +19 -16
- package/js/src/dom/manipulator.js +2 -2
- package/js/src/dom/selector-engine.js +49 -6
- package/js/src/dropdown.js +19 -9
- package/js/src/modal.js +26 -22
- package/js/src/navigation.js +7 -7
- package/js/src/offcanvas.js +11 -12
- package/js/src/popover.js +3 -3
- package/js/src/scrollspy.js +14 -10
- package/js/src/sidebar.js +7 -7
- package/js/src/tab.js +13 -23
- package/js/src/toast.js +13 -8
- package/js/src/tooltip.js +53 -75
- package/js/src/util/backdrop.js +7 -4
- package/js/src/util/component-functions.js +8 -4
- package/js/src/util/config.js +7 -5
- package/js/src/util/focustrap.js +7 -4
- package/js/src/util/index.js +21 -51
- package/js/src/util/sanitizer.js +4 -4
- package/js/src/util/scrollbar.js +7 -4
- package/js/src/util/swipe.js +7 -4
- package/js/src/util/template-factory.js +9 -6
- package/package.json +31 -30
- package/scss/_accordion.scss +7 -3
- package/scss/_button-group.scss +1 -1
- package/scss/_buttons.scss +31 -6
- package/scss/_carousel.scss +0 -3
- package/scss/_dropdown.scss +2 -1
- package/scss/_functions.scss +2 -2
- package/scss/_icon.scss +1 -1
- package/scss/_list-group.scss +6 -5
- package/scss/_modal.scss +1 -1
- package/scss/_nav.scss +2 -2
- package/scss/_navbar.scss +3 -1
- package/scss/_offcanvas.scss +5 -4
- package/scss/_pagination.scss +1 -1
- package/scss/_placeholders.scss +1 -1
- package/scss/_popover.scss +5 -5
- package/scss/_spinners.scss +2 -2
- package/scss/_toasts.scss +5 -2
- package/scss/_variables.scss +18 -16
- package/scss/coreui-grid.rtl.scss +1 -1
- package/scss/coreui-grid.scss +1 -1
- package/scss/coreui-reboot.rtl.scss +1 -1
- package/scss/coreui-reboot.scss +1 -1
- package/scss/coreui-utilities.rtl.scss +1 -1
- package/scss/coreui-utilities.scss +4 -1
- package/scss/coreui.rtl.scss +1 -1
- package/scss/coreui.scss +1 -1
- package/scss/forms/_floating-labels.scss +1 -0
- package/scss/forms/_input-group.scss +19 -8
- package/scss/helpers/_vr.scss +1 -1
- package/scss/mixins/_forms.scss +10 -11
- package/scss/mixins/_table-variants.scss +2 -2
- package/scss/mixins/_utilities.scss +1 -1
- package/scss/sidebar/_sidebar-nav.scss +5 -1
package/js/dist/carousel.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI carousel.js v4.2.
|
|
2
|
+
* CoreUI carousel.js v4.2.3 (https://coreui.io)
|
|
3
3
|
* Copyright 2022 The CoreUI Team (https://github.com/orgs/coreui/people)
|
|
4
4
|
* Licensed under MIT (https://coreui.io)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/manipulator'), require('./dom/selector-engine'), require('./util/swipe'), require('./base-component')) :
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./util/swipe.js'), require('./base-component.js')) :
|
|
8
8
|
typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './util/swipe', './base-component'], factory) :
|
|
9
9
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Index, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Swipe, global.BaseComponent));
|
|
10
|
-
})(this, (function (
|
|
10
|
+
})(this, (function (index_js, EventHandler, Manipulator, SelectorEngine, Swipe, BaseComponent) { 'use strict';
|
|
11
11
|
|
|
12
12
|
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
13
13
|
|
|
@@ -19,13 +19,14 @@
|
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* --------------------------------------------------------------------------
|
|
22
|
-
* CoreUI (v4.2.
|
|
22
|
+
* CoreUI (v4.2.3): carousel.js
|
|
23
23
|
* Licensed under MIT (https://coreui.io/license)
|
|
24
24
|
*
|
|
25
25
|
* This component is a modified version of the Bootstrap's carousel.js
|
|
26
26
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
27
27
|
* --------------------------------------------------------------------------
|
|
28
28
|
*/
|
|
29
|
+
|
|
29
30
|
/**
|
|
30
31
|
* Constants
|
|
31
32
|
*/
|
|
@@ -85,6 +86,7 @@
|
|
|
85
86
|
touch: 'boolean',
|
|
86
87
|
wrap: 'boolean'
|
|
87
88
|
};
|
|
89
|
+
|
|
88
90
|
/**
|
|
89
91
|
* Class definition
|
|
90
92
|
*/
|
|
@@ -98,135 +100,109 @@
|
|
|
98
100
|
this.touchTimeout = null;
|
|
99
101
|
this._swipeHelper = null;
|
|
100
102
|
this._indicatorsElement = SelectorEngine__default.default.findOne(SELECTOR_INDICATORS, this._element);
|
|
101
|
-
|
|
102
103
|
this._addEventListeners();
|
|
103
|
-
|
|
104
104
|
if (this._config.ride === CLASS_NAME_CAROUSEL) {
|
|
105
105
|
this.cycle();
|
|
106
106
|
}
|
|
107
|
-
}
|
|
108
|
-
|
|
107
|
+
}
|
|
109
108
|
|
|
109
|
+
// Getters
|
|
110
110
|
static get Default() {
|
|
111
111
|
return Default;
|
|
112
112
|
}
|
|
113
|
-
|
|
114
113
|
static get DefaultType() {
|
|
115
114
|
return DefaultType;
|
|
116
115
|
}
|
|
117
|
-
|
|
118
116
|
static get NAME() {
|
|
119
117
|
return NAME;
|
|
120
|
-
}
|
|
121
|
-
|
|
118
|
+
}
|
|
122
119
|
|
|
120
|
+
// Public
|
|
123
121
|
next() {
|
|
124
122
|
this._slide(ORDER_NEXT);
|
|
125
123
|
}
|
|
126
|
-
|
|
127
124
|
nextWhenVisible() {
|
|
128
125
|
// FIXME TODO use `document.visibilityState`
|
|
129
126
|
// Don't call next when the page isn't visible
|
|
130
127
|
// or the carousel or its parent isn't visible
|
|
131
|
-
if (!document.hidden &&
|
|
128
|
+
if (!document.hidden && index_js.isVisible(this._element)) {
|
|
132
129
|
this.next();
|
|
133
130
|
}
|
|
134
131
|
}
|
|
135
|
-
|
|
136
132
|
prev() {
|
|
137
133
|
this._slide(ORDER_PREV);
|
|
138
134
|
}
|
|
139
|
-
|
|
140
135
|
pause() {
|
|
141
136
|
if (this._isSliding) {
|
|
142
|
-
|
|
137
|
+
index_js.triggerTransitionEnd(this._element);
|
|
143
138
|
}
|
|
144
|
-
|
|
145
139
|
this._clearInterval();
|
|
146
140
|
}
|
|
147
|
-
|
|
148
141
|
cycle() {
|
|
149
142
|
this._clearInterval();
|
|
150
|
-
|
|
151
143
|
this._updateInterval();
|
|
152
|
-
|
|
153
144
|
this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
|
|
154
145
|
}
|
|
155
|
-
|
|
156
146
|
_maybeEnableCycle() {
|
|
157
147
|
if (!this._config.ride) {
|
|
158
148
|
return;
|
|
159
149
|
}
|
|
160
|
-
|
|
161
150
|
if (this._isSliding) {
|
|
162
151
|
EventHandler__default.default.one(this._element, EVENT_SLID, () => this.cycle());
|
|
163
152
|
return;
|
|
164
153
|
}
|
|
165
|
-
|
|
166
154
|
this.cycle();
|
|
167
155
|
}
|
|
168
|
-
|
|
169
156
|
to(index) {
|
|
170
157
|
const items = this._getItems();
|
|
171
|
-
|
|
172
158
|
if (index > items.length - 1 || index < 0) {
|
|
173
159
|
return;
|
|
174
160
|
}
|
|
175
|
-
|
|
176
161
|
if (this._isSliding) {
|
|
177
162
|
EventHandler__default.default.one(this._element, EVENT_SLID, () => this.to(index));
|
|
178
163
|
return;
|
|
179
164
|
}
|
|
180
|
-
|
|
181
165
|
const activeIndex = this._getItemIndex(this._getActive());
|
|
182
|
-
|
|
183
166
|
if (activeIndex === index) {
|
|
184
167
|
return;
|
|
185
168
|
}
|
|
186
|
-
|
|
187
169
|
const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
|
|
188
|
-
|
|
189
170
|
this._slide(order, items[index]);
|
|
190
171
|
}
|
|
191
|
-
|
|
192
172
|
dispose() {
|
|
193
173
|
if (this._swipeHelper) {
|
|
194
174
|
this._swipeHelper.dispose();
|
|
195
175
|
}
|
|
196
|
-
|
|
197
176
|
super.dispose();
|
|
198
|
-
}
|
|
199
|
-
|
|
177
|
+
}
|
|
200
178
|
|
|
179
|
+
// Private
|
|
201
180
|
_configAfterMerge(config) {
|
|
202
181
|
config.defaultInterval = config.interval;
|
|
203
182
|
return config;
|
|
204
183
|
}
|
|
205
|
-
|
|
206
184
|
_addEventListeners() {
|
|
207
185
|
if (this._config.keyboard) {
|
|
208
186
|
EventHandler__default.default.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
|
|
209
187
|
}
|
|
210
|
-
|
|
211
188
|
if (this._config.pause === 'hover') {
|
|
212
189
|
EventHandler__default.default.on(this._element, EVENT_MOUSEENTER, () => this.pause());
|
|
213
190
|
EventHandler__default.default.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle());
|
|
214
191
|
}
|
|
215
|
-
|
|
216
192
|
if (this._config.touch && Swipe__default.default.isSupported()) {
|
|
217
193
|
this._addTouchEventListeners();
|
|
218
194
|
}
|
|
219
195
|
}
|
|
220
|
-
|
|
221
196
|
_addTouchEventListeners() {
|
|
222
197
|
for (const img of SelectorEngine__default.default.find(SELECTOR_ITEM_IMG, this._element)) {
|
|
223
198
|
EventHandler__default.default.on(img, EVENT_DRAG_START, event => event.preventDefault());
|
|
224
199
|
}
|
|
225
|
-
|
|
226
200
|
const endCallBack = () => {
|
|
227
201
|
if (this._config.pause !== 'hover') {
|
|
228
202
|
return;
|
|
229
|
-
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// If it's a touch-enabled device, mouseenter/leave are fired as
|
|
230
206
|
// part of the mouse compatibility events on first tap - the carousel
|
|
231
207
|
// would stop cycling until user tapped out of it;
|
|
232
208
|
// here, we listen for touchend, explicitly pause the carousel
|
|
@@ -234,16 +210,12 @@
|
|
|
234
210
|
// is NOT fired) and after a timeout (to allow for mouse compatibility
|
|
235
211
|
// events to fire) we explicitly restart cycling
|
|
236
212
|
|
|
237
|
-
|
|
238
213
|
this.pause();
|
|
239
|
-
|
|
240
214
|
if (this.touchTimeout) {
|
|
241
215
|
clearTimeout(this.touchTimeout);
|
|
242
216
|
}
|
|
243
|
-
|
|
244
217
|
this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
|
|
245
218
|
};
|
|
246
|
-
|
|
247
219
|
const swipeConfig = {
|
|
248
220
|
leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
|
|
249
221
|
rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
|
|
@@ -251,68 +223,51 @@
|
|
|
251
223
|
};
|
|
252
224
|
this._swipeHelper = new Swipe__default.default(this._element, swipeConfig);
|
|
253
225
|
}
|
|
254
|
-
|
|
255
226
|
_keydown(event) {
|
|
256
227
|
if (/input|textarea/i.test(event.target.tagName)) {
|
|
257
228
|
return;
|
|
258
229
|
}
|
|
259
|
-
|
|
260
230
|
const direction = KEY_TO_DIRECTION[event.key];
|
|
261
|
-
|
|
262
231
|
if (direction) {
|
|
263
232
|
event.preventDefault();
|
|
264
|
-
|
|
265
233
|
this._slide(this._directionToOrder(direction));
|
|
266
234
|
}
|
|
267
235
|
}
|
|
268
|
-
|
|
269
236
|
_getItemIndex(element) {
|
|
270
237
|
return this._getItems().indexOf(element);
|
|
271
238
|
}
|
|
272
|
-
|
|
273
239
|
_setActiveIndicatorElement(index) {
|
|
274
240
|
if (!this._indicatorsElement) {
|
|
275
241
|
return;
|
|
276
242
|
}
|
|
277
|
-
|
|
278
243
|
const activeIndicator = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
|
|
279
244
|
activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
|
|
280
245
|
activeIndicator.removeAttribute('aria-current');
|
|
281
246
|
const newActiveIndicator = SelectorEngine__default.default.findOne(`[data-coreui-slide-to="${index}"]`, this._indicatorsElement);
|
|
282
|
-
|
|
283
247
|
if (newActiveIndicator) {
|
|
284
248
|
newActiveIndicator.classList.add(CLASS_NAME_ACTIVE);
|
|
285
249
|
newActiveIndicator.setAttribute('aria-current', 'true');
|
|
286
250
|
}
|
|
287
251
|
}
|
|
288
|
-
|
|
289
252
|
_updateInterval() {
|
|
290
253
|
const element = this._activeElement || this._getActive();
|
|
291
|
-
|
|
292
254
|
if (!element) {
|
|
293
255
|
return;
|
|
294
256
|
}
|
|
295
|
-
|
|
296
257
|
const elementInterval = Number.parseInt(element.getAttribute('data-coreui-interval'), 10);
|
|
297
258
|
this._config.interval = elementInterval || this._config.defaultInterval;
|
|
298
259
|
}
|
|
299
|
-
|
|
300
260
|
_slide(order, element = null) {
|
|
301
261
|
if (this._isSliding) {
|
|
302
262
|
return;
|
|
303
263
|
}
|
|
304
|
-
|
|
305
264
|
const activeElement = this._getActive();
|
|
306
|
-
|
|
307
265
|
const isNext = order === ORDER_NEXT;
|
|
308
|
-
const nextElement = element ||
|
|
309
|
-
|
|
266
|
+
const nextElement = element || index_js.getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
|
|
310
267
|
if (nextElement === activeElement) {
|
|
311
268
|
return;
|
|
312
269
|
}
|
|
313
|
-
|
|
314
270
|
const nextElementIndex = this._getItemIndex(nextElement);
|
|
315
|
-
|
|
316
271
|
const triggerEvent = eventName => {
|
|
317
272
|
return EventHandler__default.default.trigger(this._element, eventName, {
|
|
318
273
|
relatedTarget: nextElement,
|
|
@@ -321,33 +276,26 @@
|
|
|
321
276
|
to: nextElementIndex
|
|
322
277
|
});
|
|
323
278
|
};
|
|
324
|
-
|
|
325
279
|
const slideEvent = triggerEvent(EVENT_SLIDE);
|
|
326
|
-
|
|
327
280
|
if (slideEvent.defaultPrevented) {
|
|
328
281
|
return;
|
|
329
282
|
}
|
|
330
|
-
|
|
331
283
|
if (!activeElement || !nextElement) {
|
|
332
284
|
// Some weirdness is happening, so we bail
|
|
333
285
|
// todo: change tests that use empty divs to avoid this check
|
|
334
286
|
return;
|
|
335
287
|
}
|
|
336
|
-
|
|
337
288
|
const isCycling = Boolean(this._interval);
|
|
338
289
|
this.pause();
|
|
339
290
|
this._isSliding = true;
|
|
340
|
-
|
|
341
291
|
this._setActiveIndicatorElement(nextElementIndex);
|
|
342
|
-
|
|
343
292
|
this._activeElement = nextElement;
|
|
344
293
|
const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
|
|
345
294
|
const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
|
|
346
295
|
nextElement.classList.add(orderClassName);
|
|
347
|
-
|
|
296
|
+
index_js.reflow(nextElement);
|
|
348
297
|
activeElement.classList.add(directionalClassName);
|
|
349
298
|
nextElement.classList.add(directionalClassName);
|
|
350
|
-
|
|
351
299
|
const completeCallBack = () => {
|
|
352
300
|
nextElement.classList.remove(directionalClassName, orderClassName);
|
|
353
301
|
nextElement.classList.add(CLASS_NAME_ACTIVE);
|
|
@@ -355,118 +303,94 @@
|
|
|
355
303
|
this._isSliding = false;
|
|
356
304
|
triggerEvent(EVENT_SLID);
|
|
357
305
|
};
|
|
358
|
-
|
|
359
306
|
this._queueCallback(completeCallBack, activeElement, this._isAnimated());
|
|
360
|
-
|
|
361
307
|
if (isCycling) {
|
|
362
308
|
this.cycle();
|
|
363
309
|
}
|
|
364
310
|
}
|
|
365
|
-
|
|
366
311
|
_isAnimated() {
|
|
367
312
|
return this._element.classList.contains(CLASS_NAME_SLIDE);
|
|
368
313
|
}
|
|
369
|
-
|
|
370
314
|
_getActive() {
|
|
371
315
|
return SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
|
|
372
316
|
}
|
|
373
|
-
|
|
374
317
|
_getItems() {
|
|
375
318
|
return SelectorEngine__default.default.find(SELECTOR_ITEM, this._element);
|
|
376
319
|
}
|
|
377
|
-
|
|
378
320
|
_clearInterval() {
|
|
379
321
|
if (this._interval) {
|
|
380
322
|
clearInterval(this._interval);
|
|
381
323
|
this._interval = null;
|
|
382
324
|
}
|
|
383
325
|
}
|
|
384
|
-
|
|
385
326
|
_directionToOrder(direction) {
|
|
386
|
-
if (
|
|
327
|
+
if (index_js.isRTL()) {
|
|
387
328
|
return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
|
|
388
329
|
}
|
|
389
|
-
|
|
390
330
|
return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
|
|
391
331
|
}
|
|
392
|
-
|
|
393
332
|
_orderToDirection(order) {
|
|
394
|
-
if (
|
|
333
|
+
if (index_js.isRTL()) {
|
|
395
334
|
return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
|
|
396
335
|
}
|
|
397
|
-
|
|
398
336
|
return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
|
|
399
|
-
}
|
|
400
|
-
|
|
337
|
+
}
|
|
401
338
|
|
|
339
|
+
// Static
|
|
402
340
|
static jQueryInterface(config) {
|
|
403
341
|
return this.each(function () {
|
|
404
342
|
const data = Carousel.getOrCreateInstance(this, config);
|
|
405
|
-
|
|
406
343
|
if (typeof config === 'number') {
|
|
407
344
|
data.to(config);
|
|
408
345
|
return;
|
|
409
346
|
}
|
|
410
|
-
|
|
411
347
|
if (typeof config === 'string') {
|
|
412
348
|
if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
|
|
413
349
|
throw new TypeError(`No method named "${config}"`);
|
|
414
350
|
}
|
|
415
|
-
|
|
416
351
|
data[config]();
|
|
417
352
|
}
|
|
418
353
|
});
|
|
419
354
|
}
|
|
420
|
-
|
|
421
355
|
}
|
|
356
|
+
|
|
422
357
|
/**
|
|
423
358
|
* Data API implementation
|
|
424
359
|
*/
|
|
425
360
|
|
|
426
|
-
|
|
427
361
|
EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {
|
|
428
|
-
const target =
|
|
429
|
-
|
|
362
|
+
const target = SelectorEngine__default.default.getElementFromSelector(this);
|
|
430
363
|
if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
|
|
431
364
|
return;
|
|
432
365
|
}
|
|
433
|
-
|
|
434
366
|
event.preventDefault();
|
|
435
367
|
const carousel = Carousel.getOrCreateInstance(target);
|
|
436
368
|
const slideIndex = this.getAttribute('data-coreui-slide-to');
|
|
437
|
-
|
|
438
369
|
if (slideIndex) {
|
|
439
370
|
carousel.to(slideIndex);
|
|
440
|
-
|
|
441
371
|
carousel._maybeEnableCycle();
|
|
442
|
-
|
|
443
372
|
return;
|
|
444
373
|
}
|
|
445
|
-
|
|
446
374
|
if (Manipulator__default.default.getDataAttribute(this, 'slide') === 'next') {
|
|
447
375
|
carousel.next();
|
|
448
|
-
|
|
449
376
|
carousel._maybeEnableCycle();
|
|
450
|
-
|
|
451
377
|
return;
|
|
452
378
|
}
|
|
453
|
-
|
|
454
379
|
carousel.prev();
|
|
455
|
-
|
|
456
380
|
carousel._maybeEnableCycle();
|
|
457
381
|
});
|
|
458
382
|
EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
|
|
459
383
|
const carousels = SelectorEngine__default.default.find(SELECTOR_DATA_RIDE);
|
|
460
|
-
|
|
461
384
|
for (const carousel of carousels) {
|
|
462
385
|
Carousel.getOrCreateInstance(carousel);
|
|
463
386
|
}
|
|
464
387
|
});
|
|
388
|
+
|
|
465
389
|
/**
|
|
466
390
|
* jQuery
|
|
467
391
|
*/
|
|
468
392
|
|
|
469
|
-
|
|
393
|
+
index_js.defineJQueryPlugin(Carousel);
|
|
470
394
|
|
|
471
395
|
return Carousel;
|
|
472
396
|
|
package/js/dist/carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.js","sources":["../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.1): carousel.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport Swipe from './util/swipe'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'coreui.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-coreui-slide], [data-coreui-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-coreui-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)', // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-coreui-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-coreui-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // todo: change tests that use empty divs to avoid this check\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config)\n\n if (typeof config === 'number') {\n data.to(config)\n return\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-coreui-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","Default","interval","keyboard","pause","ride","touch","wrap","DefaultType","Carousel","BaseComponent","constructor","element","config","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","SelectorEngine","findOne","_element","_addEventListeners","_config","cycle","next","_slide","nextWhenVisible","document","hidden","isVisible","prev","triggerTransitionEnd","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","EventHandler","one","to","index","items","_getItems","length","activeIndex","_getItemIndex","_getActive","order","dispose","_configAfterMerge","defaultInterval","on","event","_keydown","Swipe","isSupported","_addTouchEventListeners","img","find","preventDefault","endCallBack","clearTimeout","setTimeout","swipeConfig","leftCallback","_directionToOrder","rightCallback","endCallback","test","target","tagName","direction","key","indexOf","_setActiveIndicatorElement","activeIndicator","classList","remove","removeAttribute","newActiveIndicator","add","setAttribute","elementInterval","Number","parseInt","getAttribute","activeElement","isNext","nextElement","getNextActiveElement","nextElementIndex","triggerEvent","eventName","trigger","relatedTarget","_orderToDirection","from","slideEvent","defaultPrevented","isCycling","Boolean","directionalClassName","orderClassName","reflow","completeCallBack","_queueCallback","_isAnimated","contains","clearInterval","isRTL","jQueryInterface","each","data","getOrCreateInstance","undefined","startsWith","TypeError","getElementFromSelector","carousel","slideIndex","Manipulator","getDataAttribute","window","carousels","defineJQueryPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"carousel.js","sources":["../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.3): carousel.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport BaseComponent from './base-component.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'coreui.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-coreui-slide], [data-coreui-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-coreui-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)', // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-coreui-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-coreui-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // todo: change tests that use empty divs to avoid this check\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config)\n\n if (typeof config === 'number') {\n data.to(config)\n return\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-coreui-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","Default","interval","keyboard","pause","ride","touch","wrap","DefaultType","Carousel","BaseComponent","constructor","element","config","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","SelectorEngine","findOne","_element","_addEventListeners","_config","cycle","next","_slide","nextWhenVisible","document","hidden","isVisible","prev","triggerTransitionEnd","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","EventHandler","one","to","index","items","_getItems","length","activeIndex","_getItemIndex","_getActive","order","dispose","_configAfterMerge","defaultInterval","on","event","_keydown","Swipe","isSupported","_addTouchEventListeners","img","find","preventDefault","endCallBack","clearTimeout","setTimeout","swipeConfig","leftCallback","_directionToOrder","rightCallback","endCallback","test","target","tagName","direction","key","indexOf","_setActiveIndicatorElement","activeIndicator","classList","remove","removeAttribute","newActiveIndicator","add","setAttribute","elementInterval","Number","parseInt","getAttribute","activeElement","isNext","nextElement","getNextActiveElement","nextElementIndex","triggerEvent","eventName","trigger","relatedTarget","_orderToDirection","from","slideEvent","defaultPrevented","isCycling","Boolean","directionalClassName","orderClassName","reflow","completeCallBack","_queueCallback","_isAnimated","contains","clearInterval","isRTL","jQueryInterface","each","data","getOrCreateInstance","undefined","startsWith","TypeError","getElementFromSelector","carousel","slideIndex","Manipulator","getDataAttribute","window","carousels","defineJQueryPlugin"],"mappings":"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"}
|