bootstrap 5.1.3 → 5.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -4
  3. data/assets/javascripts/bootstrap/alert.js +11 -146
  4. data/assets/javascripts/bootstrap/base-component.js +37 -120
  5. data/assets/javascripts/bootstrap/button.js +10 -74
  6. data/assets/javascripts/bootstrap/carousel.js +213 -485
  7. data/assets/javascripts/bootstrap/collapse.js +65 -249
  8. data/assets/javascripts/bootstrap/dom/data.js +3 -5
  9. data/assets/javascripts/bootstrap/dom/event-handler.js +94 -132
  10. data/assets/javascripts/bootstrap/dom/manipulator.js +23 -27
  11. data/assets/javascripts/bootstrap/dom/selector-engine.js +16 -58
  12. data/assets/javascripts/bootstrap/dropdown.js +103 -317
  13. data/assets/javascripts/bootstrap/modal.js +107 -749
  14. data/assets/javascripts/bootstrap/offcanvas.js +90 -659
  15. data/assets/javascripts/bootstrap/popover.js +36 -118
  16. data/assets/javascripts/bootstrap/scrollspy.js +183 -262
  17. data/assets/javascripts/bootstrap/tab.js +215 -214
  18. data/assets/javascripts/bootstrap/toast.js +28 -214
  19. data/assets/javascripts/bootstrap/tooltip.js +272 -611
  20. data/assets/javascripts/bootstrap/util/backdrop.js +165 -0
  21. data/assets/javascripts/bootstrap/util/component-functions.js +46 -0
  22. data/assets/javascripts/bootstrap/util/config.js +79 -0
  23. data/assets/javascripts/bootstrap/util/focustrap.js +129 -0
  24. data/assets/javascripts/bootstrap/util/index.js +350 -0
  25. data/assets/javascripts/bootstrap/util/sanitizer.js +122 -0
  26. data/assets/javascripts/bootstrap/util/scrollbar.js +138 -0
  27. data/assets/javascripts/bootstrap/util/swipe.js +155 -0
  28. data/assets/javascripts/bootstrap/util/template-factory.js +177 -0
  29. data/assets/javascripts/bootstrap-global-this-define.js +1 -1
  30. data/assets/javascripts/bootstrap-sprockets.js +10 -1
  31. data/assets/javascripts/bootstrap.js +2077 -1859
  32. data/assets/javascripts/bootstrap.min.js +3 -3
  33. data/assets/stylesheets/_bootstrap-grid.scss +3 -6
  34. data/assets/stylesheets/_bootstrap-reboot.scss +3 -7
  35. data/assets/stylesheets/_bootstrap.scss +4 -6
  36. data/assets/stylesheets/bootstrap/_accordion.scss +56 -25
  37. data/assets/stylesheets/bootstrap/_alert.scss +18 -4
  38. data/assets/stylesheets/bootstrap/_badge.scss +14 -5
  39. data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -10
  40. data/assets/stylesheets/bootstrap/_button-group.scss +4 -1
  41. data/assets/stylesheets/bootstrap/_buttons.scss +120 -30
  42. data/assets/stylesheets/bootstrap/_card.scss +55 -37
  43. data/assets/stylesheets/bootstrap/_close.scss +1 -1
  44. data/assets/stylesheets/bootstrap/_containers.scss +1 -1
  45. data/assets/stylesheets/bootstrap/_dropdown.scss +85 -76
  46. data/assets/stylesheets/bootstrap/_functions.scss +8 -8
  47. data/assets/stylesheets/bootstrap/_grid.scss +3 -3
  48. data/assets/stylesheets/bootstrap/_helpers.scss +1 -0
  49. data/assets/stylesheets/bootstrap/_list-group.scss +48 -30
  50. data/assets/stylesheets/bootstrap/_maps.scss +54 -0
  51. data/assets/stylesheets/bootstrap/_modal.scss +71 -43
  52. data/assets/stylesheets/bootstrap/_nav.scss +53 -20
  53. data/assets/stylesheets/bootstrap/_navbar.scss +93 -150
  54. data/assets/stylesheets/bootstrap/_offcanvas.scss +120 -59
  55. data/assets/stylesheets/bootstrap/_pagination.scss +66 -21
  56. data/assets/stylesheets/bootstrap/_placeholders.scss +1 -1
  57. data/assets/stylesheets/bootstrap/_popover.scss +90 -52
  58. data/assets/stylesheets/bootstrap/_progress.scss +20 -9
  59. data/assets/stylesheets/bootstrap/_reboot.scss +25 -40
  60. data/assets/stylesheets/bootstrap/_root.scss +40 -21
  61. data/assets/stylesheets/bootstrap/_spinners.scss +38 -22
  62. data/assets/stylesheets/bootstrap/_tables.scss +32 -23
  63. data/assets/stylesheets/bootstrap/_toasts.scss +36 -16
  64. data/assets/stylesheets/bootstrap/_tooltip.scss +61 -56
  65. data/assets/stylesheets/bootstrap/_type.scss +2 -0
  66. data/assets/stylesheets/bootstrap/_utilities.scss +43 -26
  67. data/assets/stylesheets/bootstrap/_variables.scss +128 -135
  68. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +3 -6
  69. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +15 -3
  70. data/assets/stylesheets/bootstrap/forms/_form-check.scss +28 -5
  71. data/assets/stylesheets/bootstrap/forms/_form-control.scss +12 -37
  72. data/assets/stylesheets/bootstrap/forms/_form-select.scss +0 -1
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +19 -8
  74. data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +10 -0
  75. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +2 -2
  76. data/assets/stylesheets/bootstrap/helpers/_position.scss +7 -1
  77. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +2 -2
  78. data/assets/stylesheets/bootstrap/helpers/_vr.scss +1 -1
  79. data/assets/stylesheets/bootstrap/mixins/_alert.scss +7 -3
  80. data/assets/stylesheets/bootstrap/mixins/_banner.scss +9 -0
  81. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +8 -8
  82. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +32 -95
  83. data/assets/stylesheets/bootstrap/mixins/_container.scss +4 -2
  84. data/assets/stylesheets/bootstrap/mixins/_forms.scss +18 -10
  85. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
  86. data/assets/stylesheets/bootstrap/mixins/_grid.scss +12 -12
  87. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +4 -25
  88. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  89. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +12 -9
  90. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +13 -5
  91. data/bootstrap.gemspec +1 -1
  92. data/lib/bootstrap/version.rb +2 -2
  93. data/tasks/updater/js.rb +10 -5
  94. metadata +16 -4
@@ -1,199 +1,34 @@
1
1
  /*!
2
- * Bootstrap collapse.js v5.1.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap collapse.js v5.2.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2022 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/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
- })(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/selector-engine'), require('./base-component')) :
8
+ typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/selector-engine', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Index, global.EventHandler, global.SelectorEngine, global.BaseComponent));
10
+ })(this, (function (index, EventHandler, SelectorEngine, BaseComponent) { 'use strict';
11
11
 
12
12
  const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
13
 
14
- const Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
14
  const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
- const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
15
  const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
16
  const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
19
17
 
20
18
  /**
21
19
  * --------------------------------------------------------------------------
22
- * Bootstrap (v5.1.3): util/index.js
20
+ * Bootstrap (v5.2.1): collapse.js
23
21
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
24
22
  * --------------------------------------------------------------------------
25
23
  */
26
-
27
- const toType = obj => {
28
- if (obj === null || obj === undefined) {
29
- return `${obj}`;
30
- }
31
-
32
- return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
33
- };
34
-
35
- const getSelector = element => {
36
- let selector = element.getAttribute('data-bs-target');
37
-
38
- if (!selector || selector === '#') {
39
- let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
40
- // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
41
- // `document.querySelector` will rightfully complain it is invalid.
42
- // See https://github.com/twbs/bootstrap/issues/32273
43
-
44
- if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
45
- return null;
46
- } // Just in case some CMS puts out a full URL with the anchor appended
47
-
48
-
49
- if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
50
- hrefAttr = `#${hrefAttr.split('#')[1]}`;
51
- }
52
-
53
- selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
54
- }
55
-
56
- return selector;
57
- };
58
-
59
- const getSelectorFromElement = element => {
60
- const selector = getSelector(element);
61
-
62
- if (selector) {
63
- return document.querySelector(selector) ? selector : null;
64
- }
65
-
66
- return null;
67
- };
68
-
69
- const getElementFromSelector = element => {
70
- const selector = getSelector(element);
71
- return selector ? document.querySelector(selector) : null;
72
- };
73
-
74
- const isElement = obj => {
75
- if (!obj || typeof obj !== 'object') {
76
- return false;
77
- }
78
-
79
- if (typeof obj.jquery !== 'undefined') {
80
- obj = obj[0];
81
- }
82
-
83
- return typeof obj.nodeType !== 'undefined';
84
- };
85
-
86
- const getElement = obj => {
87
- if (isElement(obj)) {
88
- // it's a jQuery object or a node element
89
- return obj.jquery ? obj[0] : obj;
90
- }
91
-
92
- if (typeof obj === 'string' && obj.length > 0) {
93
- return document.querySelector(obj);
94
- }
95
-
96
- return null;
97
- };
98
-
99
- const typeCheckConfig = (componentName, config, configTypes) => {
100
- Object.keys(configTypes).forEach(property => {
101
- const expectedTypes = configTypes[property];
102
- const value = config[property];
103
- const valueType = value && isElement(value) ? 'element' : toType(value);
104
-
105
- if (!new RegExp(expectedTypes).test(valueType)) {
106
- throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
107
- }
108
- });
109
- };
110
- /**
111
- * Trick to restart an element's animation
112
- *
113
- * @param {HTMLElement} element
114
- * @return void
115
- *
116
- * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
117
- */
118
-
119
-
120
- const reflow = element => {
121
- // eslint-disable-next-line no-unused-expressions
122
- element.offsetHeight;
123
- };
124
-
125
- const getjQuery = () => {
126
- const {
127
- jQuery
128
- } = window;
129
-
130
- if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
131
- return jQuery;
132
- }
133
-
134
- return null;
135
- };
136
-
137
- const DOMContentLoadedCallbacks = [];
138
-
139
- const onDOMContentLoaded = callback => {
140
- if (document.readyState === 'loading') {
141
- // add listener on the first call when the document is in loading state
142
- if (!DOMContentLoadedCallbacks.length) {
143
- document.addEventListener('DOMContentLoaded', () => {
144
- DOMContentLoadedCallbacks.forEach(callback => callback());
145
- });
146
- }
147
-
148
- DOMContentLoadedCallbacks.push(callback);
149
- } else {
150
- callback();
151
- }
152
- };
153
-
154
- const defineJQueryPlugin = plugin => {
155
- onDOMContentLoaded(() => {
156
- const $ = getjQuery();
157
- /* istanbul ignore if */
158
-
159
- if ($) {
160
- const name = plugin.NAME;
161
- const JQUERY_NO_CONFLICT = $.fn[name];
162
- $.fn[name] = plugin.jQueryInterface;
163
- $.fn[name].Constructor = plugin;
164
-
165
- $.fn[name].noConflict = () => {
166
- $.fn[name] = JQUERY_NO_CONFLICT;
167
- return plugin.jQueryInterface;
168
- };
169
- }
170
- });
171
- };
172
-
173
24
  /**
174
- * --------------------------------------------------------------------------
175
- * Bootstrap (v5.1.3): collapse.js
176
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
177
- * --------------------------------------------------------------------------
178
- */
179
- /**
180
- * ------------------------------------------------------------------------
181
25
  * Constants
182
- * ------------------------------------------------------------------------
183
26
  */
184
27
 
185
28
  const NAME = 'collapse';
186
29
  const DATA_KEY = 'bs.collapse';
187
30
  const EVENT_KEY = `.${DATA_KEY}`;
188
31
  const DATA_API_KEY = '.data-api';
189
- const Default = {
190
- toggle: true,
191
- parent: null
192
- };
193
- const DefaultType = {
194
- toggle: 'boolean',
195
- parent: '(null|element)'
196
- };
197
32
  const EVENT_SHOW = `show${EVENT_KEY}`;
198
33
  const EVENT_SHOWN = `shown${EVENT_KEY}`;
199
34
  const EVENT_HIDE = `hide${EVENT_KEY}`;
@@ -209,28 +44,30 @@
209
44
  const HEIGHT = 'height';
210
45
  const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
211
46
  const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
47
+ const Default = {
48
+ parent: null,
49
+ toggle: true
50
+ };
51
+ const DefaultType = {
52
+ parent: '(null|element)',
53
+ toggle: 'boolean'
54
+ };
212
55
  /**
213
- * ------------------------------------------------------------------------
214
- * Class Definition
215
- * ------------------------------------------------------------------------
56
+ * Class definition
216
57
  */
217
58
 
218
59
  class Collapse extends BaseComponent__default.default {
219
60
  constructor(element, config) {
220
- super(element);
61
+ super(element, config);
221
62
  this._isTransitioning = false;
222
- this._config = this._getConfig(config);
223
63
  this._triggerArray = [];
224
64
  const toggleList = SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE);
225
65
 
226
- for (let i = 0, len = toggleList.length; i < len; i++) {
227
- const elem = toggleList[i];
228
- const selector = getSelectorFromElement(elem);
229
- const filterElement = SelectorEngine__default.default.find(selector).filter(foundElem => foundElem === this._element);
66
+ for (const elem of toggleList) {
67
+ const selector = index.getSelectorFromElement(elem);
68
+ const filterElement = SelectorEngine__default.default.find(selector).filter(foundElement => foundElement === this._element);
230
69
 
231
70
  if (selector !== null && filterElement.length) {
232
- this._selector = selector;
233
-
234
71
  this._triggerArray.push(elem);
235
72
  }
236
73
  }
@@ -251,6 +88,10 @@
251
88
  return Default;
252
89
  }
253
90
 
91
+ static get DefaultType() {
92
+ return DefaultType;
93
+ }
94
+
254
95
  static get NAME() {
255
96
  return NAME;
256
97
  } // Public
@@ -269,23 +110,16 @@
269
110
  return;
270
111
  }
271
112
 
272
- let actives = [];
273
- let activesData;
113
+ let activeChildren = []; // find active children
274
114
 
275
115
  if (this._config.parent) {
276
- const children = SelectorEngine__default.default.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
277
- actives = SelectorEngine__default.default.find(SELECTOR_ACTIVES, this._config.parent).filter(elem => !children.includes(elem)); // remove children if greater depth
116
+ activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {
117
+ toggle: false
118
+ }));
278
119
  }
279
120
 
280
- const container = SelectorEngine__default.default.findOne(this._selector);
281
-
282
- if (actives.length) {
283
- const tempActiveData = actives.find(elem => container !== elem);
284
- activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;
285
-
286
- if (activesData && activesData._isTransitioning) {
287
- return;
288
- }
121
+ if (activeChildren.length && activeChildren[0]._isTransitioning) {
122
+ return;
289
123
  }
290
124
 
291
125
  const startEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW);
@@ -294,17 +128,9 @@
294
128
  return;
295
129
  }
296
130
 
297
- actives.forEach(elemActive => {
298
- if (container !== elemActive) {
299
- Collapse.getOrCreateInstance(elemActive, {
300
- toggle: false
301
- }).hide();
302
- }
303
-
304
- if (!activesData) {
305
- Data__default.default.set(elemActive, DATA_KEY, null);
306
- }
307
- });
131
+ for (const activeInstance of activeChildren) {
132
+ activeInstance.hide();
133
+ }
308
134
 
309
135
  const dimension = this._getDimension();
310
136
 
@@ -351,19 +177,16 @@
351
177
  const dimension = this._getDimension();
352
178
 
353
179
  this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
354
- reflow(this._element);
180
+ index.reflow(this._element);
355
181
 
356
182
  this._element.classList.add(CLASS_NAME_COLLAPSING);
357
183
 
358
184
  this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
359
185
 
360
- const triggerArrayLength = this._triggerArray.length;
186
+ for (const trigger of this._triggerArray) {
187
+ const element = index.getElementFromSelector(trigger);
361
188
 
362
- for (let i = 0; i < triggerArrayLength; i++) {
363
- const trigger = this._triggerArray[i];
364
- const elem = getElementFromSelector(trigger);
365
-
366
- if (elem && !this._isShown(elem)) {
189
+ if (element && !this._isShown(element)) {
367
190
  this._addAriaAndCollapsedClass([trigger], false);
368
191
  }
369
192
  }
@@ -390,15 +213,10 @@
390
213
  } // Private
391
214
 
392
215
 
393
- _getConfig(config) {
394
- config = { ...Default,
395
- ...Manipulator__default.default.getDataAttributes(this._element),
396
- ...config
397
- };
216
+ _configAfterMerge(config) {
398
217
  config.toggle = Boolean(config.toggle); // Coerce string values
399
218
 
400
- config.parent = getElement(config.parent);
401
- typeCheckConfig(NAME, config, DefaultType);
219
+ config.parent = index.getElement(config.parent);
402
220
  return config;
403
221
  }
404
222
 
@@ -411,14 +229,21 @@
411
229
  return;
412
230
  }
413
231
 
414
- const children = SelectorEngine__default.default.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
415
- SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE, this._config.parent).filter(elem => !children.includes(elem)).forEach(element => {
416
- const selected = getElementFromSelector(element);
232
+ const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);
233
+
234
+ for (const element of children) {
235
+ const selected = index.getElementFromSelector(element);
417
236
 
418
237
  if (selected) {
419
238
  this._addAriaAndCollapsedClass([element], this._isShown(selected));
420
239
  }
421
- });
240
+ }
241
+ }
242
+
243
+ _getFirstLevelChildren(selector) {
244
+ const children = SelectorEngine__default.default.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth
245
+
246
+ return SelectorEngine__default.default.find(selector, this._config.parent).filter(element => !children.includes(element));
422
247
  }
423
248
 
424
249
  _addAriaAndCollapsedClass(triggerArray, isOpen) {
@@ -426,26 +251,21 @@
426
251
  return;
427
252
  }
428
253
 
429
- triggerArray.forEach(elem => {
430
- if (isOpen) {
431
- elem.classList.remove(CLASS_NAME_COLLAPSED);
432
- } else {
433
- elem.classList.add(CLASS_NAME_COLLAPSED);
434
- }
435
-
436
- elem.setAttribute('aria-expanded', isOpen);
437
- });
254
+ for (const element of triggerArray) {
255
+ element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
256
+ element.setAttribute('aria-expanded', isOpen);
257
+ }
438
258
  } // Static
439
259
 
440
260
 
441
261
  static jQueryInterface(config) {
442
- return this.each(function () {
443
- const _config = {};
262
+ const _config = {};
444
263
 
445
- if (typeof config === 'string' && /show|hide/.test(config)) {
446
- _config.toggle = false;
447
- }
264
+ if (typeof config === 'string' && /show|hide/.test(config)) {
265
+ _config.toggle = false;
266
+ }
448
267
 
268
+ return this.each(function () {
449
269
  const data = Collapse.getOrCreateInstance(this, _config);
450
270
 
451
271
  if (typeof config === 'string') {
@@ -460,9 +280,7 @@
460
280
 
461
281
  }
462
282
  /**
463
- * ------------------------------------------------------------------------
464
- * Data Api implementation
465
- * ------------------------------------------------------------------------
283
+ * Data API implementation
466
284
  */
467
285
 
468
286
 
@@ -472,22 +290,20 @@
472
290
  event.preventDefault();
473
291
  }
474
292
 
475
- const selector = getSelectorFromElement(this);
293
+ const selector = index.getSelectorFromElement(this);
476
294
  const selectorElements = SelectorEngine__default.default.find(selector);
477
- selectorElements.forEach(element => {
295
+
296
+ for (const element of selectorElements) {
478
297
  Collapse.getOrCreateInstance(element, {
479
298
  toggle: false
480
299
  }).toggle();
481
- });
300
+ }
482
301
  });
483
302
  /**
484
- * ------------------------------------------------------------------------
485
303
  * jQuery
486
- * ------------------------------------------------------------------------
487
- * add .Collapse to jQuery only if jQuery is present
488
304
  */
489
305
 
490
- defineJQueryPlugin(Collapse);
306
+ index.defineJQueryPlugin(Collapse);
491
307
 
492
308
  return Collapse;
493
309
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap data.js v5.1.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap data.js v5.2.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2022 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) {
@@ -11,15 +11,13 @@
11
11
 
12
12
  /**
13
13
  * --------------------------------------------------------------------------
14
- * Bootstrap (v5.1.3): dom/data.js
14
+ * Bootstrap (v5.2.1): dom/data.js
15
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
16
  * --------------------------------------------------------------------------
17
17
  */
18
18
 
19
19
  /**
20
- * ------------------------------------------------------------------------
21
20
  * Constants
22
- * ------------------------------------------------------------------------
23
21
  */
24
22
  const elementMap = new Map();
25
23
  const data = {