bootstrap 4.5.2 → 5.0.0.alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +12 -8
- data/assets/javascripts/bootstrap.js +1876 -1220
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +133 -48
- data/assets/javascripts/bootstrap/button.js +56 -123
- data/assets/javascripts/bootstrap/carousel.js +268 -129
- data/assets/javascripts/bootstrap/collapse.js +285 -106
- data/assets/javascripts/bootstrap/dom/data.js +81 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +311 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +100 -0
- data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
- data/assets/javascripts/bootstrap/dropdown.js +235 -161
- data/assets/javascripts/bootstrap/modal.js +322 -193
- data/assets/javascripts/bootstrap/popover.js +72 -41
- data/assets/javascripts/bootstrap/scrollspy.js +151 -56
- data/assets/javascripts/bootstrap/tab.js +151 -64
- data/assets/javascripts/bootstrap/toast.js +163 -65
- data/assets/javascripts/bootstrap/tooltip.js +336 -155
- data/assets/stylesheets/_bootstrap-grid.scss +51 -15
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
- data/assets/stylesheets/_bootstrap.scss +14 -8
- data/assets/stylesheets/bootstrap/_alert.scss +3 -3
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
- data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
- data/assets/stylesheets/bootstrap/_buttons.scss +27 -45
- data/assets/stylesheets/bootstrap/_card.scss +18 -64
- data/assets/stylesheets/bootstrap/_carousel.scss +13 -15
- data/assets/stylesheets/bootstrap/_close.scss +9 -13
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +10 -7
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +82 -20
- data/assets/stylesheets/bootstrap/_grid.scss +3 -54
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +6 -3
- data/assets/stylesheets/bootstrap/_mixins.scss +6 -12
- data/assets/stylesheets/bootstrap/_modal.scss +34 -39
- data/assets/stylesheets/bootstrap/_nav.scss +8 -8
- data/assets/stylesheets/bootstrap/_navbar.scss +42 -74
- data/assets/stylesheets/bootstrap/_pagination.scss +7 -20
- data/assets/stylesheets/bootstrap/_popover.scss +5 -5
- data/assets/stylesheets/bootstrap/_progress.scss +2 -4
- data/assets/stylesheets/bootstrap/_reboot.scss +300 -164
- data/assets/stylesheets/bootstrap/_root.scss +5 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +2 -2
- data/assets/stylesheets/bootstrap/_tables.scss +80 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +2 -4
- data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +503 -18
- data/assets/stylesheets/bootstrap/_variables.scss +544 -424
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +142 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +116 -0
- data/assets/stylesheets/bootstrap/forms/_form-file.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +136 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +82 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +140 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_embed.scss +31 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_screenreaders.scss +8 -0
- data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -4
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -8
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +62 -47
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +22 -67
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +84 -32
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +16 -22
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +3 -3
- metadata +31 -39
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -523
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -141
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
|
@@ -1,24 +1,47 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap popover.js
|
|
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('
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['
|
|
9
|
-
(global =
|
|
10
|
-
}(this, (function (
|
|
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
|
-
|
|
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
|
|
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 = '
|
|
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 =
|
|
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 =
|
|
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
|
|
106
|
+
var tip = this.getTipElement(); // we use append for html objects to maintain js events
|
|
94
107
|
|
|
95
|
-
this.setElementContent(
|
|
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(
|
|
104
|
-
|
|
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
|
|
114
|
-
var tabClass =
|
|
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
|
-
|
|
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.
|
|
143
|
+
Popover.jQueryInterface = function jQueryInterface(config) {
|
|
123
144
|
return this.each(function () {
|
|
124
|
-
var data =
|
|
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
|
-
|
|
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
|
-
|
|
195
|
-
|
|
222
|
+
if ($) {
|
|
223
|
+
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
224
|
+
$.fn[NAME] = Popover.jQueryInterface;
|
|
225
|
+
$.fn[NAME].Constructor = Popover;
|
|
196
226
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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
|
|
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('
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['
|
|
9
|
-
(global =
|
|
10
|
-
}(this, (function (
|
|
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
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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 = '
|
|
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 + " " +
|
|
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
|
-
|
|
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 =
|
|
180
|
+
var targets = SelectorEngine.find(this._selector);
|
|
97
181
|
targets.map(function (element) {
|
|
98
182
|
var target;
|
|
99
|
-
var targetSelector =
|
|
183
|
+
var targetSelector = getSelectorFromElement(element);
|
|
100
184
|
|
|
101
185
|
if (targetSelector) {
|
|
102
|
-
target =
|
|
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
|
-
|
|
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
|
-
|
|
128
|
-
|
|
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 =
|
|
224
|
+
config = _objectSpread(_objectSpread({}, Default), typeof config === 'object' && config ? config : {});
|
|
142
225
|
|
|
143
|
-
if (typeof config.target !== 'string' &&
|
|
144
|
-
var id =
|
|
226
|
+
if (typeof config.target !== 'string' && isElement(config.target)) {
|
|
227
|
+
var id = config.target.id;
|
|
145
228
|
|
|
146
229
|
if (!id) {
|
|
147
|
-
id =
|
|
148
|
-
|
|
230
|
+
id = getUID(NAME);
|
|
231
|
+
config.target.id = id;
|
|
149
232
|
}
|
|
150
233
|
|
|
151
234
|
config.target = "#" + id;
|
|
152
235
|
}
|
|
153
236
|
|
|
154
|
-
|
|
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
|
|
300
|
+
var link = SelectorEngine.findOne(queries.join(','));
|
|
218
301
|
|
|
219
|
-
if (
|
|
220
|
-
|
|
221
|
-
|
|
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
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
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
|
-
|
|
323
|
+
EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {
|
|
233
324
|
relatedTarget: target
|
|
234
325
|
});
|
|
235
326
|
};
|
|
236
327
|
|
|
237
328
|
_proto._clear = function _clear() {
|
|
238
|
-
|
|
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.
|
|
337
|
+
ScrollSpy.jQueryInterface = function jQueryInterface(config) {
|
|
247
338
|
return this.each(function () {
|
|
248
|
-
var data =
|
|
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
|
-
|
|
289
|
-
|
|
290
|
-
|
|
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
|
-
|
|
305
|
-
$.fn[NAME].Constructor = ScrollSpy;
|
|
394
|
+
/* istanbul ignore if */
|
|
306
395
|
|
|
307
|
-
|
|
308
|
-
$.fn[NAME]
|
|
309
|
-
|
|
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
|
|