bootstrap 4.5.0 → 5.0.0.alpha3

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