bootstrap 5.0.0.beta2 → 5.0.0.beta3

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 (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 popover.js v5.0.0-beta2 (https://getbootstrap.com/)
2
+ * Bootstrap popover.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
  */
@@ -15,66 +15,17 @@
15
15
  var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
16
16
  var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
17
17
 
18
- function _defineProperties(target, props) {
19
- for (var i = 0; i < props.length; i++) {
20
- var descriptor = props[i];
21
- descriptor.enumerable = descriptor.enumerable || false;
22
- descriptor.configurable = true;
23
- if ("value" in descriptor) descriptor.writable = true;
24
- Object.defineProperty(target, descriptor.key, descriptor);
25
- }
26
- }
27
-
28
- function _createClass(Constructor, protoProps, staticProps) {
29
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
- if (staticProps) _defineProperties(Constructor, staticProps);
31
- return Constructor;
32
- }
33
-
34
- function _extends() {
35
- _extends = Object.assign || function (target) {
36
- for (var i = 1; i < arguments.length; i++) {
37
- var source = arguments[i];
38
-
39
- for (var key in source) {
40
- if (Object.prototype.hasOwnProperty.call(source, key)) {
41
- target[key] = source[key];
42
- }
43
- }
44
- }
45
-
46
- return target;
47
- };
48
-
49
- return _extends.apply(this, arguments);
50
- }
51
-
52
- function _inheritsLoose(subClass, superClass) {
53
- subClass.prototype = Object.create(superClass.prototype);
54
- subClass.prototype.constructor = subClass;
55
-
56
- _setPrototypeOf(subClass, superClass);
57
- }
58
-
59
- function _setPrototypeOf(o, p) {
60
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
61
- o.__proto__ = p;
62
- return o;
63
- };
64
-
65
- return _setPrototypeOf(o, p);
66
- }
67
-
68
18
  /**
69
19
  * --------------------------------------------------------------------------
70
- * Bootstrap (v5.0.0-beta2): util/index.js
20
+ * Bootstrap (v5.0.0-beta3): util/index.js
71
21
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
72
22
  * --------------------------------------------------------------------------
73
23
  */
74
24
 
75
- var getjQuery = function getjQuery() {
76
- var _window = window,
77
- jQuery = _window.jQuery;
25
+ const getjQuery = () => {
26
+ const {
27
+ jQuery
28
+ } = window;
78
29
 
79
30
  if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
80
31
  return jQuery;
@@ -83,7 +34,7 @@
83
34
  return null;
84
35
  };
85
36
 
86
- var onDOMContentLoaded = function onDOMContentLoaded(callback) {
37
+ const onDOMContentLoaded = callback => {
87
38
  if (document.readyState === 'loading') {
88
39
  document.addEventListener('DOMContentLoaded', callback);
89
40
  } else {
@@ -91,19 +42,17 @@
91
42
  }
92
43
  };
93
44
 
94
- document.documentElement.dir === 'rtl';
95
-
96
- var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
97
- onDOMContentLoaded(function () {
98
- var $ = getjQuery();
45
+ const defineJQueryPlugin = (name, plugin) => {
46
+ onDOMContentLoaded(() => {
47
+ const $ = getjQuery();
99
48
  /* istanbul ignore if */
100
49
 
101
50
  if ($) {
102
- var JQUERY_NO_CONFLICT = $.fn[name];
51
+ const JQUERY_NO_CONFLICT = $.fn[name];
103
52
  $.fn[name] = plugin.jQueryInterface;
104
53
  $.fn[name].Constructor = plugin;
105
54
 
106
- $.fn[name].noConflict = function () {
55
+ $.fn[name].noConflict = () => {
107
56
  $.fn[name] = JQUERY_NO_CONFLICT;
108
57
  return plugin.jQueryInterface;
109
58
  };
@@ -111,72 +60,92 @@
111
60
  });
112
61
  };
113
62
 
63
+ /**
64
+ * --------------------------------------------------------------------------
65
+ * Bootstrap (v5.0.0-beta3): popover.js
66
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
67
+ * --------------------------------------------------------------------------
68
+ */
114
69
  /**
115
70
  * ------------------------------------------------------------------------
116
71
  * Constants
117
72
  * ------------------------------------------------------------------------
118
73
  */
119
74
 
120
- var NAME = 'popover';
121
- var DATA_KEY = 'bs.popover';
122
- var EVENT_KEY = "." + DATA_KEY;
123
- var CLASS_PREFIX = 'bs-popover';
124
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
125
-
126
- var Default = _extends({}, Tooltip__default['default'].Default, {
75
+ const NAME = 'popover';
76
+ const DATA_KEY = 'bs.popover';
77
+ const EVENT_KEY = `.${DATA_KEY}`;
78
+ const CLASS_PREFIX = 'bs-popover';
79
+ const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g');
80
+ const Default = { ...Tooltip__default['default'].Default,
127
81
  placement: 'right',
128
82
  offset: [0, 8],
129
83
  trigger: 'click',
130
84
  content: '',
131
85
  template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
132
- });
133
-
134
- var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {
86
+ };
87
+ const DefaultType = { ...Tooltip__default['default'].DefaultType,
135
88
  content: '(string|element|function)'
136
- });
137
-
138
- var Event = {
139
- HIDE: "hide" + EVENT_KEY,
140
- HIDDEN: "hidden" + EVENT_KEY,
141
- SHOW: "show" + EVENT_KEY,
142
- SHOWN: "shown" + EVENT_KEY,
143
- INSERTED: "inserted" + EVENT_KEY,
144
- CLICK: "click" + EVENT_KEY,
145
- FOCUSIN: "focusin" + EVENT_KEY,
146
- FOCUSOUT: "focusout" + EVENT_KEY,
147
- MOUSEENTER: "mouseenter" + EVENT_KEY,
148
- MOUSELEAVE: "mouseleave" + EVENT_KEY
149
89
  };
150
- var CLASS_NAME_FADE = 'fade';
151
- var CLASS_NAME_SHOW = 'show';
152
- var SELECTOR_TITLE = '.popover-header';
153
- var SELECTOR_CONTENT = '.popover-body';
90
+ const Event = {
91
+ HIDE: `hide${EVENT_KEY}`,
92
+ HIDDEN: `hidden${EVENT_KEY}`,
93
+ SHOW: `show${EVENT_KEY}`,
94
+ SHOWN: `shown${EVENT_KEY}`,
95
+ INSERTED: `inserted${EVENT_KEY}`,
96
+ CLICK: `click${EVENT_KEY}`,
97
+ FOCUSIN: `focusin${EVENT_KEY}`,
98
+ FOCUSOUT: `focusout${EVENT_KEY}`,
99
+ MOUSEENTER: `mouseenter${EVENT_KEY}`,
100
+ MOUSELEAVE: `mouseleave${EVENT_KEY}`
101
+ };
102
+ const CLASS_NAME_FADE = 'fade';
103
+ const CLASS_NAME_SHOW = 'show';
104
+ const SELECTOR_TITLE = '.popover-header';
105
+ const SELECTOR_CONTENT = '.popover-body';
154
106
  /**
155
107
  * ------------------------------------------------------------------------
156
108
  * Class Definition
157
109
  * ------------------------------------------------------------------------
158
110
  */
159
111
 
160
- var Popover = /*#__PURE__*/function (_Tooltip) {
161
- _inheritsLoose(Popover, _Tooltip);
112
+ class Popover extends Tooltip__default['default'] {
113
+ // Getters
114
+ static get Default() {
115
+ return Default;
116
+ }
162
117
 
163
- function Popover() {
164
- return _Tooltip.apply(this, arguments) || this;
118
+ static get NAME() {
119
+ return NAME;
165
120
  }
166
121
 
167
- var _proto = Popover.prototype;
122
+ static get DATA_KEY() {
123
+ return DATA_KEY;
124
+ }
125
+
126
+ static get Event() {
127
+ return Event;
128
+ }
168
129
 
169
- // Overrides
170
- _proto.isWithContent = function isWithContent() {
130
+ static get EVENT_KEY() {
131
+ return EVENT_KEY;
132
+ }
133
+
134
+ static get DefaultType() {
135
+ return DefaultType;
136
+ } // Overrides
137
+
138
+
139
+ isWithContent() {
171
140
  return this.getTitle() || this._getContent();
172
- };
141
+ }
173
142
 
174
- _proto.setContent = function setContent() {
175
- var tip = this.getTipElement(); // we use append for html objects to maintain js events
143
+ setContent() {
144
+ const tip = this.getTipElement(); // we use append for html objects to maintain js events
176
145
 
177
146
  this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
178
147
 
179
- var content = this._getContent();
148
+ let content = this._getContent();
180
149
 
181
150
  if (typeof content === 'function') {
182
151
  content = content.call(this._element);
@@ -185,35 +154,31 @@
185
154
  this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
186
155
  tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
187
156
  } // Private
188
- ;
189
157
 
190
- _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
191
- this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
192
- };
193
158
 
194
- _proto._getContent = function _getContent() {
159
+ _addAttachmentClass(attachment) {
160
+ this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`);
161
+ }
162
+
163
+ _getContent() {
195
164
  return this._element.getAttribute('data-bs-content') || this.config.content;
196
- };
165
+ }
197
166
 
198
- _proto._cleanTipClass = function _cleanTipClass() {
199
- var tip = this.getTipElement();
200
- var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
167
+ _cleanTipClass() {
168
+ const tip = this.getTipElement();
169
+ const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
201
170
 
202
171
  if (tabClass !== null && tabClass.length > 0) {
203
- tabClass.map(function (token) {
204
- return token.trim();
205
- }).forEach(function (tClass) {
206
- return tip.classList.remove(tClass);
207
- });
172
+ tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));
208
173
  }
209
174
  } // Static
210
- ;
211
175
 
212
- Popover.jQueryInterface = function jQueryInterface(config) {
176
+
177
+ static jQueryInterface(config) {
213
178
  return this.each(function () {
214
- var data = Data__default['default'].getData(this, DATA_KEY);
179
+ let data = Data__default['default'].get(this, DATA_KEY);
215
180
 
216
- var _config = typeof config === 'object' ? config : null;
181
+ const _config = typeof config === 'object' ? config : null;
217
182
 
218
183
  if (!data && /dispose|hide/.test(config)) {
219
184
  return;
@@ -221,54 +186,20 @@
221
186
 
222
187
  if (!data) {
223
188
  data = new Popover(this, _config);
224
- Data__default['default'].setData(this, DATA_KEY, data);
189
+ Data__default['default'].set(this, DATA_KEY, data);
225
190
  }
226
191
 
227
192
  if (typeof config === 'string') {
228
193
  if (typeof data[config] === 'undefined') {
229
- throw new TypeError("No method named \"" + config + "\"");
194
+ throw new TypeError(`No method named "${config}"`);
230
195
  }
231
196
 
232
197
  data[config]();
233
198
  }
234
199
  });
235
- };
236
-
237
- _createClass(Popover, null, [{
238
- key: "Default",
239
- get: // Getters
240
- function get() {
241
- return Default;
242
- }
243
- }, {
244
- key: "NAME",
245
- get: function get() {
246
- return NAME;
247
- }
248
- }, {
249
- key: "DATA_KEY",
250
- get: function get() {
251
- return DATA_KEY;
252
- }
253
- }, {
254
- key: "Event",
255
- get: function get() {
256
- return Event;
257
- }
258
- }, {
259
- key: "EVENT_KEY",
260
- get: function get() {
261
- return EVENT_KEY;
262
- }
263
- }, {
264
- key: "DefaultType",
265
- get: function get() {
266
- return DefaultType;
267
- }
268
- }]);
200
+ }
269
201
 
270
- return Popover;
271
- }(Tooltip__default['default']);
202
+ }
272
203
  /**
273
204
  * ------------------------------------------------------------------------
274
205
  * jQuery
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap scrollspy.js v5.0.0-beta2 (https://getbootstrap.com/)
2
+ * Bootstrap scrollspy.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,67 +17,17 @@
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 MAX_UID = 1000000;
26
+ const MAX_UID = 1000000;
77
27
 
78
- var toType = function toType(obj) {
28
+ const toType = obj => {
79
29
  if (obj === null || obj === undefined) {
80
- return "" + obj;
30
+ return `${obj}`;
81
31
  }
82
32
 
83
33
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
@@ -89,7 +39,7 @@
89
39
  */
90
40
 
91
41
 
92
- var getUID = function getUID(prefix) {
42
+ const getUID = prefix => {
93
43
  do {
94
44
  prefix += Math.floor(Math.random() * MAX_UID);
95
45
  } while (document.getElementById(prefix));
@@ -97,11 +47,11 @@
97
47
  return prefix;
98
48
  };
99
49
 
100
- var getSelector = function getSelector(element) {
101
- var selector = element.getAttribute('data-bs-target');
50
+ const getSelector = element => {
51
+ let selector = element.getAttribute('data-bs-target');
102
52
 
103
53
  if (!selector || selector === '#') {
104
- var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
54
+ let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
105
55
  // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
106
56
  // `document.querySelector` will rightfully complain it is invalid.
107
57
  // See https://github.com/twbs/bootstrap/issues/32273
@@ -121,8 +71,8 @@
121
71
  return selector;
122
72
  };
123
73
 
124
- var getSelectorFromElement = function getSelectorFromElement(element) {
125
- var selector = getSelector(element);
74
+ const getSelectorFromElement = element => {
75
+ const selector = getSelector(element);
126
76
 
127
77
  if (selector) {
128
78
  return document.querySelector(selector) ? selector : null;
@@ -131,25 +81,24 @@
131
81
  return null;
132
82
  };
133
83
 
134
- var isElement = function isElement(obj) {
135
- return (obj[0] || obj).nodeType;
136
- };
84
+ const isElement = obj => (obj[0] || obj).nodeType;
137
85
 
138
- var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
139
- Object.keys(configTypes).forEach(function (property) {
140
- var expectedTypes = configTypes[property];
141
- var value = config[property];
142
- var valueType = value && isElement(value) ? 'element' : toType(value);
86
+ const typeCheckConfig = (componentName, config, configTypes) => {
87
+ Object.keys(configTypes).forEach(property => {
88
+ const expectedTypes = configTypes[property];
89
+ const value = config[property];
90
+ const valueType = value && isElement(value) ? 'element' : toType(value);
143
91
 
144
92
  if (!new RegExp(expectedTypes).test(valueType)) {
145
- throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
93
+ throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
146
94
  }
147
95
  });
148
96
  };
149
97
 
150
- var getjQuery = function getjQuery() {
151
- var _window = window,
152
- jQuery = _window.jQuery;
98
+ const getjQuery = () => {
99
+ const {
100
+ jQuery
101
+ } = window;
153
102
 
154
103
  if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
155
104
  return jQuery;
@@ -158,7 +107,7 @@
158
107
  return null;
159
108
  };
160
109
 
161
- var onDOMContentLoaded = function onDOMContentLoaded(callback) {
110
+ const onDOMContentLoaded = callback => {
162
111
  if (document.readyState === 'loading') {
163
112
  document.addEventListener('DOMContentLoaded', callback);
164
113
  } else {
@@ -166,19 +115,17 @@
166
115
  }
167
116
  };
168
117
 
169
- document.documentElement.dir === 'rtl';
170
-
171
- var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
172
- onDOMContentLoaded(function () {
173
- var $ = getjQuery();
118
+ const defineJQueryPlugin = (name, plugin) => {
119
+ onDOMContentLoaded(() => {
120
+ const $ = getjQuery();
174
121
  /* istanbul ignore if */
175
122
 
176
123
  if ($) {
177
- var JQUERY_NO_CONFLICT = $.fn[name];
124
+ const JQUERY_NO_CONFLICT = $.fn[name];
178
125
  $.fn[name] = plugin.jQueryInterface;
179
126
  $.fn[name].Constructor = plugin;
180
127
 
181
- $.fn[name].noConflict = function () {
128
+ $.fn[name].noConflict = () => {
182
129
  $.fn[name] = JQUERY_NO_CONFLICT;
183
130
  return plugin.jQueryInterface;
184
131
  };
@@ -186,91 +133,92 @@
186
133
  });
187
134
  };
188
135
 
136
+ /**
137
+ * --------------------------------------------------------------------------
138
+ * Bootstrap (v5.0.0-beta3): scrollspy.js
139
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
140
+ * --------------------------------------------------------------------------
141
+ */
189
142
  /**
190
143
  * ------------------------------------------------------------------------
191
144
  * Constants
192
145
  * ------------------------------------------------------------------------
193
146
  */
194
147
 
195
- var NAME = 'scrollspy';
196
- var DATA_KEY = 'bs.scrollspy';
197
- var EVENT_KEY = "." + DATA_KEY;
198
- var DATA_API_KEY = '.data-api';
199
- var Default = {
148
+ const NAME = 'scrollspy';
149
+ const DATA_KEY = 'bs.scrollspy';
150
+ const EVENT_KEY = `.${DATA_KEY}`;
151
+ const DATA_API_KEY = '.data-api';
152
+ const Default = {
200
153
  offset: 10,
201
154
  method: 'auto',
202
155
  target: ''
203
156
  };
204
- var DefaultType = {
157
+ const DefaultType = {
205
158
  offset: 'number',
206
159
  method: 'string',
207
160
  target: '(string|element)'
208
161
  };
209
- var EVENT_ACTIVATE = "activate" + EVENT_KEY;
210
- var EVENT_SCROLL = "scroll" + EVENT_KEY;
211
- var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
212
- var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
213
- var CLASS_NAME_ACTIVE = 'active';
214
- var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
215
- var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
216
- var SELECTOR_NAV_LINKS = '.nav-link';
217
- var SELECTOR_NAV_ITEMS = '.nav-item';
218
- var SELECTOR_LIST_ITEMS = '.list-group-item';
219
- var SELECTOR_DROPDOWN = '.dropdown';
220
- var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
221
- var METHOD_OFFSET = 'offset';
222
- var METHOD_POSITION = 'position';
162
+ const EVENT_ACTIVATE = `activate${EVENT_KEY}`;
163
+ const EVENT_SCROLL = `scroll${EVENT_KEY}`;
164
+ const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
165
+ const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
166
+ const CLASS_NAME_ACTIVE = 'active';
167
+ const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
168
+ const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
169
+ const SELECTOR_NAV_LINKS = '.nav-link';
170
+ const SELECTOR_NAV_ITEMS = '.nav-item';
171
+ const SELECTOR_LIST_ITEMS = '.list-group-item';
172
+ const SELECTOR_DROPDOWN = '.dropdown';
173
+ const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
174
+ const METHOD_OFFSET = 'offset';
175
+ const METHOD_POSITION = 'position';
223
176
  /**
224
177
  * ------------------------------------------------------------------------
225
178
  * Class Definition
226
179
  * ------------------------------------------------------------------------
227
180
  */
228
181
 
229
- var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {
230
- _inheritsLoose(ScrollSpy, _BaseComponent);
231
-
232
- function ScrollSpy(element, config) {
233
- var _this;
234
-
235
- _this = _BaseComponent.call(this, element) || this;
236
- _this._scrollElement = element.tagName === 'BODY' ? window : element;
237
- _this._config = _this._getConfig(config);
238
- _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
239
- _this._offsets = [];
240
- _this._targets = [];
241
- _this._activeTarget = null;
242
- _this._scrollHeight = 0;
243
- EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function () {
244
- return _this._process();
245
- });
246
-
247
- _this.refresh();
248
-
249
- _this._process();
182
+ class ScrollSpy extends BaseComponent__default['default'] {
183
+ constructor(element, config) {
184
+ super(element);
185
+ this._scrollElement = this._element.tagName === 'BODY' ? window : this._element;
186
+ this._config = this._getConfig(config);
187
+ this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`;
188
+ this._offsets = [];
189
+ this._targets = [];
190
+ this._activeTarget = null;
191
+ this._scrollHeight = 0;
192
+ EventHandler__default['default'].on(this._scrollElement, EVENT_SCROLL, () => this._process());
193
+ this.refresh();
250
194
 
251
- return _this;
195
+ this._process();
252
196
  } // Getters
253
197
 
254
198
 
255
- var _proto = ScrollSpy.prototype;
199
+ static get Default() {
200
+ return Default;
201
+ }
202
+
203
+ static get DATA_KEY() {
204
+ return DATA_KEY;
205
+ } // Public
256
206
 
257
- // Public
258
- _proto.refresh = function refresh() {
259
- var _this2 = this;
260
207
 
261
- var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
262
- var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
263
- var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
208
+ refresh() {
209
+ const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
210
+ const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
211
+ const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
264
212
  this._offsets = [];
265
213
  this._targets = [];
266
214
  this._scrollHeight = this._getScrollHeight();
267
- var targets = SelectorEngine__default['default'].find(this._selector);
268
- targets.map(function (element) {
269
- var targetSelector = getSelectorFromElement(element);
270
- var target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;
215
+ const targets = SelectorEngine__default['default'].find(this._selector);
216
+ targets.map(element => {
217
+ const targetSelector = getSelectorFromElement(element);
218
+ const target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;
271
219
 
272
220
  if (target) {
273
- var targetBCR = target.getBoundingClientRect();
221
+ const targetBCR = target.getBoundingClientRect();
274
222
 
275
223
  if (targetBCR.width || targetBCR.height) {
276
224
  return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];
@@ -278,20 +226,15 @@
278
226
  }
279
227
 
280
228
  return null;
281
- }).filter(function (item) {
282
- return item;
283
- }).sort(function (a, b) {
284
- return a[0] - b[0];
285
- }).forEach(function (item) {
286
- _this2._offsets.push(item[0]);
287
-
288
- _this2._targets.push(item[1]);
289
- });
290
- };
229
+ }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => {
230
+ this._offsets.push(item[0]);
291
231
 
292
- _proto.dispose = function dispose() {
293
- _BaseComponent.prototype.dispose.call(this);
232
+ this._targets.push(item[1]);
233
+ });
234
+ }
294
235
 
236
+ dispose() {
237
+ super.dispose();
295
238
  EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
296
239
  this._scrollElement = null;
297
240
  this._config = null;
@@ -301,51 +244,55 @@
301
244
  this._activeTarget = null;
302
245
  this._scrollHeight = null;
303
246
  } // Private
304
- ;
305
247
 
306
- _proto._getConfig = function _getConfig(config) {
307
- config = _extends({}, Default, typeof config === 'object' && config ? config : {});
248
+
249
+ _getConfig(config) {
250
+ config = { ...Default,
251
+ ...(typeof config === 'object' && config ? config : {})
252
+ };
308
253
 
309
254
  if (typeof config.target !== 'string' && isElement(config.target)) {
310
- var id = config.target.id;
255
+ let {
256
+ id
257
+ } = config.target;
311
258
 
312
259
  if (!id) {
313
260
  id = getUID(NAME);
314
261
  config.target.id = id;
315
262
  }
316
263
 
317
- config.target = "#" + id;
264
+ config.target = `#${id}`;
318
265
  }
319
266
 
320
267
  typeCheckConfig(NAME, config, DefaultType);
321
268
  return config;
322
- };
269
+ }
323
270
 
324
- _proto._getScrollTop = function _getScrollTop() {
271
+ _getScrollTop() {
325
272
  return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
326
- };
273
+ }
327
274
 
328
- _proto._getScrollHeight = function _getScrollHeight() {
275
+ _getScrollHeight() {
329
276
  return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
330
- };
277
+ }
331
278
 
332
- _proto._getOffsetHeight = function _getOffsetHeight() {
279
+ _getOffsetHeight() {
333
280
  return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
334
- };
281
+ }
335
282
 
336
- _proto._process = function _process() {
337
- var scrollTop = this._getScrollTop() + this._config.offset;
283
+ _process() {
284
+ const scrollTop = this._getScrollTop() + this._config.offset;
338
285
 
339
- var scrollHeight = this._getScrollHeight();
286
+ const scrollHeight = this._getScrollHeight();
340
287
 
341
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
288
+ const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
342
289
 
343
290
  if (this._scrollHeight !== scrollHeight) {
344
291
  this.refresh();
345
292
  }
346
293
 
347
294
  if (scrollTop >= maxScroll) {
348
- var target = this._targets[this._targets.length - 1];
295
+ const target = this._targets[this._targets.length - 1];
349
296
 
350
297
  if (this._activeTarget !== target) {
351
298
  this._activate(target);
@@ -362,25 +309,23 @@
362
309
  return;
363
310
  }
364
311
 
365
- for (var i = this._offsets.length; i--;) {
366
- var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
312
+ for (let i = this._offsets.length; i--;) {
313
+ const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
367
314
 
368
315
  if (isActiveTarget) {
369
316
  this._activate(this._targets[i]);
370
317
  }
371
318
  }
372
- };
319
+ }
373
320
 
374
- _proto._activate = function _activate(target) {
321
+ _activate(target) {
375
322
  this._activeTarget = target;
376
323
 
377
324
  this._clear();
378
325
 
379
- var queries = this._selector.split(',').map(function (selector) {
380
- return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
381
- });
326
+ const queries = this._selector.split(',').map(selector => `${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`);
382
327
 
383
- var link = SelectorEngine__default['default'].findOne(queries.join(','));
328
+ const link = SelectorEngine__default['default'].findOne(queries.join(','));
384
329
 
385
330
  if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
386
331
  SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
@@ -388,17 +333,13 @@
388
333
  } else {
389
334
  // Set triggered link as active
390
335
  link.classList.add(CLASS_NAME_ACTIVE);
391
- SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
336
+ SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(listGroup => {
392
337
  // Set triggered links parents as active
393
338
  // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
394
- SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) {
395
- return item.classList.add(CLASS_NAME_ACTIVE);
396
- }); // Handle special case when .nav-link is inside .nav-item
397
-
398
- SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) {
399
- SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) {
400
- return item.classList.add(CLASS_NAME_ACTIVE);
401
- });
339
+ SelectorEngine__default['default'].prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item => item.classList.add(CLASS_NAME_ACTIVE)); // Handle special case when .nav-link is inside .nav-item
340
+
341
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem => {
342
+ SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(item => item.classList.add(CLASS_NAME_ACTIVE));
402
343
  });
403
344
  });
404
345
  }
@@ -406,22 +347,18 @@
406
347
  EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {
407
348
  relatedTarget: target
408
349
  });
409
- };
350
+ }
410
351
 
411
- _proto._clear = function _clear() {
412
- SelectorEngine__default['default'].find(this._selector).filter(function (node) {
413
- return node.classList.contains(CLASS_NAME_ACTIVE);
414
- }).forEach(function (node) {
415
- return node.classList.remove(CLASS_NAME_ACTIVE);
416
- });
352
+ _clear() {
353
+ SelectorEngine__default['default'].find(this._selector).filter(node => node.classList.contains(CLASS_NAME_ACTIVE)).forEach(node => node.classList.remove(CLASS_NAME_ACTIVE));
417
354
  } // Static
418
- ;
419
355
 
420
- ScrollSpy.jQueryInterface = function jQueryInterface(config) {
356
+
357
+ static jQueryInterface(config) {
421
358
  return this.each(function () {
422
- var data = Data__default['default'].getData(this, DATA_KEY);
359
+ let data = Data__default['default'].get(this, DATA_KEY);
423
360
 
424
- var _config = typeof config === 'object' && config;
361
+ const _config = typeof config === 'object' && config;
425
362
 
426
363
  if (!data) {
427
364
  data = new ScrollSpy(this, _config);
@@ -429,28 +366,15 @@
429
366
 
430
367
  if (typeof config === 'string') {
431
368
  if (typeof data[config] === 'undefined') {
432
- throw new TypeError("No method named \"" + config + "\"");
369
+ throw new TypeError(`No method named "${config}"`);
433
370
  }
434
371
 
435
372
  data[config]();
436
373
  }
437
374
  });
438
- };
439
-
440
- _createClass(ScrollSpy, null, [{
441
- key: "Default",
442
- get: function get() {
443
- return Default;
444
- }
445
- }, {
446
- key: "DATA_KEY",
447
- get: function get() {
448
- return DATA_KEY;
449
- }
450
- }]);
375
+ }
451
376
 
452
- return ScrollSpy;
453
- }(BaseComponent__default['default']);
377
+ }
454
378
  /**
455
379
  * ------------------------------------------------------------------------
456
380
  * Data Api implementation
@@ -458,10 +382,8 @@
458
382
  */
459
383
 
460
384
 
461
- EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
462
- SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(function (spy) {
463
- return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy));
464
- });
385
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, () => {
386
+ SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy)));
465
387
  });
466
388
  /**
467
389
  * ------------------------------------------------------------------------