bootstrap 4.2.1 → 4.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +7 -7
- data/assets/javascripts/bootstrap.js +1054 -893
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/javascripts/bootstrap/alert.js +35 -57
- data/assets/javascripts/bootstrap/button.js +95 -69
- data/assets/javascripts/bootstrap/carousel.js +109 -165
- data/assets/javascripts/bootstrap/collapse.js +58 -114
- data/assets/javascripts/bootstrap/dropdown.js +138 -191
- data/assets/javascripts/bootstrap/modal.js +170 -176
- data/assets/javascripts/bootstrap/popover.js +31 -87
- data/assets/javascripts/bootstrap/scrollspy.js +54 -114
- data/assets/javascripts/bootstrap/tab.js +62 -81
- data/assets/javascripts/bootstrap/toast.js +80 -117
- data/assets/javascripts/bootstrap/tooltip.js +269 -157
- data/assets/javascripts/bootstrap/util.js +34 -9
- data/assets/stylesheets/_bootstrap-grid.scss +4 -4
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
- data/assets/stylesheets/_bootstrap.scss +4 -4
- data/assets/stylesheets/bootstrap/_badge.scss +3 -2
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -1
- data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +13 -11
- data/assets/stylesheets/bootstrap/_card.scss +49 -73
- data/assets/stylesheets/bootstrap/_carousel.scss +7 -8
- data/assets/stylesheets/bootstrap/_close.scss +3 -7
- data/assets/stylesheets/bootstrap/_code.scss +6 -6
- data/assets/stylesheets/bootstrap/_custom-forms.scss +40 -24
- data/assets/stylesheets/bootstrap/_dropdown.scss +24 -23
- data/assets/stylesheets/bootstrap/_forms.scss +38 -25
- data/assets/stylesheets/bootstrap/_functions.scss +62 -7
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- data/assets/stylesheets/bootstrap/_images.scss +3 -3
- data/assets/stylesheets/bootstrap/_input-group.scss +4 -5
- data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +62 -29
- data/assets/stylesheets/bootstrap/_mixins.scss +9 -3
- data/assets/stylesheets/bootstrap/_modal.scss +65 -11
- data/assets/stylesheets/bootstrap/_nav.scss +6 -3
- data/assets/stylesheets/bootstrap/_navbar.scss +48 -23
- data/assets/stylesheets/bootstrap/_pagination.scss +3 -7
- data/assets/stylesheets/bootstrap/_popover.scss +54 -67
- data/assets/stylesheets/bootstrap/_print.scss +3 -3
- data/assets/stylesheets/bootstrap/_progress.scss +19 -6
- data/assets/stylesheets/bootstrap/_reboot.scss +51 -33
- data/assets/stylesheets/bootstrap/_root.scss +1 -0
- data/assets/stylesheets/bootstrap/_spinners.scss +3 -0
- data/assets/stylesheets/bootstrap/_tables.scss +6 -8
- data/assets/stylesheets/bootstrap/_toasts.scss +7 -4
- data/assets/stylesheets/bootstrap/_tooltip.scss +1 -1
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -2
- data/assets/stylesheets/bootstrap/_type.scss +17 -17
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -0
- data/assets/stylesheets/bootstrap/_variables.scss +168 -119
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +7 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +51 -10
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +14 -15
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +12 -12
- data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
- data/assets/stylesheets/bootstrap/mixins/_float.scss +6 -3
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +40 -60
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +29 -15
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +25 -7
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_image.scss +3 -3
- 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/_pagination.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +7 -4
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +1 -3
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +13 -1
- data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -18
- data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +8 -3
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +204 -0
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +1 -1
- 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 +14 -5
|
@@ -1,67 +1,22 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap collapse.js v4.2
|
|
3
|
-
* Copyright 2011-
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
2
|
+
* Bootstrap collapse.js v4.5.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/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
|
-
(global.Collapse = factory(global.jQuery,global.Util));
|
|
10
|
-
}(this, (function ($,Util) { 'use strict';
|
|
11
|
-
|
|
12
|
-
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
|
13
|
-
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
|
|
14
|
-
|
|
15
|
-
function _defineProperties(target, props) {
|
|
16
|
-
for (var i = 0; i < props.length; i++) {
|
|
17
|
-
var descriptor = props[i];
|
|
18
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
19
|
-
descriptor.configurable = true;
|
|
20
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
21
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
|
26
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
27
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
28
|
-
return Constructor;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function _defineProperty(obj, key, value) {
|
|
32
|
-
if (key in obj) {
|
|
33
|
-
Object.defineProperty(obj, key, {
|
|
34
|
-
value: value,
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true,
|
|
37
|
-
writable: true
|
|
38
|
-
});
|
|
39
|
-
} else {
|
|
40
|
-
obj[key] = value;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return obj;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function _objectSpread(target) {
|
|
47
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
48
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
49
|
-
var ownKeys = Object.keys(source);
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.jQuery, global.Util));
|
|
10
|
+
}(this, (function ($, Util) { 'use strict';
|
|
50
11
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
54
|
-
}));
|
|
55
|
-
}
|
|
12
|
+
$ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
|
|
13
|
+
Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
|
|
56
14
|
|
|
57
|
-
|
|
58
|
-
_defineProperty(target, key, source[key]);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
15
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
61
16
|
|
|
62
|
-
|
|
63
|
-
}
|
|
17
|
+
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); } }
|
|
64
18
|
|
|
19
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
65
20
|
/**
|
|
66
21
|
* ------------------------------------------------------------------------
|
|
67
22
|
* Constants
|
|
@@ -69,7 +24,7 @@
|
|
|
69
24
|
*/
|
|
70
25
|
|
|
71
26
|
var NAME = 'collapse';
|
|
72
|
-
var VERSION = '4.2
|
|
27
|
+
var VERSION = '4.5.2';
|
|
73
28
|
var DATA_KEY = 'bs.collapse';
|
|
74
29
|
var EVENT_KEY = "." + DATA_KEY;
|
|
75
30
|
var DATA_API_KEY = '.data-api';
|
|
@@ -82,43 +37,32 @@
|
|
|
82
37
|
toggle: 'boolean',
|
|
83
38
|
parent: '(string|element)'
|
|
84
39
|
};
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
ACTIVES: '.show, .collapsing',
|
|
104
|
-
DATA_TOGGLE: '[data-toggle="collapse"]'
|
|
105
|
-
/**
|
|
106
|
-
* ------------------------------------------------------------------------
|
|
107
|
-
* Class Definition
|
|
108
|
-
* ------------------------------------------------------------------------
|
|
109
|
-
*/
|
|
110
|
-
|
|
111
|
-
};
|
|
40
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
|
41
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
|
42
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
|
43
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
|
44
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
45
|
+
var CLASS_NAME_SHOW = 'show';
|
|
46
|
+
var CLASS_NAME_COLLAPSE = 'collapse';
|
|
47
|
+
var CLASS_NAME_COLLAPSING = 'collapsing';
|
|
48
|
+
var CLASS_NAME_COLLAPSED = 'collapsed';
|
|
49
|
+
var DIMENSION_WIDTH = 'width';
|
|
50
|
+
var DIMENSION_HEIGHT = 'height';
|
|
51
|
+
var SELECTOR_ACTIVES = '.show, .collapsing';
|
|
52
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
|
|
53
|
+
/**
|
|
54
|
+
* ------------------------------------------------------------------------
|
|
55
|
+
* Class Definition
|
|
56
|
+
* ------------------------------------------------------------------------
|
|
57
|
+
*/
|
|
112
58
|
|
|
113
|
-
var Collapse =
|
|
114
|
-
/*#__PURE__*/
|
|
115
|
-
function () {
|
|
59
|
+
var Collapse = /*#__PURE__*/function () {
|
|
116
60
|
function Collapse(element, config) {
|
|
117
61
|
this._isTransitioning = false;
|
|
118
62
|
this._element = element;
|
|
119
63
|
this._config = this._getConfig(config);
|
|
120
64
|
this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
|
|
121
|
-
var toggleList = [].slice.call(document.querySelectorAll(
|
|
65
|
+
var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
|
|
122
66
|
|
|
123
67
|
for (var i = 0, len = toggleList.length; i < len; i++) {
|
|
124
68
|
var elem = toggleList[i];
|
|
@@ -150,7 +94,7 @@
|
|
|
150
94
|
|
|
151
95
|
// Public
|
|
152
96
|
_proto.toggle = function toggle() {
|
|
153
|
-
if ($(this._element).hasClass(
|
|
97
|
+
if ($(this._element).hasClass(CLASS_NAME_SHOW)) {
|
|
154
98
|
this.hide();
|
|
155
99
|
} else {
|
|
156
100
|
this.show();
|
|
@@ -160,7 +104,7 @@
|
|
|
160
104
|
_proto.show = function show() {
|
|
161
105
|
var _this = this;
|
|
162
106
|
|
|
163
|
-
if (this._isTransitioning || $(this._element).hasClass(
|
|
107
|
+
if (this._isTransitioning || $(this._element).hasClass(CLASS_NAME_SHOW)) {
|
|
164
108
|
return;
|
|
165
109
|
}
|
|
166
110
|
|
|
@@ -168,12 +112,12 @@
|
|
|
168
112
|
var activesData;
|
|
169
113
|
|
|
170
114
|
if (this._parent) {
|
|
171
|
-
actives = [].slice.call(this._parent.querySelectorAll(
|
|
115
|
+
actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {
|
|
172
116
|
if (typeof _this._config.parent === 'string') {
|
|
173
117
|
return elem.getAttribute('data-parent') === _this._config.parent;
|
|
174
118
|
}
|
|
175
119
|
|
|
176
|
-
return elem.classList.contains(
|
|
120
|
+
return elem.classList.contains(CLASS_NAME_COLLAPSE);
|
|
177
121
|
});
|
|
178
122
|
|
|
179
123
|
if (actives.length === 0) {
|
|
@@ -189,7 +133,7 @@
|
|
|
189
133
|
}
|
|
190
134
|
}
|
|
191
135
|
|
|
192
|
-
var startEvent = $.Event(
|
|
136
|
+
var startEvent = $.Event(EVENT_SHOW);
|
|
193
137
|
$(this._element).trigger(startEvent);
|
|
194
138
|
|
|
195
139
|
if (startEvent.isDefaultPrevented()) {
|
|
@@ -206,22 +150,22 @@
|
|
|
206
150
|
|
|
207
151
|
var dimension = this._getDimension();
|
|
208
152
|
|
|
209
|
-
$(this._element).removeClass(
|
|
153
|
+
$(this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
|
|
210
154
|
this._element.style[dimension] = 0;
|
|
211
155
|
|
|
212
156
|
if (this._triggerArray.length) {
|
|
213
|
-
$(this._triggerArray).removeClass(
|
|
157
|
+
$(this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);
|
|
214
158
|
}
|
|
215
159
|
|
|
216
160
|
this.setTransitioning(true);
|
|
217
161
|
|
|
218
162
|
var complete = function complete() {
|
|
219
|
-
$(_this._element).removeClass(
|
|
163
|
+
$(_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
|
|
220
164
|
_this._element.style[dimension] = '';
|
|
221
165
|
|
|
222
166
|
_this.setTransitioning(false);
|
|
223
167
|
|
|
224
|
-
$(_this._element).trigger(
|
|
168
|
+
$(_this._element).trigger(EVENT_SHOWN);
|
|
225
169
|
};
|
|
226
170
|
|
|
227
171
|
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
|
@@ -234,11 +178,11 @@
|
|
|
234
178
|
_proto.hide = function hide() {
|
|
235
179
|
var _this2 = this;
|
|
236
180
|
|
|
237
|
-
if (this._isTransitioning || !$(this._element).hasClass(
|
|
181
|
+
if (this._isTransitioning || !$(this._element).hasClass(CLASS_NAME_SHOW)) {
|
|
238
182
|
return;
|
|
239
183
|
}
|
|
240
184
|
|
|
241
|
-
var startEvent = $.Event(
|
|
185
|
+
var startEvent = $.Event(EVENT_HIDE);
|
|
242
186
|
$(this._element).trigger(startEvent);
|
|
243
187
|
|
|
244
188
|
if (startEvent.isDefaultPrevented()) {
|
|
@@ -249,7 +193,7 @@
|
|
|
249
193
|
|
|
250
194
|
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
|
251
195
|
Util.reflow(this._element);
|
|
252
|
-
$(this._element).addClass(
|
|
196
|
+
$(this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
|
|
253
197
|
var triggerArrayLength = this._triggerArray.length;
|
|
254
198
|
|
|
255
199
|
if (triggerArrayLength > 0) {
|
|
@@ -260,8 +204,8 @@
|
|
|
260
204
|
if (selector !== null) {
|
|
261
205
|
var $elem = $([].slice.call(document.querySelectorAll(selector)));
|
|
262
206
|
|
|
263
|
-
if (!$elem.hasClass(
|
|
264
|
-
$(trigger).addClass(
|
|
207
|
+
if (!$elem.hasClass(CLASS_NAME_SHOW)) {
|
|
208
|
+
$(trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
|
|
265
209
|
}
|
|
266
210
|
}
|
|
267
211
|
}
|
|
@@ -272,7 +216,7 @@
|
|
|
272
216
|
var complete = function complete() {
|
|
273
217
|
_this2.setTransitioning(false);
|
|
274
218
|
|
|
275
|
-
$(_this2._element).removeClass(
|
|
219
|
+
$(_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);
|
|
276
220
|
};
|
|
277
221
|
|
|
278
222
|
this._element.style[dimension] = '';
|
|
@@ -291,11 +235,11 @@
|
|
|
291
235
|
this._element = null;
|
|
292
236
|
this._triggerArray = null;
|
|
293
237
|
this._isTransitioning = null;
|
|
294
|
-
}
|
|
295
|
-
|
|
238
|
+
} // Private
|
|
239
|
+
;
|
|
296
240
|
|
|
297
241
|
_proto._getConfig = function _getConfig(config) {
|
|
298
|
-
config =
|
|
242
|
+
config = _extends({}, Default, config);
|
|
299
243
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
|
300
244
|
|
|
301
245
|
Util.typeCheckConfig(NAME, config, DefaultType);
|
|
@@ -303,8 +247,8 @@
|
|
|
303
247
|
};
|
|
304
248
|
|
|
305
249
|
_proto._getDimension = function _getDimension() {
|
|
306
|
-
var hasWidth = $(this._element).hasClass(
|
|
307
|
-
return hasWidth ?
|
|
250
|
+
var hasWidth = $(this._element).hasClass(DIMENSION_WIDTH);
|
|
251
|
+
return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
|
|
308
252
|
};
|
|
309
253
|
|
|
310
254
|
_proto._getParent = function _getParent() {
|
|
@@ -331,13 +275,13 @@
|
|
|
331
275
|
};
|
|
332
276
|
|
|
333
277
|
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
|
334
|
-
var isOpen = $(element).hasClass(
|
|
278
|
+
var isOpen = $(element).hasClass(CLASS_NAME_SHOW);
|
|
335
279
|
|
|
336
280
|
if (triggerArray.length) {
|
|
337
|
-
$(triggerArray).toggleClass(
|
|
281
|
+
$(triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
|
338
282
|
}
|
|
339
|
-
}
|
|
340
|
-
|
|
283
|
+
} // Static
|
|
284
|
+
;
|
|
341
285
|
|
|
342
286
|
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
|
|
343
287
|
var selector = Util.getSelectorFromElement(element);
|
|
@@ -349,9 +293,9 @@
|
|
|
349
293
|
var $this = $(this);
|
|
350
294
|
var data = $this.data(DATA_KEY);
|
|
351
295
|
|
|
352
|
-
var _config =
|
|
296
|
+
var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
|
|
353
297
|
|
|
354
|
-
if (!data && _config.toggle && /show|hide/.test(config)) {
|
|
298
|
+
if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
|
|
355
299
|
_config.toggle = false;
|
|
356
300
|
}
|
|
357
301
|
|
|
@@ -391,7 +335,7 @@
|
|
|
391
335
|
*/
|
|
392
336
|
|
|
393
337
|
|
|
394
|
-
$(document).on(
|
|
338
|
+
$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
395
339
|
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
|
|
396
340
|
if (event.currentTarget.tagName === 'A') {
|
|
397
341
|
event.preventDefault();
|
|
@@ -1,68 +1,23 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap dropdown.js v4.2
|
|
3
|
-
* Copyright 2011-
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
2
|
+
* Bootstrap dropdown.js v4.5.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
7
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) :
|
|
8
8
|
typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util.js'], factory) :
|
|
9
|
-
(global.Dropdown = factory(global.jQuery,global.Popper,global.Util));
|
|
10
|
-
}(this, (function ($,Popper,Util) { 'use strict';
|
|
11
|
-
|
|
12
|
-
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
|
13
|
-
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
|
|
14
|
-
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
|
|
15
|
-
|
|
16
|
-
function _defineProperties(target, props) {
|
|
17
|
-
for (var i = 0; i < props.length; i++) {
|
|
18
|
-
var descriptor = props[i];
|
|
19
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
20
|
-
descriptor.configurable = true;
|
|
21
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
22
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
|
27
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
28
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
|
-
return Constructor;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function _defineProperty(obj, key, value) {
|
|
33
|
-
if (key in obj) {
|
|
34
|
-
Object.defineProperty(obj, key, {
|
|
35
|
-
value: value,
|
|
36
|
-
enumerable: true,
|
|
37
|
-
configurable: true,
|
|
38
|
-
writable: true
|
|
39
|
-
});
|
|
40
|
-
} else {
|
|
41
|
-
obj[key] = value;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return obj;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function _objectSpread(target) {
|
|
48
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
49
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
50
|
-
var ownKeys = Object.keys(source);
|
|
51
|
-
|
|
52
|
-
if (typeof Object.getOwnPropertySymbols === 'function') {
|
|
53
|
-
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
|
54
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
55
|
-
}));
|
|
56
|
-
}
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));
|
|
10
|
+
}(this, (function ($, Popper, Util) { 'use strict';
|
|
57
11
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
12
|
+
$ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
|
|
13
|
+
Popper = Popper && Object.prototype.hasOwnProperty.call(Popper, 'default') ? Popper['default'] : Popper;
|
|
14
|
+
Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
|
|
62
15
|
|
|
63
|
-
|
|
64
|
-
}
|
|
16
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
65
17
|
|
|
18
|
+
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); } }
|
|
19
|
+
|
|
20
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
66
21
|
/**
|
|
67
22
|
* ------------------------------------------------------------------------
|
|
68
23
|
* Constants
|
|
@@ -70,7 +25,7 @@
|
|
|
70
25
|
*/
|
|
71
26
|
|
|
72
27
|
var NAME = 'dropdown';
|
|
73
|
-
var VERSION = '4.2
|
|
28
|
+
var VERSION = '4.5.2';
|
|
74
29
|
var DATA_KEY = 'bs.dropdown';
|
|
75
30
|
var EVENT_KEY = "." + DATA_KEY;
|
|
76
31
|
var DATA_API_KEY = '.data-api';
|
|
@@ -88,67 +43,55 @@
|
|
|
88
43
|
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
|
89
44
|
|
|
90
45
|
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
var
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
var
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
};
|
|
118
|
-
var AttachmentMap = {
|
|
119
|
-
TOP: 'top-start',
|
|
120
|
-
TOPEND: 'top-end',
|
|
121
|
-
BOTTOM: 'bottom-start',
|
|
122
|
-
BOTTOMEND: 'bottom-end',
|
|
123
|
-
RIGHT: 'right-start',
|
|
124
|
-
RIGHTEND: 'right-end',
|
|
125
|
-
LEFT: 'left-start',
|
|
126
|
-
LEFTEND: 'left-end'
|
|
127
|
-
};
|
|
46
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
|
47
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
|
48
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
|
49
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
|
50
|
+
var EVENT_CLICK = "click" + EVENT_KEY;
|
|
51
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
52
|
+
var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY;
|
|
53
|
+
var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY;
|
|
54
|
+
var CLASS_NAME_DISABLED = 'disabled';
|
|
55
|
+
var CLASS_NAME_SHOW = 'show';
|
|
56
|
+
var CLASS_NAME_DROPUP = 'dropup';
|
|
57
|
+
var CLASS_NAME_DROPRIGHT = 'dropright';
|
|
58
|
+
var CLASS_NAME_DROPLEFT = 'dropleft';
|
|
59
|
+
var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
|
|
60
|
+
var CLASS_NAME_POSITION_STATIC = 'position-static';
|
|
61
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
|
|
62
|
+
var SELECTOR_FORM_CHILD = '.dropdown form';
|
|
63
|
+
var SELECTOR_MENU = '.dropdown-menu';
|
|
64
|
+
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
|
|
65
|
+
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
|
|
66
|
+
var PLACEMENT_TOP = 'top-start';
|
|
67
|
+
var PLACEMENT_TOPEND = 'top-end';
|
|
68
|
+
var PLACEMENT_BOTTOM = 'bottom-start';
|
|
69
|
+
var PLACEMENT_BOTTOMEND = 'bottom-end';
|
|
70
|
+
var PLACEMENT_RIGHT = 'right-start';
|
|
71
|
+
var PLACEMENT_LEFT = 'left-start';
|
|
128
72
|
var Default = {
|
|
129
73
|
offset: 0,
|
|
130
74
|
flip: true,
|
|
131
75
|
boundary: 'scrollParent',
|
|
132
76
|
reference: 'toggle',
|
|
133
|
-
display: 'dynamic'
|
|
77
|
+
display: 'dynamic',
|
|
78
|
+
popperConfig: null
|
|
134
79
|
};
|
|
135
80
|
var DefaultType = {
|
|
136
81
|
offset: '(number|string|function)',
|
|
137
82
|
flip: 'boolean',
|
|
138
83
|
boundary: '(string|element)',
|
|
139
84
|
reference: '(string|element)',
|
|
140
|
-
display: 'string'
|
|
141
|
-
|
|
142
|
-
* ------------------------------------------------------------------------
|
|
143
|
-
* Class Definition
|
|
144
|
-
* ------------------------------------------------------------------------
|
|
145
|
-
*/
|
|
146
|
-
|
|
85
|
+
display: 'string',
|
|
86
|
+
popperConfig: '(null|object)'
|
|
147
87
|
};
|
|
88
|
+
/**
|
|
89
|
+
* ------------------------------------------------------------------------
|
|
90
|
+
* Class Definition
|
|
91
|
+
* ------------------------------------------------------------------------
|
|
92
|
+
*/
|
|
148
93
|
|
|
149
|
-
var Dropdown =
|
|
150
|
-
/*#__PURE__*/
|
|
151
|
-
function () {
|
|
94
|
+
var Dropdown = /*#__PURE__*/function () {
|
|
152
95
|
function Dropdown(element, config) {
|
|
153
96
|
this._element = element;
|
|
154
97
|
this._popper = null;
|
|
@@ -164,13 +107,11 @@
|
|
|
164
107
|
|
|
165
108
|
// Public
|
|
166
109
|
_proto.toggle = function toggle() {
|
|
167
|
-
if (this._element.disabled || $(this._element).hasClass(
|
|
110
|
+
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
|
|
168
111
|
return;
|
|
169
112
|
}
|
|
170
113
|
|
|
171
|
-
var
|
|
172
|
-
|
|
173
|
-
var isActive = $(this._menu).hasClass(ClassName.SHOW);
|
|
114
|
+
var isActive = $(this._menu).hasClass(CLASS_NAME_SHOW);
|
|
174
115
|
|
|
175
116
|
Dropdown._clearMenus();
|
|
176
117
|
|
|
@@ -178,10 +119,25 @@
|
|
|
178
119
|
return;
|
|
179
120
|
}
|
|
180
121
|
|
|
122
|
+
this.show(true);
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
_proto.show = function show(usePopper) {
|
|
126
|
+
if (usePopper === void 0) {
|
|
127
|
+
usePopper = false;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
|
|
181
134
|
var relatedTarget = {
|
|
182
135
|
relatedTarget: this._element
|
|
183
136
|
};
|
|
184
|
-
var showEvent = $.Event(
|
|
137
|
+
var showEvent = $.Event(EVENT_SHOW, relatedTarget);
|
|
138
|
+
|
|
139
|
+
var parent = Dropdown._getParentFromElement(this._element);
|
|
140
|
+
|
|
185
141
|
$(parent).trigger(showEvent);
|
|
186
142
|
|
|
187
143
|
if (showEvent.isDefaultPrevented()) {
|
|
@@ -189,7 +145,7 @@
|
|
|
189
145
|
} // Disable totally Popper.js for Dropdown in Navbar
|
|
190
146
|
|
|
191
147
|
|
|
192
|
-
if (!this._inNavbar) {
|
|
148
|
+
if (!this._inNavbar && usePopper) {
|
|
193
149
|
/**
|
|
194
150
|
* Check for Popper dependency
|
|
195
151
|
* Popper - https://popper.js.org
|
|
@@ -214,7 +170,7 @@
|
|
|
214
170
|
|
|
215
171
|
|
|
216
172
|
if (this._config.boundary !== 'scrollParent') {
|
|
217
|
-
$(parent).addClass(
|
|
173
|
+
$(parent).addClass(CLASS_NAME_POSITION_STATIC);
|
|
218
174
|
}
|
|
219
175
|
|
|
220
176
|
this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
|
|
@@ -224,7 +180,7 @@
|
|
|
224
180
|
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
|
225
181
|
|
|
226
182
|
|
|
227
|
-
if ('ontouchstart' in document.documentElement && $(parent).closest(
|
|
183
|
+
if ('ontouchstart' in document.documentElement && $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
|
|
228
184
|
$(document.body).children().on('mouseover', null, $.noop);
|
|
229
185
|
}
|
|
230
186
|
|
|
@@ -232,41 +188,19 @@
|
|
|
232
188
|
|
|
233
189
|
this._element.setAttribute('aria-expanded', true);
|
|
234
190
|
|
|
235
|
-
$(this._menu).toggleClass(
|
|
236
|
-
$(parent).toggleClass(
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
_proto.show = function show() {
|
|
240
|
-
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
var relatedTarget = {
|
|
245
|
-
relatedTarget: this._element
|
|
246
|
-
};
|
|
247
|
-
var showEvent = $.Event(Event.SHOW, relatedTarget);
|
|
248
|
-
|
|
249
|
-
var parent = Dropdown._getParentFromElement(this._element);
|
|
250
|
-
|
|
251
|
-
$(parent).trigger(showEvent);
|
|
252
|
-
|
|
253
|
-
if (showEvent.isDefaultPrevented()) {
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
$(this._menu).toggleClass(ClassName.SHOW);
|
|
258
|
-
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
|
|
191
|
+
$(this._menu).toggleClass(CLASS_NAME_SHOW);
|
|
192
|
+
$(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_SHOWN, relatedTarget));
|
|
259
193
|
};
|
|
260
194
|
|
|
261
195
|
_proto.hide = function hide() {
|
|
262
|
-
if (this._element.disabled || $(this._element).hasClass(
|
|
196
|
+
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {
|
|
263
197
|
return;
|
|
264
198
|
}
|
|
265
199
|
|
|
266
200
|
var relatedTarget = {
|
|
267
201
|
relatedTarget: this._element
|
|
268
202
|
};
|
|
269
|
-
var hideEvent = $.Event(
|
|
203
|
+
var hideEvent = $.Event(EVENT_HIDE, relatedTarget);
|
|
270
204
|
|
|
271
205
|
var parent = Dropdown._getParentFromElement(this._element);
|
|
272
206
|
|
|
@@ -276,8 +210,12 @@
|
|
|
276
210
|
return;
|
|
277
211
|
}
|
|
278
212
|
|
|
279
|
-
|
|
280
|
-
|
|
213
|
+
if (this._popper) {
|
|
214
|
+
this._popper.destroy();
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
$(this._menu).toggleClass(CLASS_NAME_SHOW);
|
|
218
|
+
$(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget));
|
|
281
219
|
};
|
|
282
220
|
|
|
283
221
|
_proto.dispose = function dispose() {
|
|
@@ -299,13 +237,13 @@
|
|
|
299
237
|
if (this._popper !== null) {
|
|
300
238
|
this._popper.scheduleUpdate();
|
|
301
239
|
}
|
|
302
|
-
}
|
|
303
|
-
|
|
240
|
+
} // Private
|
|
241
|
+
;
|
|
304
242
|
|
|
305
243
|
_proto._addEventListeners = function _addEventListeners() {
|
|
306
244
|
var _this = this;
|
|
307
245
|
|
|
308
|
-
$(this._element).on(
|
|
246
|
+
$(this._element).on(EVENT_CLICK, function (event) {
|
|
309
247
|
event.preventDefault();
|
|
310
248
|
event.stopPropagation();
|
|
311
249
|
|
|
@@ -314,7 +252,7 @@
|
|
|
314
252
|
};
|
|
315
253
|
|
|
316
254
|
_proto._getConfig = function _getConfig(config) {
|
|
317
|
-
config =
|
|
255
|
+
config = _extends({}, this.constructor.Default, $(this._element).data(), config);
|
|
318
256
|
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
|
319
257
|
return config;
|
|
320
258
|
};
|
|
@@ -324,7 +262,7 @@
|
|
|
324
262
|
var parent = Dropdown._getParentFromElement(this._element);
|
|
325
263
|
|
|
326
264
|
if (parent) {
|
|
327
|
-
this._menu = parent.querySelector(
|
|
265
|
+
this._menu = parent.querySelector(SELECTOR_MENU);
|
|
328
266
|
}
|
|
329
267
|
}
|
|
330
268
|
|
|
@@ -333,20 +271,16 @@
|
|
|
333
271
|
|
|
334
272
|
_proto._getPlacement = function _getPlacement() {
|
|
335
273
|
var $parentDropdown = $(this._element.parentNode);
|
|
336
|
-
var placement =
|
|
337
|
-
|
|
338
|
-
if ($parentDropdown.hasClass(
|
|
339
|
-
placement =
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
} else if ($
|
|
345
|
-
placement =
|
|
346
|
-
} else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
|
|
347
|
-
placement = AttachmentMap.LEFT;
|
|
348
|
-
} else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
|
|
349
|
-
placement = AttachmentMap.BOTTOMEND;
|
|
274
|
+
var placement = PLACEMENT_BOTTOM; // Handle dropup
|
|
275
|
+
|
|
276
|
+
if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
|
|
277
|
+
placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
|
|
278
|
+
} else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
|
|
279
|
+
placement = PLACEMENT_RIGHT;
|
|
280
|
+
} else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
|
|
281
|
+
placement = PLACEMENT_LEFT;
|
|
282
|
+
} else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
|
|
283
|
+
placement = PLACEMENT_BOTTOMEND;
|
|
350
284
|
}
|
|
351
285
|
|
|
352
286
|
return placement;
|
|
@@ -356,33 +290,36 @@
|
|
|
356
290
|
return $(this._element).closest('.navbar').length > 0;
|
|
357
291
|
};
|
|
358
292
|
|
|
359
|
-
_proto.
|
|
293
|
+
_proto._getOffset = function _getOffset() {
|
|
360
294
|
var _this2 = this;
|
|
361
295
|
|
|
362
|
-
var
|
|
296
|
+
var offset = {};
|
|
363
297
|
|
|
364
298
|
if (typeof this._config.offset === 'function') {
|
|
365
|
-
|
|
366
|
-
data.offsets =
|
|
299
|
+
offset.fn = function (data) {
|
|
300
|
+
data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
|
|
367
301
|
return data;
|
|
368
302
|
};
|
|
369
303
|
} else {
|
|
370
|
-
|
|
304
|
+
offset.offset = this._config.offset;
|
|
371
305
|
}
|
|
372
306
|
|
|
307
|
+
return offset;
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
_proto._getPopperConfig = function _getPopperConfig() {
|
|
373
311
|
var popperConfig = {
|
|
374
312
|
placement: this._getPlacement(),
|
|
375
313
|
modifiers: {
|
|
376
|
-
offset:
|
|
314
|
+
offset: this._getOffset(),
|
|
377
315
|
flip: {
|
|
378
316
|
enabled: this._config.flip
|
|
379
317
|
},
|
|
380
318
|
preventOverflow: {
|
|
381
319
|
boundariesElement: this._config.boundary
|
|
382
320
|
}
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
};
|
|
321
|
+
}
|
|
322
|
+
}; // Disable Popper.js if we have a static display
|
|
386
323
|
|
|
387
324
|
if (this._config.display === 'static') {
|
|
388
325
|
popperConfig.modifiers.applyStyle = {
|
|
@@ -390,9 +327,9 @@
|
|
|
390
327
|
};
|
|
391
328
|
}
|
|
392
329
|
|
|
393
|
-
return popperConfig;
|
|
394
|
-
}
|
|
395
|
-
|
|
330
|
+
return _extends({}, popperConfig, this._config.popperConfig);
|
|
331
|
+
} // Static
|
|
332
|
+
;
|
|
396
333
|
|
|
397
334
|
Dropdown._jQueryInterface = function _jQueryInterface(config) {
|
|
398
335
|
return this.each(function () {
|
|
@@ -420,7 +357,7 @@
|
|
|
420
357
|
return;
|
|
421
358
|
}
|
|
422
359
|
|
|
423
|
-
var toggles = [].slice.call(document.querySelectorAll(
|
|
360
|
+
var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
|
|
424
361
|
|
|
425
362
|
for (var i = 0, len = toggles.length; i < len; i++) {
|
|
426
363
|
var parent = Dropdown._getParentFromElement(toggles[i]);
|
|
@@ -440,7 +377,7 @@
|
|
|
440
377
|
|
|
441
378
|
var dropdownMenu = context._menu;
|
|
442
379
|
|
|
443
|
-
if (!$(parent).hasClass(
|
|
380
|
+
if (!$(parent).hasClass(CLASS_NAME_SHOW)) {
|
|
444
381
|
continue;
|
|
445
382
|
}
|
|
446
383
|
|
|
@@ -448,7 +385,7 @@
|
|
|
448
385
|
continue;
|
|
449
386
|
}
|
|
450
387
|
|
|
451
|
-
var hideEvent = $.Event(
|
|
388
|
+
var hideEvent = $.Event(EVENT_HIDE, relatedTarget);
|
|
452
389
|
$(parent).trigger(hideEvent);
|
|
453
390
|
|
|
454
391
|
if (hideEvent.isDefaultPrevented()) {
|
|
@@ -462,8 +399,13 @@
|
|
|
462
399
|
}
|
|
463
400
|
|
|
464
401
|
toggles[i].setAttribute('aria-expanded', 'false');
|
|
465
|
-
|
|
466
|
-
|
|
402
|
+
|
|
403
|
+
if (context._popper) {
|
|
404
|
+
context._popper.destroy();
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
$(dropdownMenu).removeClass(CLASS_NAME_SHOW);
|
|
408
|
+
$(parent).removeClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget));
|
|
467
409
|
}
|
|
468
410
|
};
|
|
469
411
|
|
|
@@ -476,8 +418,8 @@
|
|
|
476
418
|
}
|
|
477
419
|
|
|
478
420
|
return parent || element.parentNode;
|
|
479
|
-
}
|
|
480
|
-
|
|
421
|
+
} // eslint-disable-next-line complexity
|
|
422
|
+
;
|
|
481
423
|
|
|
482
424
|
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
|
483
425
|
// If not input/textarea:
|
|
@@ -487,32 +429,37 @@
|
|
|
487
429
|
// - If key is other than escape
|
|
488
430
|
// - If key is not up or down => not a dropdown command
|
|
489
431
|
// - If trigger inside the menu => not a dropdown command
|
|
490
|
-
if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(
|
|
432
|
+
if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
|
|
491
433
|
return;
|
|
492
434
|
}
|
|
493
435
|
|
|
494
|
-
|
|
495
|
-
event.stopPropagation();
|
|
496
|
-
|
|
497
|
-
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
|
|
436
|
+
if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {
|
|
498
437
|
return;
|
|
499
438
|
}
|
|
500
439
|
|
|
501
440
|
var parent = Dropdown._getParentFromElement(this);
|
|
502
441
|
|
|
503
|
-
var isActive = $(parent).hasClass(
|
|
442
|
+
var isActive = $(parent).hasClass(CLASS_NAME_SHOW);
|
|
443
|
+
|
|
444
|
+
if (!isActive && event.which === ESCAPE_KEYCODE) {
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
event.preventDefault();
|
|
449
|
+
event.stopPropagation();
|
|
504
450
|
|
|
505
451
|
if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
|
506
452
|
if (event.which === ESCAPE_KEYCODE) {
|
|
507
|
-
|
|
508
|
-
$(toggle).trigger('focus');
|
|
453
|
+
$(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus');
|
|
509
454
|
}
|
|
510
455
|
|
|
511
456
|
$(this).trigger('click');
|
|
512
457
|
return;
|
|
513
458
|
}
|
|
514
459
|
|
|
515
|
-
var items = [].slice.call(parent.querySelectorAll(
|
|
460
|
+
var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
|
|
461
|
+
return $(item).is(':visible');
|
|
462
|
+
});
|
|
516
463
|
|
|
517
464
|
if (items.length === 0) {
|
|
518
465
|
return;
|
|
@@ -563,12 +510,12 @@
|
|
|
563
510
|
*/
|
|
564
511
|
|
|
565
512
|
|
|
566
|
-
$(document).on(
|
|
513
|
+
$(document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
567
514
|
event.preventDefault();
|
|
568
515
|
event.stopPropagation();
|
|
569
516
|
|
|
570
517
|
Dropdown._jQueryInterface.call($(this), 'toggle');
|
|
571
|
-
}).on(
|
|
518
|
+
}).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
|
|
572
519
|
e.stopPropagation();
|
|
573
520
|
});
|
|
574
521
|
/**
|