bootstrap 4.5.2 → 5.0.0.alpha1

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