@coreui/coreui 4.0.2 → 4.1.0
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 +5 -8
- package/dist/css/coreui-grid.css +255 -206
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +2 -2
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +256 -207
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +3 -3
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +63 -8
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +2 -2
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +64 -9
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +3 -3
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +181 -81
- 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 +182 -82
- 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 +725 -350
- 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 +733 -373
- 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 +782 -704
- 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 +663 -611
- 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 +673 -623
- 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 +81 -48
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +25 -17
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +22 -12
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +69 -44
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +117 -131
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +5 -5
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +14 -5
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +6 -6
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +53 -8
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +99 -106
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +244 -87
- package/js/dist/modal.js.map +1 -1
- package/js/dist/offcanvas.js +205 -56
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +28 -58
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +40 -30
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/tab.js +44 -22
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +127 -29
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +122 -104
- package/js/dist/tooltip.js.map +1 -1
- package/js/src/alert.js +21 -47
- package/js/src/base-component.js +3 -3
- package/js/src/button.js +1 -1
- package/js/src/carousel.js +9 -4
- package/js/src/collapse.js +66 -119
- package/js/src/dom/data.js +1 -1
- package/js/src/dom/event-handler.js +1 -2
- package/js/src/dom/manipulator.js +3 -3
- package/js/src/dom/selector-engine.js +18 -1
- package/js/src/dropdown.js +53 -68
- package/js/src/modal.js +24 -35
- package/js/src/navigation.js +6 -4
- package/js/src/offcanvas.js +16 -18
- package/js/src/popover.js +7 -49
- package/js/src/scrollspy.js +1 -1
- package/js/src/sidebar.js +6 -4
- package/js/src/tab.js +1 -1
- package/js/src/toast.js +11 -11
- package/js/src/tooltip.js +66 -50
- package/js/src/util/backdrop.js +6 -5
- package/js/src/util/component-functions.js +34 -0
- package/js/src/util/focustrap.js +105 -0
- package/js/src/util/index.js +14 -5
- package/js/src/util/sanitizer.js +21 -22
- package/js/src/util/scrollbar.js +1 -1
- package/package.json +47 -44
- package/scss/_buttons.scss +1 -2
- package/scss/_card.scss +2 -1
- package/scss/_dropdown.scss +1 -1
- package/scss/_functions.scss +51 -12
- package/scss/_grid.scss +0 -23
- package/scss/_helpers.scss +2 -0
- package/scss/_mixins.scss +1 -0
- package/scss/_modal.scss +1 -11
- package/scss/_navbar.scss +30 -1
- package/scss/_offcanvas.scss +6 -2
- package/scss/_placeholders.scss +51 -0
- package/scss/_reboot.scss +12 -8
- package/scss/_root.scss +36 -7
- package/scss/_tables.scss +9 -5
- package/scss/_toasts.scss +2 -2
- package/scss/_transitions.scss +6 -0
- package/scss/_utilities.scss +31 -8
- package/scss/_variables.scss +184 -12
- package/scss/coreui-grid.rtl.scss +1 -1
- package/scss/coreui-grid.scss +3 -1
- package/scss/coreui-reboot.rtl.scss +1 -1
- package/scss/coreui-reboot.scss +2 -4
- package/scss/coreui-utilities.rtl.scss +1 -1
- package/scss/coreui-utilities.scss +1 -1
- package/scss/coreui.rtl.scss +1 -1
- package/scss/coreui.scss +2 -1
- package/scss/forms/_form-control.scss +1 -1
- package/scss/forms/_form-select.scss +2 -0
- package/scss/helpers/_stacks.scss +15 -0
- package/scss/helpers/_vr.scss +8 -0
- package/scss/mixins/_backdrop.scss +14 -0
- package/scss/mixins/_grid.scss +29 -10
- package/scss/mixins/_ltr-rtl.scss +21 -0
- package/scss/mixins/_utilities.scss +26 -26
- package/scss/mixins/_visually-hidden.scss +1 -1
- package/scss/sidebar/_sidebar.scss +22 -16
package/js/dist/carousel.js
CHANGED
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI carousel.js v4.0
|
|
2
|
+
* CoreUI carousel.js v4.1.0 (https://coreui.io)
|
|
3
3
|
* Copyright 2021 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('./dom/
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['./dom/
|
|
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/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
|
|
10
|
+
})(this, (function (EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
15
|
+
const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
16
|
+
const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
17
|
+
const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* --------------------------------------------------------------------------
|
|
21
|
+
* CoreUI (v4.1.0): alert.js
|
|
22
|
+
* Licensed under MIT (https://coreui.io/license)
|
|
23
|
+
*
|
|
24
|
+
* This component is a modified version of the Bootstrap's util/index.js
|
|
25
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
26
|
+
* --------------------------------------------------------------------------
|
|
27
|
+
*/
|
|
19
28
|
const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
|
20
29
|
|
|
21
30
|
const toType = obj => {
|
|
@@ -90,8 +99,20 @@
|
|
|
90
99
|
|
|
91
100
|
return getComputedStyle(element).getPropertyValue('visibility') === 'visible';
|
|
92
101
|
};
|
|
102
|
+
/**
|
|
103
|
+
* Trick to restart an element's animation
|
|
104
|
+
*
|
|
105
|
+
* @param {HTMLElement} element
|
|
106
|
+
* @return void
|
|
107
|
+
*
|
|
108
|
+
* @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
|
|
109
|
+
*/
|
|
93
110
|
|
|
94
|
-
|
|
111
|
+
|
|
112
|
+
const reflow = element => {
|
|
113
|
+
// eslint-disable-next-line no-unused-expressions
|
|
114
|
+
element.offsetHeight;
|
|
115
|
+
};
|
|
95
116
|
|
|
96
117
|
const getjQuery = () => {
|
|
97
118
|
const {
|
|
@@ -172,7 +193,7 @@
|
|
|
172
193
|
|
|
173
194
|
/**
|
|
174
195
|
* --------------------------------------------------------------------------
|
|
175
|
-
* CoreUI (v4.0
|
|
196
|
+
* CoreUI (v4.1.0): carousel.js
|
|
176
197
|
* Licensed under MIT (https://coreui.io/license)
|
|
177
198
|
*
|
|
178
199
|
* This component is a modified version of the Bootstrap's carousel.js
|
|
@@ -256,7 +277,7 @@
|
|
|
256
277
|
* ------------------------------------------------------------------------
|
|
257
278
|
*/
|
|
258
279
|
|
|
259
|
-
class Carousel extends BaseComponent__default
|
|
280
|
+
class Carousel extends BaseComponent__default.default {
|
|
260
281
|
constructor(element, config) {
|
|
261
282
|
super(element);
|
|
262
283
|
this._items = null;
|
|
@@ -268,7 +289,7 @@
|
|
|
268
289
|
this.touchStartX = 0;
|
|
269
290
|
this.touchDeltaX = 0;
|
|
270
291
|
this._config = this._getConfig(config);
|
|
271
|
-
this._indicatorsElement = SelectorEngine__default
|
|
292
|
+
this._indicatorsElement = SelectorEngine__default.default.findOne(SELECTOR_INDICATORS, this._element);
|
|
272
293
|
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
|
|
273
294
|
this._pointerEvent = Boolean(window.PointerEvent);
|
|
274
295
|
|
|
@@ -306,7 +327,7 @@
|
|
|
306
327
|
this._isPaused = true;
|
|
307
328
|
}
|
|
308
329
|
|
|
309
|
-
if (SelectorEngine__default
|
|
330
|
+
if (SelectorEngine__default.default.findOne(SELECTOR_NEXT_PREV, this._element)) {
|
|
310
331
|
triggerTransitionEnd(this._element);
|
|
311
332
|
this.cycle(true);
|
|
312
333
|
}
|
|
@@ -333,7 +354,7 @@
|
|
|
333
354
|
}
|
|
334
355
|
|
|
335
356
|
to(index) {
|
|
336
|
-
this._activeElement = SelectorEngine__default
|
|
357
|
+
this._activeElement = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
|
|
337
358
|
|
|
338
359
|
const activeIndex = this._getItemIndex(this._activeElement);
|
|
339
360
|
|
|
@@ -342,7 +363,7 @@
|
|
|
342
363
|
}
|
|
343
364
|
|
|
344
365
|
if (this._isSliding) {
|
|
345
|
-
EventHandler__default
|
|
366
|
+
EventHandler__default.default.one(this._element, EVENT_SLID, () => this.to(index));
|
|
346
367
|
return;
|
|
347
368
|
}
|
|
348
369
|
|
|
@@ -360,7 +381,7 @@
|
|
|
360
381
|
|
|
361
382
|
_getConfig(config) {
|
|
362
383
|
config = { ...Default,
|
|
363
|
-
...Manipulator__default
|
|
384
|
+
...Manipulator__default.default.getDataAttributes(this._element),
|
|
364
385
|
...(typeof config === 'object' ? config : {})
|
|
365
386
|
};
|
|
366
387
|
typeCheckConfig(NAME, config, DefaultType);
|
|
@@ -386,12 +407,12 @@
|
|
|
386
407
|
|
|
387
408
|
_addEventListeners() {
|
|
388
409
|
if (this._config.keyboard) {
|
|
389
|
-
EventHandler__default
|
|
410
|
+
EventHandler__default.default.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
|
|
390
411
|
}
|
|
391
412
|
|
|
392
413
|
if (this._config.pause === 'hover') {
|
|
393
|
-
EventHandler__default
|
|
394
|
-
EventHandler__default
|
|
414
|
+
EventHandler__default.default.on(this._element, EVENT_MOUSEENTER, event => this.pause(event));
|
|
415
|
+
EventHandler__default.default.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event));
|
|
395
416
|
}
|
|
396
417
|
|
|
397
418
|
if (this._config.touch && this._touchSupported) {
|
|
@@ -400,8 +421,12 @@
|
|
|
400
421
|
}
|
|
401
422
|
|
|
402
423
|
_addTouchEventListeners() {
|
|
424
|
+
const hasPointerPenTouch = event => {
|
|
425
|
+
return this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
|
|
426
|
+
};
|
|
427
|
+
|
|
403
428
|
const start = event => {
|
|
404
|
-
if (
|
|
429
|
+
if (hasPointerPenTouch(event)) {
|
|
405
430
|
this.touchStartX = event.clientX;
|
|
406
431
|
} else if (!this._pointerEvent) {
|
|
407
432
|
this.touchStartX = event.touches[0].clientX;
|
|
@@ -414,7 +439,7 @@
|
|
|
414
439
|
};
|
|
415
440
|
|
|
416
441
|
const end = event => {
|
|
417
|
-
if (
|
|
442
|
+
if (hasPointerPenTouch(event)) {
|
|
418
443
|
this.touchDeltaX = event.clientX - this.touchStartX;
|
|
419
444
|
}
|
|
420
445
|
|
|
@@ -438,19 +463,19 @@
|
|
|
438
463
|
}
|
|
439
464
|
};
|
|
440
465
|
|
|
441
|
-
SelectorEngine__default
|
|
442
|
-
EventHandler__default
|
|
466
|
+
SelectorEngine__default.default.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {
|
|
467
|
+
EventHandler__default.default.on(itemImg, EVENT_DRAG_START, event => event.preventDefault());
|
|
443
468
|
});
|
|
444
469
|
|
|
445
470
|
if (this._pointerEvent) {
|
|
446
|
-
EventHandler__default
|
|
447
|
-
EventHandler__default
|
|
471
|
+
EventHandler__default.default.on(this._element, EVENT_POINTERDOWN, event => start(event));
|
|
472
|
+
EventHandler__default.default.on(this._element, EVENT_POINTERUP, event => end(event));
|
|
448
473
|
|
|
449
474
|
this._element.classList.add(CLASS_NAME_POINTER_EVENT);
|
|
450
475
|
} else {
|
|
451
|
-
EventHandler__default
|
|
452
|
-
EventHandler__default
|
|
453
|
-
EventHandler__default
|
|
476
|
+
EventHandler__default.default.on(this._element, EVENT_TOUCHSTART, event => start(event));
|
|
477
|
+
EventHandler__default.default.on(this._element, EVENT_TOUCHMOVE, event => move(event));
|
|
478
|
+
EventHandler__default.default.on(this._element, EVENT_TOUCHEND, event => end(event));
|
|
454
479
|
}
|
|
455
480
|
}
|
|
456
481
|
|
|
@@ -469,7 +494,7 @@
|
|
|
469
494
|
}
|
|
470
495
|
|
|
471
496
|
_getItemIndex(element) {
|
|
472
|
-
this._items = element && element.parentNode ? SelectorEngine__default
|
|
497
|
+
this._items = element && element.parentNode ? SelectorEngine__default.default.find(SELECTOR_ITEM, element.parentNode) : [];
|
|
473
498
|
return this._items.indexOf(element);
|
|
474
499
|
}
|
|
475
500
|
|
|
@@ -481,9 +506,9 @@
|
|
|
481
506
|
_triggerSlideEvent(relatedTarget, eventDirectionName) {
|
|
482
507
|
const targetIndex = this._getItemIndex(relatedTarget);
|
|
483
508
|
|
|
484
|
-
const fromIndex = this._getItemIndex(SelectorEngine__default
|
|
509
|
+
const fromIndex = this._getItemIndex(SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element));
|
|
485
510
|
|
|
486
|
-
return EventHandler__default
|
|
511
|
+
return EventHandler__default.default.trigger(this._element, EVENT_SLIDE, {
|
|
487
512
|
relatedTarget,
|
|
488
513
|
direction: eventDirectionName,
|
|
489
514
|
from: fromIndex,
|
|
@@ -493,10 +518,10 @@
|
|
|
493
518
|
|
|
494
519
|
_setActiveIndicatorElement(element) {
|
|
495
520
|
if (this._indicatorsElement) {
|
|
496
|
-
const activeIndicator = SelectorEngine__default
|
|
521
|
+
const activeIndicator = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
|
|
497
522
|
activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
|
|
498
523
|
activeIndicator.removeAttribute('aria-current');
|
|
499
|
-
const indicators = SelectorEngine__default
|
|
524
|
+
const indicators = SelectorEngine__default.default.find(SELECTOR_INDICATOR, this._indicatorsElement);
|
|
500
525
|
|
|
501
526
|
for (let i = 0; i < indicators.length; i++) {
|
|
502
527
|
if (Number.parseInt(indicators[i].getAttribute('data-coreui-slide-to'), 10) === this._getItemIndex(element)) {
|
|
@@ -509,7 +534,7 @@
|
|
|
509
534
|
}
|
|
510
535
|
|
|
511
536
|
_updateInterval() {
|
|
512
|
-
const element = this._activeElement || SelectorEngine__default
|
|
537
|
+
const element = this._activeElement || SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
|
|
513
538
|
|
|
514
539
|
if (!element) {
|
|
515
540
|
return;
|
|
@@ -528,7 +553,7 @@
|
|
|
528
553
|
_slide(directionOrOrder, element) {
|
|
529
554
|
const order = this._directionToOrder(directionOrOrder);
|
|
530
555
|
|
|
531
|
-
const activeElement = SelectorEngine__default
|
|
556
|
+
const activeElement = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
|
|
532
557
|
|
|
533
558
|
const activeElementIndex = this._getItemIndex(activeElement);
|
|
534
559
|
|
|
@@ -574,7 +599,7 @@
|
|
|
574
599
|
this._activeElement = nextElement;
|
|
575
600
|
|
|
576
601
|
const triggerSlidEvent = () => {
|
|
577
|
-
EventHandler__default
|
|
602
|
+
EventHandler__default.default.trigger(this._element, EVENT_SLID, {
|
|
578
603
|
relatedTarget: nextElement,
|
|
579
604
|
direction: eventDirectionName,
|
|
580
605
|
from: activeElementIndex,
|
|
@@ -675,8 +700,8 @@
|
|
|
675
700
|
return;
|
|
676
701
|
}
|
|
677
702
|
|
|
678
|
-
const config = { ...Manipulator__default
|
|
679
|
-
...Manipulator__default
|
|
703
|
+
const config = { ...Manipulator__default.default.getDataAttributes(target),
|
|
704
|
+
...Manipulator__default.default.getDataAttributes(this)
|
|
680
705
|
};
|
|
681
706
|
const slideIndex = this.getAttribute('data-coreui-slide-to');
|
|
682
707
|
|
|
@@ -701,9 +726,9 @@
|
|
|
701
726
|
*/
|
|
702
727
|
|
|
703
728
|
|
|
704
|
-
EventHandler__default
|
|
705
|
-
EventHandler__default
|
|
706
|
-
const carousels = SelectorEngine__default
|
|
729
|
+
EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
|
|
730
|
+
EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
|
|
731
|
+
const carousels = SelectorEngine__default.default.find(SELECTOR_DATA_RIDE);
|
|
707
732
|
|
|
708
733
|
for (let i = 0, len = carousels.length; i < len; i++) {
|
|
709
734
|
Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));
|
|
@@ -720,5 +745,5 @@
|
|
|
720
745
|
|
|
721
746
|
return Carousel;
|
|
722
747
|
|
|
723
|
-
}))
|
|
748
|
+
}));
|
|
724
749
|
//# sourceMappingURL=carousel.js.map
|
package/js/dist/carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/carousel.js"],"sourcesContent":["import SelectorEngine from '../dom/selector-engine'\n\n/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.0.2): alert.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-coreui-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n if (isElement(obj)) { // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return SelectorEngine.findOne(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback())\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n getElement,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n getNextActiveElement,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin,\n execute,\n executeAfterTransition\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.0.2): 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 isRTL,\n isVisible,\n getNextActiveElement,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\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_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-coreui-target]'\nconst SELECTOR_DATA_SLIDE = '[data-coreui-slide], [data-coreui-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-coreui-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\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(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\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(direction)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap)\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\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 indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-coreui-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-coreui-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n if (this._isSliding) {\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const triggerSlidEvent = () => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\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 setTimeout(triggerSlidEvent, 0)\n }\n\n this._queueCallback(completeCallBack, activeElement, true)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n triggerSlidEvent()\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\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 (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\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\n static carouselInterface(element, config) {\n const data = Carousel.getOrCreateInstance(element, config)\n\n let { _config } = data\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-coreui-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n"],"names":["TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getElementFromSelector","document","querySelector","triggerTransitionEnd","dispatchEvent","Event","isElement","jquery","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","getClientRects","length","getComputedStyle","getPropertyValue","reflow","offsetHeight","getjQuery","jQuery","window","body","hasAttribute","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","push","isRTL","documentElement","dir","defineJQueryPlugin","plugin","$","name","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","index","indexOf","listLength","Math","max","min","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_INDICATOR","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","Carousel","BaseComponent","constructor","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","SelectorEngine","findOne","_element","_touchSupported","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","activeIndex","_getItemIndex","EventHandler","one","order","Manipulator","getDataAttributes","_handleSwipe","absDeltax","abs","direction","on","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","setTimeout","find","itemImg","e","preventDefault","classList","add","target","tagName","key","parentNode","_getItemByOrder","isNext","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","trigger","from","_setActiveIndicatorElement","activeIndicator","remove","removeAttribute","indicators","i","Number","parseInt","setAttribute","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","contains","slideEvent","defaultPrevented","triggerSlidEvent","completeCallBack","_queueCallback","carouselInterface","data","getOrCreateInstance","action","ride","each","dataApiClickHandler","slideIndex","getInstance","carousels","len"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.1.0): alert.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-coreui-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n if (isElement(obj)) { // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight\n}\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback())\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n getElement,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n getNextActiveElement,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin,\n execute,\n executeAfterTransition\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.1.0): 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 isRTL,\n isVisible,\n getNextActiveElement,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\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_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${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'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-coreui-target]'\nconst SELECTOR_DATA_SLIDE = '[data-coreui-slide], [data-coreui-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-coreui-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\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(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._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 if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\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, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const hasPointerPenTouch = event => {\n return this._pointerEvent &&\n (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n const start = event => {\n if (hasPointerPenTouch(event)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (hasPointerPenTouch(event)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\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(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, event => event.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\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(direction)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap)\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\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 indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-coreui-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-coreui-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n if (this._isSliding) {\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const triggerSlidEvent = () => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\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 setTimeout(triggerSlidEvent, 0)\n }\n\n this._queueCallback(completeCallBack, activeElement, true)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n triggerSlidEvent()\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\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 (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\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\n static carouselInterface(element, config) {\n const data = Carousel.getOrCreateInstance(element, config)\n\n let { _config } = data\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-coreui-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n"],"names":["TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getElementFromSelector","document","querySelector","triggerTransitionEnd","dispatchEvent","Event","isElement","jquery","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","getClientRects","length","getComputedStyle","getPropertyValue","reflow","offsetHeight","getjQuery","jQuery","window","body","hasAttribute","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","push","isRTL","documentElement","dir","defineJQueryPlugin","plugin","$","name","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","index","indexOf","listLength","Math","max","min","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","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","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_INDICATOR","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","Carousel","BaseComponent","constructor","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","SelectorEngine","findOne","_element","_touchSupported","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","activeIndex","_getItemIndex","EventHandler","one","order","Manipulator","getDataAttributes","_handleSwipe","absDeltax","abs","direction","on","_keydown","_addTouchEventListeners","hasPointerPenTouch","pointerType","start","clientX","touches","move","end","clearTimeout","setTimeout","find","itemImg","preventDefault","classList","add","target","tagName","key","parentNode","_getItemByOrder","isNext","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","trigger","from","_setActiveIndicatorElement","activeIndicator","remove","removeAttribute","indicators","i","Number","parseInt","setAttribute","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","contains","slideEvent","defaultPrevented","triggerSlidEvent","completeCallBack","_queueCallback","carouselInterface","data","getOrCreateInstance","action","ride","each","dataApiClickHandler","slideIndex","getInstance","carousels","len"],"mappings":"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"}
|