bootstrap 4.5.0 → 5.0.0.alpha3

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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/README.md +5 -2
  4. data/assets/javascripts/bootstrap-sprockets.js +12 -9
  5. data/assets/javascripts/bootstrap.js +1852 -1266
  6. data/assets/javascripts/bootstrap.min.js +3 -3
  7. data/assets/javascripts/bootstrap/alert.js +149 -69
  8. data/assets/javascripts/bootstrap/button.js +71 -141
  9. data/assets/javascripts/bootstrap/carousel.js +291 -192
  10. data/assets/javascripts/bootstrap/collapse.js +285 -161
  11. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +307 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +85 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +240 -218
  16. data/assets/javascripts/bootstrap/modal.js +342 -234
  17. data/assets/javascripts/bootstrap/popover.js +82 -106
  18. data/assets/javascripts/bootstrap/scrollspy.js +154 -114
  19. data/assets/javascripts/bootstrap/tab.js +166 -80
  20. data/assets/javascripts/bootstrap/toast.js +171 -113
  21. data/assets/javascripts/bootstrap/tooltip.js +351 -219
  22. data/assets/stylesheets/_bootstrap-grid.scss +52 -16
  23. data/assets/stylesheets/_bootstrap-reboot.scss +5 -2
  24. data/assets/stylesheets/_bootstrap.scss +16 -9
  25. data/assets/stylesheets/bootstrap/_accordion.scss +125 -0
  26. data/assets/stylesheets/bootstrap/_alert.scss +15 -9
  27. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  28. data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -19
  29. data/assets/stylesheets/bootstrap/_button-group.scss +16 -40
  30. data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
  31. data/assets/stylesheets/bootstrap/_card.scss +30 -97
  32. data/assets/stylesheets/bootstrap/_carousel.scss +30 -15
  33. data/assets/stylesheets/bootstrap/_close.scss +30 -30
  34. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  35. data/assets/stylesheets/bootstrap/_dropdown.scss +52 -8
  36. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  37. data/assets/stylesheets/bootstrap/_functions.scss +88 -23
  38. data/assets/stylesheets/bootstrap/_grid.scss +3 -58
  39. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  40. data/assets/stylesheets/bootstrap/_list-group.scss +14 -5
  41. data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
  42. data/assets/stylesheets/bootstrap/_modal.scss +41 -47
  43. data/assets/stylesheets/bootstrap/_nav.scss +14 -8
  44. data/assets/stylesheets/bootstrap/_navbar.scss +43 -74
  45. data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
  46. data/assets/stylesheets/bootstrap/_popover.scss +6 -6
  47. data/assets/stylesheets/bootstrap/_progress.scss +3 -5
  48. data/assets/stylesheets/bootstrap/_reboot.scss +310 -171
  49. data/assets/stylesheets/bootstrap/_root.scss +5 -9
  50. data/assets/stylesheets/bootstrap/_spinners.scss +13 -4
  51. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  52. data/assets/stylesheets/bootstrap/_toasts.scss +6 -2
  53. data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
  54. data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
  55. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  56. data/assets/stylesheets/bootstrap/_utilities.scss +545 -18
  57. data/assets/stylesheets/bootstrap/_variables.scss +653 -469
  58. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  59. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-check.scss +151 -0
  61. data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
  62. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-select.scss +68 -0
  64. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  65. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  66. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  67. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  68. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  69. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  70. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  71. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  72. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  73. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  74. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  75. data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -5
  76. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +9 -9
  77. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  78. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
  79. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -47
  80. data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
  81. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  82. data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
  83. data/assets/stylesheets/bootstrap/mixins/_forms.scss +17 -77
  84. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
  85. data/assets/stylesheets/bootstrap/mixins/_grid.scss +84 -33
  86. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  87. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
  88. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  89. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  90. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  91. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  92. data/assets/stylesheets/bootstrap/mixins/_transition.scss +2 -2
  93. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
  94. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +28 -0
  95. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  96. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
  97. data/lib/bootstrap/version.rb +2 -2
  98. data/tasks/updater/js.rb +3 -3
  99. metadata +33 -41
  100. data/assets/javascripts/bootstrap/util.js +0 -192
  101. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  102. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -522
  103. data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
  104. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  105. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  106. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  107. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  108. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  109. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  110. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -81
  111. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  112. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  113. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  114. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  115. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  116. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  117. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  118. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  119. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  120. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  121. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  122. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  123. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  124. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  125. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  126. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  127. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  128. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  129. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  130. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  131. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  132. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  133. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  134. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -71
  135. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,88 +1,53 @@
1
1
  /*!
2
- * Bootstrap popover.js v4.5.0 (https://getbootstrap.com/)
2
+ * Bootstrap popover.js v5.0.0-alpha3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
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('jquery'), require('./tooltip.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './tooltip.js'], factory) :
9
- (global = global || self, global.Popover = factory(global.jQuery, global.Tooltip));
10
- }(this, (function ($, Tooltip) { 'use strict';
11
-
12
- $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
- Tooltip = Tooltip && Object.prototype.hasOwnProperty.call(Tooltip, 'default') ? Tooltip['default'] : Tooltip;
14
-
15
- function _defineProperties(target, props) {
16
- for (var i = 0; i < props.length; i++) {
17
- var descriptor = props[i];
18
- descriptor.enumerable = descriptor.enumerable || false;
19
- descriptor.configurable = true;
20
- if ("value" in descriptor) descriptor.writable = true;
21
- Object.defineProperty(target, descriptor.key, descriptor);
22
- }
23
- }
24
-
25
- function _createClass(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
30
-
31
- function _defineProperty(obj, key, value) {
32
- if (key in obj) {
33
- Object.defineProperty(obj, key, {
34
- value: value,
35
- enumerable: true,
36
- configurable: true,
37
- writable: true
38
- });
39
- } else {
40
- obj[key] = value;
41
- }
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.js', './dom/selector-engine.js', './tooltip.js'], 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';
42
11
 
43
- return obj;
44
- }
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
45
13
 
46
- function ownKeys(object, enumerableOnly) {
47
- var keys = Object.keys(object);
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
16
+ var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
48
17
 
49
- if (Object.getOwnPropertySymbols) {
50
- var symbols = Object.getOwnPropertySymbols(object);
51
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
52
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
- });
54
- keys.push.apply(keys, symbols);
55
- }
18
+ /**
19
+ * --------------------------------------------------------------------------
20
+ * Bootstrap (v5.0.0-alpha3): util/index.js
21
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
22
+ * --------------------------------------------------------------------------
23
+ */
56
24
 
57
- return keys;
58
- }
25
+ var getjQuery = function getjQuery() {
26
+ var _window = window,
27
+ jQuery = _window.jQuery;
59
28
 
60
- function _objectSpread2(target) {
61
- for (var i = 1; i < arguments.length; i++) {
62
- var source = arguments[i] != null ? arguments[i] : {};
29
+ if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
30
+ return jQuery;
31
+ }
63
32
 
64
- if (i % 2) {
65
- ownKeys(Object(source), true).forEach(function (key) {
66
- _defineProperty(target, key, source[key]);
67
- });
68
- } else if (Object.getOwnPropertyDescriptors) {
69
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
70
- } else {
71
- ownKeys(Object(source)).forEach(function (key) {
72
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
73
- });
74
- }
33
+ return null;
34
+ };
35
+
36
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
37
+ if (document.readyState === 'loading') {
38
+ document.addEventListener('DOMContentLoaded', callback);
39
+ } else {
40
+ callback();
75
41
  }
42
+ };
43
+
44
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
76
45
 
77
- return target;
78
- }
46
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
79
47
 
80
- function _inheritsLoose(subClass, superClass) {
81
- subClass.prototype = Object.create(superClass.prototype);
82
- subClass.prototype.constructor = subClass;
83
- subClass.__proto__ = superClass;
84
- }
48
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
85
49
 
50
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
86
51
  /**
87
52
  * ------------------------------------------------------------------------
88
53
  * Constants
@@ -90,28 +55,23 @@
90
55
  */
91
56
 
92
57
  var NAME = 'popover';
93
- var VERSION = '4.5.0';
58
+ var VERSION = '5.0.0-alpha3';
94
59
  var DATA_KEY = 'bs.popover';
95
60
  var EVENT_KEY = "." + DATA_KEY;
96
- var JQUERY_NO_CONFLICT = $.fn[NAME];
97
61
  var CLASS_PREFIX = 'bs-popover';
98
62
  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
99
63
 
100
- var Default = _objectSpread2(_objectSpread2({}, Tooltip.Default), {}, {
64
+ var Default = _extends({}, Tooltip__default['default'].Default, {
101
65
  placement: 'right',
102
66
  trigger: 'click',
103
67
  content: '',
104
- template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
68
+ template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
105
69
  });
106
70
 
107
- var DefaultType = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
71
+ var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {
108
72
  content: '(string|element|function)'
109
73
  });
110
74
 
111
- var CLASS_NAME_FADE = 'fade';
112
- var CLASS_NAME_SHOW = 'show';
113
- var SELECTOR_TITLE = '.popover-header';
114
- var SELECTOR_CONTENT = '.popover-body';
115
75
  var Event = {
116
76
  HIDE: "hide" + EVENT_KEY,
117
77
  HIDDEN: "hidden" + EVENT_KEY,
@@ -124,6 +84,10 @@
124
84
  MOUSEENTER: "mouseenter" + EVENT_KEY,
125
85
  MOUSELEAVE: "mouseleave" + EVENT_KEY
126
86
  };
87
+ var CLASS_NAME_FADE = 'fade';
88
+ var CLASS_NAME_SHOW = 'show';
89
+ var SELECTOR_TITLE = '.popover-header';
90
+ var SELECTOR_CONTENT = '.popover-body';
127
91
  /**
128
92
  * ------------------------------------------------------------------------
129
93
  * Class Definition
@@ -144,19 +108,10 @@
144
108
  return this.getTitle() || this._getContent();
145
109
  };
146
110
 
147
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
148
- $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
149
- };
150
-
151
- _proto.getTipElement = function getTipElement() {
152
- this.tip = this.tip || $(this.config.template)[0];
153
- return this.tip;
154
- };
155
-
156
111
  _proto.setContent = function setContent() {
157
- var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
112
+ var tip = this.getTipElement(); // we use append for html objects to maintain js events
158
113
 
159
- this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
114
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
160
115
 
161
116
  var content = this._getContent();
162
117
 
@@ -164,28 +119,36 @@
164
119
  content = content.call(this.element);
165
120
  }
166
121
 
167
- this.setElementContent($tip.find(SELECTOR_CONTENT), content);
168
- $tip.removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW);
122
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
123
+ tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
169
124
  } // Private
170
125
  ;
171
126
 
127
+ _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
128
+ this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
129
+ };
130
+
172
131
  _proto._getContent = function _getContent() {
173
132
  return this.element.getAttribute('data-content') || this.config.content;
174
133
  };
175
134
 
176
135
  _proto._cleanTipClass = function _cleanTipClass() {
177
- var $tip = $(this.getTipElement());
178
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
136
+ var tip = this.getTipElement();
137
+ var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
179
138
 
180
139
  if (tabClass !== null && tabClass.length > 0) {
181
- $tip.removeClass(tabClass.join(''));
140
+ tabClass.map(function (token) {
141
+ return token.trim();
142
+ }).forEach(function (tClass) {
143
+ return tip.classList.remove(tClass);
144
+ });
182
145
  }
183
146
  } // Static
184
147
  ;
185
148
 
186
- Popover._jQueryInterface = function _jQueryInterface(config) {
149
+ Popover.jQueryInterface = function jQueryInterface(config) {
187
150
  return this.each(function () {
188
- var data = $(this).data(DATA_KEY);
151
+ var data = Data__default['default'].getData(this, DATA_KEY);
189
152
 
190
153
  var _config = typeof config === 'object' ? config : null;
191
154
 
@@ -195,7 +158,7 @@
195
158
 
196
159
  if (!data) {
197
160
  data = new Popover(this, _config);
198
- $(this).data(DATA_KEY, data);
161
+ Data__default['default'].setData(this, DATA_KEY, data);
199
162
  }
200
163
 
201
164
  if (typeof config === 'string') {
@@ -208,6 +171,10 @@
208
171
  });
209
172
  };
210
173
 
174
+ Popover.getInstance = function getInstance(element) {
175
+ return Data__default['default'].getData(element, DATA_KEY);
176
+ };
177
+
211
178
  _createClass(Popover, null, [{
212
179
  key: "VERSION",
213
180
  // Getters
@@ -247,21 +214,30 @@
247
214
  }]);
248
215
 
249
216
  return Popover;
250
- }(Tooltip);
217
+ }(Tooltip__default['default']);
251
218
  /**
252
219
  * ------------------------------------------------------------------------
253
220
  * jQuery
254
221
  * ------------------------------------------------------------------------
222
+ * add .Popover to jQuery only if jQuery is present
255
223
  */
256
224
 
257
225
 
258
- $.fn[NAME] = Popover._jQueryInterface;
259
- $.fn[NAME].Constructor = Popover;
226
+ onDOMContentLoaded(function () {
227
+ var $ = getjQuery();
228
+ /* istanbul ignore if */
260
229
 
261
- $.fn[NAME].noConflict = function () {
262
- $.fn[NAME] = JQUERY_NO_CONFLICT;
263
- return Popover._jQueryInterface;
264
- };
230
+ if ($) {
231
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
232
+ $.fn[NAME] = Popover.jQueryInterface;
233
+ $.fn[NAME].Constructor = Popover;
234
+
235
+ $.fn[NAME].noConflict = function () {
236
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
237
+ return Popover.jQueryInterface;
238
+ };
239
+ }
240
+ });
265
241
 
266
242
  return Popover;
267
243
 
@@ -1,82 +1,112 @@
1
1
  /*!
2
- * Bootstrap scrollspy.js v4.5.0 (https://getbootstrap.com/)
2
+ * Bootstrap scrollspy.js v5.0.0-alpha3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
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('jquery'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
9
- (global = global || self, global.ScrollSpy = factory(global.jQuery, global.Util));
10
- }(this, (function ($, Util) { 'use strict';
11
-
12
- $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
- Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
14
-
15
- function _defineProperties(target, props) {
16
- for (var i = 0; i < props.length; i++) {
17
- var descriptor = props[i];
18
- descriptor.enumerable = descriptor.enumerable || false;
19
- descriptor.configurable = true;
20
- if ("value" in descriptor) descriptor.writable = true;
21
- Object.defineProperty(target, descriptor.key, descriptor);
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')) :
8
+ typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
10
+ }(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
+
19
+ /**
20
+ * --------------------------------------------------------------------------
21
+ * Bootstrap (v5.0.0-alpha3): util/index.js
22
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
23
+ * --------------------------------------------------------------------------
24
+ */
25
+ var MAX_UID = 1000000;
26
+
27
+ var toType = function toType(obj) {
28
+ if (obj === null || obj === undefined) {
29
+ return "" + obj;
22
30
  }
23
- }
24
-
25
- function _createClass(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
30
-
31
- function _defineProperty(obj, key, value) {
32
- if (key in obj) {
33
- Object.defineProperty(obj, key, {
34
- value: value,
35
- enumerable: true,
36
- configurable: true,
37
- writable: true
38
- });
39
- } else {
40
- obj[key] = value;
31
+
32
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
33
+ };
34
+ /**
35
+ * --------------------------------------------------------------------------
36
+ * Public Util Api
37
+ * --------------------------------------------------------------------------
38
+ */
39
+
40
+
41
+ var getUID = function getUID(prefix) {
42
+ do {
43
+ prefix += Math.floor(Math.random() * MAX_UID);
44
+ } while (document.getElementById(prefix));
45
+
46
+ return prefix;
47
+ };
48
+
49
+ var getSelector = function getSelector(element) {
50
+ var selector = element.getAttribute('data-target');
51
+
52
+ if (!selector || selector === '#') {
53
+ var hrefAttr = element.getAttribute('href');
54
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
41
55
  }
42
56
 
43
- return obj;
44
- }
57
+ return selector;
58
+ };
45
59
 
46
- function ownKeys(object, enumerableOnly) {
47
- var keys = Object.keys(object);
60
+ var getSelectorFromElement = function getSelectorFromElement(element) {
61
+ var selector = getSelector(element);
48
62
 
49
- if (Object.getOwnPropertySymbols) {
50
- var symbols = Object.getOwnPropertySymbols(object);
51
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
52
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
- });
54
- keys.push.apply(keys, symbols);
63
+ if (selector) {
64
+ return document.querySelector(selector) ? selector : null;
55
65
  }
56
66
 
57
- return keys;
58
- }
67
+ return null;
68
+ };
59
69
 
60
- function _objectSpread2(target) {
61
- for (var i = 1; i < arguments.length; i++) {
62
- var source = arguments[i] != null ? arguments[i] : {};
70
+ var isElement = function isElement(obj) {
71
+ return (obj[0] || obj).nodeType;
72
+ };
63
73
 
64
- if (i % 2) {
65
- ownKeys(Object(source), true).forEach(function (key) {
66
- _defineProperty(target, key, source[key]);
67
- });
68
- } else if (Object.getOwnPropertyDescriptors) {
69
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
70
- } else {
71
- ownKeys(Object(source)).forEach(function (key) {
72
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
73
- });
74
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
75
+ Object.keys(configTypes).forEach(function (property) {
76
+ var expectedTypes = configTypes[property];
77
+ var value = config[property];
78
+ var valueType = value && isElement(value) ? 'element' : toType(value);
79
+
80
+ if (!new RegExp(expectedTypes).test(valueType)) {
81
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
74
82
  }
83
+ });
84
+ };
85
+
86
+ var getjQuery = function getjQuery() {
87
+ var _window = window,
88
+ jQuery = _window.jQuery;
89
+
90
+ if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
91
+ return jQuery;
75
92
  }
76
93
 
77
- return target;
78
- }
94
+ return null;
95
+ };
79
96
 
97
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
98
+ if (document.readyState === 'loading') {
99
+ document.addEventListener('DOMContentLoaded', callback);
100
+ } else {
101
+ callback();
102
+ }
103
+ };
104
+
105
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
106
+
107
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
108
+
109
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
80
110
  /**
81
111
  * ------------------------------------------------------------------------
82
112
  * Constants
@@ -84,11 +114,10 @@
84
114
  */
85
115
 
86
116
  var NAME = 'scrollspy';
87
- var VERSION = '4.5.0';
117
+ var VERSION = '5.0.0-alpha3';
88
118
  var DATA_KEY = 'bs.scrollspy';
89
119
  var EVENT_KEY = "." + DATA_KEY;
90
120
  var DATA_API_KEY = '.data-api';
91
- var JQUERY_NO_CONFLICT = $.fn[NAME];
92
121
  var Default = {
93
122
  offset: 10,
94
123
  method: 'auto',
@@ -110,7 +139,6 @@
110
139
  var SELECTOR_NAV_ITEMS = '.nav-item';
111
140
  var SELECTOR_LIST_ITEMS = '.list-group-item';
112
141
  var SELECTOR_DROPDOWN = '.dropdown';
113
- var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';
114
142
  var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
115
143
  var METHOD_OFFSET = 'offset';
116
144
  var METHOD_POSITION = 'position';
@@ -127,17 +155,19 @@
127
155
  this._element = element;
128
156
  this._scrollElement = element.tagName === 'BODY' ? window : element;
129
157
  this._config = this._getConfig(config);
130
- this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " " + SELECTOR_DROPDOWN_ITEMS);
158
+ this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + ", " + this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
131
159
  this._offsets = [];
132
160
  this._targets = [];
133
161
  this._activeTarget = null;
134
162
  this._scrollHeight = 0;
135
- $(this._scrollElement).on(EVENT_SCROLL, function (event) {
163
+ EventHandler__default['default'].on(this._scrollElement, EVENT_SCROLL, function (event) {
136
164
  return _this._process(event);
137
165
  });
138
166
  this.refresh();
139
167
 
140
168
  this._process();
169
+
170
+ Data__default['default'].setData(element, DATA_KEY, this);
141
171
  } // Getters
142
172
 
143
173
 
@@ -153,21 +183,16 @@
153
183
  this._offsets = [];
154
184
  this._targets = [];
155
185
  this._scrollHeight = this._getScrollHeight();
156
- var targets = [].slice.call(document.querySelectorAll(this._selector));
186
+ var targets = SelectorEngine__default['default'].find(this._selector);
157
187
  targets.map(function (element) {
158
- var target;
159
- var targetSelector = Util.getSelectorFromElement(element);
160
-
161
- if (targetSelector) {
162
- target = document.querySelector(targetSelector);
163
- }
188
+ var targetSelector = getSelectorFromElement(element);
189
+ var target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;
164
190
 
165
191
  if (target) {
166
192
  var targetBCR = target.getBoundingClientRect();
167
193
 
168
194
  if (targetBCR.width || targetBCR.height) {
169
- // TODO (fat): remove sketch reliance on jQuery position/offset
170
- return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
195
+ return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];
171
196
  }
172
197
  }
173
198
 
@@ -184,8 +209,8 @@
184
209
  };
185
210
 
186
211
  _proto.dispose = function dispose() {
187
- $.removeData(this._element, DATA_KEY);
188
- $(this._scrollElement).off(EVENT_KEY);
212
+ Data__default['default'].removeData(this._element, DATA_KEY);
213
+ EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
189
214
  this._element = null;
190
215
  this._scrollElement = null;
191
216
  this._config = null;
@@ -198,20 +223,20 @@
198
223
  ;
199
224
 
200
225
  _proto._getConfig = function _getConfig(config) {
201
- config = _objectSpread2(_objectSpread2({}, Default), typeof config === 'object' && config ? config : {});
226
+ config = _extends({}, Default, typeof config === 'object' && config ? config : {});
202
227
 
203
- if (typeof config.target !== 'string' && Util.isElement(config.target)) {
204
- var id = $(config.target).attr('id');
228
+ if (typeof config.target !== 'string' && isElement(config.target)) {
229
+ var id = config.target.id;
205
230
 
206
231
  if (!id) {
207
- id = Util.getUID(NAME);
208
- $(config.target).attr('id', id);
232
+ id = getUID(NAME);
233
+ config.target.id = id;
209
234
  }
210
235
 
211
236
  config.target = "#" + id;
212
237
  }
213
238
 
214
- Util.typeCheckConfig(NAME, config, DefaultType);
239
+ typeCheckConfig(NAME, config, DefaultType);
215
240
  return config;
216
241
  };
217
242
 
@@ -274,28 +299,36 @@
274
299
  return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
275
300
  });
276
301
 
277
- var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
302
+ var link = SelectorEngine__default['default'].findOne(queries.join(','));
278
303
 
279
- if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {
280
- $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE);
281
- $link.addClass(CLASS_NAME_ACTIVE);
304
+ if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
305
+ SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
306
+ link.classList.add(CLASS_NAME_ACTIVE);
282
307
  } else {
283
308
  // Set triggered link as active
284
- $link.addClass(CLASS_NAME_ACTIVE); // Set triggered links parents as active
285
- // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
286
-
287
- $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE); // Handle special case when .nav-link is inside .nav-item
288
-
289
- $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE);
309
+ link.classList.add(CLASS_NAME_ACTIVE);
310
+ SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
311
+ // Set triggered links parents as active
312
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
313
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) {
314
+ return item.classList.add(CLASS_NAME_ACTIVE);
315
+ }); // Handle special case when .nav-link is inside .nav-item
316
+
317
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) {
318
+ SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) {
319
+ return item.classList.add(CLASS_NAME_ACTIVE);
320
+ });
321
+ });
322
+ });
290
323
  }
291
324
 
292
- $(this._scrollElement).trigger(EVENT_ACTIVATE, {
325
+ EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {
293
326
  relatedTarget: target
294
327
  });
295
328
  };
296
329
 
297
330
  _proto._clear = function _clear() {
298
- [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
331
+ SelectorEngine__default['default'].find(this._selector).filter(function (node) {
299
332
  return node.classList.contains(CLASS_NAME_ACTIVE);
300
333
  }).forEach(function (node) {
301
334
  return node.classList.remove(CLASS_NAME_ACTIVE);
@@ -303,15 +336,14 @@
303
336
  } // Static
304
337
  ;
305
338
 
306
- ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
339
+ ScrollSpy.jQueryInterface = function jQueryInterface(config) {
307
340
  return this.each(function () {
308
- var data = $(this).data(DATA_KEY);
341
+ var data = Data__default['default'].getData(this, DATA_KEY);
309
342
 
310
343
  var _config = typeof config === 'object' && config;
311
344
 
312
345
  if (!data) {
313
346
  data = new ScrollSpy(this, _config);
314
- $(this).data(DATA_KEY, data);
315
347
  }
316
348
 
317
349
  if (typeof config === 'string') {
@@ -324,6 +356,10 @@
324
356
  });
325
357
  };
326
358
 
359
+ ScrollSpy.getInstance = function getInstance(element) {
360
+ return Data__default['default'].getData(element, DATA_KEY);
361
+ };
362
+
327
363
  _createClass(ScrollSpy, null, [{
328
364
  key: "VERSION",
329
365
  get: function get() {
@@ -345,29 +381,33 @@
345
381
  */
346
382
 
347
383
 
348
- $(window).on(EVENT_LOAD_DATA_API, function () {
349
- var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));
350
- var scrollSpysLength = scrollSpys.length;
351
-
352
- for (var i = scrollSpysLength; i--;) {
353
- var $spy = $(scrollSpys[i]);
354
-
355
- ScrollSpy._jQueryInterface.call($spy, $spy.data());
356
- }
384
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
385
+ SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(function (spy) {
386
+ return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy));
387
+ });
357
388
  });
358
389
  /**
359
390
  * ------------------------------------------------------------------------
360
391
  * jQuery
361
392
  * ------------------------------------------------------------------------
393
+ * add .ScrollSpy to jQuery only if jQuery is present
362
394
  */
363
395
 
364
- $.fn[NAME] = ScrollSpy._jQueryInterface;
365
- $.fn[NAME].Constructor = ScrollSpy;
396
+ onDOMContentLoaded(function () {
397
+ var $ = getjQuery();
398
+ /* istanbul ignore if */
366
399
 
367
- $.fn[NAME].noConflict = function () {
368
- $.fn[NAME] = JQUERY_NO_CONFLICT;
369
- return ScrollSpy._jQueryInterface;
370
- };
400
+ if ($) {
401
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
402
+ $.fn[NAME] = ScrollSpy.jQueryInterface;
403
+ $.fn[NAME].Constructor = ScrollSpy;
404
+
405
+ $.fn[NAME].noConflict = function () {
406
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
407
+ return ScrollSpy.jQueryInterface;
408
+ };
409
+ }
410
+ });
371
411
 
372
412
  return ScrollSpy;
373
413