bootstrap 5.0.0.beta2 → 5.0.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap-sprockets.js +1 -0
  4. data/assets/javascripts/bootstrap.js +2051 -2009
  5. data/assets/javascripts/bootstrap.min.js +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +75 -118
  7. data/assets/javascripts/bootstrap/base-component.js +23 -37
  8. data/assets/javascripts/bootstrap/button.js +39 -78
  9. data/assets/javascripts/bootstrap/carousel.js +284 -364
  10. data/assets/javascripts/bootstrap/collapse.js +178 -247
  11. data/assets/javascripts/bootstrap/dom/data.js +34 -47
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +71 -77
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +23 -21
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +20 -28
  15. data/assets/javascripts/bootstrap/dropdown.js +195 -265
  16. data/assets/javascripts/bootstrap/modal.js +256 -344
  17. data/assets/javascripts/bootstrap/offcanvas.js +508 -0
  18. data/assets/javascripts/bootstrap/popover.js +88 -157
  19. data/assets/javascripts/bootstrap/scrollspy.js +134 -212
  20. data/assets/javascripts/bootstrap/tab.js +108 -142
  21. data/assets/javascripts/bootstrap/toast.js +113 -183
  22. data/assets/javascripts/bootstrap/tooltip.js +297 -392
  23. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  24. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  25. data/assets/stylesheets/_bootstrap.scss +2 -1
  26. data/assets/stylesheets/bootstrap/_accordion.scss +22 -32
  27. data/assets/stylesheets/bootstrap/_buttons.scss +2 -0
  28. data/assets/stylesheets/bootstrap/_card.scss +1 -1
  29. data/assets/stylesheets/bootstrap/_dropdown.scss +3 -6
  30. data/assets/stylesheets/bootstrap/_list-group.scss +11 -0
  31. data/assets/stylesheets/bootstrap/_modal.scss +2 -0
  32. data/assets/stylesheets/bootstrap/_nav.scss +7 -0
  33. data/assets/stylesheets/bootstrap/_navbar.scss +2 -0
  34. data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
  35. data/assets/stylesheets/bootstrap/_progress.scss +3 -0
  36. data/assets/stylesheets/bootstrap/_reboot.scss +7 -21
  37. data/assets/stylesheets/bootstrap/_spinners.scss +4 -0
  38. data/assets/stylesheets/bootstrap/_transitions.scss +2 -0
  39. data/assets/stylesheets/bootstrap/_utilities.scss +65 -37
  40. data/assets/stylesheets/bootstrap/_variables.scss +138 -30
  41. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
  42. data/assets/stylesheets/bootstrap/forms/_form-control.scss +0 -4
  43. data/assets/stylesheets/bootstrap/mixins/_alert.scss +2 -0
  44. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +2 -0
  45. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +6 -1
  46. data/assets/stylesheets/bootstrap/mixins/_caret.scss +2 -0
  47. data/assets/stylesheets/bootstrap/mixins/_forms.scss +11 -1
  48. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
  49. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +2 -0
  50. data/bootstrap.gemspec +1 -1
  51. data/lib/bootstrap/version.rb +2 -2
  52. data/tasks/updater/js.rb +1 -1
  53. data/tasks/updater/network.rb +7 -1
  54. metadata +6 -4
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap collapse.js v5.0.0-beta2 (https://getbootstrap.com/)
2
+ * Bootstrap collapse.js v5.0.0-beta3 (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
  */
@@ -17,78 +17,28 @@
17
17
  var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
18
  var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
19
19
 
20
- function _defineProperties(target, props) {
21
- for (var i = 0; i < props.length; i++) {
22
- var descriptor = props[i];
23
- descriptor.enumerable = descriptor.enumerable || false;
24
- descriptor.configurable = true;
25
- if ("value" in descriptor) descriptor.writable = true;
26
- Object.defineProperty(target, descriptor.key, descriptor);
27
- }
28
- }
29
-
30
- function _createClass(Constructor, protoProps, staticProps) {
31
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
32
- if (staticProps) _defineProperties(Constructor, staticProps);
33
- return Constructor;
34
- }
35
-
36
- function _extends() {
37
- _extends = Object.assign || function (target) {
38
- for (var i = 1; i < arguments.length; i++) {
39
- var source = arguments[i];
40
-
41
- for (var key in source) {
42
- if (Object.prototype.hasOwnProperty.call(source, key)) {
43
- target[key] = source[key];
44
- }
45
- }
46
- }
47
-
48
- return target;
49
- };
50
-
51
- return _extends.apply(this, arguments);
52
- }
53
-
54
- function _inheritsLoose(subClass, superClass) {
55
- subClass.prototype = Object.create(superClass.prototype);
56
- subClass.prototype.constructor = subClass;
57
-
58
- _setPrototypeOf(subClass, superClass);
59
- }
60
-
61
- function _setPrototypeOf(o, p) {
62
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
63
- o.__proto__ = p;
64
- return o;
65
- };
66
-
67
- return _setPrototypeOf(o, p);
68
- }
69
-
70
20
  /**
71
21
  * --------------------------------------------------------------------------
72
- * Bootstrap (v5.0.0-beta2): util/index.js
22
+ * Bootstrap (v5.0.0-beta3): util/index.js
73
23
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
74
24
  * --------------------------------------------------------------------------
75
25
  */
76
- var MILLISECONDS_MULTIPLIER = 1000;
77
- var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
26
+ const MILLISECONDS_MULTIPLIER = 1000;
27
+ const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
78
28
 
79
- var toType = function toType(obj) {
29
+ const toType = obj => {
80
30
  if (obj === null || obj === undefined) {
81
- return "" + obj;
31
+ return `${obj}`;
82
32
  }
83
33
 
84
34
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
85
35
  };
86
36
 
87
- var getSelector = function getSelector(element) {
88
- var selector = element.getAttribute('data-bs-target');
37
+ const getSelector = element => {
38
+ let selector = element.getAttribute('data-bs-target');
89
39
 
90
40
  if (!selector || selector === '#') {
91
- var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
41
+ let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
92
42
  // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
93
43
  // `document.querySelector` will rightfully complain it is invalid.
94
44
  // See https://github.com/twbs/bootstrap/issues/32273
@@ -108,8 +58,8 @@
108
58
  return selector;
109
59
  };
110
60
 
111
- var getSelectorFromElement = function getSelectorFromElement(element) {
112
- var selector = getSelector(element);
61
+ const getSelectorFromElement = element => {
62
+ const selector = getSelector(element);
113
63
 
114
64
  if (selector) {
115
65
  return document.querySelector(selector) ? selector : null;
@@ -118,23 +68,23 @@
118
68
  return null;
119
69
  };
120
70
 
121
- var getElementFromSelector = function getElementFromSelector(element) {
122
- var selector = getSelector(element);
71
+ const getElementFromSelector = element => {
72
+ const selector = getSelector(element);
123
73
  return selector ? document.querySelector(selector) : null;
124
74
  };
125
75
 
126
- var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
76
+ const getTransitionDurationFromElement = element => {
127
77
  if (!element) {
128
78
  return 0;
129
79
  } // Get transition-duration of the element
130
80
 
131
81
 
132
- var _window$getComputedSt = window.getComputedStyle(element),
133
- transitionDuration = _window$getComputedSt.transitionDuration,
134
- transitionDelay = _window$getComputedSt.transitionDelay;
135
-
136
- var floatTransitionDuration = Number.parseFloat(transitionDuration);
137
- var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
82
+ let {
83
+ transitionDuration,
84
+ transitionDelay
85
+ } = window.getComputedStyle(element);
86
+ const floatTransitionDuration = Number.parseFloat(transitionDuration);
87
+ const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
138
88
 
139
89
  if (!floatTransitionDuration && !floatTransitionDelay) {
140
90
  return 0;
@@ -146,18 +96,16 @@
146
96
  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
147
97
  };
148
98
 
149
- var triggerTransitionEnd = function triggerTransitionEnd(element) {
99
+ const triggerTransitionEnd = element => {
150
100
  element.dispatchEvent(new Event(TRANSITION_END));
151
101
  };
152
102
 
153
- var isElement = function isElement(obj) {
154
- return (obj[0] || obj).nodeType;
155
- };
103
+ const isElement = obj => (obj[0] || obj).nodeType;
156
104
 
157
- var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
158
- var called = false;
159
- var durationPadding = 5;
160
- var emulatedDuration = duration + durationPadding;
105
+ const emulateTransitionEnd = (element, duration) => {
106
+ let called = false;
107
+ const durationPadding = 5;
108
+ const emulatedDuration = duration + durationPadding;
161
109
 
162
110
  function listener() {
163
111
  called = true;
@@ -165,32 +113,31 @@
165
113
  }
166
114
 
167
115
  element.addEventListener(TRANSITION_END, listener);
168
- setTimeout(function () {
116
+ setTimeout(() => {
169
117
  if (!called) {
170
118
  triggerTransitionEnd(element);
171
119
  }
172
120
  }, emulatedDuration);
173
121
  };
174
122
 
175
- var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
176
- Object.keys(configTypes).forEach(function (property) {
177
- var expectedTypes = configTypes[property];
178
- var value = config[property];
179
- var valueType = value && isElement(value) ? 'element' : toType(value);
123
+ const typeCheckConfig = (componentName, config, configTypes) => {
124
+ Object.keys(configTypes).forEach(property => {
125
+ const expectedTypes = configTypes[property];
126
+ const value = config[property];
127
+ const valueType = value && isElement(value) ? 'element' : toType(value);
180
128
 
181
129
  if (!new RegExp(expectedTypes).test(valueType)) {
182
- throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
130
+ throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
183
131
  }
184
132
  });
185
133
  };
186
134
 
187
- var reflow = function reflow(element) {
188
- return element.offsetHeight;
189
- };
135
+ const reflow = element => element.offsetHeight;
190
136
 
191
- var getjQuery = function getjQuery() {
192
- var _window = window,
193
- jQuery = _window.jQuery;
137
+ const getjQuery = () => {
138
+ const {
139
+ jQuery
140
+ } = window;
194
141
 
195
142
  if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
196
143
  return jQuery;
@@ -199,7 +146,7 @@
199
146
  return null;
200
147
  };
201
148
 
202
- var onDOMContentLoaded = function onDOMContentLoaded(callback) {
149
+ const onDOMContentLoaded = callback => {
203
150
  if (document.readyState === 'loading') {
204
151
  document.addEventListener('DOMContentLoaded', callback);
205
152
  } else {
@@ -207,19 +154,17 @@
207
154
  }
208
155
  };
209
156
 
210
- document.documentElement.dir === 'rtl';
211
-
212
- var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
213
- onDOMContentLoaded(function () {
214
- var $ = getjQuery();
157
+ const defineJQueryPlugin = (name, plugin) => {
158
+ onDOMContentLoaded(() => {
159
+ const $ = getjQuery();
215
160
  /* istanbul ignore if */
216
161
 
217
162
  if ($) {
218
- var JQUERY_NO_CONFLICT = $.fn[name];
163
+ const JQUERY_NO_CONFLICT = $.fn[name];
219
164
  $.fn[name] = plugin.jQueryInterface;
220
165
  $.fn[name].Constructor = plugin;
221
166
 
222
- $.fn[name].noConflict = function () {
167
+ $.fn[name].noConflict = () => {
223
168
  $.fn[name] = JQUERY_NO_CONFLICT;
224
169
  return plugin.jQueryInterface;
225
170
  };
@@ -227,108 +172,110 @@
227
172
  });
228
173
  };
229
174
 
175
+ /**
176
+ * --------------------------------------------------------------------------
177
+ * Bootstrap (v5.0.0-beta3): collapse.js
178
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
179
+ * --------------------------------------------------------------------------
180
+ */
230
181
  /**
231
182
  * ------------------------------------------------------------------------
232
183
  * Constants
233
184
  * ------------------------------------------------------------------------
234
185
  */
235
186
 
236
- var NAME = 'collapse';
237
- var DATA_KEY = 'bs.collapse';
238
- var EVENT_KEY = "." + DATA_KEY;
239
- var DATA_API_KEY = '.data-api';
240
- var Default = {
187
+ const NAME = 'collapse';
188
+ const DATA_KEY = 'bs.collapse';
189
+ const EVENT_KEY = `.${DATA_KEY}`;
190
+ const DATA_API_KEY = '.data-api';
191
+ const Default = {
241
192
  toggle: true,
242
193
  parent: ''
243
194
  };
244
- var DefaultType = {
195
+ const DefaultType = {
245
196
  toggle: 'boolean',
246
197
  parent: '(string|element)'
247
198
  };
248
- var EVENT_SHOW = "show" + EVENT_KEY;
249
- var EVENT_SHOWN = "shown" + EVENT_KEY;
250
- var EVENT_HIDE = "hide" + EVENT_KEY;
251
- var EVENT_HIDDEN = "hidden" + EVENT_KEY;
252
- var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
253
- var CLASS_NAME_SHOW = 'show';
254
- var CLASS_NAME_COLLAPSE = 'collapse';
255
- var CLASS_NAME_COLLAPSING = 'collapsing';
256
- var CLASS_NAME_COLLAPSED = 'collapsed';
257
- var WIDTH = 'width';
258
- var HEIGHT = 'height';
259
- var SELECTOR_ACTIVES = '.show, .collapsing';
260
- var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
199
+ const EVENT_SHOW = `show${EVENT_KEY}`;
200
+ const EVENT_SHOWN = `shown${EVENT_KEY}`;
201
+ const EVENT_HIDE = `hide${EVENT_KEY}`;
202
+ const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
203
+ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
204
+ const CLASS_NAME_SHOW = 'show';
205
+ const CLASS_NAME_COLLAPSE = 'collapse';
206
+ const CLASS_NAME_COLLAPSING = 'collapsing';
207
+ const CLASS_NAME_COLLAPSED = 'collapsed';
208
+ const WIDTH = 'width';
209
+ const HEIGHT = 'height';
210
+ const SELECTOR_ACTIVES = '.show, .collapsing';
211
+ const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
261
212
  /**
262
213
  * ------------------------------------------------------------------------
263
214
  * Class Definition
264
215
  * ------------------------------------------------------------------------
265
216
  */
266
217
 
267
- var Collapse = /*#__PURE__*/function (_BaseComponent) {
268
- _inheritsLoose(Collapse, _BaseComponent);
269
-
270
- function Collapse(element, config) {
271
- var _this;
218
+ class Collapse extends BaseComponent__default['default'] {
219
+ constructor(element, config) {
220
+ super(element);
221
+ this._isTransitioning = false;
222
+ this._config = this._getConfig(config);
223
+ this._triggerArray = SelectorEngine__default['default'].find(`${SELECTOR_DATA_TOGGLE}[href="#${this._element.id}"],` + `${SELECTOR_DATA_TOGGLE}[data-bs-target="#${this._element.id}"]`);
224
+ const toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
272
225
 
273
- _this = _BaseComponent.call(this, element) || this;
274
- _this._isTransitioning = false;
275
- _this._config = _this._getConfig(config);
276
- _this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-bs-target=\"#" + element.id + "\"]"));
277
- var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
278
-
279
- for (var i = 0, len = toggleList.length; i < len; i++) {
280
- var elem = toggleList[i];
281
- var selector = getSelectorFromElement(elem);
282
- var filterElement = SelectorEngine__default['default'].find(selector).filter(function (foundElem) {
283
- return foundElem === element;
284
- });
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);
285
230
 
286
231
  if (selector !== null && filterElement.length) {
287
- _this._selector = selector;
232
+ this._selector = selector;
288
233
 
289
- _this._triggerArray.push(elem);
234
+ this._triggerArray.push(elem);
290
235
  }
291
236
  }
292
237
 
293
- _this._parent = _this._config.parent ? _this._getParent() : null;
238
+ this._parent = this._config.parent ? this._getParent() : null;
294
239
 
295
- if (!_this._config.parent) {
296
- _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);
240
+ if (!this._config.parent) {
241
+ this._addAriaAndCollapsedClass(this._element, this._triggerArray);
297
242
  }
298
243
 
299
- if (_this._config.toggle) {
300
- _this.toggle();
244
+ if (this._config.toggle) {
245
+ this.toggle();
301
246
  }
302
-
303
- return _this;
304
247
  } // Getters
305
248
 
306
249
 
307
- var _proto = Collapse.prototype;
250
+ static get Default() {
251
+ return Default;
252
+ }
253
+
254
+ static get DATA_KEY() {
255
+ return DATA_KEY;
256
+ } // Public
257
+
308
258
 
309
- // Public
310
- _proto.toggle = function toggle() {
259
+ toggle() {
311
260
  if (this._element.classList.contains(CLASS_NAME_SHOW)) {
312
261
  this.hide();
313
262
  } else {
314
263
  this.show();
315
264
  }
316
- };
317
-
318
- _proto.show = function show() {
319
- var _this2 = this;
265
+ }
320
266
 
267
+ show() {
321
268
  if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
322
269
  return;
323
270
  }
324
271
 
325
- var actives;
326
- var activesData;
272
+ let actives;
273
+ let activesData;
327
274
 
328
275
  if (this._parent) {
329
- actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
330
- if (typeof _this2._config.parent === 'string') {
331
- return elem.getAttribute('data-bs-parent') === _this2._config.parent;
276
+ actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(elem => {
277
+ if (typeof this._config.parent === 'string') {
278
+ return elem.getAttribute('data-bs-parent') === this._config.parent;
332
279
  }
333
280
 
334
281
  return elem.classList.contains(CLASS_NAME_COLLAPSE);
@@ -339,38 +286,36 @@
339
286
  }
340
287
  }
341
288
 
342
- var container = SelectorEngine__default['default'].findOne(this._selector);
289
+ const container = SelectorEngine__default['default'].findOne(this._selector);
343
290
 
344
291
  if (actives) {
345
- var tempActiveData = actives.find(function (elem) {
346
- return container !== elem;
347
- });
348
- activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null;
292
+ const tempActiveData = actives.find(elem => container !== elem);
293
+ activesData = tempActiveData ? Data__default['default'].get(tempActiveData, DATA_KEY) : null;
349
294
 
350
295
  if (activesData && activesData._isTransitioning) {
351
296
  return;
352
297
  }
353
298
  }
354
299
 
355
- var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
300
+ const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
356
301
 
357
302
  if (startEvent.defaultPrevented) {
358
303
  return;
359
304
  }
360
305
 
361
306
  if (actives) {
362
- actives.forEach(function (elemActive) {
307
+ actives.forEach(elemActive => {
363
308
  if (container !== elemActive) {
364
309
  Collapse.collapseInterface(elemActive, 'hide');
365
310
  }
366
311
 
367
312
  if (!activesData) {
368
- Data__default['default'].setData(elemActive, DATA_KEY, null);
313
+ Data__default['default'].set(elemActive, DATA_KEY, null);
369
314
  }
370
315
  });
371
316
  }
372
317
 
373
- var dimension = this._getDimension();
318
+ const dimension = this._getDimension();
374
319
 
375
320
  this._element.classList.remove(CLASS_NAME_COLLAPSE);
376
321
 
@@ -379,7 +324,7 @@
379
324
  this._element.style[dimension] = 0;
380
325
 
381
326
  if (this._triggerArray.length) {
382
- this._triggerArray.forEach(function (element) {
327
+ this._triggerArray.forEach(element => {
383
328
  element.classList.remove(CLASS_NAME_COLLAPSED);
384
329
  element.setAttribute('aria-expanded', true);
385
330
  });
@@ -387,54 +332,50 @@
387
332
 
388
333
  this.setTransitioning(true);
389
334
 
390
- var complete = function complete() {
391
- _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
392
-
393
- _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
335
+ const complete = () => {
336
+ this._element.classList.remove(CLASS_NAME_COLLAPSING);
394
337
 
395
- _this2._element.style[dimension] = '';
338
+ this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
396
339
 
397
- _this2.setTransitioning(false);
398
-
399
- EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
340
+ this._element.style[dimension] = '';
341
+ this.setTransitioning(false);
342
+ EventHandler__default['default'].trigger(this._element, EVENT_SHOWN);
400
343
  };
401
344
 
402
- var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
403
- var scrollSize = "scroll" + capitalizedDimension;
404
- var transitionDuration = getTransitionDurationFromElement(this._element);
345
+ const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
346
+ const scrollSize = `scroll${capitalizedDimension}`;
347
+ const transitionDuration = getTransitionDurationFromElement(this._element);
405
348
  EventHandler__default['default'].one(this._element, 'transitionend', complete);
406
349
  emulateTransitionEnd(this._element, transitionDuration);
407
- this._element.style[dimension] = this._element[scrollSize] + "px";
408
- };
409
-
410
- _proto.hide = function hide() {
411
- var _this3 = this;
350
+ this._element.style[dimension] = `${this._element[scrollSize]}px`;
351
+ }
412
352
 
353
+ hide() {
413
354
  if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
414
355
  return;
415
356
  }
416
357
 
417
- var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
358
+ const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
418
359
 
419
360
  if (startEvent.defaultPrevented) {
420
361
  return;
421
362
  }
422
363
 
423
- var dimension = this._getDimension();
364
+ const dimension = this._getDimension();
424
365
 
425
- this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
366
+ this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
426
367
  reflow(this._element);
427
368
 
428
369
  this._element.classList.add(CLASS_NAME_COLLAPSING);
429
370
 
430
371
  this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
431
372
 
432
- var triggerArrayLength = this._triggerArray.length;
373
+ const triggerArrayLength = this._triggerArray.length;
433
374
 
434
375
  if (triggerArrayLength > 0) {
435
- for (var i = 0; i < triggerArrayLength; i++) {
436
- var trigger = this._triggerArray[i];
437
- var elem = getElementFromSelector(trigger);
376
+ for (let i = 0; i < triggerArrayLength; i++) {
377
+ const trigger = this._triggerArray[i];
378
+ const elem = getElementFromSelector(trigger);
438
379
 
439
380
  if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
440
381
  trigger.classList.add(CLASS_NAME_COLLAPSED);
@@ -445,52 +386,53 @@
445
386
 
446
387
  this.setTransitioning(true);
447
388
 
448
- var complete = function complete() {
449
- _this3.setTransitioning(false);
389
+ const complete = () => {
390
+ this.setTransitioning(false);
450
391
 
451
- _this3._element.classList.remove(CLASS_NAME_COLLAPSING);
392
+ this._element.classList.remove(CLASS_NAME_COLLAPSING);
452
393
 
453
- _this3._element.classList.add(CLASS_NAME_COLLAPSE);
394
+ this._element.classList.add(CLASS_NAME_COLLAPSE);
454
395
 
455
- EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
396
+ EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN);
456
397
  };
457
398
 
458
399
  this._element.style[dimension] = '';
459
- var transitionDuration = getTransitionDurationFromElement(this._element);
400
+ const transitionDuration = getTransitionDurationFromElement(this._element);
460
401
  EventHandler__default['default'].one(this._element, 'transitionend', complete);
461
402
  emulateTransitionEnd(this._element, transitionDuration);
462
- };
403
+ }
463
404
 
464
- _proto.setTransitioning = function setTransitioning(isTransitioning) {
405
+ setTransitioning(isTransitioning) {
465
406
  this._isTransitioning = isTransitioning;
466
- };
467
-
468
- _proto.dispose = function dispose() {
469
- _BaseComponent.prototype.dispose.call(this);
407
+ }
470
408
 
409
+ dispose() {
410
+ super.dispose();
471
411
  this._config = null;
472
412
  this._parent = null;
473
413
  this._triggerArray = null;
474
414
  this._isTransitioning = null;
475
415
  } // Private
476
- ;
477
416
 
478
- _proto._getConfig = function _getConfig(config) {
479
- config = _extends({}, Default, config);
417
+
418
+ _getConfig(config) {
419
+ config = { ...Default,
420
+ ...config
421
+ };
480
422
  config.toggle = Boolean(config.toggle); // Coerce string values
481
423
 
482
424
  typeCheckConfig(NAME, config, DefaultType);
483
425
  return config;
484
- };
426
+ }
485
427
 
486
- _proto._getDimension = function _getDimension() {
428
+ _getDimension() {
487
429
  return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;
488
- };
489
-
490
- _proto._getParent = function _getParent() {
491
- var _this4 = this;
430
+ }
492
431
 
493
- var parent = this._config.parent;
432
+ _getParent() {
433
+ let {
434
+ parent
435
+ } = this._config;
494
436
 
495
437
  if (isElement(parent)) {
496
438
  // it's a jQuery object
@@ -501,22 +443,22 @@
501
443
  parent = SelectorEngine__default['default'].findOne(parent);
502
444
  }
503
445
 
504
- var selector = SELECTOR_DATA_TOGGLE + "[data-bs-parent=\"" + parent + "\"]";
505
- SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {
506
- var selected = getElementFromSelector(element);
446
+ const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent="${parent}"]`;
447
+ SelectorEngine__default['default'].find(selector, parent).forEach(element => {
448
+ const selected = getElementFromSelector(element);
507
449
 
508
- _this4._addAriaAndCollapsedClass(selected, [element]);
450
+ this._addAriaAndCollapsedClass(selected, [element]);
509
451
  });
510
452
  return parent;
511
- };
453
+ }
512
454
 
513
- _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
455
+ _addAriaAndCollapsedClass(element, triggerArray) {
514
456
  if (!element || !triggerArray.length) {
515
457
  return;
516
458
  }
517
459
 
518
- var isOpen = element.classList.contains(CLASS_NAME_SHOW);
519
- triggerArray.forEach(function (elem) {
460
+ const isOpen = element.classList.contains(CLASS_NAME_SHOW);
461
+ triggerArray.forEach(elem => {
520
462
  if (isOpen) {
521
463
  elem.classList.remove(CLASS_NAME_COLLAPSED);
522
464
  } else {
@@ -526,12 +468,14 @@
526
468
  elem.setAttribute('aria-expanded', isOpen);
527
469
  });
528
470
  } // Static
529
- ;
530
471
 
531
- Collapse.collapseInterface = function collapseInterface(element, config) {
532
- var data = Data__default['default'].getData(element, DATA_KEY);
533
472
 
534
- var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element), typeof config === 'object' && config ? config : {});
473
+ static collapseInterface(element, config) {
474
+ let data = Data__default['default'].get(element, DATA_KEY);
475
+ const _config = { ...Default,
476
+ ...Manipulator__default['default'].getDataAttributes(element),
477
+ ...(typeof config === 'object' && config ? config : {})
478
+ };
535
479
 
536
480
  if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
537
481
  _config.toggle = false;
@@ -543,33 +487,20 @@
543
487
 
544
488
  if (typeof config === 'string') {
545
489
  if (typeof data[config] === 'undefined') {
546
- throw new TypeError("No method named \"" + config + "\"");
490
+ throw new TypeError(`No method named "${config}"`);
547
491
  }
548
492
 
549
493
  data[config]();
550
494
  }
551
- };
495
+ }
552
496
 
553
- Collapse.jQueryInterface = function jQueryInterface(config) {
497
+ static jQueryInterface(config) {
554
498
  return this.each(function () {
555
499
  Collapse.collapseInterface(this, config);
556
500
  });
557
- };
558
-
559
- _createClass(Collapse, null, [{
560
- key: "Default",
561
- get: function get() {
562
- return Default;
563
- }
564
- }, {
565
- key: "DATA_KEY",
566
- get: function get() {
567
- return DATA_KEY;
568
- }
569
- }]);
501
+ }
570
502
 
571
- return Collapse;
572
- }(BaseComponent__default['default']);
503
+ }
573
504
  /**
574
505
  * ------------------------------------------------------------------------
575
506
  * Data Api implementation
@@ -583,12 +514,12 @@
583
514
  event.preventDefault();
584
515
  }
585
516
 
586
- var triggerData = Manipulator__default['default'].getDataAttributes(this);
587
- var selector = getSelectorFromElement(this);
588
- var selectorElements = SelectorEngine__default['default'].find(selector);
589
- selectorElements.forEach(function (element) {
590
- var data = Data__default['default'].getData(element, DATA_KEY);
591
- var config;
517
+ const triggerData = Manipulator__default['default'].getDataAttributes(this);
518
+ const selector = getSelectorFromElement(this);
519
+ const selectorElements = SelectorEngine__default['default'].find(selector);
520
+ selectorElements.forEach(element => {
521
+ const data = Data__default['default'].get(element, DATA_KEY);
522
+ let config;
592
523
 
593
524
  if (data) {
594
525
  // update parent attribute