bootstrap 4.0.0.beta3 → 4.6.2

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