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,21 +1,28 @@
1
1
  /*!
2
- * Bootstrap collapse.js v5.0.1 (https://getbootstrap.com/)
2
+ * Bootstrap collapse.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.Collapse = 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/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';
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 Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
+ const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
+ const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
+ const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
19
+
20
+ /**
21
+ * --------------------------------------------------------------------------
22
+ * Bootstrap (v5.1.2): util/index.js
23
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
24
+ * --------------------------------------------------------------------------
25
+ */
19
26
 
20
27
  const toType = obj => {
21
28
  if (obj === null || obj === undefined) {
@@ -83,7 +90,7 @@
83
90
  }
84
91
 
85
92
  if (typeof obj === 'string' && obj.length > 0) {
86
- return SelectorEngine__default['default'].findOne(obj);
93
+ return document.querySelector(obj);
87
94
  }
88
95
 
89
96
  return null;
@@ -100,8 +107,20 @@
100
107
  }
101
108
  });
102
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
+
103
119
 
104
- const reflow = element => element.offsetHeight;
120
+ const reflow = element => {
121
+ // eslint-disable-next-line no-unused-expressions
122
+ element.offsetHeight;
123
+ };
105
124
 
106
125
  const getjQuery = () => {
107
126
  const {
@@ -115,9 +134,18 @@
115
134
  return null;
116
135
  };
117
136
 
137
+ const DOMContentLoadedCallbacks = [];
138
+
118
139
  const onDOMContentLoaded = callback => {
119
140
  if (document.readyState === 'loading') {
120
- document.addEventListener('DOMContentLoaded', callback);
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);
121
149
  } else {
122
150
  callback();
123
151
  }
@@ -144,7 +172,7 @@
144
172
 
145
173
  /**
146
174
  * --------------------------------------------------------------------------
147
- * Bootstrap (v5.0.1): collapse.js
175
+ * Bootstrap (v5.1.2): collapse.js
148
176
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
149
177
  * --------------------------------------------------------------------------
150
178
  */
@@ -160,11 +188,11 @@
160
188
  const DATA_API_KEY = '.data-api';
161
189
  const Default = {
162
190
  toggle: true,
163
- parent: ''
191
+ parent: null
164
192
  };
165
193
  const DefaultType = {
166
194
  toggle: 'boolean',
167
- parent: '(string|element)'
195
+ parent: '(null|element)'
168
196
  };
169
197
  const EVENT_SHOW = `show${EVENT_KEY}`;
170
198
  const EVENT_SHOWN = `shown${EVENT_KEY}`;
@@ -175,9 +203,11 @@
175
203
  const CLASS_NAME_COLLAPSE = 'collapse';
176
204
  const CLASS_NAME_COLLAPSING = 'collapsing';
177
205
  const CLASS_NAME_COLLAPSED = 'collapsed';
206
+ const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
207
+ const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';
178
208
  const WIDTH = 'width';
179
209
  const HEIGHT = 'height';
180
- const SELECTOR_ACTIVES = '.show, .collapsing';
210
+ const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
181
211
  const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
182
212
  /**
183
213
  * ------------------------------------------------------------------------
@@ -185,18 +215,18 @@
185
215
  * ------------------------------------------------------------------------
186
216
  */
187
217
 
188
- class Collapse extends BaseComponent__default['default'] {
218
+ class Collapse extends BaseComponent__default.default {
189
219
  constructor(element, config) {
190
220
  super(element);
191
221
  this._isTransitioning = false;
192
222
  this._config = this._getConfig(config);
193
- this._triggerArray = SelectorEngine__default['default'].find(`${SELECTOR_DATA_TOGGLE}[href="#${this._element.id}"],` + `${SELECTOR_DATA_TOGGLE}[data-bs-target="#${this._element.id}"]`);
194
- const toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
223
+ this._triggerArray = [];
224
+ const toggleList = SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE);
195
225
 
196
226
  for (let i = 0, len = toggleList.length; i < len; i++) {
197
227
  const elem = toggleList[i];
198
228
  const selector = getSelectorFromElement(elem);
199
- const filterElement = SelectorEngine__default['default'].find(selector).filter(foundElem => foundElem === this._element);
229
+ const filterElement = SelectorEngine__default.default.find(selector).filter(foundElem => foundElem === this._element);
200
230
 
201
231
  if (selector !== null && filterElement.length) {
202
232
  this._selector = selector;
@@ -205,10 +235,10 @@
205
235
  }
206
236
  }
207
237
 
208
- this._parent = this._config.parent ? this._getParent() : null;
238
+ this._initializeChildren();
209
239
 
210
240
  if (!this._config.parent) {
211
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
241
+ this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
212
242
  }
213
243
 
214
244
  if (this._config.toggle) {
@@ -227,7 +257,7 @@
227
257
 
228
258
 
229
259
  toggle() {
230
- if (this._element.classList.contains(CLASS_NAME_SHOW)) {
260
+ if (this._isShown()) {
231
261
  this.hide();
232
262
  } else {
233
263
  this.show();
@@ -235,55 +265,46 @@
235
265
  }
236
266
 
237
267
  show() {
238
- if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
268
+ if (this._isTransitioning || this._isShown()) {
239
269
  return;
240
270
  }
241
271
 
242
- let actives;
272
+ let actives = [];
243
273
  let activesData;
244
274
 
245
- if (this._parent) {
246
- actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(elem => {
247
- if (typeof this._config.parent === 'string') {
248
- return elem.getAttribute('data-bs-parent') === this._config.parent;
249
- }
250
-
251
- return elem.classList.contains(CLASS_NAME_COLLAPSE);
252
- });
253
-
254
- if (actives.length === 0) {
255
- actives = null;
256
- }
275
+ 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
257
278
  }
258
279
 
259
- const container = SelectorEngine__default['default'].findOne(this._selector);
280
+ const container = SelectorEngine__default.default.findOne(this._selector);
260
281
 
261
- if (actives) {
282
+ if (actives.length) {
262
283
  const tempActiveData = actives.find(elem => container !== elem);
263
- activesData = tempActiveData ? Data__default['default'].get(tempActiveData, DATA_KEY) : null;
284
+ activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;
264
285
 
265
286
  if (activesData && activesData._isTransitioning) {
266
287
  return;
267
288
  }
268
289
  }
269
290
 
270
- const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
291
+ const startEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW);
271
292
 
272
293
  if (startEvent.defaultPrevented) {
273
294
  return;
274
295
  }
275
296
 
276
- if (actives) {
277
- actives.forEach(elemActive => {
278
- if (container !== elemActive) {
279
- Collapse.collapseInterface(elemActive, 'hide');
280
- }
297
+ actives.forEach(elemActive => {
298
+ if (container !== elemActive) {
299
+ Collapse.getOrCreateInstance(elemActive, {
300
+ toggle: false
301
+ }).hide();
302
+ }
281
303
 
282
- if (!activesData) {
283
- Data__default['default'].set(elemActive, DATA_KEY, null);
284
- }
285
- });
286
- }
304
+ if (!activesData) {
305
+ Data__default.default.set(elemActive, DATA_KEY, null);
306
+ }
307
+ });
287
308
 
288
309
  const dimension = this._getDimension();
289
310
 
@@ -293,23 +314,19 @@
293
314
 
294
315
  this._element.style[dimension] = 0;
295
316
 
296
- if (this._triggerArray.length) {
297
- this._triggerArray.forEach(element => {
298
- element.classList.remove(CLASS_NAME_COLLAPSED);
299
- element.setAttribute('aria-expanded', true);
300
- });
301
- }
317
+ this._addAriaAndCollapsedClass(this._triggerArray, true);
302
318
 
303
- this.setTransitioning(true);
319
+ this._isTransitioning = true;
304
320
 
305
321
  const complete = () => {
322
+ this._isTransitioning = false;
323
+
306
324
  this._element.classList.remove(CLASS_NAME_COLLAPSING);
307
325
 
308
326
  this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
309
327
 
310
328
  this._element.style[dimension] = '';
311
- this.setTransitioning(false);
312
- EventHandler__default['default'].trigger(this._element, EVENT_SHOWN);
329
+ EventHandler__default.default.trigger(this._element, EVENT_SHOWN);
313
330
  };
314
331
 
315
332
  const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
@@ -321,11 +338,11 @@
321
338
  }
322
339
 
323
340
  hide() {
324
- if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
341
+ if (this._isTransitioning || !this._isShown()) {
325
342
  return;
326
343
  }
327
344
 
328
- const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
345
+ const startEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);
329
346
 
330
347
  if (startEvent.defaultPrevented) {
331
348
  return;
@@ -342,28 +359,25 @@
342
359
 
343
360
  const triggerArrayLength = this._triggerArray.length;
344
361
 
345
- if (triggerArrayLength > 0) {
346
- for (let i = 0; i < triggerArrayLength; i++) {
347
- const trigger = this._triggerArray[i];
348
- const elem = getElementFromSelector(trigger);
362
+ for (let i = 0; i < triggerArrayLength; i++) {
363
+ const trigger = this._triggerArray[i];
364
+ const elem = getElementFromSelector(trigger);
349
365
 
350
- if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
351
- trigger.classList.add(CLASS_NAME_COLLAPSED);
352
- trigger.setAttribute('aria-expanded', false);
353
- }
366
+ if (elem && !this._isShown(elem)) {
367
+ this._addAriaAndCollapsedClass([trigger], false);
354
368
  }
355
369
  }
356
370
 
357
- this.setTransitioning(true);
371
+ this._isTransitioning = true;
358
372
 
359
373
  const complete = () => {
360
- this.setTransitioning(false);
374
+ this._isTransitioning = false;
361
375
 
362
376
  this._element.classList.remove(CLASS_NAME_COLLAPSING);
363
377
 
364
378
  this._element.classList.add(CLASS_NAME_COLLAPSE);
365
379
 
366
- EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN);
380
+ EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);
367
381
  };
368
382
 
369
383
  this._element.style[dimension] = '';
@@ -371,45 +385,47 @@
371
385
  this._queueCallback(complete, this._element, true);
372
386
  }
373
387
 
374
- setTransitioning(isTransitioning) {
375
- this._isTransitioning = isTransitioning;
388
+ _isShown(element = this._element) {
389
+ return element.classList.contains(CLASS_NAME_SHOW);
376
390
  } // Private
377
391
 
378
392
 
379
393
  _getConfig(config) {
380
394
  config = { ...Default,
395
+ ...Manipulator__default.default.getDataAttributes(this._element),
381
396
  ...config
382
397
  };
383
398
  config.toggle = Boolean(config.toggle); // Coerce string values
384
399
 
400
+ config.parent = getElement(config.parent);
385
401
  typeCheckConfig(NAME, config, DefaultType);
386
402
  return config;
387
403
  }
388
404
 
389
405
  _getDimension() {
390
- return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;
406
+ return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
391
407
  }
392
408
 
393
- _getParent() {
394
- let {
395
- parent
396
- } = this._config;
397
- parent = getElement(parent);
398
- const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent="${parent}"]`;
399
- SelectorEngine__default['default'].find(selector, parent).forEach(element => {
409
+ _initializeChildren() {
410
+ if (!this._config.parent) {
411
+ return;
412
+ }
413
+
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 => {
400
416
  const selected = getElementFromSelector(element);
401
417
 
402
- this._addAriaAndCollapsedClass(selected, [element]);
418
+ if (selected) {
419
+ this._addAriaAndCollapsedClass([element], this._isShown(selected));
420
+ }
403
421
  });
404
- return parent;
405
422
  }
406
423
 
407
- _addAriaAndCollapsedClass(element, triggerArray) {
408
- if (!element || !triggerArray.length) {
424
+ _addAriaAndCollapsedClass(triggerArray, isOpen) {
425
+ if (!triggerArray.length) {
409
426
  return;
410
427
  }
411
428
 
412
- const isOpen = element.classList.contains(CLASS_NAME_SHOW);
413
429
  triggerArray.forEach(elem => {
414
430
  if (isOpen) {
415
431
  elem.classList.remove(CLASS_NAME_COLLAPSED);
@@ -422,33 +438,23 @@
422
438
  } // Static
423
439
 
424
440
 
425
- static collapseInterface(element, config) {
426
- let data = Data__default['default'].get(element, DATA_KEY);
427
- const _config = { ...Default,
428
- ...Manipulator__default['default'].getDataAttributes(element),
429
- ...(typeof config === 'object' && config ? config : {})
430
- };
431
-
432
- if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
433
- _config.toggle = false;
434
- }
435
-
436
- if (!data) {
437
- data = new Collapse(element, _config);
438
- }
441
+ static jQueryInterface(config) {
442
+ return this.each(function () {
443
+ const _config = {};
439
444
 
440
- if (typeof config === 'string') {
441
- if (typeof data[config] === 'undefined') {
442
- throw new TypeError(`No method named "${config}"`);
445
+ if (typeof config === 'string' && /show|hide/.test(config)) {
446
+ _config.toggle = false;
443
447
  }
444
448
 
445
- data[config]();
446
- }
447
- }
449
+ const data = Collapse.getOrCreateInstance(this, _config);
448
450
 
449
- static jQueryInterface(config) {
450
- return this.each(function () {
451
- Collapse.collapseInterface(this, config);
451
+ if (typeof config === 'string') {
452
+ if (typeof data[config] === 'undefined') {
453
+ throw new TypeError(`No method named "${config}"`);
454
+ }
455
+
456
+ data[config]();
457
+ }
452
458
  });
453
459
  }
454
460
 
@@ -460,32 +466,18 @@
460
466
  */
461
467
 
462
468
 
463
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
469
+ EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
464
470
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
465
471
  if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
466
472
  event.preventDefault();
467
473
  }
468
474
 
469
- const triggerData = Manipulator__default['default'].getDataAttributes(this);
470
475
  const selector = getSelectorFromElement(this);
471
- const selectorElements = SelectorEngine__default['default'].find(selector);
476
+ const selectorElements = SelectorEngine__default.default.find(selector);
472
477
  selectorElements.forEach(element => {
473
- const data = Data__default['default'].get(element, DATA_KEY);
474
- let config;
475
-
476
- if (data) {
477
- // update parent attribute
478
- if (data._parent === null && typeof triggerData.parent === 'string') {
479
- data._config.parent = triggerData.parent;
480
- data._parent = data._getParent();
481
- }
482
-
483
- config = 'toggle';
484
- } else {
485
- config = triggerData;
486
- }
487
-
488
- Collapse.collapseInterface(element, config);
478
+ Collapse.getOrCreateInstance(element, {
479
+ toggle: false
480
+ }).toggle();
489
481
  });
490
482
  });
491
483
  /**
@@ -499,4 +491,4 @@
499
491
 
500
492
  return Collapse;
501
493
 
502
- })));
494
+ }));
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap data.js v5.0.1 (https://getbootstrap.com/)
2
+ * Bootstrap data.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
  */
@@ -7,11 +7,11 @@
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
8
  typeof define === 'function' && define.amd ? define(factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Data = factory());
10
- }(this, (function () { 'use strict';
10
+ })(this, (function () { 'use strict';
11
11
 
12
12
  /**
13
13
  * --------------------------------------------------------------------------
14
- * Bootstrap (v5.0.1): dom/data.js
14
+ * Bootstrap (v5.1.2): dom/data.js
15
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
16
  * --------------------------------------------------------------------------
17
17
  */
@@ -22,7 +22,7 @@
22
22
  * ------------------------------------------------------------------------
23
23
  */
24
24
  const elementMap = new Map();
25
- var data = {
25
+ const data = {
26
26
  set(element, key, instance) {
27
27
  if (!elementMap.has(element)) {
28
28
  elementMap.set(element, new Map());
@@ -65,4 +65,4 @@
65
65
 
66
66
  return data;
67
67
 
68
- })));
68
+ }));
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap event-handler.js v5.0.1 (https://getbootstrap.com/)
2
+ * Bootstrap event-handler.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
  */
@@ -7,7 +7,14 @@
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
8
  typeof define === 'function' && define.amd ? define(factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory());
10
- }(this, (function () { 'use strict';
10
+ })(this, (function () { 'use strict';
11
+
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * Bootstrap (v5.1.2): util/index.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
11
18
 
12
19
  const getjQuery = () => {
13
20
  const {
@@ -23,7 +30,7 @@
23
30
 
24
31
  /**
25
32
  * --------------------------------------------------------------------------
26
- * Bootstrap (v5.0.1): dom/event-handler.js
33
+ * Bootstrap (v5.1.2): dom/event-handler.js
27
34
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
28
35
  * --------------------------------------------------------------------------
29
36
  */
@@ -86,7 +93,6 @@
86
93
  event.delegateTarget = target;
87
94
 
88
95
  if (handler.oneOff) {
89
- // eslint-disable-next-line unicorn/consistent-destructuring
90
96
  EventHandler.off(element, event.type, selector, fn);
91
97
  }
92
98
 
@@ -312,4 +318,4 @@
312
318
 
313
319
  return EventHandler;
314
320
 
315
- })));
321
+ }));
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap manipulator.js v5.0.1 (https://getbootstrap.com/)
2
+ * Bootstrap manipulator.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
  */
@@ -7,11 +7,11 @@
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
8
  typeof define === 'function' && define.amd ? define(factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory());
10
- }(this, (function () { 'use strict';
10
+ })(this, (function () { 'use strict';
11
11
 
12
12
  /**
13
13
  * --------------------------------------------------------------------------
14
- * Bootstrap (v5.0.1): dom/manipulator.js
14
+ * Bootstrap (v5.1.2): dom/manipulator.js
15
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
16
  * --------------------------------------------------------------------------
17
17
  */
@@ -69,8 +69,8 @@
69
69
  offset(element) {
70
70
  const rect = element.getBoundingClientRect();
71
71
  return {
72
- top: rect.top + document.body.scrollTop,
73
- left: rect.left + document.body.scrollLeft
72
+ top: rect.top + window.pageYOffset,
73
+ left: rect.left + window.pageXOffset
74
74
  };
75
75
  },
76
76
 
@@ -85,4 +85,4 @@
85
85
 
86
86
  return Manipulator;
87
87
 
88
- })));
88
+ }));