bootstrap 5.0.0.beta2 → 5.0.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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/assets/javascripts/bootstrap-sprockets.js +8 -7
  4. data/assets/javascripts/bootstrap.js +2525 -2460
  5. data/assets/javascripts/bootstrap.min.js +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +77 -179
  7. data/assets/javascripts/bootstrap/base-component.js +140 -38
  8. data/assets/javascripts/bootstrap/button.js +54 -100
  9. data/assets/javascripts/bootstrap/carousel.js +335 -451
  10. data/assets/javascripts/bootstrap/collapse.js +195 -303
  11. data/assets/javascripts/bootstrap/dom/data.js +34 -47
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +95 -90
  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 +323 -358
  16. data/assets/javascripts/bootstrap/modal.js +537 -489
  17. data/assets/javascripts/bootstrap/offcanvas.js +720 -0
  18. data/assets/javascripts/bootstrap/popover.js +112 -180
  19. data/assets/javascripts/bootstrap/scrollspy.js +167 -235
  20. data/assets/javascripts/bootstrap/tab.js +121 -188
  21. data/assets/javascripts/bootstrap/toast.js +166 -243
  22. data/assets/javascripts/bootstrap/tooltip.js +333 -495
  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 +24 -32
  27. data/assets/stylesheets/bootstrap/_buttons.scss +2 -0
  28. data/assets/stylesheets/bootstrap/_card.scss +6 -6
  29. data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
  30. data/assets/stylesheets/bootstrap/_dropdown.scss +14 -23
  31. data/assets/stylesheets/bootstrap/_functions.scss +61 -3
  32. data/assets/stylesheets/bootstrap/_images.scss +1 -1
  33. data/assets/stylesheets/bootstrap/_list-group.scss +16 -5
  34. data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
  35. data/assets/stylesheets/bootstrap/_modal.scss +8 -24
  36. data/assets/stylesheets/bootstrap/_nav.scss +7 -0
  37. data/assets/stylesheets/bootstrap/_navbar.scss +2 -0
  38. data/assets/stylesheets/bootstrap/_offcanvas.scss +79 -0
  39. data/assets/stylesheets/bootstrap/_popover.scss +10 -10
  40. data/assets/stylesheets/bootstrap/_progress.scss +3 -0
  41. data/assets/stylesheets/bootstrap/_reboot.scss +7 -21
  42. data/assets/stylesheets/bootstrap/_spinners.scss +6 -2
  43. data/assets/stylesheets/bootstrap/_tables.scss +1 -0
  44. data/assets/stylesheets/bootstrap/_toasts.scss +1 -1
  45. data/assets/stylesheets/bootstrap/_tooltip.scss +4 -4
  46. data/assets/stylesheets/bootstrap/_transitions.scss +2 -0
  47. data/assets/stylesheets/bootstrap/_utilities.scss +65 -37
  48. data/assets/stylesheets/bootstrap/_variables.scss +162 -50
  49. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
  50. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +3 -1
  51. data/assets/stylesheets/bootstrap/forms/_form-check.scss +1 -1
  52. data/assets/stylesheets/bootstrap/forms/_form-control.scss +0 -4
  53. data/assets/stylesheets/bootstrap/forms/_form-range.scss +1 -1
  54. data/assets/stylesheets/bootstrap/forms/_form-select.scss +3 -0
  55. data/assets/stylesheets/bootstrap/mixins/_alert.scss +2 -0
  56. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +2 -0
  57. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +7 -2
  58. data/assets/stylesheets/bootstrap/mixins/_caret.scss +2 -0
  59. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  60. data/assets/stylesheets/bootstrap/mixins/_forms.scss +25 -5
  61. data/assets/stylesheets/bootstrap/mixins/_grid.scss +23 -11
  62. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
  63. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +2 -0
  64. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +55 -13
  65. data/bootstrap.gemspec +1 -1
  66. data/lib/bootstrap/version.rb +2 -2
  67. data/tasks/updater/js.rb +1 -1
  68. data/tasks/updater/network.rb +7 -1
  69. metadata +9 -6
@@ -1,80 +1,23 @@
1
1
  /*!
2
- * Bootstrap popover.js v5.0.0-beta2 (https://getbootstrap.com/)
2
+ * Bootstrap popover.js v5.0.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/data.js'), require('./dom/selector-engine.js'), require('./tooltip.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));
10
- }(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.js'), require('./tooltip.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './tooltip'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.SelectorEngine, global.Tooltip));
10
+ }(this, (function (SelectorEngine, Tooltip) { 'use strict';
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
13
 
14
- var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
14
  var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
16
15
  var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
17
16
 
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
- /**
69
- * --------------------------------------------------------------------------
70
- * Bootstrap (v5.0.0-beta2): util/index.js
71
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
72
- * --------------------------------------------------------------------------
73
- */
74
-
75
- var getjQuery = function getjQuery() {
76
- var _window = window,
77
- jQuery = _window.jQuery;
17
+ const getjQuery = () => {
18
+ const {
19
+ jQuery
20
+ } = window;
78
21
 
79
22
  if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
80
23
  return jQuery;
@@ -83,27 +26,35 @@
83
26
  return null;
84
27
  };
85
28
 
86
- var onDOMContentLoaded = function onDOMContentLoaded(callback) {
29
+ const DOMContentLoadedCallbacks = [];
30
+
31
+ const onDOMContentLoaded = callback => {
87
32
  if (document.readyState === 'loading') {
88
- document.addEventListener('DOMContentLoaded', callback);
33
+ // add listener on the first call when the document is in loading state
34
+ if (!DOMContentLoadedCallbacks.length) {
35
+ document.addEventListener('DOMContentLoaded', () => {
36
+ DOMContentLoadedCallbacks.forEach(callback => callback());
37
+ });
38
+ }
39
+
40
+ DOMContentLoadedCallbacks.push(callback);
89
41
  } else {
90
42
  callback();
91
43
  }
92
44
  };
93
45
 
94
- document.documentElement.dir === 'rtl';
95
-
96
- var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
97
- onDOMContentLoaded(function () {
98
- var $ = getjQuery();
46
+ const defineJQueryPlugin = plugin => {
47
+ onDOMContentLoaded(() => {
48
+ const $ = getjQuery();
99
49
  /* istanbul ignore if */
100
50
 
101
51
  if ($) {
102
- var JQUERY_NO_CONFLICT = $.fn[name];
52
+ const name = plugin.NAME;
53
+ const JQUERY_NO_CONFLICT = $.fn[name];
103
54
  $.fn[name] = plugin.jQueryInterface;
104
55
  $.fn[name].Constructor = plugin;
105
56
 
106
- $.fn[name].noConflict = function () {
57
+ $.fn[name].noConflict = () => {
107
58
  $.fn[name] = JQUERY_NO_CONFLICT;
108
59
  return plugin.jQueryInterface;
109
60
  };
@@ -111,72 +62,102 @@
111
62
  });
112
63
  };
113
64
 
65
+ /**
66
+ * --------------------------------------------------------------------------
67
+ * Bootstrap (v5.0.2): popover.js
68
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
69
+ * --------------------------------------------------------------------------
70
+ */
114
71
  /**
115
72
  * ------------------------------------------------------------------------
116
73
  * Constants
117
74
  * ------------------------------------------------------------------------
118
75
  */
119
76
 
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, {
77
+ const NAME = 'popover';
78
+ const DATA_KEY = 'bs.popover';
79
+ const EVENT_KEY = `.${DATA_KEY}`;
80
+ const CLASS_PREFIX = 'bs-popover';
81
+ const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g');
82
+ const Default = { ...Tooltip__default['default'].Default,
127
83
  placement: 'right',
128
84
  offset: [0, 8],
129
85
  trigger: 'click',
130
86
  content: '',
131
87
  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, {
88
+ };
89
+ const DefaultType = { ...Tooltip__default['default'].DefaultType,
135
90
  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
91
  };
150
- var CLASS_NAME_FADE = 'fade';
151
- var CLASS_NAME_SHOW = 'show';
152
- var SELECTOR_TITLE = '.popover-header';
153
- var SELECTOR_CONTENT = '.popover-body';
92
+ const Event = {
93
+ HIDE: `hide${EVENT_KEY}`,
94
+ HIDDEN: `hidden${EVENT_KEY}`,
95
+ SHOW: `show${EVENT_KEY}`,
96
+ SHOWN: `shown${EVENT_KEY}`,
97
+ INSERTED: `inserted${EVENT_KEY}`,
98
+ CLICK: `click${EVENT_KEY}`,
99
+ FOCUSIN: `focusin${EVENT_KEY}`,
100
+ FOCUSOUT: `focusout${EVENT_KEY}`,
101
+ MOUSEENTER: `mouseenter${EVENT_KEY}`,
102
+ MOUSELEAVE: `mouseleave${EVENT_KEY}`
103
+ };
104
+ const CLASS_NAME_FADE = 'fade';
105
+ const CLASS_NAME_SHOW = 'show';
106
+ const SELECTOR_TITLE = '.popover-header';
107
+ const SELECTOR_CONTENT = '.popover-body';
154
108
  /**
155
109
  * ------------------------------------------------------------------------
156
110
  * Class Definition
157
111
  * ------------------------------------------------------------------------
158
112
  */
159
113
 
160
- var Popover = /*#__PURE__*/function (_Tooltip) {
161
- _inheritsLoose(Popover, _Tooltip);
114
+ class Popover extends Tooltip__default['default'] {
115
+ // Getters
116
+ static get Default() {
117
+ return Default;
118
+ }
162
119
 
163
- function Popover() {
164
- return _Tooltip.apply(this, arguments) || this;
120
+ static get NAME() {
121
+ return NAME;
165
122
  }
166
123
 
167
- var _proto = Popover.prototype;
124
+ static get Event() {
125
+ return Event;
126
+ }
168
127
 
169
- // Overrides
170
- _proto.isWithContent = function isWithContent() {
128
+ static get DefaultType() {
129
+ return DefaultType;
130
+ } // Overrides
131
+
132
+
133
+ isWithContent() {
171
134
  return this.getTitle() || this._getContent();
172
- };
135
+ }
136
+
137
+ getTipElement() {
138
+ if (this.tip) {
139
+ return this.tip;
140
+ }
141
+
142
+ this.tip = super.getTipElement();
173
143
 
174
- _proto.setContent = function setContent() {
175
- var tip = this.getTipElement(); // we use append for html objects to maintain js events
144
+ if (!this.getTitle()) {
145
+ SelectorEngine__default['default'].findOne(SELECTOR_TITLE, this.tip).remove();
146
+ }
147
+
148
+ if (!this._getContent()) {
149
+ SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, this.tip).remove();
150
+ }
151
+
152
+ return this.tip;
153
+ }
154
+
155
+ setContent() {
156
+ const tip = this.getTipElement(); // we use append for html objects to maintain js events
176
157
 
177
158
  this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
178
159
 
179
- var content = this._getContent();
160
+ let content = this._getContent();
180
161
 
181
162
  if (typeof content === 'function') {
182
163
  content = content.call(this._element);
@@ -185,90 +166,41 @@
185
166
  this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
186
167
  tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
187
168
  } // Private
188
- ;
189
169
 
190
- _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
191
- this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
192
- };
193
170
 
194
- _proto._getContent = function _getContent() {
195
- return this._element.getAttribute('data-bs-content') || this.config.content;
196
- };
171
+ _addAttachmentClass(attachment) {
172
+ this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`);
173
+ }
174
+
175
+ _getContent() {
176
+ return this._element.getAttribute('data-bs-content') || this._config.content;
177
+ }
197
178
 
198
- _proto._cleanTipClass = function _cleanTipClass() {
199
- var tip = this.getTipElement();
200
- var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
179
+ _cleanTipClass() {
180
+ const tip = this.getTipElement();
181
+ const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
201
182
 
202
183
  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
- });
184
+ tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));
208
185
  }
209
186
  } // Static
210
- ;
211
-
212
- Popover.jQueryInterface = function jQueryInterface(config) {
213
- return this.each(function () {
214
- var data = Data__default['default'].getData(this, DATA_KEY);
215
187
 
216
- var _config = typeof config === 'object' ? config : null;
217
188
 
218
- if (!data && /dispose|hide/.test(config)) {
219
- return;
220
- }
221
-
222
- if (!data) {
223
- data = new Popover(this, _config);
224
- Data__default['default'].setData(this, DATA_KEY, data);
225
- }
189
+ static jQueryInterface(config) {
190
+ return this.each(function () {
191
+ const data = Popover.getOrCreateInstance(this, config);
226
192
 
227
193
  if (typeof config === 'string') {
228
194
  if (typeof data[config] === 'undefined') {
229
- throw new TypeError("No method named \"" + config + "\"");
195
+ throw new TypeError(`No method named "${config}"`);
230
196
  }
231
197
 
232
198
  data[config]();
233
199
  }
234
200
  });
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
- }]);
201
+ }
269
202
 
270
- return Popover;
271
- }(Tooltip__default['default']);
203
+ }
272
204
  /**
273
205
  * ------------------------------------------------------------------------
274
206
  * jQuery
@@ -277,7 +209,7 @@
277
209
  */
278
210
 
279
211
 
280
- defineJQueryPlugin(NAME, Popover);
212
+ defineJQueryPlugin(Popover);
281
213
 
282
214
  return Popover;
283
215
 
@@ -1,83 +1,33 @@
1
1
  /*!
2
- * Bootstrap scrollspy.js v5.0.0-beta2 (https://getbootstrap.com/)
2
+ * Bootstrap scrollspy.js v5.0.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/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.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
- }(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.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/event-handler', './dom/manipulator', './base-component'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.SelectorEngine, global.EventHandler, global.Manipulator, global.Base));
10
+ }(this, (function (SelectorEngine, EventHandler, Manipulator, BaseComponent) { 'use strict';
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
13
 
14
- var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
14
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
15
15
  var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
16
  var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
- var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
17
  var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
19
18
 
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
19
  /**
71
20
  * --------------------------------------------------------------------------
72
- * Bootstrap (v5.0.0-beta2): util/index.js
21
+ * Bootstrap (v5.0.2): util/index.js
73
22
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
74
23
  * --------------------------------------------------------------------------
75
24
  */
76
- var MAX_UID = 1000000;
77
25
 
78
- var toType = function toType(obj) {
26
+ const MAX_UID = 1000000;
27
+
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
@@ -112,7 +62,7 @@
112
62
 
113
63
 
114
64
  if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
115
- hrefAttr = '#' + hrefAttr.split('#')[1];
65
+ hrefAttr = `#${hrefAttr.split('#')[1]}`;
116
66
  }
117
67
 
118
68
  selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
@@ -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,34 @@
131
81
  return null;
132
82
  };
133
83
 
134
- var isElement = function isElement(obj) {
135
- return (obj[0] || obj).nodeType;
84
+ const isElement = obj => {
85
+ if (!obj || typeof obj !== 'object') {
86
+ return false;
87
+ }
88
+
89
+ if (typeof obj.jquery !== 'undefined') {
90
+ obj = obj[0];
91
+ }
92
+
93
+ return typeof obj.nodeType !== 'undefined';
136
94
  };
137
95
 
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);
96
+ const typeCheckConfig = (componentName, config, configTypes) => {
97
+ Object.keys(configTypes).forEach(property => {
98
+ const expectedTypes = configTypes[property];
99
+ const value = config[property];
100
+ const valueType = value && isElement(value) ? 'element' : toType(value);
143
101
 
144
102
  if (!new RegExp(expectedTypes).test(valueType)) {
145
- throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
103
+ throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
146
104
  }
147
105
  });
148
106
  };
149
107
 
150
- var getjQuery = function getjQuery() {
151
- var _window = window,
152
- jQuery = _window.jQuery;
108
+ const getjQuery = () => {
109
+ const {
110
+ jQuery
111
+ } = window;
153
112
 
154
113
  if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
155
114
  return jQuery;
@@ -158,27 +117,35 @@
158
117
  return null;
159
118
  };
160
119
 
161
- var onDOMContentLoaded = function onDOMContentLoaded(callback) {
120
+ const DOMContentLoadedCallbacks = [];
121
+
122
+ const onDOMContentLoaded = callback => {
162
123
  if (document.readyState === 'loading') {
163
- document.addEventListener('DOMContentLoaded', callback);
124
+ // add listener on the first call when the document is in loading state
125
+ if (!DOMContentLoadedCallbacks.length) {
126
+ document.addEventListener('DOMContentLoaded', () => {
127
+ DOMContentLoadedCallbacks.forEach(callback => callback());
128
+ });
129
+ }
130
+
131
+ DOMContentLoadedCallbacks.push(callback);
164
132
  } else {
165
133
  callback();
166
134
  }
167
135
  };
168
136
 
169
- document.documentElement.dir === 'rtl';
170
-
171
- var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
172
- onDOMContentLoaded(function () {
173
- var $ = getjQuery();
137
+ const defineJQueryPlugin = plugin => {
138
+ onDOMContentLoaded(() => {
139
+ const $ = getjQuery();
174
140
  /* istanbul ignore if */
175
141
 
176
142
  if ($) {
177
- var JQUERY_NO_CONFLICT = $.fn[name];
143
+ const name = plugin.NAME;
144
+ const JQUERY_NO_CONFLICT = $.fn[name];
178
145
  $.fn[name] = plugin.jQueryInterface;
179
146
  $.fn[name].Constructor = plugin;
180
147
 
181
- $.fn[name].noConflict = function () {
148
+ $.fn[name].noConflict = () => {
182
149
  $.fn[name] = JQUERY_NO_CONFLICT;
183
150
  return plugin.jQueryInterface;
184
151
  };
@@ -186,91 +153,92 @@
186
153
  });
187
154
  };
188
155
 
156
+ /**
157
+ * --------------------------------------------------------------------------
158
+ * Bootstrap (v5.0.2): scrollspy.js
159
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
160
+ * --------------------------------------------------------------------------
161
+ */
189
162
  /**
190
163
  * ------------------------------------------------------------------------
191
164
  * Constants
192
165
  * ------------------------------------------------------------------------
193
166
  */
194
167
 
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 = {
168
+ const NAME = 'scrollspy';
169
+ const DATA_KEY = 'bs.scrollspy';
170
+ const EVENT_KEY = `.${DATA_KEY}`;
171
+ const DATA_API_KEY = '.data-api';
172
+ const Default = {
200
173
  offset: 10,
201
174
  method: 'auto',
202
175
  target: ''
203
176
  };
204
- var DefaultType = {
177
+ const DefaultType = {
205
178
  offset: 'number',
206
179
  method: 'string',
207
180
  target: '(string|element)'
208
181
  };
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';
182
+ const EVENT_ACTIVATE = `activate${EVENT_KEY}`;
183
+ const EVENT_SCROLL = `scroll${EVENT_KEY}`;
184
+ const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
185
+ const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
186
+ const CLASS_NAME_ACTIVE = 'active';
187
+ const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
188
+ const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
189
+ const SELECTOR_NAV_LINKS = '.nav-link';
190
+ const SELECTOR_NAV_ITEMS = '.nav-item';
191
+ const SELECTOR_LIST_ITEMS = '.list-group-item';
192
+ const SELECTOR_DROPDOWN = '.dropdown';
193
+ const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
194
+ const METHOD_OFFSET = 'offset';
195
+ const METHOD_POSITION = 'position';
223
196
  /**
224
197
  * ------------------------------------------------------------------------
225
198
  * Class Definition
226
199
  * ------------------------------------------------------------------------
227
200
  */
228
201
 
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();
202
+ class ScrollSpy extends BaseComponent__default['default'] {
203
+ constructor(element, config) {
204
+ super(element);
205
+ this._scrollElement = this._element.tagName === 'BODY' ? window : this._element;
206
+ this._config = this._getConfig(config);
207
+ this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`;
208
+ this._offsets = [];
209
+ this._targets = [];
210
+ this._activeTarget = null;
211
+ this._scrollHeight = 0;
212
+ EventHandler__default['default'].on(this._scrollElement, EVENT_SCROLL, () => this._process());
213
+ this.refresh();
250
214
 
251
- return _this;
215
+ this._process();
252
216
  } // Getters
253
217
 
254
218
 
255
- var _proto = ScrollSpy.prototype;
219
+ static get Default() {
220
+ return Default;
221
+ }
222
+
223
+ static get NAME() {
224
+ return NAME;
225
+ } // Public
256
226
 
257
- // Public
258
- _proto.refresh = function refresh() {
259
- var _this2 = this;
260
227
 
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;
228
+ refresh() {
229
+ const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
230
+ const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
231
+ const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
264
232
  this._offsets = [];
265
233
  this._targets = [];
266
234
  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;
235
+ const targets = SelectorEngine__default['default'].find(this._selector);
236
+ targets.map(element => {
237
+ const targetSelector = getSelectorFromElement(element);
238
+ const target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;
271
239
 
272
240
  if (target) {
273
- var targetBCR = target.getBoundingClientRect();
241
+ const targetBCR = target.getBoundingClientRect();
274
242
 
275
243
  if (targetBCR.width || targetBCR.height) {
276
244
  return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];
@@ -278,74 +246,67 @@
278
246
  }
279
247
 
280
248
  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
- };
249
+ }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => {
250
+ this._offsets.push(item[0]);
291
251
 
292
- _proto.dispose = function dispose() {
293
- _BaseComponent.prototype.dispose.call(this);
252
+ this._targets.push(item[1]);
253
+ });
254
+ }
294
255
 
256
+ dispose() {
295
257
  EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
296
- this._scrollElement = null;
297
- this._config = null;
298
- this._selector = null;
299
- this._offsets = null;
300
- this._targets = null;
301
- this._activeTarget = null;
302
- this._scrollHeight = null;
258
+ super.dispose();
303
259
  } // Private
304
- ;
305
260
 
306
- _proto._getConfig = function _getConfig(config) {
307
- config = _extends({}, Default, typeof config === 'object' && config ? config : {});
261
+
262
+ _getConfig(config) {
263
+ config = { ...Default,
264
+ ...Manipulator__default['default'].getDataAttributes(this._element),
265
+ ...(typeof config === 'object' && config ? config : {})
266
+ };
308
267
 
309
268
  if (typeof config.target !== 'string' && isElement(config.target)) {
310
- var id = config.target.id;
269
+ let {
270
+ id
271
+ } = config.target;
311
272
 
312
273
  if (!id) {
313
274
  id = getUID(NAME);
314
275
  config.target.id = id;
315
276
  }
316
277
 
317
- config.target = "#" + id;
278
+ config.target = `#${id}`;
318
279
  }
319
280
 
320
281
  typeCheckConfig(NAME, config, DefaultType);
321
282
  return config;
322
- };
283
+ }
323
284
 
324
- _proto._getScrollTop = function _getScrollTop() {
285
+ _getScrollTop() {
325
286
  return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
326
- };
287
+ }
327
288
 
328
- _proto._getScrollHeight = function _getScrollHeight() {
289
+ _getScrollHeight() {
329
290
  return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
330
- };
291
+ }
331
292
 
332
- _proto._getOffsetHeight = function _getOffsetHeight() {
293
+ _getOffsetHeight() {
333
294
  return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
334
- };
295
+ }
335
296
 
336
- _proto._process = function _process() {
337
- var scrollTop = this._getScrollTop() + this._config.offset;
297
+ _process() {
298
+ const scrollTop = this._getScrollTop() + this._config.offset;
338
299
 
339
- var scrollHeight = this._getScrollHeight();
300
+ const scrollHeight = this._getScrollHeight();
340
301
 
341
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
302
+ const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
342
303
 
343
304
  if (this._scrollHeight !== scrollHeight) {
344
305
  this.refresh();
345
306
  }
346
307
 
347
308
  if (scrollTop >= maxScroll) {
348
- var target = this._targets[this._targets.length - 1];
309
+ const target = this._targets[this._targets.length - 1];
349
310
 
350
311
  if (this._activeTarget !== target) {
351
312
  this._activate(target);
@@ -362,25 +323,23 @@
362
323
  return;
363
324
  }
364
325
 
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]);
326
+ for (let i = this._offsets.length; i--;) {
327
+ const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
367
328
 
368
329
  if (isActiveTarget) {
369
330
  this._activate(this._targets[i]);
370
331
  }
371
332
  }
372
- };
333
+ }
373
334
 
374
- _proto._activate = function _activate(target) {
335
+ _activate(target) {
375
336
  this._activeTarget = target;
376
337
 
377
338
  this._clear();
378
339
 
379
- var queries = this._selector.split(',').map(function (selector) {
380
- return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
381
- });
340
+ const queries = this._selector.split(',').map(selector => `${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`);
382
341
 
383
- var link = SelectorEngine__default['default'].findOne(queries.join(','));
342
+ const link = SelectorEngine__default['default'].findOne(queries.join(','));
384
343
 
385
344
  if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
386
345
  SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
@@ -388,17 +347,13 @@
388
347
  } else {
389
348
  // Set triggered link as active
390
349
  link.classList.add(CLASS_NAME_ACTIVE);
391
- SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
350
+ SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(listGroup => {
392
351
  // Set triggered links parents as active
393
352
  // 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
- });
353
+ 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
354
+
355
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem => {
356
+ SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(item => item.classList.add(CLASS_NAME_ACTIVE));
402
357
  });
403
358
  });
404
359
  }
@@ -406,51 +361,30 @@
406
361
  EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {
407
362
  relatedTarget: target
408
363
  });
409
- };
364
+ }
410
365
 
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
- });
366
+ _clear() {
367
+ SelectorEngine__default['default'].find(this._selector).filter(node => node.classList.contains(CLASS_NAME_ACTIVE)).forEach(node => node.classList.remove(CLASS_NAME_ACTIVE));
417
368
  } // Static
418
- ;
419
369
 
420
- ScrollSpy.jQueryInterface = function jQueryInterface(config) {
421
- return this.each(function () {
422
- var data = Data__default['default'].getData(this, DATA_KEY);
423
370
 
424
- var _config = typeof config === 'object' && config;
371
+ static jQueryInterface(config) {
372
+ return this.each(function () {
373
+ const data = ScrollSpy.getOrCreateInstance(this, config);
425
374
 
426
- if (!data) {
427
- data = new ScrollSpy(this, _config);
375
+ if (typeof config !== 'string') {
376
+ return;
428
377
  }
429
378
 
430
- if (typeof config === 'string') {
431
- if (typeof data[config] === 'undefined') {
432
- throw new TypeError("No method named \"" + config + "\"");
433
- }
434
-
435
- data[config]();
379
+ if (typeof data[config] === 'undefined') {
380
+ throw new TypeError(`No method named "${config}"`);
436
381
  }
437
- });
438
- };
439
382
 
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
- }]);
383
+ data[config]();
384
+ });
385
+ }
451
386
 
452
- return ScrollSpy;
453
- }(BaseComponent__default['default']);
387
+ }
454
388
  /**
455
389
  * ------------------------------------------------------------------------
456
390
  * Data Api implementation
@@ -458,10 +392,8 @@
458
392
  */
459
393
 
460
394
 
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
- });
395
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, () => {
396
+ SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy));
465
397
  });
466
398
  /**
467
399
  * ------------------------------------------------------------------------
@@ -470,7 +402,7 @@
470
402
  * add .ScrollSpy to jQuery only if jQuery is present
471
403
  */
472
404
 
473
- defineJQueryPlugin(NAME, ScrollSpy);
405
+ defineJQueryPlugin(ScrollSpy);
474
406
 
475
407
  return ScrollSpy;
476
408