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