bootstrap 4.3.1 → 4.5.0
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.
Potentially problematic release.
This version of bootstrap might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap/alert.js +26 -35
- data/assets/javascripts/bootstrap/button.js +93 -52
- data/assets/javascripts/bootstrap/carousel.js +122 -120
- data/assets/javascripts/bootstrap/collapse.js +75 -71
- data/assets/javascripts/bootstrap/dropdown.js +143 -140
- data/assets/javascripts/bootstrap/modal.js +165 -134
- data/assets/javascripts/bootstrap/popover.js +47 -39
- data/assets/javascripts/bootstrap/scrollspy.js +71 -71
- data/assets/javascripts/bootstrap/tab.js +51 -60
- data/assets/javascripts/bootstrap/toast.js +84 -72
- data/assets/javascripts/bootstrap/tooltip.js +141 -131
- data/assets/javascripts/bootstrap/util.js +28 -7
- data/assets/javascripts/bootstrap-sprockets.js +6 -6
- data/assets/javascripts/bootstrap.js +811 -826
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +3 -3
- data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
- data/assets/stylesheets/_bootstrap.scss +3 -3
- data/assets/stylesheets/bootstrap/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -1
- data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
- data/assets/stylesheets/bootstrap/_card.scss +28 -35
- data/assets/stylesheets/bootstrap/_carousel.scss +6 -6
- data/assets/stylesheets/bootstrap/_close.scss +2 -3
- data/assets/stylesheets/bootstrap/_code.scss +1 -1
- data/assets/stylesheets/bootstrap/_custom-forms.scss +24 -9
- data/assets/stylesheets/bootstrap/_dropdown.scss +5 -4
- data/assets/stylesheets/bootstrap/_forms.scss +26 -9
- data/assets/stylesheets/bootstrap/_functions.scss +60 -5
- data/assets/stylesheets/bootstrap/_grid.scss +33 -8
- data/assets/stylesheets/bootstrap/_images.scss +2 -2
- data/assets/stylesheets/bootstrap/_input-group.scss +1 -2
- data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
- data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
- data/assets/stylesheets/bootstrap/_modal.scss +28 -16
- data/assets/stylesheets/bootstrap/_nav.scss +4 -3
- data/assets/stylesheets/bootstrap/_navbar.scss +45 -15
- data/assets/stylesheets/bootstrap/_pagination.scss +3 -2
- data/assets/stylesheets/bootstrap/_popover.scss +8 -9
- data/assets/stylesheets/bootstrap/_print.scss +2 -2
- data/assets/stylesheets/bootstrap/_progress.scss +6 -2
- data/assets/stylesheets/bootstrap/_reboot.scss +24 -27
- data/assets/stylesheets/bootstrap/_root.scss +1 -0
- data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_type.scss +2 -2
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +46 -22
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +26 -13
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +11 -8
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +34 -49
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +30 -15
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -0
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +3 -4
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/network.rb +2 -2
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +11 -5
@@ -1,16 +1,16 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap popover.js v4.
|
3
|
-
* Copyright 2011-
|
2
|
+
* Bootstrap popover.js v4.5.0 (https://getbootstrap.com/)
|
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/master/LICENSE)
|
5
5
|
*/
|
6
6
|
(function (global, factory) {
|
7
7
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./tooltip.js')) :
|
8
8
|
typeof define === 'function' && define.amd ? define(['jquery', './tooltip.js'], factory) :
|
9
9
|
(global = global || self, global.Popover = factory(global.jQuery, global.Tooltip));
|
10
|
-
}(this, function ($, Tooltip) { 'use strict';
|
10
|
+
}(this, (function ($, Tooltip) { 'use strict';
|
11
11
|
|
12
|
-
$ = $ &&
|
13
|
-
Tooltip = Tooltip &&
|
12
|
+
$ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
|
13
|
+
Tooltip = Tooltip && Object.prototype.hasOwnProperty.call(Tooltip, 'default') ? Tooltip['default'] : Tooltip;
|
14
14
|
|
15
15
|
function _defineProperties(target, props) {
|
16
16
|
for (var i = 0; i < props.length; i++) {
|
@@ -43,20 +43,35 @@
|
|
43
43
|
return obj;
|
44
44
|
}
|
45
45
|
|
46
|
-
function
|
46
|
+
function ownKeys(object, enumerableOnly) {
|
47
|
+
var keys = Object.keys(object);
|
48
|
+
|
49
|
+
if (Object.getOwnPropertySymbols) {
|
50
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
51
|
+
if (enumerableOnly) symbols = symbols.filter(function (sym) {
|
52
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
53
|
+
});
|
54
|
+
keys.push.apply(keys, symbols);
|
55
|
+
}
|
56
|
+
|
57
|
+
return keys;
|
58
|
+
}
|
59
|
+
|
60
|
+
function _objectSpread2(target) {
|
47
61
|
for (var i = 1; i < arguments.length; i++) {
|
48
62
|
var source = arguments[i] != null ? arguments[i] : {};
|
49
|
-
var ownKeys = Object.keys(source);
|
50
63
|
|
51
|
-
if (
|
52
|
-
ownKeys
|
53
|
-
|
54
|
-
})
|
64
|
+
if (i % 2) {
|
65
|
+
ownKeys(Object(source), true).forEach(function (key) {
|
66
|
+
_defineProperty(target, key, source[key]);
|
67
|
+
});
|
68
|
+
} else if (Object.getOwnPropertyDescriptors) {
|
69
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
70
|
+
} else {
|
71
|
+
ownKeys(Object(source)).forEach(function (key) {
|
72
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
73
|
+
});
|
55
74
|
}
|
56
|
-
|
57
|
-
ownKeys.forEach(function (key) {
|
58
|
-
_defineProperty(target, key, source[key]);
|
59
|
-
});
|
60
75
|
}
|
61
76
|
|
62
77
|
return target;
|
@@ -75,32 +90,28 @@
|
|
75
90
|
*/
|
76
91
|
|
77
92
|
var NAME = 'popover';
|
78
|
-
var VERSION = '4.
|
93
|
+
var VERSION = '4.5.0';
|
79
94
|
var DATA_KEY = 'bs.popover';
|
80
95
|
var EVENT_KEY = "." + DATA_KEY;
|
81
96
|
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
82
97
|
var CLASS_PREFIX = 'bs-popover';
|
83
98
|
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
|
84
99
|
|
85
|
-
var Default =
|
100
|
+
var Default = _objectSpread2(_objectSpread2({}, Tooltip.Default), {}, {
|
86
101
|
placement: 'right',
|
87
102
|
trigger: 'click',
|
88
103
|
content: '',
|
89
104
|
template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
|
90
105
|
});
|
91
106
|
|
92
|
-
var DefaultType =
|
107
|
+
var DefaultType = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
|
93
108
|
content: '(string|element|function)'
|
94
109
|
});
|
95
110
|
|
96
|
-
var
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
var Selector = {
|
101
|
-
TITLE: '.popover-header',
|
102
|
-
CONTENT: '.popover-body'
|
103
|
-
};
|
111
|
+
var CLASS_NAME_FADE = 'fade';
|
112
|
+
var CLASS_NAME_SHOW = 'show';
|
113
|
+
var SELECTOR_TITLE = '.popover-header';
|
114
|
+
var SELECTOR_CONTENT = '.popover-body';
|
104
115
|
var Event = {
|
105
116
|
HIDE: "hide" + EVENT_KEY,
|
106
117
|
HIDDEN: "hidden" + EVENT_KEY,
|
@@ -112,17 +123,14 @@
|
|
112
123
|
FOCUSOUT: "focusout" + EVENT_KEY,
|
113
124
|
MOUSEENTER: "mouseenter" + EVENT_KEY,
|
114
125
|
MOUSELEAVE: "mouseleave" + EVENT_KEY
|
115
|
-
/**
|
116
|
-
* ------------------------------------------------------------------------
|
117
|
-
* Class Definition
|
118
|
-
* ------------------------------------------------------------------------
|
119
|
-
*/
|
120
|
-
|
121
126
|
};
|
127
|
+
/**
|
128
|
+
* ------------------------------------------------------------------------
|
129
|
+
* Class Definition
|
130
|
+
* ------------------------------------------------------------------------
|
131
|
+
*/
|
122
132
|
|
123
|
-
var Popover =
|
124
|
-
/*#__PURE__*/
|
125
|
-
function (_Tooltip) {
|
133
|
+
var Popover = /*#__PURE__*/function (_Tooltip) {
|
126
134
|
_inheritsLoose(Popover, _Tooltip);
|
127
135
|
|
128
136
|
function Popover() {
|
@@ -148,7 +156,7 @@
|
|
148
156
|
_proto.setContent = function setContent() {
|
149
157
|
var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
|
150
158
|
|
151
|
-
this.setElementContent($tip.find(
|
159
|
+
this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
|
152
160
|
|
153
161
|
var content = this._getContent();
|
154
162
|
|
@@ -156,8 +164,8 @@
|
|
156
164
|
content = content.call(this.element);
|
157
165
|
}
|
158
166
|
|
159
|
-
this.setElementContent($tip.find(
|
160
|
-
$tip.removeClass(
|
167
|
+
this.setElementContent($tip.find(SELECTOR_CONTENT), content);
|
168
|
+
$tip.removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW);
|
161
169
|
} // Private
|
162
170
|
;
|
163
171
|
|
@@ -257,4 +265,4 @@
|
|
257
265
|
|
258
266
|
return Popover;
|
259
267
|
|
260
|
-
}));
|
268
|
+
})));
|
@@ -1,16 +1,16 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap scrollspy.js v4.
|
3
|
-
* Copyright 2011-
|
2
|
+
* Bootstrap scrollspy.js v4.5.0 (https://getbootstrap.com/)
|
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/master/LICENSE)
|
5
5
|
*/
|
6
6
|
(function (global, factory) {
|
7
7
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
8
8
|
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
9
9
|
(global = global || self, global.ScrollSpy = factory(global.jQuery, global.Util));
|
10
|
-
}(this, function ($, Util) { 'use strict';
|
10
|
+
}(this, (function ($, Util) { 'use strict';
|
11
11
|
|
12
|
-
$ = $ &&
|
13
|
-
Util = Util &&
|
12
|
+
$ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
|
13
|
+
Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
|
14
14
|
|
15
15
|
function _defineProperties(target, props) {
|
16
16
|
for (var i = 0; i < props.length; i++) {
|
@@ -43,20 +43,35 @@
|
|
43
43
|
return obj;
|
44
44
|
}
|
45
45
|
|
46
|
-
function
|
46
|
+
function ownKeys(object, enumerableOnly) {
|
47
|
+
var keys = Object.keys(object);
|
48
|
+
|
49
|
+
if (Object.getOwnPropertySymbols) {
|
50
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
51
|
+
if (enumerableOnly) symbols = symbols.filter(function (sym) {
|
52
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
53
|
+
});
|
54
|
+
keys.push.apply(keys, symbols);
|
55
|
+
}
|
56
|
+
|
57
|
+
return keys;
|
58
|
+
}
|
59
|
+
|
60
|
+
function _objectSpread2(target) {
|
47
61
|
for (var i = 1; i < arguments.length; i++) {
|
48
62
|
var source = arguments[i] != null ? arguments[i] : {};
|
49
|
-
var ownKeys = Object.keys(source);
|
50
63
|
|
51
|
-
if (
|
52
|
-
ownKeys
|
53
|
-
|
54
|
-
})
|
64
|
+
if (i % 2) {
|
65
|
+
ownKeys(Object(source), true).forEach(function (key) {
|
66
|
+
_defineProperty(target, key, source[key]);
|
67
|
+
});
|
68
|
+
} else if (Object.getOwnPropertyDescriptors) {
|
69
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
70
|
+
} else {
|
71
|
+
ownKeys(Object(source)).forEach(function (key) {
|
72
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
73
|
+
});
|
55
74
|
}
|
56
|
-
|
57
|
-
ownKeys.forEach(function (key) {
|
58
|
-
_defineProperty(target, key, source[key]);
|
59
|
-
});
|
60
75
|
}
|
61
76
|
|
62
77
|
return target;
|
@@ -69,7 +84,7 @@
|
|
69
84
|
*/
|
70
85
|
|
71
86
|
var NAME = 'scrollspy';
|
72
|
-
var VERSION = '4.
|
87
|
+
var VERSION = '4.5.0';
|
73
88
|
var DATA_KEY = 'bs.scrollspy';
|
74
89
|
var EVENT_KEY = "." + DATA_KEY;
|
75
90
|
var DATA_API_KEY = '.data-api';
|
@@ -84,53 +99,40 @@
|
|
84
99
|
method: 'string',
|
85
100
|
target: '(string|element)'
|
86
101
|
};
|
87
|
-
var
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
var
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
var
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
};
|
108
|
-
var OffsetMethod = {
|
109
|
-
OFFSET: 'offset',
|
110
|
-
POSITION: 'position'
|
111
|
-
/**
|
112
|
-
* ------------------------------------------------------------------------
|
113
|
-
* Class Definition
|
114
|
-
* ------------------------------------------------------------------------
|
115
|
-
*/
|
116
|
-
|
117
|
-
};
|
102
|
+
var EVENT_ACTIVATE = "activate" + EVENT_KEY;
|
103
|
+
var EVENT_SCROLL = "scroll" + EVENT_KEY;
|
104
|
+
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
|
105
|
+
var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
|
106
|
+
var CLASS_NAME_ACTIVE = 'active';
|
107
|
+
var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
|
108
|
+
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
|
109
|
+
var SELECTOR_NAV_LINKS = '.nav-link';
|
110
|
+
var SELECTOR_NAV_ITEMS = '.nav-item';
|
111
|
+
var SELECTOR_LIST_ITEMS = '.list-group-item';
|
112
|
+
var SELECTOR_DROPDOWN = '.dropdown';
|
113
|
+
var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';
|
114
|
+
var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
|
115
|
+
var METHOD_OFFSET = 'offset';
|
116
|
+
var METHOD_POSITION = 'position';
|
117
|
+
/**
|
118
|
+
* ------------------------------------------------------------------------
|
119
|
+
* Class Definition
|
120
|
+
* ------------------------------------------------------------------------
|
121
|
+
*/
|
118
122
|
|
119
|
-
var ScrollSpy =
|
120
|
-
/*#__PURE__*/
|
121
|
-
function () {
|
123
|
+
var ScrollSpy = /*#__PURE__*/function () {
|
122
124
|
function ScrollSpy(element, config) {
|
123
125
|
var _this = this;
|
124
126
|
|
125
127
|
this._element = element;
|
126
128
|
this._scrollElement = element.tagName === 'BODY' ? window : element;
|
127
129
|
this._config = this._getConfig(config);
|
128
|
-
this._selector = this._config.target + " " +
|
130
|
+
this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " " + SELECTOR_DROPDOWN_ITEMS);
|
129
131
|
this._offsets = [];
|
130
132
|
this._targets = [];
|
131
133
|
this._activeTarget = null;
|
132
134
|
this._scrollHeight = 0;
|
133
|
-
$(this._scrollElement).on(
|
135
|
+
$(this._scrollElement).on(EVENT_SCROLL, function (event) {
|
134
136
|
return _this._process(event);
|
135
137
|
});
|
136
138
|
this.refresh();
|
@@ -145,9 +147,9 @@
|
|
145
147
|
_proto.refresh = function refresh() {
|
146
148
|
var _this2 = this;
|
147
149
|
|
148
|
-
var autoMethod = this._scrollElement === this._scrollElement.window ?
|
150
|
+
var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
|
149
151
|
var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
|
150
|
-
var offsetBase = offsetMethod ===
|
152
|
+
var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
|
151
153
|
this._offsets = [];
|
152
154
|
this._targets = [];
|
153
155
|
this._scrollHeight = this._getScrollHeight();
|
@@ -196,9 +198,9 @@
|
|
196
198
|
;
|
197
199
|
|
198
200
|
_proto._getConfig = function _getConfig(config) {
|
199
|
-
config =
|
201
|
+
config = _objectSpread2(_objectSpread2({}, Default), typeof config === 'object' && config ? config : {});
|
200
202
|
|
201
|
-
if (typeof config.target !== 'string') {
|
203
|
+
if (typeof config.target !== 'string' && Util.isElement(config.target)) {
|
202
204
|
var id = $(config.target).attr('id');
|
203
205
|
|
204
206
|
if (!id) {
|
@@ -254,9 +256,7 @@
|
|
254
256
|
return;
|
255
257
|
}
|
256
258
|
|
257
|
-
var
|
258
|
-
|
259
|
-
for (var i = offsetLength; i--;) {
|
259
|
+
for (var i = this._offsets.length; i--;) {
|
260
260
|
var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
|
261
261
|
|
262
262
|
if (isActiveTarget) {
|
@@ -276,29 +276,29 @@
|
|
276
276
|
|
277
277
|
var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
|
278
278
|
|
279
|
-
if ($link.hasClass(
|
280
|
-
$link.closest(
|
281
|
-
$link.addClass(
|
279
|
+
if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {
|
280
|
+
$link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE);
|
281
|
+
$link.addClass(CLASS_NAME_ACTIVE);
|
282
282
|
} else {
|
283
283
|
// Set triggered link as active
|
284
|
-
$link.addClass(
|
284
|
+
$link.addClass(CLASS_NAME_ACTIVE); // Set triggered links parents as active
|
285
285
|
// With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
|
286
286
|
|
287
|
-
$link.parents(
|
287
|
+
$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
|
288
288
|
|
289
|
-
$link.parents(
|
289
|
+
$link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE);
|
290
290
|
}
|
291
291
|
|
292
|
-
$(this._scrollElement).trigger(
|
292
|
+
$(this._scrollElement).trigger(EVENT_ACTIVATE, {
|
293
293
|
relatedTarget: target
|
294
294
|
});
|
295
295
|
};
|
296
296
|
|
297
297
|
_proto._clear = function _clear() {
|
298
298
|
[].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
|
299
|
-
return node.classList.contains(
|
299
|
+
return node.classList.contains(CLASS_NAME_ACTIVE);
|
300
300
|
}).forEach(function (node) {
|
301
|
-
return node.classList.remove(
|
301
|
+
return node.classList.remove(CLASS_NAME_ACTIVE);
|
302
302
|
});
|
303
303
|
} // Static
|
304
304
|
;
|
@@ -345,8 +345,8 @@
|
|
345
345
|
*/
|
346
346
|
|
347
347
|
|
348
|
-
$(window).on(
|
349
|
-
var scrollSpys = [].slice.call(document.querySelectorAll(
|
348
|
+
$(window).on(EVENT_LOAD_DATA_API, function () {
|
349
|
+
var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));
|
350
350
|
var scrollSpysLength = scrollSpys.length;
|
351
351
|
|
352
352
|
for (var i = scrollSpysLength; i--;) {
|
@@ -371,4 +371,4 @@
|
|
371
371
|
|
372
372
|
return ScrollSpy;
|
373
373
|
|
374
|
-
}));
|
374
|
+
})));
|
@@ -1,16 +1,16 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap tab.js v4.
|
3
|
-
* Copyright 2011-
|
2
|
+
* Bootstrap tab.js v4.5.0 (https://getbootstrap.com/)
|
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/master/LICENSE)
|
5
5
|
*/
|
6
6
|
(function (global, factory) {
|
7
7
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
8
8
|
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
9
9
|
(global = global || self, global.Tab = factory(global.jQuery, global.Util));
|
10
|
-
}(this, function ($, Util) { 'use strict';
|
10
|
+
}(this, (function ($, Util) { 'use strict';
|
11
11
|
|
12
|
-
$ = $ &&
|
13
|
-
Util = Util &&
|
12
|
+
$ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
|
13
|
+
Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
|
14
14
|
|
15
15
|
function _defineProperties(target, props) {
|
16
16
|
for (var i = 0; i < props.length; i++) {
|
@@ -35,44 +35,35 @@
|
|
35
35
|
*/
|
36
36
|
|
37
37
|
var NAME = 'tab';
|
38
|
-
var VERSION = '4.
|
38
|
+
var VERSION = '4.5.0';
|
39
39
|
var DATA_KEY = 'bs.tab';
|
40
40
|
var EVENT_KEY = "." + DATA_KEY;
|
41
41
|
var DATA_API_KEY = '.data-api';
|
42
42
|
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
43
|
-
var
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
var
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
var
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
/**
|
66
|
-
* ------------------------------------------------------------------------
|
67
|
-
* Class Definition
|
68
|
-
* ------------------------------------------------------------------------
|
69
|
-
*/
|
70
|
-
|
71
|
-
};
|
43
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
44
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
45
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
46
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
47
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
48
|
+
var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
|
49
|
+
var CLASS_NAME_ACTIVE = 'active';
|
50
|
+
var CLASS_NAME_DISABLED = 'disabled';
|
51
|
+
var CLASS_NAME_FADE = 'fade';
|
52
|
+
var CLASS_NAME_SHOW = 'show';
|
53
|
+
var SELECTOR_DROPDOWN = '.dropdown';
|
54
|
+
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
|
55
|
+
var SELECTOR_ACTIVE = '.active';
|
56
|
+
var SELECTOR_ACTIVE_UL = '> li > .active';
|
57
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
|
58
|
+
var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
|
59
|
+
var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';
|
60
|
+
/**
|
61
|
+
* ------------------------------------------------------------------------
|
62
|
+
* Class Definition
|
63
|
+
* ------------------------------------------------------------------------
|
64
|
+
*/
|
72
65
|
|
73
|
-
var Tab =
|
74
|
-
/*#__PURE__*/
|
75
|
-
function () {
|
66
|
+
var Tab = /*#__PURE__*/function () {
|
76
67
|
function Tab(element) {
|
77
68
|
this._element = element;
|
78
69
|
} // Getters
|
@@ -84,25 +75,25 @@
|
|
84
75
|
_proto.show = function show() {
|
85
76
|
var _this = this;
|
86
77
|
|
87
|
-
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(
|
78
|
+
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(CLASS_NAME_ACTIVE) || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
|
88
79
|
return;
|
89
80
|
}
|
90
81
|
|
91
82
|
var target;
|
92
83
|
var previous;
|
93
|
-
var listElement = $(this._element).closest(
|
84
|
+
var listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0];
|
94
85
|
var selector = Util.getSelectorFromElement(this._element);
|
95
86
|
|
96
87
|
if (listElement) {
|
97
|
-
var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ?
|
88
|
+
var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
|
98
89
|
previous = $.makeArray($(listElement).find(itemSelector));
|
99
90
|
previous = previous[previous.length - 1];
|
100
91
|
}
|
101
92
|
|
102
|
-
var hideEvent = $.Event(
|
93
|
+
var hideEvent = $.Event(EVENT_HIDE, {
|
103
94
|
relatedTarget: this._element
|
104
95
|
});
|
105
|
-
var showEvent = $.Event(
|
96
|
+
var showEvent = $.Event(EVENT_SHOW, {
|
106
97
|
relatedTarget: previous
|
107
98
|
});
|
108
99
|
|
@@ -123,10 +114,10 @@
|
|
123
114
|
this._activate(this._element, listElement);
|
124
115
|
|
125
116
|
var complete = function complete() {
|
126
|
-
var hiddenEvent = $.Event(
|
117
|
+
var hiddenEvent = $.Event(EVENT_HIDDEN, {
|
127
118
|
relatedTarget: _this._element
|
128
119
|
});
|
129
|
-
var shownEvent = $.Event(
|
120
|
+
var shownEvent = $.Event(EVENT_SHOWN, {
|
130
121
|
relatedTarget: previous
|
131
122
|
});
|
132
123
|
$(previous).trigger(hiddenEvent);
|
@@ -149,9 +140,9 @@
|
|
149
140
|
_proto._activate = function _activate(element, container, callback) {
|
150
141
|
var _this2 = this;
|
151
142
|
|
152
|
-
var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(
|
143
|
+
var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(SELECTOR_ACTIVE_UL) : $(container).children(SELECTOR_ACTIVE);
|
153
144
|
var active = activeElements[0];
|
154
|
-
var isTransitioning = callback && active && $(active).hasClass(
|
145
|
+
var isTransitioning = callback && active && $(active).hasClass(CLASS_NAME_FADE);
|
155
146
|
|
156
147
|
var complete = function complete() {
|
157
148
|
return _this2._transitionComplete(element, active, callback);
|
@@ -159,7 +150,7 @@
|
|
159
150
|
|
160
151
|
if (active && isTransitioning) {
|
161
152
|
var transitionDuration = Util.getTransitionDurationFromElement(active);
|
162
|
-
$(active).removeClass(
|
153
|
+
$(active).removeClass(CLASS_NAME_SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
163
154
|
} else {
|
164
155
|
complete();
|
165
156
|
}
|
@@ -167,11 +158,11 @@
|
|
167
158
|
|
168
159
|
_proto._transitionComplete = function _transitionComplete(element, active, callback) {
|
169
160
|
if (active) {
|
170
|
-
$(active).removeClass(
|
171
|
-
var dropdownChild = $(active.parentNode).find(
|
161
|
+
$(active).removeClass(CLASS_NAME_ACTIVE);
|
162
|
+
var dropdownChild = $(active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];
|
172
163
|
|
173
164
|
if (dropdownChild) {
|
174
|
-
$(dropdownChild).removeClass(
|
165
|
+
$(dropdownChild).removeClass(CLASS_NAME_ACTIVE);
|
175
166
|
}
|
176
167
|
|
177
168
|
if (active.getAttribute('role') === 'tab') {
|
@@ -179,7 +170,7 @@
|
|
179
170
|
}
|
180
171
|
}
|
181
172
|
|
182
|
-
$(element).addClass(
|
173
|
+
$(element).addClass(CLASS_NAME_ACTIVE);
|
183
174
|
|
184
175
|
if (element.getAttribute('role') === 'tab') {
|
185
176
|
element.setAttribute('aria-selected', true);
|
@@ -187,16 +178,16 @@
|
|
187
178
|
|
188
179
|
Util.reflow(element);
|
189
180
|
|
190
|
-
if (element.classList.contains(
|
191
|
-
element.classList.add(
|
181
|
+
if (element.classList.contains(CLASS_NAME_FADE)) {
|
182
|
+
element.classList.add(CLASS_NAME_SHOW);
|
192
183
|
}
|
193
184
|
|
194
|
-
if (element.parentNode && $(element.parentNode).hasClass(
|
195
|
-
var dropdownElement = $(element).closest(
|
185
|
+
if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {
|
186
|
+
var dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0];
|
196
187
|
|
197
188
|
if (dropdownElement) {
|
198
|
-
var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(
|
199
|
-
$(dropdownToggleList).addClass(
|
189
|
+
var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE));
|
190
|
+
$(dropdownToggleList).addClass(CLASS_NAME_ACTIVE);
|
200
191
|
}
|
201
192
|
|
202
193
|
element.setAttribute('aria-expanded', true);
|
@@ -244,7 +235,7 @@
|
|
244
235
|
*/
|
245
236
|
|
246
237
|
|
247
|
-
$(document).on(
|
238
|
+
$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
248
239
|
event.preventDefault();
|
249
240
|
|
250
241
|
Tab._jQueryInterface.call($(this), 'show');
|
@@ -265,4 +256,4 @@
|
|
265
256
|
|
266
257
|
return Tab;
|
267
258
|
|
268
|
-
}));
|
259
|
+
})));
|