bootstrap 4.0.0.beta3 → 4.6.2

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 (114) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +15 -1
  3. data/CHANGELOG.md +2 -2
  4. data/README.md +2 -2
  5. data/Rakefile +4 -2
  6. data/assets/javascripts/bootstrap/alert.js +79 -68
  7. data/assets/javascripts/bootstrap/button.js +140 -78
  8. data/assets/javascripts/bootstrap/carousel.js +294 -158
  9. data/assets/javascripts/bootstrap/collapse.js +157 -133
  10. data/assets/javascripts/bootstrap/dropdown.js +257 -167
  11. data/assets/javascripts/bootstrap/modal.js +285 -204
  12. data/assets/javascripts/bootstrap/popover.js +101 -60
  13. data/assets/javascripts/bootstrap/scrollspy.js +127 -106
  14. data/assets/javascripts/bootstrap/tab.js +113 -101
  15. data/assets/javascripts/bootstrap/toast.js +267 -0
  16. data/assets/javascripts/bootstrap/tooltip.js +406 -188
  17. data/assets/javascripts/bootstrap/util.js +106 -55
  18. data/assets/javascripts/bootstrap-sprockets.js +1 -0
  19. data/assets/javascripts/bootstrap.js +1946 -1482
  20. data/assets/javascripts/bootstrap.min.js +4 -4
  21. data/assets/stylesheets/_bootstrap-grid.scss +7 -12
  22. data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
  23. data/assets/stylesheets/_bootstrap.scss +6 -4
  24. data/assets/stylesheets/bootstrap/_alert.scss +3 -2
  25. data/assets/stylesheets/bootstrap/_badge.scss +8 -1
  26. data/assets/stylesheets/bootstrap/_breadcrumb.scss +10 -6
  27. data/assets/stylesheets/bootstrap/_button-group.scss +17 -20
  28. data/assets/stylesheets/bootstrap/_buttons.scss +23 -28
  29. data/assets/stylesheets/bootstrap/_card.scss +77 -61
  30. data/assets/stylesheets/bootstrap/_carousel.scss +72 -63
  31. data/assets/stylesheets/bootstrap/_close.scss +15 -9
  32. data/assets/stylesheets/bootstrap/_code.scss +6 -14
  33. data/assets/stylesheets/bootstrap/_custom-forms.scss +287 -43
  34. data/assets/stylesheets/bootstrap/_dropdown.scss +70 -9
  35. data/assets/stylesheets/bootstrap/_forms.scss +56 -42
  36. data/assets/stylesheets/bootstrap/_functions.scss +117 -13
  37. data/assets/stylesheets/bootstrap/_grid.scss +32 -11
  38. data/assets/stylesheets/bootstrap/_images.scss +4 -4
  39. data/assets/stylesheets/bootstrap/_input-group.scss +80 -25
  40. data/assets/stylesheets/bootstrap/_jumbotron.scss +2 -1
  41. data/assets/stylesheets/bootstrap/_list-group.scss +63 -24
  42. data/assets/stylesheets/bootstrap/_mixins.scss +9 -4
  43. data/assets/stylesheets/bootstrap/_modal.scss +96 -24
  44. data/assets/stylesheets/bootstrap/_nav.scss +14 -7
  45. data/assets/stylesheets/bootstrap/_navbar.scss +66 -45
  46. data/assets/stylesheets/bootstrap/_pagination.scss +10 -8
  47. data/assets/stylesheets/bootstrap/_popover.scss +56 -69
  48. data/assets/stylesheets/bootstrap/_print.scss +41 -19
  49. data/assets/stylesheets/bootstrap/_progress.scss +20 -6
  50. data/assets/stylesheets/bootstrap/_reboot.scss +88 -109
  51. data/assets/stylesheets/bootstrap/_spinners.scss +65 -0
  52. data/assets/stylesheets/bootstrap/_tables.scss +19 -14
  53. data/assets/stylesheets/bootstrap/_toasts.scss +46 -0
  54. data/assets/stylesheets/bootstrap/_tooltip.scss +6 -6
  55. data/assets/stylesheets/bootstrap/_transitions.scss +10 -20
  56. data/assets/stylesheets/bootstrap/_type.scss +19 -19
  57. data/assets/stylesheets/bootstrap/_utilities.scss +4 -0
  58. data/assets/stylesheets/bootstrap/_variables.scss +492 -215
  59. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
  60. data/assets/stylesheets/bootstrap/mixins/_badge.scss +8 -3
  61. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +51 -10
  62. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
  63. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -9
  64. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +35 -26
  65. data/assets/stylesheets/bootstrap/mixins/_caret.scss +13 -16
  66. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  67. data/assets/stylesheets/bootstrap/mixins/_float.scss +6 -3
  68. data/assets/stylesheets/bootstrap/mixins/_forms.scss +102 -40
  69. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
  70. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +36 -25
  71. data/assets/stylesheets/bootstrap/mixins/_grid.scss +34 -17
  72. data/assets/stylesheets/bootstrap/mixins/_hover.scss +27 -51
  73. data/assets/stylesheets/bootstrap/mixins/_image.scss +4 -4
  74. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +10 -13
  75. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  76. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +3 -2
  77. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
  78. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
  79. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +5 -6
  80. data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
  81. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +11 -2
  82. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +7 -4
  83. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +3 -1
  84. data/assets/stylesheets/bootstrap/mixins/_transition.scss +20 -3
  85. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
  86. data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
  87. data/assets/stylesheets/bootstrap/utilities/_borders.scss +23 -2
  88. data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -36
  89. data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
  90. data/assets/stylesheets/bootstrap/utilities/_flex.scss +5 -0
  91. data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
  92. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  93. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
  94. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -4
  95. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
  96. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
  97. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
  98. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
  99. data/assets/stylesheets/bootstrap/utilities/_text.scss +28 -8
  100. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
  101. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +228 -0
  102. data/bootstrap.gemspec +7 -4
  103. data/lib/bootstrap/engine.rb +3 -0
  104. data/lib/bootstrap/version.rb +4 -2
  105. data/lib/bootstrap.rb +10 -7
  106. data/tasks/updater/js.rb +18 -6
  107. data/tasks/updater/network.rb +8 -2
  108. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  109. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  110. data/test/gemfiles/rails_6_0.gemfile +7 -0
  111. data/test/support/dummy_rails_integration.rb +3 -1
  112. data/test/test_helper.rb +21 -15
  113. metadata +29 -16
  114. data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
@@ -1,50 +1,97 @@
1
- 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); } }
1
+ /*!
2
+ * Bootstrap popover.js v4.6.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
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'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.jQuery, global.Tooltip));
10
+ })(this, (function ($, Tooltip) { 'use strict';
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
+ var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
16
+
17
+ function _defineProperties(target, props) {
18
+ for (var i = 0; i < props.length; i++) {
19
+ var descriptor = props[i];
20
+ descriptor.enumerable = descriptor.enumerable || false;
21
+ descriptor.configurable = true;
22
+ if ("value" in descriptor) descriptor.writable = true;
23
+ Object.defineProperty(target, descriptor.key, descriptor);
24
+ }
25
+ }
26
+
27
+ function _createClass(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ Object.defineProperty(Constructor, "prototype", {
31
+ writable: false
32
+ });
33
+ return Constructor;
34
+ }
35
+
36
+ function _extends() {
37
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
38
+ for (var i = 1; i < arguments.length; i++) {
39
+ var source = arguments[i];
40
+
41
+ for (var key in source) {
42
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
43
+ target[key] = source[key];
44
+ }
45
+ }
46
+ }
2
47
 
3
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
48
+ return target;
49
+ };
50
+ return _extends.apply(this, arguments);
51
+ }
4
52
 
5
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
53
+ function _inheritsLoose(subClass, superClass) {
54
+ subClass.prototype = Object.create(superClass.prototype);
55
+ subClass.prototype.constructor = subClass;
6
56
 
7
- 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); }
57
+ _setPrototypeOf(subClass, superClass);
58
+ }
59
+
60
+ function _setPrototypeOf(o, p) {
61
+ _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
62
+ o.__proto__ = p;
63
+ return o;
64
+ };
65
+ return _setPrototypeOf(o, p);
66
+ }
8
67
 
9
- /**
10
- * --------------------------------------------------------------------------
11
- * Bootstrap (v4.0.0-beta.3): popover.js
12
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
13
- * --------------------------------------------------------------------------
14
- */
15
- var Popover = function ($) {
16
68
  /**
17
- * ------------------------------------------------------------------------
18
69
  * Constants
19
- * ------------------------------------------------------------------------
20
70
  */
71
+
21
72
  var NAME = 'popover';
22
- var VERSION = '4.0.0-beta.3';
73
+ var VERSION = '4.6.2';
23
74
  var DATA_KEY = 'bs.popover';
24
75
  var EVENT_KEY = "." + DATA_KEY;
25
- var JQUERY_NO_CONFLICT = $.fn[NAME];
76
+ var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
26
77
  var CLASS_PREFIX = 'bs-popover';
27
78
  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
79
+ var CLASS_NAME_FADE = 'fade';
80
+ var CLASS_NAME_SHOW = 'show';
81
+ var SELECTOR_TITLE = '.popover-header';
82
+ var SELECTOR_CONTENT = '.popover-body';
28
83
 
29
- var Default = _extends({}, Tooltip.Default, {
84
+ var Default = _extends({}, Tooltip__default["default"].Default, {
30
85
  placement: 'right',
31
86
  trigger: 'click',
32
87
  content: '',
33
88
  template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
34
89
  });
35
90
 
36
- var DefaultType = _extends({}, Tooltip.DefaultType, {
91
+ var DefaultType = _extends({}, Tooltip__default["default"].DefaultType, {
37
92
  content: '(string|element|function)'
38
93
  });
39
94
 
40
- var ClassName = {
41
- FADE: 'fade',
42
- SHOW: 'show'
43
- };
44
- var Selector = {
45
- TITLE: '.popover-header',
46
- CONTENT: '.popover-body'
47
- };
48
95
  var Event = {
49
96
  HIDE: "hide" + EVENT_KEY,
50
97
  HIDDEN: "hidden" + EVENT_KEY,
@@ -56,17 +103,12 @@ var Popover = function ($) {
56
103
  FOCUSOUT: "focusout" + EVENT_KEY,
57
104
  MOUSEENTER: "mouseenter" + EVENT_KEY,
58
105
  MOUSELEAVE: "mouseleave" + EVENT_KEY
59
- /**
60
- * ------------------------------------------------------------------------
61
- * Class Definition
62
- * ------------------------------------------------------------------------
63
- */
64
-
65
106
  };
107
+ /**
108
+ * Class definition
109
+ */
66
110
 
67
- var Popover =
68
- /*#__PURE__*/
69
- function (_Tooltip) {
111
+ var Popover = /*#__PURE__*/function (_Tooltip) {
70
112
  _inheritsLoose(Popover, _Tooltip);
71
113
 
72
114
  function Popover() {
@@ -75,24 +117,24 @@ var Popover = function ($) {
75
117
 
76
118
  var _proto = Popover.prototype;
77
119
 
78
- // overrides
120
+ // Overrides
79
121
  _proto.isWithContent = function isWithContent() {
80
122
  return this.getTitle() || this._getContent();
81
123
  };
82
124
 
83
125
  _proto.addAttachmentClass = function addAttachmentClass(attachment) {
84
- $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
126
+ $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
85
127
  };
86
128
 
87
129
  _proto.getTipElement = function getTipElement() {
88
- this.tip = this.tip || $(this.config.template)[0];
130
+ this.tip = this.tip || $__default["default"](this.config.template)[0];
89
131
  return this.tip;
90
132
  };
91
133
 
92
134
  _proto.setContent = function setContent() {
93
- var $tip = $(this.getTipElement()); // we use append for html objects to maintain js events
135
+ var $tip = $__default["default"](this.getTipElement()); // We use append for html objects to maintain js events
94
136
 
95
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
137
+ this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
96
138
 
97
139
  var content = this._getContent();
98
140
 
@@ -100,43 +142,43 @@ var Popover = function ($) {
100
142
  content = content.call(this.element);
101
143
  }
102
144
 
103
- this.setElementContent($tip.find(Selector.CONTENT), content);
104
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
105
- }; // private
106
-
145
+ this.setElementContent($tip.find(SELECTOR_CONTENT), content);
146
+ $tip.removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW);
147
+ } // Private
148
+ ;
107
149
 
108
150
  _proto._getContent = function _getContent() {
109
151
  return this.element.getAttribute('data-content') || this.config.content;
110
152
  };
111
153
 
112
154
  _proto._cleanTipClass = function _cleanTipClass() {
113
- var $tip = $(this.getTipElement());
155
+ var $tip = $__default["default"](this.getTipElement());
114
156
  var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
115
157
 
116
158
  if (tabClass !== null && tabClass.length > 0) {
117
159
  $tip.removeClass(tabClass.join(''));
118
160
  }
119
- }; // static
120
-
161
+ } // Static
162
+ ;
121
163
 
122
164
  Popover._jQueryInterface = function _jQueryInterface(config) {
123
165
  return this.each(function () {
124
- var data = $(this).data(DATA_KEY);
166
+ var data = $__default["default"](this).data(DATA_KEY);
125
167
 
126
168
  var _config = typeof config === 'object' ? config : null;
127
169
 
128
- if (!data && /destroy|hide/.test(config)) {
170
+ if (!data && /dispose|hide/.test(config)) {
129
171
  return;
130
172
  }
131
173
 
132
174
  if (!data) {
133
175
  data = new Popover(this, _config);
134
- $(this).data(DATA_KEY, data);
176
+ $__default["default"](this).data(DATA_KEY, data);
135
177
  }
136
178
 
137
179
  if (typeof config === 'string') {
138
180
  if (typeof data[config] === 'undefined') {
139
- throw new Error("No method named \"" + config + "\"");
181
+ throw new TypeError("No method named \"" + config + "\"");
140
182
  }
141
183
 
142
184
  data[config]();
@@ -146,8 +188,8 @@ var Popover = function ($) {
146
188
 
147
189
  _createClass(Popover, null, [{
148
190
  key: "VERSION",
149
- // getters
150
- get: function get() {
191
+ get: // Getters
192
+ function get() {
151
193
  return VERSION;
152
194
  }
153
195
  }, {
@@ -183,21 +225,20 @@ var Popover = function ($) {
183
225
  }]);
184
226
 
185
227
  return Popover;
186
- }(Tooltip);
228
+ }(Tooltip__default["default"]);
187
229
  /**
188
- * ------------------------------------------------------------------------
189
230
  * jQuery
190
- * ------------------------------------------------------------------------
191
231
  */
192
232
 
193
233
 
194
- $.fn[NAME] = Popover._jQueryInterface;
195
- $.fn[NAME].Constructor = Popover;
234
+ $__default["default"].fn[NAME] = Popover._jQueryInterface;
235
+ $__default["default"].fn[NAME].Constructor = Popover;
196
236
 
197
- $.fn[NAME].noConflict = function () {
198
- $.fn[NAME] = JQUERY_NO_CONFLICT;
237
+ $__default["default"].fn[NAME].noConflict = function () {
238
+ $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
199
239
  return Popover._jQueryInterface;
200
240
  };
201
241
 
202
242
  return Popover;
203
- }($);
243
+
244
+ }));
@@ -1,27 +1,80 @@
1
- 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); }
2
-
3
- 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); } }
1
+ /*!
2
+ * Bootstrap scrollspy.js v4.6.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
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'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.jQuery, global.Util));
10
+ })(this, (function ($, Util) { 'use strict';
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
+ var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
16
+
17
+ function _defineProperties(target, props) {
18
+ for (var i = 0; i < props.length; i++) {
19
+ var descriptor = props[i];
20
+ descriptor.enumerable = descriptor.enumerable || false;
21
+ descriptor.configurable = true;
22
+ if ("value" in descriptor) descriptor.writable = true;
23
+ Object.defineProperty(target, descriptor.key, descriptor);
24
+ }
25
+ }
26
+
27
+ function _createClass(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ Object.defineProperty(Constructor, "prototype", {
31
+ writable: false
32
+ });
33
+ return Constructor;
34
+ }
35
+
36
+ function _extends() {
37
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
38
+ for (var i = 1; i < arguments.length; i++) {
39
+ var source = arguments[i];
40
+
41
+ for (var key in source) {
42
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
43
+ target[key] = source[key];
44
+ }
45
+ }
46
+ }
4
47
 
5
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
48
+ return target;
49
+ };
50
+ return _extends.apply(this, arguments);
51
+ }
6
52
 
7
- /**
8
- * --------------------------------------------------------------------------
9
- * Bootstrap (v4.0.0-beta.3): scrollspy.js
10
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
11
- * --------------------------------------------------------------------------
12
- */
13
- var ScrollSpy = function ($) {
14
53
  /**
15
- * ------------------------------------------------------------------------
16
54
  * Constants
17
- * ------------------------------------------------------------------------
18
55
  */
56
+
19
57
  var NAME = 'scrollspy';
20
- var VERSION = '4.0.0-beta.3';
58
+ var VERSION = '4.6.2';
21
59
  var DATA_KEY = 'bs.scrollspy';
22
60
  var EVENT_KEY = "." + DATA_KEY;
23
61
  var DATA_API_KEY = '.data-api';
24
- var JQUERY_NO_CONFLICT = $.fn[NAME];
62
+ var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
63
+ var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
64
+ var CLASS_NAME_ACTIVE = 'active';
65
+ var EVENT_ACTIVATE = "activate" + EVENT_KEY;
66
+ var EVENT_SCROLL = "scroll" + EVENT_KEY;
67
+ var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
68
+ var METHOD_OFFSET = 'offset';
69
+ var METHOD_POSITION = 'position';
70
+ var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
71
+ var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
72
+ var SELECTOR_NAV_LINKS = '.nav-link';
73
+ var SELECTOR_NAV_ITEMS = '.nav-item';
74
+ var SELECTOR_LIST_ITEMS = '.list-group-item';
75
+ var SELECTOR_DROPDOWN = '.dropdown';
76
+ var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';
77
+ var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
25
78
  var Default = {
26
79
  offset: 10,
27
80
  method: 'auto',
@@ -32,95 +85,63 @@ var ScrollSpy = function ($) {
32
85
  method: 'string',
33
86
  target: '(string|element)'
34
87
  };
35
- var Event = {
36
- ACTIVATE: "activate" + EVENT_KEY,
37
- SCROLL: "scroll" + EVENT_KEY,
38
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
39
- };
40
- var ClassName = {
41
- DROPDOWN_ITEM: 'dropdown-item',
42
- DROPDOWN_MENU: 'dropdown-menu',
43
- ACTIVE: 'active'
44
- };
45
- var Selector = {
46
- DATA_SPY: '[data-spy="scroll"]',
47
- ACTIVE: '.active',
48
- NAV_LIST_GROUP: '.nav, .list-group',
49
- NAV_LINKS: '.nav-link',
50
- NAV_ITEMS: '.nav-item',
51
- LIST_ITEMS: '.list-group-item',
52
- DROPDOWN: '.dropdown',
53
- DROPDOWN_ITEMS: '.dropdown-item',
54
- DROPDOWN_TOGGLE: '.dropdown-toggle'
55
- };
56
- var OffsetMethod = {
57
- OFFSET: 'offset',
58
- POSITION: 'position'
59
- /**
60
- * ------------------------------------------------------------------------
61
- * Class Definition
62
- * ------------------------------------------------------------------------
63
- */
64
-
65
- };
88
+ /**
89
+ * Class definition
90
+ */
66
91
 
67
- var ScrollSpy =
68
- /*#__PURE__*/
69
- function () {
92
+ var ScrollSpy = /*#__PURE__*/function () {
70
93
  function ScrollSpy(element, config) {
71
94
  var _this = this;
72
95
 
73
96
  this._element = element;
74
97
  this._scrollElement = element.tagName === 'BODY' ? window : element;
75
98
  this._config = this._getConfig(config);
76
- this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
99
+ this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " " + SELECTOR_DROPDOWN_ITEMS);
77
100
  this._offsets = [];
78
101
  this._targets = [];
79
102
  this._activeTarget = null;
80
103
  this._scrollHeight = 0;
81
- $(this._scrollElement).on(Event.SCROLL, function (event) {
104
+ $__default["default"](this._scrollElement).on(EVENT_SCROLL, function (event) {
82
105
  return _this._process(event);
83
106
  });
84
107
  this.refresh();
85
108
 
86
109
  this._process();
87
- } // getters
110
+ } // Getters
88
111
 
89
112
 
90
113
  var _proto = ScrollSpy.prototype;
91
114
 
92
- // public
115
+ // Public
93
116
  _proto.refresh = function refresh() {
94
117
  var _this2 = this;
95
118
 
96
- var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
119
+ var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
97
120
  var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
98
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
121
+ var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
99
122
  this._offsets = [];
100
123
  this._targets = [];
101
124
  this._scrollHeight = this._getScrollHeight();
102
- var targets = $.makeArray($(this._selector));
125
+ var targets = [].slice.call(document.querySelectorAll(this._selector));
103
126
  targets.map(function (element) {
104
127
  var target;
105
- var targetSelector = Util.getSelectorFromElement(element);
128
+ var targetSelector = Util__default["default"].getSelectorFromElement(element);
106
129
 
107
130
  if (targetSelector) {
108
- target = $(targetSelector)[0];
131
+ target = document.querySelector(targetSelector);
109
132
  }
110
133
 
111
134
  if (target) {
112
135
  var targetBCR = target.getBoundingClientRect();
113
136
 
114
137
  if (targetBCR.width || targetBCR.height) {
115
- // todo (fat): remove sketch reliance on jQuery position/offset
116
- return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
138
+ // TODO (fat): remove sketch reliance on jQuery position/offset
139
+ return [$__default["default"](target)[offsetMethod]().top + offsetBase, targetSelector];
117
140
  }
118
141
  }
119
142
 
120
143
  return null;
121
- }).filter(function (item) {
122
- return item;
123
- }).sort(function (a, b) {
144
+ }).filter(Boolean).sort(function (a, b) {
124
145
  return a[0] - b[0];
125
146
  }).forEach(function (item) {
126
147
  _this2._offsets.push(item[0]);
@@ -130,8 +151,8 @@ var ScrollSpy = function ($) {
130
151
  };
131
152
 
132
153
  _proto.dispose = function dispose() {
133
- $.removeData(this._element, DATA_KEY);
134
- $(this._scrollElement).off(EVENT_KEY);
154
+ $__default["default"].removeData(this._element, DATA_KEY);
155
+ $__default["default"](this._scrollElement).off(EVENT_KEY);
135
156
  this._element = null;
136
157
  this._scrollElement = null;
137
158
  this._config = null;
@@ -140,24 +161,24 @@ var ScrollSpy = function ($) {
140
161
  this._targets = null;
141
162
  this._activeTarget = null;
142
163
  this._scrollHeight = null;
143
- }; // private
144
-
164
+ } // Private
165
+ ;
145
166
 
146
167
  _proto._getConfig = function _getConfig(config) {
147
- config = _extends({}, Default, config);
168
+ config = _extends({}, Default, typeof config === 'object' && config ? config : {});
148
169
 
149
- if (typeof config.target !== 'string') {
150
- var id = $(config.target).attr('id');
170
+ if (typeof config.target !== 'string' && Util__default["default"].isElement(config.target)) {
171
+ var id = $__default["default"](config.target).attr('id');
151
172
 
152
173
  if (!id) {
153
- id = Util.getUID(NAME);
154
- $(config.target).attr('id', id);
174
+ id = Util__default["default"].getUID(NAME);
175
+ $__default["default"](config.target).attr('id', id);
155
176
  }
156
177
 
157
178
  config.target = "#" + id;
158
179
  }
159
180
 
160
- Util.typeCheckConfig(NAME, config, DefaultType);
181
+ Util__default["default"].typeCheckConfig(NAME, config, DefaultType);
161
182
  return config;
162
183
  };
163
184
 
@@ -216,51 +237,53 @@ var ScrollSpy = function ($) {
216
237
 
217
238
  this._clear();
218
239
 
219
- var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
220
-
221
-
222
- queries = queries.map(function (selector) {
223
- return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
240
+ var queries = this._selector.split(',').map(function (selector) {
241
+ return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
224
242
  });
225
- var $link = $(queries.join(','));
226
243
 
227
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
228
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
229
- $link.addClass(ClassName.ACTIVE);
244
+ var $link = $__default["default"]([].slice.call(document.querySelectorAll(queries.join(','))));
245
+
246
+ if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {
247
+ $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE);
248
+ $link.addClass(CLASS_NAME_ACTIVE);
230
249
  } else {
231
250
  // Set triggered link as active
232
- $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
251
+ $link.addClass(CLASS_NAME_ACTIVE); // Set triggered links parents as active
233
252
  // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
234
253
 
235
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
254
+ $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
236
255
 
237
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
256
+ $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE);
238
257
  }
239
258
 
240
- $(this._scrollElement).trigger(Event.ACTIVATE, {
259
+ $__default["default"](this._scrollElement).trigger(EVENT_ACTIVATE, {
241
260
  relatedTarget: target
242
261
  });
243
262
  };
244
263
 
245
264
  _proto._clear = function _clear() {
246
- $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
247
- }; // static
248
-
265
+ [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
266
+ return node.classList.contains(CLASS_NAME_ACTIVE);
267
+ }).forEach(function (node) {
268
+ return node.classList.remove(CLASS_NAME_ACTIVE);
269
+ });
270
+ } // Static
271
+ ;
249
272
 
250
273
  ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
251
274
  return this.each(function () {
252
- var data = $(this).data(DATA_KEY);
275
+ var data = $__default["default"](this).data(DATA_KEY);
253
276
 
254
277
  var _config = typeof config === 'object' && config;
255
278
 
256
279
  if (!data) {
257
280
  data = new ScrollSpy(this, _config);
258
- $(this).data(DATA_KEY, data);
281
+ $__default["default"](this).data(DATA_KEY, data);
259
282
  }
260
283
 
261
284
  if (typeof config === 'string') {
262
285
  if (typeof data[config] === 'undefined') {
263
- throw new Error("No method named \"" + config + "\"");
286
+ throw new TypeError("No method named \"" + config + "\"");
264
287
  }
265
288
 
266
289
  data[config]();
@@ -283,34 +306,32 @@ var ScrollSpy = function ($) {
283
306
  return ScrollSpy;
284
307
  }();
285
308
  /**
286
- * ------------------------------------------------------------------------
287
- * Data Api implementation
288
- * ------------------------------------------------------------------------
309
+ * Data API implementation
289
310
  */
290
311
 
291
312
 
292
- $(window).on(Event.LOAD_DATA_API, function () {
293
- var scrollSpys = $.makeArray($(Selector.DATA_SPY));
313
+ $__default["default"](window).on(EVENT_LOAD_DATA_API, function () {
314
+ var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));
315
+ var scrollSpysLength = scrollSpys.length;
294
316
 
295
- for (var i = scrollSpys.length; i--;) {
296
- var $spy = $(scrollSpys[i]);
317
+ for (var i = scrollSpysLength; i--;) {
318
+ var $spy = $__default["default"](scrollSpys[i]);
297
319
 
298
320
  ScrollSpy._jQueryInterface.call($spy, $spy.data());
299
321
  }
300
322
  });
301
323
  /**
302
- * ------------------------------------------------------------------------
303
324
  * jQuery
304
- * ------------------------------------------------------------------------
305
325
  */
306
326
 
307
- $.fn[NAME] = ScrollSpy._jQueryInterface;
308
- $.fn[NAME].Constructor = ScrollSpy;
327
+ $__default["default"].fn[NAME] = ScrollSpy._jQueryInterface;
328
+ $__default["default"].fn[NAME].Constructor = ScrollSpy;
309
329
 
310
- $.fn[NAME].noConflict = function () {
311
- $.fn[NAME] = JQUERY_NO_CONFLICT;
330
+ $__default["default"].fn[NAME].noConflict = function () {
331
+ $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
312
332
  return ScrollSpy._jQueryInterface;
313
333
  };
314
334
 
315
335
  return ScrollSpy;
316
- }($);
336
+
337
+ }));