bootstrap 5.0.1 → 5.1.2

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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/assets/javascripts/bootstrap/alert.js +89 -58
  4. data/assets/javascripts/bootstrap/base-component.js +53 -39
  5. data/assets/javascripts/bootstrap/button.js +31 -25
  6. data/assets/javascripts/bootstrap/carousel.js +126 -89
  7. data/assets/javascripts/bootstrap/collapse.js +125 -133
  8. data/assets/javascripts/bootstrap/dom/data.js +5 -5
  9. data/assets/javascripts/bootstrap/dom/event-handler.js +11 -5
  10. data/assets/javascripts/bootstrap/dom/manipulator.js +6 -6
  11. data/assets/javascripts/bootstrap/dom/selector-engine.js +49 -7
  12. data/assets/javascripts/bootstrap/dropdown.js +147 -140
  13. data/assets/javascripts/bootstrap/modal.js +397 -180
  14. data/assets/javascripts/bootstrap/offcanvas.js +333 -138
  15. data/assets/javascripts/bootstrap/popover.js +36 -54
  16. data/assets/javascripts/bootstrap/scrollspy.js +58 -68
  17. data/assets/javascripts/bootstrap/tab.js +53 -26
  18. data/assets/javascripts/bootstrap/toast.js +138 -41
  19. data/assets/javascripts/bootstrap/tooltip.js +137 -120
  20. data/assets/javascripts/bootstrap-sprockets.js +8 -8
  21. data/assets/javascripts/bootstrap.js +937 -886
  22. data/assets/javascripts/bootstrap.min.js +2 -2
  23. data/assets/stylesheets/_bootstrap-grid.scss +3 -1
  24. data/assets/stylesheets/_bootstrap-reboot.scss +2 -4
  25. data/assets/stylesheets/_bootstrap.scss +2 -1
  26. data/assets/stylesheets/bootstrap/_buttons.scss +1 -0
  27. data/assets/stylesheets/bootstrap/_card.scss +7 -6
  28. data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
  29. data/assets/stylesheets/bootstrap/_dropdown.scss +4 -4
  30. data/assets/stylesheets/bootstrap/_functions.scss +100 -3
  31. data/assets/stylesheets/bootstrap/_grid.scss +11 -0
  32. data/assets/stylesheets/bootstrap/_helpers.scss +2 -0
  33. data/assets/stylesheets/bootstrap/_images.scss +1 -1
  34. data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
  35. data/assets/stylesheets/bootstrap/_modal.scss +5 -15
  36. data/assets/stylesheets/bootstrap/_navbar.scss +30 -1
  37. data/assets/stylesheets/bootstrap/_offcanvas.scss +8 -2
  38. data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
  39. data/assets/stylesheets/bootstrap/_popover.scss +10 -10
  40. data/assets/stylesheets/bootstrap/_reboot.scss +12 -8
  41. data/assets/stylesheets/bootstrap/_root.scss +40 -2
  42. data/assets/stylesheets/bootstrap/_tables.scss +9 -5
  43. data/assets/stylesheets/bootstrap/_toasts.scss +3 -3
  44. data/assets/stylesheets/bootstrap/_tooltip.scss +4 -4
  45. data/assets/stylesheets/bootstrap/_transitions.scss +6 -0
  46. data/assets/stylesheets/bootstrap/_utilities.scss +44 -8
  47. data/assets/stylesheets/bootstrap/_variables.scss +206 -29
  48. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
  49. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +3 -1
  50. data/assets/stylesheets/bootstrap/forms/_form-check.scss +1 -1
  51. data/assets/stylesheets/bootstrap/forms/_form-control.scss +1 -1
  52. data/assets/stylesheets/bootstrap/forms/_form-range.scss +1 -1
  53. data/assets/stylesheets/bootstrap/forms/_form-select.scss +5 -0
  54. data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
  55. data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
  56. data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
  57. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +1 -1
  58. data/assets/stylesheets/bootstrap/mixins/_grid.scss +35 -9
  59. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +27 -6
  60. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +1 -1
  61. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +55 -13
  62. data/bootstrap.gemspec +3 -3
  63. data/lib/bootstrap/version.rb +2 -2
  64. data/tasks/updater/js.rb +6 -2
  65. metadata +12 -8
@@ -1,22 +1,27 @@
1
1
  /*!
2
- * Bootstrap carousel.js v5.0.1 (https://getbootstrap.com/)
2
+ * Bootstrap carousel.js v5.1.2 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.js'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/data', './dom/event-handler', './dom/manipulator', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.SelectorEngine, global.Data, global.EventHandler, global.Manipulator, global.Base));
10
- }(this, (function (SelectorEngine, Data, EventHandler, Manipulator, BaseComponent) { 'use strict';
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
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
13
 
14
- var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
15
- var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
16
- var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
17
- var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
18
- var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
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);
19
18
 
19
+ /**
20
+ * --------------------------------------------------------------------------
21
+ * Bootstrap (v5.1.2): util/index.js
22
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
23
+ * --------------------------------------------------------------------------
24
+ */
20
25
  const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
21
26
 
22
27
  const toType = obj => {
@@ -85,20 +90,26 @@
85
90
  };
86
91
 
87
92
  const isVisible = element => {
88
- if (!element) {
93
+ if (!isElement(element) || element.getClientRects().length === 0) {
89
94
  return false;
90
95
  }
91
96
 
92
- if (element.style && element.parentNode && element.parentNode.style) {
93
- const elementStyle = getComputedStyle(element);
94
- const parentNodeStyle = getComputedStyle(element.parentNode);
95
- return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
96
- }
97
-
98
- return false;
97
+ return getComputedStyle(element).getPropertyValue('visibility') === 'visible';
99
98
  };
99
+ /**
100
+ * Trick to restart an element's animation
101
+ *
102
+ * @param {HTMLElement} element
103
+ * @return void
104
+ *
105
+ * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
106
+ */
100
107
 
101
- const reflow = element => element.offsetHeight;
108
+
109
+ const reflow = element => {
110
+ // eslint-disable-next-line no-unused-expressions
111
+ element.offsetHeight;
112
+ };
102
113
 
103
114
  const getjQuery = () => {
104
115
  const {
@@ -112,9 +123,18 @@
112
123
  return null;
113
124
  };
114
125
 
126
+ const DOMContentLoadedCallbacks = [];
127
+
115
128
  const onDOMContentLoaded = callback => {
116
129
  if (document.readyState === 'loading') {
117
- document.addEventListener('DOMContentLoaded', callback);
130
+ // add listener on the first call when the document is in loading state
131
+ if (!DOMContentLoadedCallbacks.length) {
132
+ document.addEventListener('DOMContentLoaded', () => {
133
+ DOMContentLoadedCallbacks.forEach(callback => callback());
134
+ });
135
+ }
136
+
137
+ DOMContentLoadedCallbacks.push(callback);
118
138
  } else {
119
139
  callback();
120
140
  }
@@ -140,10 +160,37 @@
140
160
  }
141
161
  });
142
162
  };
163
+ /**
164
+ * Return the previous/next element of a list.
165
+ *
166
+ * @param {array} list The list of elements
167
+ * @param activeElement The active element
168
+ * @param shouldGetNext Choose to get next or previous element
169
+ * @param isCycleAllowed
170
+ * @return {Element|elem} The proper element
171
+ */
172
+
173
+
174
+ const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
175
+ let index = list.indexOf(activeElement); // if the element does not exist in the list return an element depending on the direction and if cycle is allowed
176
+
177
+ if (index === -1) {
178
+ return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0];
179
+ }
180
+
181
+ const listLength = list.length;
182
+ index += shouldGetNext ? 1 : -1;
183
+
184
+ if (isCycleAllowed) {
185
+ index = (index + listLength) % listLength;
186
+ }
187
+
188
+ return list[Math.max(0, Math.min(index, listLength - 1))];
189
+ };
143
190
 
144
191
  /**
145
192
  * --------------------------------------------------------------------------
146
- * Bootstrap (v5.0.1): carousel.js
193
+ * Bootstrap (v5.1.2): carousel.js
147
194
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
148
195
  * --------------------------------------------------------------------------
149
196
  */
@@ -182,6 +229,10 @@
182
229
  const ORDER_PREV = 'prev';
183
230
  const DIRECTION_LEFT = 'left';
184
231
  const DIRECTION_RIGHT = 'right';
232
+ const KEY_TO_DIRECTION = {
233
+ [ARROW_LEFT_KEY]: DIRECTION_RIGHT,
234
+ [ARROW_RIGHT_KEY]: DIRECTION_LEFT
235
+ };
185
236
  const EVENT_SLIDE = `slide${EVENT_KEY}`;
186
237
  const EVENT_SLID = `slid${EVENT_KEY}`;
187
238
  const EVENT_KEYDOWN = `keydown${EVENT_KEY}`;
@@ -220,7 +271,7 @@
220
271
  * ------------------------------------------------------------------------
221
272
  */
222
273
 
223
- class Carousel extends BaseComponent__default['default'] {
274
+ class Carousel extends BaseComponent__default.default {
224
275
  constructor(element, config) {
225
276
  super(element);
226
277
  this._items = null;
@@ -232,7 +283,7 @@
232
283
  this.touchStartX = 0;
233
284
  this.touchDeltaX = 0;
234
285
  this._config = this._getConfig(config);
235
- this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, this._element);
286
+ this._indicatorsElement = SelectorEngine__default.default.findOne(SELECTOR_INDICATORS, this._element);
236
287
  this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
237
288
  this._pointerEvent = Boolean(window.PointerEvent);
238
289
 
@@ -250,9 +301,7 @@
250
301
 
251
302
 
252
303
  next() {
253
- if (!this._isSliding) {
254
- this._slide(ORDER_NEXT);
255
- }
304
+ this._slide(ORDER_NEXT);
256
305
  }
257
306
 
258
307
  nextWhenVisible() {
@@ -264,9 +313,7 @@
264
313
  }
265
314
 
266
315
  prev() {
267
- if (!this._isSliding) {
268
- this._slide(ORDER_PREV);
269
- }
316
+ this._slide(ORDER_PREV);
270
317
  }
271
318
 
272
319
  pause(event) {
@@ -274,7 +321,7 @@
274
321
  this._isPaused = true;
275
322
  }
276
323
 
277
- if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {
324
+ if (SelectorEngine__default.default.findOne(SELECTOR_NEXT_PREV, this._element)) {
278
325
  triggerTransitionEnd(this._element);
279
326
  this.cycle(true);
280
327
  }
@@ -301,7 +348,7 @@
301
348
  }
302
349
 
303
350
  to(index) {
304
- this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
351
+ this._activeElement = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
305
352
 
306
353
  const activeIndex = this._getItemIndex(this._activeElement);
307
354
 
@@ -310,7 +357,7 @@
310
357
  }
311
358
 
312
359
  if (this._isSliding) {
313
- EventHandler__default['default'].one(this._element, EVENT_SLID, () => this.to(index));
360
+ EventHandler__default.default.one(this._element, EVENT_SLID, () => this.to(index));
314
361
  return;
315
362
  }
316
363
 
@@ -328,7 +375,8 @@
328
375
 
329
376
  _getConfig(config) {
330
377
  config = { ...Default,
331
- ...config
378
+ ...Manipulator__default.default.getDataAttributes(this._element),
379
+ ...(typeof config === 'object' ? config : {})
332
380
  };
333
381
  typeCheckConfig(NAME, config, DefaultType);
334
382
  return config;
@@ -353,12 +401,12 @@
353
401
 
354
402
  _addEventListeners() {
355
403
  if (this._config.keyboard) {
356
- EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
404
+ EventHandler__default.default.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
357
405
  }
358
406
 
359
407
  if (this._config.pause === 'hover') {
360
- EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, event => this.pause(event));
361
- EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event));
408
+ EventHandler__default.default.on(this._element, EVENT_MOUSEENTER, event => this.pause(event));
409
+ EventHandler__default.default.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event));
362
410
  }
363
411
 
364
412
  if (this._config.touch && this._touchSupported) {
@@ -367,8 +415,12 @@
367
415
  }
368
416
 
369
417
  _addTouchEventListeners() {
418
+ const hasPointerPenTouch = event => {
419
+ return this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
420
+ };
421
+
370
422
  const start = event => {
371
- if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
423
+ if (hasPointerPenTouch(event)) {
372
424
  this.touchStartX = event.clientX;
373
425
  } else if (!this._pointerEvent) {
374
426
  this.touchStartX = event.touches[0].clientX;
@@ -381,7 +433,7 @@
381
433
  };
382
434
 
383
435
  const end = event => {
384
- if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
436
+ if (hasPointerPenTouch(event)) {
385
437
  this.touchDeltaX = event.clientX - this.touchStartX;
386
438
  }
387
439
 
@@ -405,19 +457,19 @@
405
457
  }
406
458
  };
407
459
 
408
- SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {
409
- EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, e => e.preventDefault());
460
+ SelectorEngine__default.default.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {
461
+ EventHandler__default.default.on(itemImg, EVENT_DRAG_START, event => event.preventDefault());
410
462
  });
411
463
 
412
464
  if (this._pointerEvent) {
413
- EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, event => start(event));
414
- EventHandler__default['default'].on(this._element, EVENT_POINTERUP, event => end(event));
465
+ EventHandler__default.default.on(this._element, EVENT_POINTERDOWN, event => start(event));
466
+ EventHandler__default.default.on(this._element, EVENT_POINTERUP, event => end(event));
415
467
 
416
468
  this._element.classList.add(CLASS_NAME_POINTER_EVENT);
417
469
  } else {
418
- EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, event => start(event));
419
- EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, event => move(event));
420
- EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, event => end(event));
470
+ EventHandler__default.default.on(this._element, EVENT_TOUCHSTART, event => start(event));
471
+ EventHandler__default.default.on(this._element, EVENT_TOUCHMOVE, event => move(event));
472
+ EventHandler__default.default.on(this._element, EVENT_TOUCHEND, event => end(event));
421
473
  }
422
474
  }
423
475
 
@@ -426,46 +478,31 @@
426
478
  return;
427
479
  }
428
480
 
429
- if (event.key === ARROW_LEFT_KEY) {
430
- event.preventDefault();
481
+ const direction = KEY_TO_DIRECTION[event.key];
431
482
 
432
- this._slide(DIRECTION_RIGHT);
433
- } else if (event.key === ARROW_RIGHT_KEY) {
483
+ if (direction) {
434
484
  event.preventDefault();
435
485
 
436
- this._slide(DIRECTION_LEFT);
486
+ this._slide(direction);
437
487
  }
438
488
  }
439
489
 
440
490
  _getItemIndex(element) {
441
- this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];
491
+ this._items = element && element.parentNode ? SelectorEngine__default.default.find(SELECTOR_ITEM, element.parentNode) : [];
442
492
  return this._items.indexOf(element);
443
493
  }
444
494
 
445
495
  _getItemByOrder(order, activeElement) {
446
496
  const isNext = order === ORDER_NEXT;
447
- const isPrev = order === ORDER_PREV;
448
-
449
- const activeIndex = this._getItemIndex(activeElement);
450
-
451
- const lastItemIndex = this._items.length - 1;
452
- const isGoingToWrap = isPrev && activeIndex === 0 || isNext && activeIndex === lastItemIndex;
453
-
454
- if (isGoingToWrap && !this._config.wrap) {
455
- return activeElement;
456
- }
457
-
458
- const delta = isPrev ? -1 : 1;
459
- const itemIndex = (activeIndex + delta) % this._items.length;
460
- return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
497
+ return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap);
461
498
  }
462
499
 
463
500
  _triggerSlideEvent(relatedTarget, eventDirectionName) {
464
501
  const targetIndex = this._getItemIndex(relatedTarget);
465
502
 
466
- const fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));
503
+ const fromIndex = this._getItemIndex(SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element));
467
504
 
468
- return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {
505
+ return EventHandler__default.default.trigger(this._element, EVENT_SLIDE, {
469
506
  relatedTarget,
470
507
  direction: eventDirectionName,
471
508
  from: fromIndex,
@@ -475,10 +512,10 @@
475
512
 
476
513
  _setActiveIndicatorElement(element) {
477
514
  if (this._indicatorsElement) {
478
- const activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement);
515
+ const activeIndicator = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
479
516
  activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
480
517
  activeIndicator.removeAttribute('aria-current');
481
- const indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement);
518
+ const indicators = SelectorEngine__default.default.find(SELECTOR_INDICATOR, this._indicatorsElement);
482
519
 
483
520
  for (let i = 0; i < indicators.length; i++) {
484
521
  if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {
@@ -491,7 +528,7 @@
491
528
  }
492
529
 
493
530
  _updateInterval() {
494
- const element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
531
+ const element = this._activeElement || SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
495
532
 
496
533
  if (!element) {
497
534
  return;
@@ -510,7 +547,7 @@
510
547
  _slide(directionOrOrder, element) {
511
548
  const order = this._directionToOrder(directionOrOrder);
512
549
 
513
- const activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
550
+ const activeElement = SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM, this._element);
514
551
 
515
552
  const activeElementIndex = this._getItemIndex(activeElement);
516
553
 
@@ -530,6 +567,10 @@
530
567
  return;
531
568
  }
532
569
 
570
+ if (this._isSliding) {
571
+ return;
572
+ }
573
+
533
574
  const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
534
575
 
535
576
  if (slideEvent.defaultPrevented) {
@@ -552,7 +593,7 @@
552
593
  this._activeElement = nextElement;
553
594
 
554
595
  const triggerSlidEvent = () => {
555
- EventHandler__default['default'].trigger(this._element, EVENT_SLID, {
596
+ EventHandler__default.default.trigger(this._element, EVENT_SLID, {
556
597
  relatedTarget: nextElement,
557
598
  direction: eventDirectionName,
558
599
  from: activeElementIndex,
@@ -613,10 +654,10 @@
613
654
 
614
655
 
615
656
  static carouselInterface(element, config) {
616
- let data = Data__default['default'].get(element, DATA_KEY);
617
- let _config = { ...Default,
618
- ...Manipulator__default['default'].getDataAttributes(element)
619
- };
657
+ const data = Carousel.getOrCreateInstance(element, config);
658
+ let {
659
+ _config
660
+ } = data;
620
661
 
621
662
  if (typeof config === 'object') {
622
663
  _config = { ..._config,
@@ -626,10 +667,6 @@
626
667
 
627
668
  const action = typeof config === 'string' ? config : _config.slide;
628
669
 
629
- if (!data) {
630
- data = new Carousel(element, _config);
631
- }
632
-
633
670
  if (typeof config === 'number') {
634
671
  data.to(config);
635
672
  } else if (typeof action === 'string') {
@@ -657,8 +694,8 @@
657
694
  return;
658
695
  }
659
696
 
660
- const config = { ...Manipulator__default['default'].getDataAttributes(target),
661
- ...Manipulator__default['default'].getDataAttributes(this)
697
+ const config = { ...Manipulator__default.default.getDataAttributes(target),
698
+ ...Manipulator__default.default.getDataAttributes(this)
662
699
  };
663
700
  const slideIndex = this.getAttribute('data-bs-slide-to');
664
701
 
@@ -669,7 +706,7 @@
669
706
  Carousel.carouselInterface(target, config);
670
707
 
671
708
  if (slideIndex) {
672
- Data__default['default'].get(target, DATA_KEY).to(slideIndex);
709
+ Carousel.getInstance(target).to(slideIndex);
673
710
  }
674
711
 
675
712
  event.preventDefault();
@@ -683,12 +720,12 @@
683
720
  */
684
721
 
685
722
 
686
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
687
- EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, () => {
688
- const carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);
723
+ EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
724
+ EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
725
+ const carousels = SelectorEngine__default.default.find(SELECTOR_DATA_RIDE);
689
726
 
690
727
  for (let i = 0, len = carousels.length; i < len; i++) {
691
- Carousel.carouselInterface(carousels[i], Data__default['default'].get(carousels[i], DATA_KEY));
728
+ Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));
692
729
  }
693
730
  });
694
731
  /**
@@ -702,4 +739,4 @@
702
739
 
703
740
  return Carousel;
704
741
 
705
- })));
742
+ }));