bootstrap 4.5.2 → 5.0.0.alpha1

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