bootstrap 4.2.1 → 4.5.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
/**
|