bootstrap 4.4.1 → 5.0.0.alpha2

Sign up to get free protection for your applications and to get access to all the features.
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