bootstrap 4.4.1 → 5.0.0.alpha2

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 (136) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +12 -2
  3. data/README.md +1 -1
  4. data/assets/javascripts/bootstrap-sprockets.js +12 -8
  5. data/assets/javascripts/bootstrap.js +2094 -1562
  6. data/assets/javascripts/bootstrap.min.js +4 -4
  7. data/assets/javascripts/bootstrap/alert.js +145 -83
  8. data/assets/javascripts/bootstrap/button.js +66 -152
  9. data/assets/javascripts/bootstrap/carousel.js +307 -241
  10. data/assets/javascripts/bootstrap/collapse.js +287 -183
  11. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +315 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +96 -0
  14. data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
  15. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  16. data/assets/javascripts/bootstrap/dropdown.js +255 -261
  17. data/assets/javascripts/bootstrap/modal.js +364 -270
  18. data/assets/javascripts/bootstrap/popover.js +72 -113
  19. data/assets/javascripts/bootstrap/scrollspy.js +162 -147
  20. data/assets/javascripts/bootstrap/tab.js +176 -108
  21. data/assets/javascripts/bootstrap/toast.js +179 -139
  22. data/assets/javascripts/bootstrap/tooltip.js +369 -259
  23. data/assets/stylesheets/_bootstrap-grid.scss +54 -18
  24. data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
  25. data/assets/stylesheets/_bootstrap.scss +17 -11
  26. data/assets/stylesheets/bootstrap/_alert.scss +6 -7
  27. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  28. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -17
  29. data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
  30. data/assets/stylesheets/bootstrap/_buttons.scss +25 -40
  31. data/assets/stylesheets/bootstrap/_card.scss +43 -79
  32. data/assets/stylesheets/bootstrap/_carousel.scss +30 -15
  33. data/assets/stylesheets/bootstrap/_close.scss +31 -31
  34. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  35. data/assets/stylesheets/bootstrap/_dropdown.scss +54 -9
  36. data/assets/stylesheets/bootstrap/_forms.scss +9 -338
  37. data/assets/stylesheets/bootstrap/_functions.scss +97 -25
  38. data/assets/stylesheets/bootstrap/_grid.scss +3 -50
  39. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  40. data/assets/stylesheets/bootstrap/_list-group.scss +16 -17
  41. data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
  42. data/assets/stylesheets/bootstrap/_modal.scss +41 -45
  43. data/assets/stylesheets/bootstrap/_nav.scss +16 -9
  44. data/assets/stylesheets/bootstrap/_navbar.scss +43 -74
  45. data/assets/stylesheets/bootstrap/_pagination.scss +11 -20
  46. data/assets/stylesheets/bootstrap/_popover.scss +5 -5
  47. data/assets/stylesheets/bootstrap/_progress.scss +2 -3
  48. data/assets/stylesheets/bootstrap/_reboot.scss +310 -175
  49. data/assets/stylesheets/bootstrap/_root.scss +5 -9
  50. data/assets/stylesheets/bootstrap/_spinners.scss +5 -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 +531 -17
  57. data/assets/stylesheets/bootstrap/_variables.scss +609 -444
  58. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  59. data/assets/stylesheets/bootstrap/forms/_form-check.scss +142 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-control.scss +116 -0
  61. data/assets/stylesheets/bootstrap/forms/_form-file.scss +91 -0
  62. data/assets/stylesheets/bootstrap/forms/_form-range.scss +136 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-select.scss +82 -0
  64. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  65. data/assets/stylesheets/bootstrap/forms/_input-group.scss +140 -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 +0 -4
  76. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +35 -22
  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 +69 -51
  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 +22 -66
  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 +2 -1
  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 +18 -8
  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. data/tasks/updater/network.rb +2 -2
  100. data/test/gemfiles/rails_6_0.gemfile +7 -0
  101. metadata +36 -41
  102. data/assets/javascripts/bootstrap/util.js +0 -188
  103. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  104. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -521
  105. data/assets/stylesheets/bootstrap/_input-group.scss +0 -191
  106. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  107. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  108. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  109. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -22
  110. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  111. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  112. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -71
  113. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  114. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  115. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  116. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  117. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  118. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  119. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  120. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  121. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  122. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  123. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  124. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  125. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  126. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  127. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  128. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  129. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  130. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  131. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  132. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  133. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  134. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  135. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  136. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,88 +1,45 @@
1
1
  /*!
2
- * Bootstrap popover.js v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap popover.js v5.0.0-alpha2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
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
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Tooltip = Tooltip && Tooltip.hasOwnProperty('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
- }
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';
24
11
 
25
- function _createClass(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
30
13
 
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
- }
14
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
16
+ var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
42
17
 
43
- return obj;
44
- }
18
+ /**
19
+ * --------------------------------------------------------------------------
20
+ * Bootstrap (v5.0.0-alpha2): util/index.js
21
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
22
+ * --------------------------------------------------------------------------
23
+ */
45
24
 
46
- function ownKeys(object, enumerableOnly) {
47
- var keys = Object.keys(object);
25
+ var getjQuery = function getjQuery() {
26
+ var _window = window,
27
+ jQuery = _window.jQuery;
48
28
 
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);
29
+ if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
30
+ return jQuery;
55
31
  }
56
32
 
57
- return keys;
58
- }
33
+ return null;
34
+ };
59
35
 
60
- function _objectSpread2(target) {
61
- for (var i = 1; i < arguments.length; i++) {
62
- var source = arguments[i] != null ? arguments[i] : {};
36
+ 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); } }
63
37
 
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
- }
75
- }
38
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
76
39
 
77
- return target;
78
- }
79
-
80
- function _inheritsLoose(subClass, superClass) {
81
- subClass.prototype = Object.create(superClass.prototype);
82
- subClass.prototype.constructor = subClass;
83
- subClass.__proto__ = superClass;
84
- }
40
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
85
41
 
42
+ 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
43
  /**
87
44
  * ------------------------------------------------------------------------
88
45
  * Constants
@@ -90,32 +47,23 @@
90
47
  */
91
48
 
92
49
  var NAME = 'popover';
93
- var VERSION = '4.4.1';
50
+ var VERSION = '5.0.0-alpha2';
94
51
  var DATA_KEY = 'bs.popover';
95
52
  var EVENT_KEY = "." + DATA_KEY;
96
- var JQUERY_NO_CONFLICT = $.fn[NAME];
97
53
  var CLASS_PREFIX = 'bs-popover';
98
54
  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
99
55
 
100
- var Default = _objectSpread2({}, Tooltip.Default, {
56
+ var Default = _extends({}, Tooltip__default['default'].Default, {
101
57
  placement: 'right',
102
58
  trigger: 'click',
103
59
  content: '',
104
- template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
60
+ template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
105
61
  });
106
62
 
107
- var DefaultType = _objectSpread2({}, Tooltip.DefaultType, {
63
+ var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {
108
64
  content: '(string|element|function)'
109
65
  });
110
66
 
111
- var ClassName = {
112
- FADE: 'fade',
113
- SHOW: 'show'
114
- };
115
- var Selector = {
116
- TITLE: '.popover-header',
117
- CONTENT: '.popover-body'
118
- };
119
67
  var Event = {
120
68
  HIDE: "hide" + EVENT_KEY,
121
69
  HIDDEN: "hidden" + EVENT_KEY,
@@ -128,15 +76,17 @@
128
76
  MOUSEENTER: "mouseenter" + EVENT_KEY,
129
77
  MOUSELEAVE: "mouseleave" + EVENT_KEY
130
78
  };
79
+ var CLASS_NAME_FADE = 'fade';
80
+ var CLASS_NAME_SHOW = 'show';
81
+ var SELECTOR_TITLE = '.popover-header';
82
+ var SELECTOR_CONTENT = '.popover-body';
131
83
  /**
132
84
  * ------------------------------------------------------------------------
133
85
  * Class Definition
134
86
  * ------------------------------------------------------------------------
135
87
  */
136
88
 
137
- var Popover =
138
- /*#__PURE__*/
139
- function (_Tooltip) {
89
+ var Popover = /*#__PURE__*/function (_Tooltip) {
140
90
  _inheritsLoose(Popover, _Tooltip);
141
91
 
142
92
  function Popover() {
@@ -150,19 +100,10 @@
150
100
  return this.getTitle() || this._getContent();
151
101
  };
152
102
 
153
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
154
- $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
155
- };
156
-
157
- _proto.getTipElement = function getTipElement() {
158
- this.tip = this.tip || $(this.config.template)[0];
159
- return this.tip;
160
- };
161
-
162
103
  _proto.setContent = function setContent() {
163
- var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
104
+ var tip = this.getTipElement(); // we use append for html objects to maintain js events
164
105
 
165
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
106
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
166
107
 
167
108
  var content = this._getContent();
168
109
 
@@ -170,28 +111,36 @@
170
111
  content = content.call(this.element);
171
112
  }
172
113
 
173
- this.setElementContent($tip.find(Selector.CONTENT), content);
174
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
114
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
115
+ tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
175
116
  } // Private
176
117
  ;
177
118
 
119
+ _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
120
+ this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
121
+ };
122
+
178
123
  _proto._getContent = function _getContent() {
179
124
  return this.element.getAttribute('data-content') || this.config.content;
180
125
  };
181
126
 
182
127
  _proto._cleanTipClass = function _cleanTipClass() {
183
- var $tip = $(this.getTipElement());
184
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
128
+ var tip = this.getTipElement();
129
+ var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
185
130
 
186
131
  if (tabClass !== null && tabClass.length > 0) {
187
- $tip.removeClass(tabClass.join(''));
132
+ tabClass.map(function (token) {
133
+ return token.trim();
134
+ }).forEach(function (tClass) {
135
+ return tip.classList.remove(tClass);
136
+ });
188
137
  }
189
138
  } // Static
190
139
  ;
191
140
 
192
- Popover._jQueryInterface = function _jQueryInterface(config) {
141
+ Popover.jQueryInterface = function jQueryInterface(config) {
193
142
  return this.each(function () {
194
- var data = $(this).data(DATA_KEY);
143
+ var data = Data__default['default'].getData(this, DATA_KEY);
195
144
 
196
145
  var _config = typeof config === 'object' ? config : null;
197
146
 
@@ -201,7 +150,7 @@
201
150
 
202
151
  if (!data) {
203
152
  data = new Popover(this, _config);
204
- $(this).data(DATA_KEY, data);
153
+ Data__default['default'].setData(this, DATA_KEY, data);
205
154
  }
206
155
 
207
156
  if (typeof config === 'string') {
@@ -214,6 +163,10 @@
214
163
  });
215
164
  };
216
165
 
166
+ Popover.getInstance = function getInstance(element) {
167
+ return Data__default['default'].getData(element, DATA_KEY);
168
+ };
169
+
217
170
  _createClass(Popover, null, [{
218
171
  key: "VERSION",
219
172
  // Getters
@@ -253,21 +206,27 @@
253
206
  }]);
254
207
 
255
208
  return Popover;
256
- }(Tooltip);
209
+ }(Tooltip__default['default']);
210
+
211
+ var $ = getjQuery();
257
212
  /**
258
213
  * ------------------------------------------------------------------------
259
214
  * jQuery
260
215
  * ------------------------------------------------------------------------
261
216
  */
262
217
 
218
+ /* istanbul ignore if */
263
219
 
264
- $.fn[NAME] = Popover._jQueryInterface;
265
- $.fn[NAME].Constructor = Popover;
220
+ if ($) {
221
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
222
+ $.fn[NAME] = Popover.jQueryInterface;
223
+ $.fn[NAME].Constructor = Popover;
266
224
 
267
- $.fn[NAME].noConflict = function () {
268
- $.fn[NAME] = JQUERY_NO_CONFLICT;
269
- return Popover._jQueryInterface;
270
- };
225
+ $.fn[NAME].noConflict = function () {
226
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
227
+ return Popover.jQueryInterface;
228
+ };
229
+ }
271
230
 
272
231
  return Popover;
273
232
 
@@ -1,82 +1,104 @@
1
1
  /*!
2
- * Bootstrap scrollspy.js v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap scrollspy.js v5.0.0-alpha2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
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
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Util = Util && Util.hasOwnProperty('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-alpha2): 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
31
 
25
- function _createClass(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
32
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
33
+ };
34
+ /**
35
+ * --------------------------------------------------------------------------
36
+ * Public Util Api
37
+ * --------------------------------------------------------------------------
38
+ */
30
39
 
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;
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
+ };
96
+
97
+ 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); }
98
+
99
+ 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); } }
79
100
 
101
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
80
102
  /**
81
103
  * ------------------------------------------------------------------------
82
104
  * Constants
@@ -84,11 +106,10 @@
84
106
  */
85
107
 
86
108
  var NAME = 'scrollspy';
87
- var VERSION = '4.4.1';
109
+ var VERSION = '5.0.0-alpha2';
88
110
  var DATA_KEY = 'bs.scrollspy';
89
111
  var EVENT_KEY = "." + DATA_KEY;
90
112
  var DATA_API_KEY = '.data-api';
91
- var JQUERY_NO_CONFLICT = $.fn[NAME];
92
113
  var Default = {
93
114
  offset: 10,
94
115
  method: 'auto',
@@ -99,57 +120,46 @@
99
120
  method: 'string',
100
121
  target: '(string|element)'
101
122
  };
102
- var Event = {
103
- ACTIVATE: "activate" + EVENT_KEY,
104
- SCROLL: "scroll" + EVENT_KEY,
105
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
106
- };
107
- var ClassName = {
108
- DROPDOWN_ITEM: 'dropdown-item',
109
- DROPDOWN_MENU: 'dropdown-menu',
110
- ACTIVE: 'active'
111
- };
112
- var Selector = {
113
- DATA_SPY: '[data-spy="scroll"]',
114
- ACTIVE: '.active',
115
- NAV_LIST_GROUP: '.nav, .list-group',
116
- NAV_LINKS: '.nav-link',
117
- NAV_ITEMS: '.nav-item',
118
- LIST_ITEMS: '.list-group-item',
119
- DROPDOWN: '.dropdown',
120
- DROPDOWN_ITEMS: '.dropdown-item',
121
- DROPDOWN_TOGGLE: '.dropdown-toggle'
122
- };
123
- var OffsetMethod = {
124
- OFFSET: 'offset',
125
- POSITION: 'position'
126
- };
123
+ var EVENT_ACTIVATE = "activate" + EVENT_KEY;
124
+ var EVENT_SCROLL = "scroll" + EVENT_KEY;
125
+ var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
126
+ var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
127
+ var CLASS_NAME_ACTIVE = 'active';
128
+ var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
129
+ var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
130
+ var SELECTOR_NAV_LINKS = '.nav-link';
131
+ var SELECTOR_NAV_ITEMS = '.nav-item';
132
+ var SELECTOR_LIST_ITEMS = '.list-group-item';
133
+ var SELECTOR_DROPDOWN = '.dropdown';
134
+ var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
135
+ var METHOD_OFFSET = 'offset';
136
+ var METHOD_POSITION = 'position';
127
137
  /**
128
138
  * ------------------------------------------------------------------------
129
139
  * Class Definition
130
140
  * ------------------------------------------------------------------------
131
141
  */
132
142
 
133
- var ScrollSpy =
134
- /*#__PURE__*/
135
- function () {
143
+ var ScrollSpy = /*#__PURE__*/function () {
136
144
  function ScrollSpy(element, config) {
137
145
  var _this = this;
138
146
 
139
147
  this._element = element;
140
148
  this._scrollElement = element.tagName === 'BODY' ? window : element;
141
149
  this._config = this._getConfig(config);
142
- this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
150
+ this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + ", " + this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
143
151
  this._offsets = [];
144
152
  this._targets = [];
145
153
  this._activeTarget = null;
146
154
  this._scrollHeight = 0;
147
- $(this._scrollElement).on(Event.SCROLL, function (event) {
155
+ EventHandler__default['default'].on(this._scrollElement, EVENT_SCROLL, function (event) {
148
156
  return _this._process(event);
149
157
  });
150
158
  this.refresh();
151
159
 
152
160
  this._process();
161
+
162
+ Data__default['default'].setData(element, DATA_KEY, this);
153
163
  } // Getters
154
164
 
155
165
 
@@ -159,27 +169,22 @@
159
169
  _proto.refresh = function refresh() {
160
170
  var _this2 = this;
161
171
 
162
- var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
172
+ var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
163
173
  var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
164
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
174
+ var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
165
175
  this._offsets = [];
166
176
  this._targets = [];
167
177
  this._scrollHeight = this._getScrollHeight();
168
- var targets = [].slice.call(document.querySelectorAll(this._selector));
178
+ var targets = SelectorEngine__default['default'].find(this._selector);
169
179
  targets.map(function (element) {
170
- var target;
171
- var targetSelector = Util.getSelectorFromElement(element);
172
-
173
- if (targetSelector) {
174
- target = document.querySelector(targetSelector);
175
- }
180
+ var targetSelector = getSelectorFromElement(element);
181
+ var target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;
176
182
 
177
183
  if (target) {
178
184
  var targetBCR = target.getBoundingClientRect();
179
185
 
180
186
  if (targetBCR.width || targetBCR.height) {
181
- // TODO (fat): remove sketch reliance on jQuery position/offset
182
- return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
187
+ return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];
183
188
  }
184
189
  }
185
190
 
@@ -196,8 +201,8 @@
196
201
  };
197
202
 
198
203
  _proto.dispose = function dispose() {
199
- $.removeData(this._element, DATA_KEY);
200
- $(this._scrollElement).off(EVENT_KEY);
204
+ Data__default['default'].removeData(this._element, DATA_KEY);
205
+ EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
201
206
  this._element = null;
202
207
  this._scrollElement = null;
203
208
  this._config = null;
@@ -210,20 +215,20 @@
210
215
  ;
211
216
 
212
217
  _proto._getConfig = function _getConfig(config) {
213
- config = _objectSpread2({}, Default, {}, typeof config === 'object' && config ? config : {});
218
+ config = _extends({}, Default, typeof config === 'object' && config ? config : {});
214
219
 
215
- if (typeof config.target !== 'string') {
216
- var id = $(config.target).attr('id');
220
+ if (typeof config.target !== 'string' && isElement(config.target)) {
221
+ var id = config.target.id;
217
222
 
218
223
  if (!id) {
219
- id = Util.getUID(NAME);
220
- $(config.target).attr('id', id);
224
+ id = getUID(NAME);
225
+ config.target.id = id;
221
226
  }
222
227
 
223
228
  config.target = "#" + id;
224
229
  }
225
230
 
226
- Util.typeCheckConfig(NAME, config, DefaultType);
231
+ typeCheckConfig(NAME, config, DefaultType);
227
232
  return config;
228
233
  };
229
234
 
@@ -268,9 +273,7 @@
268
273
  return;
269
274
  }
270
275
 
271
- var offsetLength = this._offsets.length;
272
-
273
- for (var i = offsetLength; i--;) {
276
+ for (var i = this._offsets.length; i--;) {
274
277
  var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
275
278
 
276
279
  if (isActiveTarget) {
@@ -288,44 +291,51 @@
288
291
  return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
289
292
  });
290
293
 
291
- var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
294
+ var link = SelectorEngine__default['default'].findOne(queries.join(','));
292
295
 
293
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
294
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
295
- $link.addClass(ClassName.ACTIVE);
296
+ if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
297
+ SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
298
+ link.classList.add(CLASS_NAME_ACTIVE);
296
299
  } else {
297
300
  // Set triggered link as active
298
- $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
299
- // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
300
-
301
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
302
-
303
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
301
+ link.classList.add(CLASS_NAME_ACTIVE);
302
+ SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
303
+ // Set triggered links parents as active
304
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
305
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) {
306
+ return item.classList.add(CLASS_NAME_ACTIVE);
307
+ }); // Handle special case when .nav-link is inside .nav-item
308
+
309
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) {
310
+ SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) {
311
+ return item.classList.add(CLASS_NAME_ACTIVE);
312
+ });
313
+ });
314
+ });
304
315
  }
305
316
 
306
- $(this._scrollElement).trigger(Event.ACTIVATE, {
317
+ EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {
307
318
  relatedTarget: target
308
319
  });
309
320
  };
310
321
 
311
322
  _proto._clear = function _clear() {
312
- [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
313
- return node.classList.contains(ClassName.ACTIVE);
323
+ SelectorEngine__default['default'].find(this._selector).filter(function (node) {
324
+ return node.classList.contains(CLASS_NAME_ACTIVE);
314
325
  }).forEach(function (node) {
315
- return node.classList.remove(ClassName.ACTIVE);
326
+ return node.classList.remove(CLASS_NAME_ACTIVE);
316
327
  });
317
328
  } // Static
318
329
  ;
319
330
 
320
- ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
331
+ ScrollSpy.jQueryInterface = function jQueryInterface(config) {
321
332
  return this.each(function () {
322
- var data = $(this).data(DATA_KEY);
333
+ var data = Data__default['default'].getData(this, DATA_KEY);
323
334
 
324
335
  var _config = typeof config === 'object' && config;
325
336
 
326
337
  if (!data) {
327
338
  data = new ScrollSpy(this, _config);
328
- $(this).data(DATA_KEY, data);
329
339
  }
330
340
 
331
341
  if (typeof config === 'string') {
@@ -338,6 +348,10 @@
338
348
  });
339
349
  };
340
350
 
351
+ ScrollSpy.getInstance = function getInstance(element) {
352
+ return Data__default['default'].getData(element, DATA_KEY);
353
+ };
354
+
341
355
  _createClass(ScrollSpy, null, [{
342
356
  key: "VERSION",
343
357
  get: function get() {
@@ -359,29 +373,30 @@
359
373
  */
360
374
 
361
375
 
362
- $(window).on(Event.LOAD_DATA_API, function () {
363
- var scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY));
364
- var scrollSpysLength = scrollSpys.length;
365
-
366
- for (var i = scrollSpysLength; i--;) {
367
- var $spy = $(scrollSpys[i]);
368
-
369
- ScrollSpy._jQueryInterface.call($spy, $spy.data());
370
- }
376
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
377
+ SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(function (spy) {
378
+ return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy));
379
+ });
371
380
  });
381
+ var $ = getjQuery();
372
382
  /**
373
383
  * ------------------------------------------------------------------------
374
384
  * jQuery
375
385
  * ------------------------------------------------------------------------
376
386
  */
377
387
 
378
- $.fn[NAME] = ScrollSpy._jQueryInterface;
379
- $.fn[NAME].Constructor = ScrollSpy;
388
+ /* istanbul ignore if */
380
389
 
381
- $.fn[NAME].noConflict = function () {
382
- $.fn[NAME] = JQUERY_NO_CONFLICT;
383
- return ScrollSpy._jQueryInterface;
384
- };
390
+ if ($) {
391
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
392
+ $.fn[NAME] = ScrollSpy.jQueryInterface;
393
+ $.fn[NAME].Constructor = ScrollSpy;
394
+
395
+ $.fn[NAME].noConflict = function () {
396
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
397
+ return ScrollSpy.jQueryInterface;
398
+ };
399
+ }
385
400
 
386
401
  return ScrollSpy;
387
402