bootstrap 4.6.0 → 5.0.0.beta2
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/.travis.yml +2 -1
- data/README.md +7 -4
- data/assets/javascripts/bootstrap-global-this-define.js +6 -0
- data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
- data/assets/javascripts/bootstrap-sprockets.js +14 -8
- data/assets/javascripts/bootstrap.js +2152 -1633
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +179 -64
- data/assets/javascripts/bootstrap/base-component.js +75 -0
- data/assets/javascripts/bootstrap/button.js +94 -143
- data/assets/javascripts/bootstrap/carousel.js +386 -202
- data/assets/javascripts/bootstrap/collapse.js +349 -132
- data/assets/javascripts/bootstrap/dom/data.js +81 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +310 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +86 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +93 -0
- data/assets/javascripts/bootstrap/dropdown.js +387 -224
- data/assets/javascripts/bootstrap/modal.js +391 -220
- data/assets/javascripts/bootstrap/popover.js +94 -49
- data/assets/javascripts/bootstrap/scrollspy.js +212 -80
- data/assets/javascripts/bootstrap/tab.js +198 -79
- data/assets/javascripts/bootstrap/toast.js +211 -78
- data/assets/javascripts/bootstrap/tooltip.js +558 -300
- data/assets/stylesheets/_bootstrap-grid.scss +51 -16
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
- data/assets/stylesheets/_bootstrap.scss +15 -8
- data/assets/stylesheets/bootstrap/_accordion.scss +126 -0
- data/assets/stylesheets/bootstrap/_alert.scss +15 -10
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
- data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
- data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
- data/assets/stylesheets/bootstrap/_card.scss +21 -92
- data/assets/stylesheets/bootstrap/_carousel.scss +65 -33
- data/assets/stylesheets/bootstrap/_close.scss +30 -30
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +95 -38
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +84 -23
- data/assets/stylesheets/bootstrap/_grid.scss +3 -54
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +17 -8
- data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
- data/assets/stylesheets/bootstrap/_modal.scss +41 -46
- data/assets/stylesheets/bootstrap/_nav.scss +16 -4
- data/assets/stylesheets/bootstrap/_navbar.scss +43 -71
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
- data/assets/stylesheets/bootstrap/_popover.scss +15 -27
- data/assets/stylesheets/bootstrap/_progress.scss +2 -4
- data/assets/stylesheets/bootstrap/_reboot.scss +314 -163
- data/assets/stylesheets/bootstrap/_root.scss +5 -8
- data/assets/stylesheets/bootstrap/_spinners.scss +5 -5
- data/assets/stylesheets/bootstrap/_tables.scss +79 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +20 -15
- data/assets/stylesheets/bootstrap/_tooltip.scss +17 -17
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +566 -18
- data/assets/stylesheets/bootstrap/_variables.scss +673 -463
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +67 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -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/_position.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -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/helpers/_visually-hidden.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -5
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -47
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
- 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 +27 -88
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +83 -32
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
- 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/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
- data/bootstrap.gemspec +1 -3
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +20 -5
- data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
- data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
- data/test/dummy_rails/app/views/pages/root.html +89 -0
- data/test/dummy_rails/config/application.rb +0 -3
- data/test/gemfiles/rails_6_1.gemfile +7 -0
- metadata +44 -75
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -208
- 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/_screen-reader.scss +0 -34
- 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
- data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap popover.js
|
|
2
|
+
* Bootstrap popover.js v5.0.0-beta2 (https://getbootstrap.com/)
|
|
3
3
|
* Copyright 2011-2021 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 = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(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', './dom/selector-engine', './tooltip'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));
|
|
10
|
+
}(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';
|
|
11
11
|
|
|
12
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
|
+
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
15
16
|
var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
|
|
16
17
|
|
|
17
18
|
function _defineProperties(target, props) {
|
|
@@ -51,9 +52,65 @@
|
|
|
51
52
|
function _inheritsLoose(subClass, superClass) {
|
|
52
53
|
subClass.prototype = Object.create(superClass.prototype);
|
|
53
54
|
subClass.prototype.constructor = subClass;
|
|
54
|
-
|
|
55
|
+
|
|
56
|
+
_setPrototypeOf(subClass, superClass);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function _setPrototypeOf(o, p) {
|
|
60
|
+
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
61
|
+
o.__proto__ = p;
|
|
62
|
+
return o;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
return _setPrototypeOf(o, p);
|
|
55
66
|
}
|
|
56
67
|
|
|
68
|
+
/**
|
|
69
|
+
* --------------------------------------------------------------------------
|
|
70
|
+
* Bootstrap (v5.0.0-beta2): util/index.js
|
|
71
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
72
|
+
* --------------------------------------------------------------------------
|
|
73
|
+
*/
|
|
74
|
+
|
|
75
|
+
var getjQuery = function getjQuery() {
|
|
76
|
+
var _window = window,
|
|
77
|
+
jQuery = _window.jQuery;
|
|
78
|
+
|
|
79
|
+
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
|
|
80
|
+
return jQuery;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return null;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
|
|
87
|
+
if (document.readyState === 'loading') {
|
|
88
|
+
document.addEventListener('DOMContentLoaded', callback);
|
|
89
|
+
} else {
|
|
90
|
+
callback();
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
document.documentElement.dir === 'rtl';
|
|
95
|
+
|
|
96
|
+
var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
|
|
97
|
+
onDOMContentLoaded(function () {
|
|
98
|
+
var $ = getjQuery();
|
|
99
|
+
/* istanbul ignore if */
|
|
100
|
+
|
|
101
|
+
if ($) {
|
|
102
|
+
var JQUERY_NO_CONFLICT = $.fn[name];
|
|
103
|
+
$.fn[name] = plugin.jQueryInterface;
|
|
104
|
+
$.fn[name].Constructor = plugin;
|
|
105
|
+
|
|
106
|
+
$.fn[name].noConflict = function () {
|
|
107
|
+
$.fn[name] = JQUERY_NO_CONFLICT;
|
|
108
|
+
return plugin.jQueryInterface;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
|
|
57
114
|
/**
|
|
58
115
|
* ------------------------------------------------------------------------
|
|
59
116
|
* Constants
|
|
@@ -61,28 +118,23 @@
|
|
|
61
118
|
*/
|
|
62
119
|
|
|
63
120
|
var NAME = 'popover';
|
|
64
|
-
var VERSION = '4.6.0';
|
|
65
121
|
var DATA_KEY = 'bs.popover';
|
|
66
122
|
var EVENT_KEY = "." + DATA_KEY;
|
|
67
|
-
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
|
|
68
123
|
var CLASS_PREFIX = 'bs-popover';
|
|
69
124
|
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
|
|
70
125
|
|
|
71
126
|
var Default = _extends({}, Tooltip__default['default'].Default, {
|
|
72
127
|
placement: 'right',
|
|
128
|
+
offset: [0, 8],
|
|
73
129
|
trigger: 'click',
|
|
74
130
|
content: '',
|
|
75
|
-
template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div
|
|
131
|
+
template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
|
|
76
132
|
});
|
|
77
133
|
|
|
78
134
|
var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {
|
|
79
135
|
content: '(string|element|function)'
|
|
80
136
|
});
|
|
81
137
|
|
|
82
|
-
var CLASS_NAME_FADE = 'fade';
|
|
83
|
-
var CLASS_NAME_SHOW = 'show';
|
|
84
|
-
var SELECTOR_TITLE = '.popover-header';
|
|
85
|
-
var SELECTOR_CONTENT = '.popover-body';
|
|
86
138
|
var Event = {
|
|
87
139
|
HIDE: "hide" + EVENT_KEY,
|
|
88
140
|
HIDDEN: "hidden" + EVENT_KEY,
|
|
@@ -95,6 +147,10 @@
|
|
|
95
147
|
MOUSEENTER: "mouseenter" + EVENT_KEY,
|
|
96
148
|
MOUSELEAVE: "mouseleave" + EVENT_KEY
|
|
97
149
|
};
|
|
150
|
+
var CLASS_NAME_FADE = 'fade';
|
|
151
|
+
var CLASS_NAME_SHOW = 'show';
|
|
152
|
+
var SELECTOR_TITLE = '.popover-header';
|
|
153
|
+
var SELECTOR_CONTENT = '.popover-body';
|
|
98
154
|
/**
|
|
99
155
|
* ------------------------------------------------------------------------
|
|
100
156
|
* Class Definition
|
|
@@ -115,48 +171,47 @@
|
|
|
115
171
|
return this.getTitle() || this._getContent();
|
|
116
172
|
};
|
|
117
173
|
|
|
118
|
-
_proto.addAttachmentClass = function addAttachmentClass(attachment) {
|
|
119
|
-
$__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
_proto.getTipElement = function getTipElement() {
|
|
123
|
-
this.tip = this.tip || $__default['default'](this.config.template)[0];
|
|
124
|
-
return this.tip;
|
|
125
|
-
};
|
|
126
|
-
|
|
127
174
|
_proto.setContent = function setContent() {
|
|
128
|
-
var
|
|
175
|
+
var tip = this.getTipElement(); // we use append for html objects to maintain js events
|
|
129
176
|
|
|
130
|
-
this.setElementContent(
|
|
177
|
+
this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
|
|
131
178
|
|
|
132
179
|
var content = this._getContent();
|
|
133
180
|
|
|
134
181
|
if (typeof content === 'function') {
|
|
135
|
-
content = content.call(this.
|
|
182
|
+
content = content.call(this._element);
|
|
136
183
|
}
|
|
137
184
|
|
|
138
|
-
this.setElementContent(
|
|
139
|
-
|
|
185
|
+
this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
|
|
186
|
+
tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
|
|
140
187
|
} // Private
|
|
141
188
|
;
|
|
142
189
|
|
|
190
|
+
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
|
|
191
|
+
this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
|
|
192
|
+
};
|
|
193
|
+
|
|
143
194
|
_proto._getContent = function _getContent() {
|
|
144
|
-
return this.
|
|
195
|
+
return this._element.getAttribute('data-bs-content') || this.config.content;
|
|
145
196
|
};
|
|
146
197
|
|
|
147
198
|
_proto._cleanTipClass = function _cleanTipClass() {
|
|
148
|
-
var
|
|
149
|
-
var tabClass =
|
|
199
|
+
var tip = this.getTipElement();
|
|
200
|
+
var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
|
|
150
201
|
|
|
151
202
|
if (tabClass !== null && tabClass.length > 0) {
|
|
152
|
-
|
|
203
|
+
tabClass.map(function (token) {
|
|
204
|
+
return token.trim();
|
|
205
|
+
}).forEach(function (tClass) {
|
|
206
|
+
return tip.classList.remove(tClass);
|
|
207
|
+
});
|
|
153
208
|
}
|
|
154
209
|
} // Static
|
|
155
210
|
;
|
|
156
211
|
|
|
157
|
-
Popover.
|
|
212
|
+
Popover.jQueryInterface = function jQueryInterface(config) {
|
|
158
213
|
return this.each(function () {
|
|
159
|
-
var data =
|
|
214
|
+
var data = Data__default['default'].getData(this, DATA_KEY);
|
|
160
215
|
|
|
161
216
|
var _config = typeof config === 'object' ? config : null;
|
|
162
217
|
|
|
@@ -166,7 +221,7 @@
|
|
|
166
221
|
|
|
167
222
|
if (!data) {
|
|
168
223
|
data = new Popover(this, _config);
|
|
169
|
-
|
|
224
|
+
Data__default['default'].setData(this, DATA_KEY, data);
|
|
170
225
|
}
|
|
171
226
|
|
|
172
227
|
if (typeof config === 'string') {
|
|
@@ -180,14 +235,9 @@
|
|
|
180
235
|
};
|
|
181
236
|
|
|
182
237
|
_createClass(Popover, null, [{
|
|
183
|
-
key: "VERSION",
|
|
184
|
-
// Getters
|
|
185
|
-
get: function get() {
|
|
186
|
-
return VERSION;
|
|
187
|
-
}
|
|
188
|
-
}, {
|
|
189
238
|
key: "Default",
|
|
190
|
-
get:
|
|
239
|
+
get: // Getters
|
|
240
|
+
function get() {
|
|
191
241
|
return Default;
|
|
192
242
|
}
|
|
193
243
|
}, {
|
|
@@ -223,16 +273,11 @@
|
|
|
223
273
|
* ------------------------------------------------------------------------
|
|
224
274
|
* jQuery
|
|
225
275
|
* ------------------------------------------------------------------------
|
|
276
|
+
* add .Popover to jQuery only if jQuery is present
|
|
226
277
|
*/
|
|
227
278
|
|
|
228
279
|
|
|
229
|
-
|
|
230
|
-
$__default['default'].fn[NAME].Constructor = Popover;
|
|
231
|
-
|
|
232
|
-
$__default['default'].fn[NAME].noConflict = function () {
|
|
233
|
-
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
234
|
-
return Popover._jQueryInterface;
|
|
235
|
-
};
|
|
280
|
+
defineJQueryPlugin(NAME, Popover);
|
|
236
281
|
|
|
237
282
|
return Popover;
|
|
238
283
|
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap scrollspy.js
|
|
2
|
+
* Bootstrap scrollspy.js v5.0.0-beta2 (https://getbootstrap.com/)
|
|
3
3
|
* Copyright 2011-2021 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 = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(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'), require('./base-component.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
|
|
10
|
+
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
|
|
11
11
|
|
|
12
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
13
|
|
|
14
|
-
var
|
|
15
|
-
var
|
|
14
|
+
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
+
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
17
|
+
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
18
|
+
var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
16
19
|
|
|
17
20
|
function _defineProperties(target, props) {
|
|
18
21
|
for (var i = 0; i < props.length; i++) {
|
|
@@ -48,6 +51,141 @@
|
|
|
48
51
|
return _extends.apply(this, arguments);
|
|
49
52
|
}
|
|
50
53
|
|
|
54
|
+
function _inheritsLoose(subClass, superClass) {
|
|
55
|
+
subClass.prototype = Object.create(superClass.prototype);
|
|
56
|
+
subClass.prototype.constructor = subClass;
|
|
57
|
+
|
|
58
|
+
_setPrototypeOf(subClass, superClass);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function _setPrototypeOf(o, p) {
|
|
62
|
+
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
63
|
+
o.__proto__ = p;
|
|
64
|
+
return o;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
return _setPrototypeOf(o, p);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* --------------------------------------------------------------------------
|
|
72
|
+
* Bootstrap (v5.0.0-beta2): util/index.js
|
|
73
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
74
|
+
* --------------------------------------------------------------------------
|
|
75
|
+
*/
|
|
76
|
+
var MAX_UID = 1000000;
|
|
77
|
+
|
|
78
|
+
var toType = function toType(obj) {
|
|
79
|
+
if (obj === null || obj === undefined) {
|
|
80
|
+
return "" + obj;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* --------------------------------------------------------------------------
|
|
87
|
+
* Public Util Api
|
|
88
|
+
* --------------------------------------------------------------------------
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
var getUID = function getUID(prefix) {
|
|
93
|
+
do {
|
|
94
|
+
prefix += Math.floor(Math.random() * MAX_UID);
|
|
95
|
+
} while (document.getElementById(prefix));
|
|
96
|
+
|
|
97
|
+
return prefix;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
var getSelector = function getSelector(element) {
|
|
101
|
+
var selector = element.getAttribute('data-bs-target');
|
|
102
|
+
|
|
103
|
+
if (!selector || selector === '#') {
|
|
104
|
+
var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
|
|
105
|
+
// so everything starting with `#` or `.`. If a "real" URL is used as the selector,
|
|
106
|
+
// `document.querySelector` will rightfully complain it is invalid.
|
|
107
|
+
// See https://github.com/twbs/bootstrap/issues/32273
|
|
108
|
+
|
|
109
|
+
if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
|
|
110
|
+
return null;
|
|
111
|
+
} // Just in case some CMS puts out a full URL with the anchor appended
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
|
|
115
|
+
hrefAttr = '#' + hrefAttr.split('#')[1];
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return selector;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
var getSelectorFromElement = function getSelectorFromElement(element) {
|
|
125
|
+
var selector = getSelector(element);
|
|
126
|
+
|
|
127
|
+
if (selector) {
|
|
128
|
+
return document.querySelector(selector) ? selector : null;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return null;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
var isElement = function isElement(obj) {
|
|
135
|
+
return (obj[0] || obj).nodeType;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
|
|
139
|
+
Object.keys(configTypes).forEach(function (property) {
|
|
140
|
+
var expectedTypes = configTypes[property];
|
|
141
|
+
var value = config[property];
|
|
142
|
+
var valueType = value && isElement(value) ? 'element' : toType(value);
|
|
143
|
+
|
|
144
|
+
if (!new RegExp(expectedTypes).test(valueType)) {
|
|
145
|
+
throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
var getjQuery = function getjQuery() {
|
|
151
|
+
var _window = window,
|
|
152
|
+
jQuery = _window.jQuery;
|
|
153
|
+
|
|
154
|
+
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
|
|
155
|
+
return jQuery;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return null;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
|
|
162
|
+
if (document.readyState === 'loading') {
|
|
163
|
+
document.addEventListener('DOMContentLoaded', callback);
|
|
164
|
+
} else {
|
|
165
|
+
callback();
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
document.documentElement.dir === 'rtl';
|
|
170
|
+
|
|
171
|
+
var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
|
|
172
|
+
onDOMContentLoaded(function () {
|
|
173
|
+
var $ = getjQuery();
|
|
174
|
+
/* istanbul ignore if */
|
|
175
|
+
|
|
176
|
+
if ($) {
|
|
177
|
+
var JQUERY_NO_CONFLICT = $.fn[name];
|
|
178
|
+
$.fn[name] = plugin.jQueryInterface;
|
|
179
|
+
$.fn[name].Constructor = plugin;
|
|
180
|
+
|
|
181
|
+
$.fn[name].noConflict = function () {
|
|
182
|
+
$.fn[name] = JQUERY_NO_CONFLICT;
|
|
183
|
+
return plugin.jQueryInterface;
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
};
|
|
188
|
+
|
|
51
189
|
/**
|
|
52
190
|
* ------------------------------------------------------------------------
|
|
53
191
|
* Constants
|
|
@@ -55,11 +193,9 @@
|
|
|
55
193
|
*/
|
|
56
194
|
|
|
57
195
|
var NAME = 'scrollspy';
|
|
58
|
-
var VERSION = '4.6.0';
|
|
59
196
|
var DATA_KEY = 'bs.scrollspy';
|
|
60
197
|
var EVENT_KEY = "." + DATA_KEY;
|
|
61
198
|
var DATA_API_KEY = '.data-api';
|
|
62
|
-
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
|
|
63
199
|
var Default = {
|
|
64
200
|
offset: 10,
|
|
65
201
|
method: 'auto',
|
|
@@ -75,13 +211,12 @@
|
|
|
75
211
|
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
|
|
76
212
|
var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
|
|
77
213
|
var CLASS_NAME_ACTIVE = 'active';
|
|
78
|
-
var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
|
|
214
|
+
var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
|
|
79
215
|
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
|
|
80
216
|
var SELECTOR_NAV_LINKS = '.nav-link';
|
|
81
217
|
var SELECTOR_NAV_ITEMS = '.nav-item';
|
|
82
218
|
var SELECTOR_LIST_ITEMS = '.list-group-item';
|
|
83
219
|
var SELECTOR_DROPDOWN = '.dropdown';
|
|
84
|
-
var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';
|
|
85
220
|
var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
|
|
86
221
|
var METHOD_OFFSET = 'offset';
|
|
87
222
|
var METHOD_POSITION = 'position';
|
|
@@ -91,24 +226,29 @@
|
|
|
91
226
|
* ------------------------------------------------------------------------
|
|
92
227
|
*/
|
|
93
228
|
|
|
94
|
-
var ScrollSpy = /*#__PURE__*/function () {
|
|
95
|
-
|
|
96
|
-
var _this = this;
|
|
229
|
+
var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {
|
|
230
|
+
_inheritsLoose(ScrollSpy, _BaseComponent);
|
|
97
231
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
232
|
+
function ScrollSpy(element, config) {
|
|
233
|
+
var _this;
|
|
234
|
+
|
|
235
|
+
_this = _BaseComponent.call(this, element) || this;
|
|
236
|
+
_this._scrollElement = element.tagName === 'BODY' ? window : element;
|
|
237
|
+
_this._config = _this._getConfig(config);
|
|
238
|
+
_this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
|
|
239
|
+
_this._offsets = [];
|
|
240
|
+
_this._targets = [];
|
|
241
|
+
_this._activeTarget = null;
|
|
242
|
+
_this._scrollHeight = 0;
|
|
243
|
+
EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function () {
|
|
244
|
+
return _this._process();
|
|
108
245
|
});
|
|
109
|
-
this.refresh();
|
|
110
246
|
|
|
111
|
-
|
|
247
|
+
_this.refresh();
|
|
248
|
+
|
|
249
|
+
_this._process();
|
|
250
|
+
|
|
251
|
+
return _this;
|
|
112
252
|
} // Getters
|
|
113
253
|
|
|
114
254
|
|
|
@@ -124,21 +264,16 @@
|
|
|
124
264
|
this._offsets = [];
|
|
125
265
|
this._targets = [];
|
|
126
266
|
this._scrollHeight = this._getScrollHeight();
|
|
127
|
-
var targets = [].
|
|
267
|
+
var targets = SelectorEngine__default['default'].find(this._selector);
|
|
128
268
|
targets.map(function (element) {
|
|
129
|
-
var
|
|
130
|
-
var
|
|
131
|
-
|
|
132
|
-
if (targetSelector) {
|
|
133
|
-
target = document.querySelector(targetSelector);
|
|
134
|
-
}
|
|
269
|
+
var targetSelector = getSelectorFromElement(element);
|
|
270
|
+
var target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;
|
|
135
271
|
|
|
136
272
|
if (target) {
|
|
137
273
|
var targetBCR = target.getBoundingClientRect();
|
|
138
274
|
|
|
139
275
|
if (targetBCR.width || targetBCR.height) {
|
|
140
|
-
|
|
141
|
-
return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector];
|
|
276
|
+
return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];
|
|
142
277
|
}
|
|
143
278
|
}
|
|
144
279
|
|
|
@@ -155,9 +290,9 @@
|
|
|
155
290
|
};
|
|
156
291
|
|
|
157
292
|
_proto.dispose = function dispose() {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
this.
|
|
293
|
+
_BaseComponent.prototype.dispose.call(this);
|
|
294
|
+
|
|
295
|
+
EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
|
|
161
296
|
this._scrollElement = null;
|
|
162
297
|
this._config = null;
|
|
163
298
|
this._selector = null;
|
|
@@ -171,18 +306,18 @@
|
|
|
171
306
|
_proto._getConfig = function _getConfig(config) {
|
|
172
307
|
config = _extends({}, Default, typeof config === 'object' && config ? config : {});
|
|
173
308
|
|
|
174
|
-
if (typeof config.target !== 'string' &&
|
|
175
|
-
var id =
|
|
309
|
+
if (typeof config.target !== 'string' && isElement(config.target)) {
|
|
310
|
+
var id = config.target.id;
|
|
176
311
|
|
|
177
312
|
if (!id) {
|
|
178
|
-
id =
|
|
179
|
-
|
|
313
|
+
id = getUID(NAME);
|
|
314
|
+
config.target.id = id;
|
|
180
315
|
}
|
|
181
316
|
|
|
182
317
|
config.target = "#" + id;
|
|
183
318
|
}
|
|
184
319
|
|
|
185
|
-
|
|
320
|
+
typeCheckConfig(NAME, config, DefaultType);
|
|
186
321
|
return config;
|
|
187
322
|
};
|
|
188
323
|
|
|
@@ -242,31 +377,39 @@
|
|
|
242
377
|
this._clear();
|
|
243
378
|
|
|
244
379
|
var queries = this._selector.split(',').map(function (selector) {
|
|
245
|
-
return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
|
|
380
|
+
return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
|
|
246
381
|
});
|
|
247
382
|
|
|
248
|
-
var
|
|
383
|
+
var link = SelectorEngine__default['default'].findOne(queries.join(','));
|
|
249
384
|
|
|
250
|
-
if (
|
|
251
|
-
|
|
252
|
-
|
|
385
|
+
if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
|
|
386
|
+
SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
|
|
387
|
+
link.classList.add(CLASS_NAME_ACTIVE);
|
|
253
388
|
} else {
|
|
254
389
|
// Set triggered link as active
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
390
|
+
link.classList.add(CLASS_NAME_ACTIVE);
|
|
391
|
+
SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
|
|
392
|
+
// Set triggered links parents as active
|
|
393
|
+
// With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
|
|
394
|
+
SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) {
|
|
395
|
+
return item.classList.add(CLASS_NAME_ACTIVE);
|
|
396
|
+
}); // Handle special case when .nav-link is inside .nav-item
|
|
397
|
+
|
|
398
|
+
SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) {
|
|
399
|
+
SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) {
|
|
400
|
+
return item.classList.add(CLASS_NAME_ACTIVE);
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
});
|
|
261
404
|
}
|
|
262
405
|
|
|
263
|
-
|
|
406
|
+
EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {
|
|
264
407
|
relatedTarget: target
|
|
265
408
|
});
|
|
266
409
|
};
|
|
267
410
|
|
|
268
411
|
_proto._clear = function _clear() {
|
|
269
|
-
[].
|
|
412
|
+
SelectorEngine__default['default'].find(this._selector).filter(function (node) {
|
|
270
413
|
return node.classList.contains(CLASS_NAME_ACTIVE);
|
|
271
414
|
}).forEach(function (node) {
|
|
272
415
|
return node.classList.remove(CLASS_NAME_ACTIVE);
|
|
@@ -274,15 +417,14 @@
|
|
|
274
417
|
} // Static
|
|
275
418
|
;
|
|
276
419
|
|
|
277
|
-
ScrollSpy.
|
|
420
|
+
ScrollSpy.jQueryInterface = function jQueryInterface(config) {
|
|
278
421
|
return this.each(function () {
|
|
279
|
-
var data =
|
|
422
|
+
var data = Data__default['default'].getData(this, DATA_KEY);
|
|
280
423
|
|
|
281
424
|
var _config = typeof config === 'object' && config;
|
|
282
425
|
|
|
283
426
|
if (!data) {
|
|
284
427
|
data = new ScrollSpy(this, _config);
|
|
285
|
-
$__default['default'](this).data(DATA_KEY, data);
|
|
286
428
|
}
|
|
287
429
|
|
|
288
430
|
if (typeof config === 'string') {
|
|
@@ -296,19 +438,19 @@
|
|
|
296
438
|
};
|
|
297
439
|
|
|
298
440
|
_createClass(ScrollSpy, null, [{
|
|
299
|
-
key: "
|
|
441
|
+
key: "Default",
|
|
300
442
|
get: function get() {
|
|
301
|
-
return
|
|
443
|
+
return Default;
|
|
302
444
|
}
|
|
303
445
|
}, {
|
|
304
|
-
key: "
|
|
446
|
+
key: "DATA_KEY",
|
|
305
447
|
get: function get() {
|
|
306
|
-
return
|
|
448
|
+
return DATA_KEY;
|
|
307
449
|
}
|
|
308
450
|
}]);
|
|
309
451
|
|
|
310
452
|
return ScrollSpy;
|
|
311
|
-
}();
|
|
453
|
+
}(BaseComponent__default['default']);
|
|
312
454
|
/**
|
|
313
455
|
* ------------------------------------------------------------------------
|
|
314
456
|
* Data Api implementation
|
|
@@ -316,29 +458,19 @@
|
|
|
316
458
|
*/
|
|
317
459
|
|
|
318
460
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
for (var i = scrollSpysLength; i--;) {
|
|
324
|
-
var $spy = $__default['default'](scrollSpys[i]);
|
|
325
|
-
|
|
326
|
-
ScrollSpy._jQueryInterface.call($spy, $spy.data());
|
|
327
|
-
}
|
|
461
|
+
EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
|
|
462
|
+
SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(function (spy) {
|
|
463
|
+
return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy));
|
|
464
|
+
});
|
|
328
465
|
});
|
|
329
466
|
/**
|
|
330
467
|
* ------------------------------------------------------------------------
|
|
331
468
|
* jQuery
|
|
332
469
|
* ------------------------------------------------------------------------
|
|
470
|
+
* add .ScrollSpy to jQuery only if jQuery is present
|
|
333
471
|
*/
|
|
334
472
|
|
|
335
|
-
|
|
336
|
-
$__default['default'].fn[NAME].Constructor = ScrollSpy;
|
|
337
|
-
|
|
338
|
-
$__default['default'].fn[NAME].noConflict = function () {
|
|
339
|
-
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
340
|
-
return ScrollSpy._jQueryInterface;
|
|
341
|
-
};
|
|
473
|
+
defineJQueryPlugin(NAME, ScrollSpy);
|
|
342
474
|
|
|
343
475
|
return ScrollSpy;
|
|
344
476
|
|