bootstrap 4.3.0 → 4.5.3
Sign up to get free protection for your applications and to get access to all the features.
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-sprockets.js +7 -7
- data/assets/javascripts/bootstrap.js +1186 -1056
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/javascripts/bootstrap/alert.js +45 -65
- data/assets/javascripts/bootstrap/button.js +114 -80
- data/assets/javascripts/bootstrap/carousel.js +131 -186
- data/assets/javascripts/bootstrap/collapse.js +86 -140
- data/assets/javascripts/bootstrap/dropdown.js +152 -207
- data/assets/javascripts/bootstrap/modal.js +204 -214
- data/assets/javascripts/bootstrap/popover.js +41 -95
- data/assets/javascripts/bootstrap/scrollspy.js +69 -127
- data/assets/javascripts/bootstrap/tab.js +75 -95
- data/assets/javascripts/bootstrap/toast.js +87 -127
- data/assets/javascripts/bootstrap/tooltip.js +298 -198
- data/assets/javascripts/bootstrap/util.js +41 -20
- 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/_alert.scss +1 -0
- 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 +42 -45
- 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 +34 -17
- data/assets/stylesheets/bootstrap/_dropdown.scss +6 -5
- data/assets/stylesheets/bootstrap/_forms.scss +26 -9
- data/assets/stylesheets/bootstrap/_functions.scss +63 -5
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- 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 +26 -15
- data/assets/stylesheets/bootstrap/_nav.scss +6 -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 +32 -31
- data/assets/stylesheets/bootstrap/_root.scss +1 -0
- data/assets/stylesheets/bootstrap/_spinners.scss +3 -2
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_toasts.scss +4 -2
- data/assets/stylesheets/bootstrap/_type.scss +2 -2
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +51 -32
- 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 +27 -14
- 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 +35 -49
- 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 +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 +4 -3
- 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 +18 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +4 -4
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +0 -8
- 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 +11 -5
@@ -1,67 +1,24 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap collapse.js v4.3
|
3
|
-
* Copyright 2011-
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
2
|
+
* Bootstrap collapse.js v4.5.3 (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 = global || self, 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
|
-
}
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.jQuery, global.Util));
|
10
|
+
}(this, (function ($, Util) { 'use strict';
|
45
11
|
|
46
|
-
function
|
47
|
-
for (var i = 1; i < arguments.length; i++) {
|
48
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
49
|
-
var ownKeys = Object.keys(source);
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
50
13
|
|
51
|
-
|
52
|
-
|
53
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
54
|
-
}));
|
55
|
-
}
|
14
|
+
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
|
15
|
+
var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
|
56
16
|
|
57
|
-
|
58
|
-
_defineProperty(target, key, source[key]);
|
59
|
-
});
|
60
|
-
}
|
17
|
+
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
18
|
|
62
|
-
|
63
|
-
}
|
19
|
+
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
20
|
|
21
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
65
22
|
/**
|
66
23
|
* ------------------------------------------------------------------------
|
67
24
|
* Constants
|
@@ -69,11 +26,11 @@
|
|
69
26
|
*/
|
70
27
|
|
71
28
|
var NAME = 'collapse';
|
72
|
-
var VERSION = '4.3
|
29
|
+
var VERSION = '4.5.3';
|
73
30
|
var DATA_KEY = 'bs.collapse';
|
74
31
|
var EVENT_KEY = "." + DATA_KEY;
|
75
32
|
var DATA_API_KEY = '.data-api';
|
76
|
-
var JQUERY_NO_CONFLICT =
|
33
|
+
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
|
77
34
|
var Default = {
|
78
35
|
toggle: true,
|
79
36
|
parent: ''
|
@@ -82,47 +39,36 @@
|
|
82
39
|
toggle: 'boolean',
|
83
40
|
parent: '(string|element)'
|
84
41
|
};
|
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
|
-
};
|
42
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
43
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
44
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
45
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
46
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
47
|
+
var CLASS_NAME_SHOW = 'show';
|
48
|
+
var CLASS_NAME_COLLAPSE = 'collapse';
|
49
|
+
var CLASS_NAME_COLLAPSING = 'collapsing';
|
50
|
+
var CLASS_NAME_COLLAPSED = 'collapsed';
|
51
|
+
var DIMENSION_WIDTH = 'width';
|
52
|
+
var DIMENSION_HEIGHT = 'height';
|
53
|
+
var SELECTOR_ACTIVES = '.show, .collapsing';
|
54
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
|
55
|
+
/**
|
56
|
+
* ------------------------------------------------------------------------
|
57
|
+
* Class Definition
|
58
|
+
* ------------------------------------------------------------------------
|
59
|
+
*/
|
112
60
|
|
113
|
-
var Collapse =
|
114
|
-
/*#__PURE__*/
|
115
|
-
function () {
|
61
|
+
var Collapse = /*#__PURE__*/function () {
|
116
62
|
function Collapse(element, config) {
|
117
63
|
this._isTransitioning = false;
|
118
64
|
this._element = element;
|
119
65
|
this._config = this._getConfig(config);
|
120
66
|
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(
|
67
|
+
var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
|
122
68
|
|
123
69
|
for (var i = 0, len = toggleList.length; i < len; i++) {
|
124
70
|
var elem = toggleList[i];
|
125
|
-
var selector =
|
71
|
+
var selector = Util__default['default'].getSelectorFromElement(elem);
|
126
72
|
var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
|
127
73
|
return foundElem === element;
|
128
74
|
});
|
@@ -150,7 +96,7 @@
|
|
150
96
|
|
151
97
|
// Public
|
152
98
|
_proto.toggle = function toggle() {
|
153
|
-
if ($(this._element).hasClass(
|
99
|
+
if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {
|
154
100
|
this.hide();
|
155
101
|
} else {
|
156
102
|
this.show();
|
@@ -160,7 +106,7 @@
|
|
160
106
|
_proto.show = function show() {
|
161
107
|
var _this = this;
|
162
108
|
|
163
|
-
if (this._isTransitioning || $(this._element).hasClass(
|
109
|
+
if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {
|
164
110
|
return;
|
165
111
|
}
|
166
112
|
|
@@ -168,12 +114,12 @@
|
|
168
114
|
var activesData;
|
169
115
|
|
170
116
|
if (this._parent) {
|
171
|
-
actives = [].slice.call(this._parent.querySelectorAll(
|
117
|
+
actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {
|
172
118
|
if (typeof _this._config.parent === 'string') {
|
173
119
|
return elem.getAttribute('data-parent') === _this._config.parent;
|
174
120
|
}
|
175
121
|
|
176
|
-
return elem.classList.contains(
|
122
|
+
return elem.classList.contains(CLASS_NAME_COLLAPSE);
|
177
123
|
});
|
178
124
|
|
179
125
|
if (actives.length === 0) {
|
@@ -182,64 +128,64 @@
|
|
182
128
|
}
|
183
129
|
|
184
130
|
if (actives) {
|
185
|
-
activesData = $(actives).not(this._selector).data(DATA_KEY);
|
131
|
+
activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY);
|
186
132
|
|
187
133
|
if (activesData && activesData._isTransitioning) {
|
188
134
|
return;
|
189
135
|
}
|
190
136
|
}
|
191
137
|
|
192
|
-
var startEvent =
|
193
|
-
$(this._element).trigger(startEvent);
|
138
|
+
var startEvent = $__default['default'].Event(EVENT_SHOW);
|
139
|
+
$__default['default'](this._element).trigger(startEvent);
|
194
140
|
|
195
141
|
if (startEvent.isDefaultPrevented()) {
|
196
142
|
return;
|
197
143
|
}
|
198
144
|
|
199
145
|
if (actives) {
|
200
|
-
Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');
|
146
|
+
Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');
|
201
147
|
|
202
148
|
if (!activesData) {
|
203
|
-
$(actives).data(DATA_KEY, null);
|
149
|
+
$__default['default'](actives).data(DATA_KEY, null);
|
204
150
|
}
|
205
151
|
}
|
206
152
|
|
207
153
|
var dimension = this._getDimension();
|
208
154
|
|
209
|
-
$(this._element).removeClass(
|
155
|
+
$__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
|
210
156
|
this._element.style[dimension] = 0;
|
211
157
|
|
212
158
|
if (this._triggerArray.length) {
|
213
|
-
$(this._triggerArray).removeClass(
|
159
|
+
$__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);
|
214
160
|
}
|
215
161
|
|
216
162
|
this.setTransitioning(true);
|
217
163
|
|
218
164
|
var complete = function complete() {
|
219
|
-
$(_this._element).removeClass(
|
165
|
+
$__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
|
220
166
|
_this._element.style[dimension] = '';
|
221
167
|
|
222
168
|
_this.setTransitioning(false);
|
223
169
|
|
224
|
-
$(_this._element).trigger(
|
170
|
+
$__default['default'](_this._element).trigger(EVENT_SHOWN);
|
225
171
|
};
|
226
172
|
|
227
173
|
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
228
174
|
var scrollSize = "scroll" + capitalizedDimension;
|
229
|
-
var transitionDuration =
|
230
|
-
$(this._element).one(
|
175
|
+
var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);
|
176
|
+
$__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
231
177
|
this._element.style[dimension] = this._element[scrollSize] + "px";
|
232
178
|
};
|
233
179
|
|
234
180
|
_proto.hide = function hide() {
|
235
181
|
var _this2 = this;
|
236
182
|
|
237
|
-
if (this._isTransitioning || !$(this._element).hasClass(
|
183
|
+
if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {
|
238
184
|
return;
|
239
185
|
}
|
240
186
|
|
241
|
-
var startEvent =
|
242
|
-
$(this._element).trigger(startEvent);
|
187
|
+
var startEvent = $__default['default'].Event(EVENT_HIDE);
|
188
|
+
$__default['default'](this._element).trigger(startEvent);
|
243
189
|
|
244
190
|
if (startEvent.isDefaultPrevented()) {
|
245
191
|
return;
|
@@ -248,20 +194,20 @@
|
|
248
194
|
var dimension = this._getDimension();
|
249
195
|
|
250
196
|
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
251
|
-
|
252
|
-
$(this._element).addClass(
|
197
|
+
Util__default['default'].reflow(this._element);
|
198
|
+
$__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
|
253
199
|
var triggerArrayLength = this._triggerArray.length;
|
254
200
|
|
255
201
|
if (triggerArrayLength > 0) {
|
256
202
|
for (var i = 0; i < triggerArrayLength; i++) {
|
257
203
|
var trigger = this._triggerArray[i];
|
258
|
-
var selector =
|
204
|
+
var selector = Util__default['default'].getSelectorFromElement(trigger);
|
259
205
|
|
260
206
|
if (selector !== null) {
|
261
|
-
var $elem = $([].slice.call(document.querySelectorAll(selector)));
|
207
|
+
var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));
|
262
208
|
|
263
|
-
if (!$elem.hasClass(
|
264
|
-
$(trigger).addClass(
|
209
|
+
if (!$elem.hasClass(CLASS_NAME_SHOW)) {
|
210
|
+
$__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
|
265
211
|
}
|
266
212
|
}
|
267
213
|
}
|
@@ -272,12 +218,12 @@
|
|
272
218
|
var complete = function complete() {
|
273
219
|
_this2.setTransitioning(false);
|
274
220
|
|
275
|
-
$(_this2._element).removeClass(
|
221
|
+
$__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);
|
276
222
|
};
|
277
223
|
|
278
224
|
this._element.style[dimension] = '';
|
279
|
-
var transitionDuration =
|
280
|
-
$(this._element).one(
|
225
|
+
var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);
|
226
|
+
$__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
281
227
|
};
|
282
228
|
|
283
229
|
_proto.setTransitioning = function setTransitioning(isTransitioning) {
|
@@ -285,7 +231,7 @@
|
|
285
231
|
};
|
286
232
|
|
287
233
|
_proto.dispose = function dispose() {
|
288
|
-
|
234
|
+
$__default['default'].removeData(this._element, DATA_KEY);
|
289
235
|
this._config = null;
|
290
236
|
this._parent = null;
|
291
237
|
this._element = null;
|
@@ -295,16 +241,16 @@
|
|
295
241
|
;
|
296
242
|
|
297
243
|
_proto._getConfig = function _getConfig(config) {
|
298
|
-
config =
|
244
|
+
config = _extends({}, Default, config);
|
299
245
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
300
246
|
|
301
|
-
|
247
|
+
Util__default['default'].typeCheckConfig(NAME, config, DefaultType);
|
302
248
|
return config;
|
303
249
|
};
|
304
250
|
|
305
251
|
_proto._getDimension = function _getDimension() {
|
306
|
-
var hasWidth = $(this._element).hasClass(
|
307
|
-
return hasWidth ?
|
252
|
+
var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);
|
253
|
+
return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
|
308
254
|
};
|
309
255
|
|
310
256
|
_proto._getParent = function _getParent() {
|
@@ -312,7 +258,7 @@
|
|
312
258
|
|
313
259
|
var parent;
|
314
260
|
|
315
|
-
if (
|
261
|
+
if (Util__default['default'].isElement(this._config.parent)) {
|
316
262
|
parent = this._config.parent; // It's a jQuery object
|
317
263
|
|
318
264
|
if (typeof this._config.parent.jquery !== 'undefined') {
|
@@ -324,40 +270,40 @@
|
|
324
270
|
|
325
271
|
var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
|
326
272
|
var children = [].slice.call(parent.querySelectorAll(selector));
|
327
|
-
$(children).each(function (i, element) {
|
273
|
+
$__default['default'](children).each(function (i, element) {
|
328
274
|
_this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
|
329
275
|
});
|
330
276
|
return parent;
|
331
277
|
};
|
332
278
|
|
333
279
|
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
334
|
-
var isOpen = $(element).hasClass(
|
280
|
+
var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW);
|
335
281
|
|
336
282
|
if (triggerArray.length) {
|
337
|
-
$(triggerArray).toggleClass(
|
283
|
+
$__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
338
284
|
}
|
339
285
|
} // Static
|
340
286
|
;
|
341
287
|
|
342
288
|
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
|
343
|
-
var selector =
|
289
|
+
var selector = Util__default['default'].getSelectorFromElement(element);
|
344
290
|
return selector ? document.querySelector(selector) : null;
|
345
291
|
};
|
346
292
|
|
347
293
|
Collapse._jQueryInterface = function _jQueryInterface(config) {
|
348
294
|
return this.each(function () {
|
349
|
-
var $
|
350
|
-
var data = $
|
295
|
+
var $element = $__default['default'](this);
|
296
|
+
var data = $element.data(DATA_KEY);
|
351
297
|
|
352
|
-
var _config =
|
298
|
+
var _config = _extends({}, Default, $element.data(), typeof config === 'object' && config ? config : {});
|
353
299
|
|
354
|
-
if (!data && _config.toggle && /show|hide/.test(config)) {
|
300
|
+
if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
|
355
301
|
_config.toggle = false;
|
356
302
|
}
|
357
303
|
|
358
304
|
if (!data) {
|
359
305
|
data = new Collapse(this, _config);
|
360
|
-
$
|
306
|
+
$element.data(DATA_KEY, data);
|
361
307
|
}
|
362
308
|
|
363
309
|
if (typeof config === 'string') {
|
@@ -391,17 +337,17 @@
|
|
391
337
|
*/
|
392
338
|
|
393
339
|
|
394
|
-
$(document).on(
|
340
|
+
$__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
395
341
|
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
|
396
342
|
if (event.currentTarget.tagName === 'A') {
|
397
343
|
event.preventDefault();
|
398
344
|
}
|
399
345
|
|
400
|
-
var $trigger = $(this);
|
401
|
-
var selector =
|
346
|
+
var $trigger = $__default['default'](this);
|
347
|
+
var selector = Util__default['default'].getSelectorFromElement(this);
|
402
348
|
var selectors = [].slice.call(document.querySelectorAll(selector));
|
403
|
-
$(selectors).each(function () {
|
404
|
-
var $target = $(this);
|
349
|
+
$__default['default'](selectors).each(function () {
|
350
|
+
var $target = $__default['default'](this);
|
405
351
|
var data = $target.data(DATA_KEY);
|
406
352
|
var config = data ? 'toggle' : $trigger.data();
|
407
353
|
|
@@ -414,14 +360,14 @@
|
|
414
360
|
* ------------------------------------------------------------------------
|
415
361
|
*/
|
416
362
|
|
417
|
-
|
418
|
-
|
363
|
+
$__default['default'].fn[NAME] = Collapse._jQueryInterface;
|
364
|
+
$__default['default'].fn[NAME].Constructor = Collapse;
|
419
365
|
|
420
|
-
|
421
|
-
|
366
|
+
$__default['default'].fn[NAME].noConflict = function () {
|
367
|
+
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
422
368
|
return Collapse._jQueryInterface;
|
423
369
|
};
|
424
370
|
|
425
371
|
return Collapse;
|
426
372
|
|
427
|
-
}));
|
373
|
+
})));
|
@@ -1,68 +1,25 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap dropdown.js v4.3
|
3
|
-
* Copyright 2011-
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
2
|
+
* Bootstrap dropdown.js v4.5.3 (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 = global || self, 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
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
13
|
+
|
14
|
+
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
|
15
|
+
var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
|
16
|
+
var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
|
62
17
|
|
63
|
-
|
64
|
-
}
|
18
|
+
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
19
|
|
20
|
+
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); } }
|
21
|
+
|
22
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
66
23
|
/**
|
67
24
|
* ------------------------------------------------------------------------
|
68
25
|
* Constants
|
@@ -70,11 +27,11 @@
|
|
70
27
|
*/
|
71
28
|
|
72
29
|
var NAME = 'dropdown';
|
73
|
-
var VERSION = '4.3
|
30
|
+
var VERSION = '4.5.3';
|
74
31
|
var DATA_KEY = 'bs.dropdown';
|
75
32
|
var EVENT_KEY = "." + DATA_KEY;
|
76
33
|
var DATA_API_KEY = '.data-api';
|
77
|
-
var JQUERY_NO_CONFLICT =
|
34
|
+
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
|
78
35
|
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
|
79
36
|
|
80
37
|
var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
|
@@ -88,67 +45,55 @@
|
|
88
45
|
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
89
46
|
|
90
47
|
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
|
-
};
|
48
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
49
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
50
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
51
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
52
|
+
var EVENT_CLICK = "click" + EVENT_KEY;
|
53
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
54
|
+
var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY;
|
55
|
+
var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY;
|
56
|
+
var CLASS_NAME_DISABLED = 'disabled';
|
57
|
+
var CLASS_NAME_SHOW = 'show';
|
58
|
+
var CLASS_NAME_DROPUP = 'dropup';
|
59
|
+
var CLASS_NAME_DROPRIGHT = 'dropright';
|
60
|
+
var CLASS_NAME_DROPLEFT = 'dropleft';
|
61
|
+
var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
|
62
|
+
var CLASS_NAME_POSITION_STATIC = 'position-static';
|
63
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
|
64
|
+
var SELECTOR_FORM_CHILD = '.dropdown form';
|
65
|
+
var SELECTOR_MENU = '.dropdown-menu';
|
66
|
+
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
|
67
|
+
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
|
68
|
+
var PLACEMENT_TOP = 'top-start';
|
69
|
+
var PLACEMENT_TOPEND = 'top-end';
|
70
|
+
var PLACEMENT_BOTTOM = 'bottom-start';
|
71
|
+
var PLACEMENT_BOTTOMEND = 'bottom-end';
|
72
|
+
var PLACEMENT_RIGHT = 'right-start';
|
73
|
+
var PLACEMENT_LEFT = 'left-start';
|
128
74
|
var Default = {
|
129
75
|
offset: 0,
|
130
76
|
flip: true,
|
131
77
|
boundary: 'scrollParent',
|
132
78
|
reference: 'toggle',
|
133
|
-
display: 'dynamic'
|
79
|
+
display: 'dynamic',
|
80
|
+
popperConfig: null
|
134
81
|
};
|
135
82
|
var DefaultType = {
|
136
83
|
offset: '(number|string|function)',
|
137
84
|
flip: 'boolean',
|
138
85
|
boundary: '(string|element)',
|
139
86
|
reference: '(string|element)',
|
140
|
-
display: 'string'
|
141
|
-
|
142
|
-
* ------------------------------------------------------------------------
|
143
|
-
* Class Definition
|
144
|
-
* ------------------------------------------------------------------------
|
145
|
-
*/
|
146
|
-
|
87
|
+
display: 'string',
|
88
|
+
popperConfig: '(null|object)'
|
147
89
|
};
|
90
|
+
/**
|
91
|
+
* ------------------------------------------------------------------------
|
92
|
+
* Class Definition
|
93
|
+
* ------------------------------------------------------------------------
|
94
|
+
*/
|
148
95
|
|
149
|
-
var Dropdown =
|
150
|
-
/*#__PURE__*/
|
151
|
-
function () {
|
96
|
+
var Dropdown = /*#__PURE__*/function () {
|
152
97
|
function Dropdown(element, config) {
|
153
98
|
this._element = element;
|
154
99
|
this._popper = null;
|
@@ -164,13 +109,11 @@
|
|
164
109
|
|
165
110
|
// Public
|
166
111
|
_proto.toggle = function toggle() {
|
167
|
-
if (this._element.disabled || $(this._element).hasClass(
|
112
|
+
if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {
|
168
113
|
return;
|
169
114
|
}
|
170
115
|
|
171
|
-
var
|
172
|
-
|
173
|
-
var isActive = $(this._menu).hasClass(ClassName.SHOW);
|
116
|
+
var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW);
|
174
117
|
|
175
118
|
Dropdown._clearMenus();
|
176
119
|
|
@@ -178,23 +121,38 @@
|
|
178
121
|
return;
|
179
122
|
}
|
180
123
|
|
124
|
+
this.show(true);
|
125
|
+
};
|
126
|
+
|
127
|
+
_proto.show = function show(usePopper) {
|
128
|
+
if (usePopper === void 0) {
|
129
|
+
usePopper = false;
|
130
|
+
}
|
131
|
+
|
132
|
+
if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) {
|
133
|
+
return;
|
134
|
+
}
|
135
|
+
|
181
136
|
var relatedTarget = {
|
182
137
|
relatedTarget: this._element
|
183
138
|
};
|
184
|
-
var showEvent =
|
185
|
-
|
139
|
+
var showEvent = $__default['default'].Event(EVENT_SHOW, relatedTarget);
|
140
|
+
|
141
|
+
var parent = Dropdown._getParentFromElement(this._element);
|
142
|
+
|
143
|
+
$__default['default'](parent).trigger(showEvent);
|
186
144
|
|
187
145
|
if (showEvent.isDefaultPrevented()) {
|
188
146
|
return;
|
189
147
|
} // Disable totally Popper.js for Dropdown in Navbar
|
190
148
|
|
191
149
|
|
192
|
-
if (!this._inNavbar) {
|
150
|
+
if (!this._inNavbar && usePopper) {
|
193
151
|
/**
|
194
152
|
* Check for Popper dependency
|
195
153
|
* Popper - https://popper.js.org
|
196
154
|
*/
|
197
|
-
if (typeof
|
155
|
+
if (typeof Popper__default['default'] === 'undefined') {
|
198
156
|
throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)');
|
199
157
|
}
|
200
158
|
|
@@ -202,7 +160,7 @@
|
|
202
160
|
|
203
161
|
if (this._config.reference === 'parent') {
|
204
162
|
referenceElement = parent;
|
205
|
-
} else if (
|
163
|
+
} else if (Util__default['default'].isElement(this._config.reference)) {
|
206
164
|
referenceElement = this._config.reference; // Check if it's jQuery element
|
207
165
|
|
208
166
|
if (typeof this._config.reference.jquery !== 'undefined') {
|
@@ -214,75 +172,57 @@
|
|
214
172
|
|
215
173
|
|
216
174
|
if (this._config.boundary !== 'scrollParent') {
|
217
|
-
$(parent).addClass(
|
175
|
+
$__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);
|
218
176
|
}
|
219
177
|
|
220
|
-
this._popper = new
|
178
|
+
this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());
|
221
179
|
} // If this is a touch-enabled device we add extra
|
222
180
|
// empty mouseover listeners to the body's immediate children;
|
223
181
|
// only needed because of broken event delegation on iOS
|
224
182
|
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
225
183
|
|
226
184
|
|
227
|
-
if ('ontouchstart' in document.documentElement && $(parent).closest(
|
228
|
-
$(document.body).children().on('mouseover', null,
|
185
|
+
if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
|
186
|
+
$__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);
|
229
187
|
}
|
230
188
|
|
231
189
|
this._element.focus();
|
232
190
|
|
233
191
|
this._element.setAttribute('aria-expanded', true);
|
234
192
|
|
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));
|
193
|
+
$__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW);
|
194
|
+
$__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_SHOWN, relatedTarget));
|
259
195
|
};
|
260
196
|
|
261
197
|
_proto.hide = function hide() {
|
262
|
-
if (this._element.disabled || $(this._element).hasClass(
|
198
|
+
if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) {
|
263
199
|
return;
|
264
200
|
}
|
265
201
|
|
266
202
|
var relatedTarget = {
|
267
203
|
relatedTarget: this._element
|
268
204
|
};
|
269
|
-
var hideEvent =
|
205
|
+
var hideEvent = $__default['default'].Event(EVENT_HIDE, relatedTarget);
|
270
206
|
|
271
207
|
var parent = Dropdown._getParentFromElement(this._element);
|
272
208
|
|
273
|
-
$(parent).trigger(hideEvent);
|
209
|
+
$__default['default'](parent).trigger(hideEvent);
|
274
210
|
|
275
211
|
if (hideEvent.isDefaultPrevented()) {
|
276
212
|
return;
|
277
213
|
}
|
278
214
|
|
279
|
-
|
280
|
-
|
215
|
+
if (this._popper) {
|
216
|
+
this._popper.destroy();
|
217
|
+
}
|
218
|
+
|
219
|
+
$__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW);
|
220
|
+
$__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget));
|
281
221
|
};
|
282
222
|
|
283
223
|
_proto.dispose = function dispose() {
|
284
|
-
|
285
|
-
$(this._element).off(EVENT_KEY);
|
224
|
+
$__default['default'].removeData(this._element, DATA_KEY);
|
225
|
+
$__default['default'](this._element).off(EVENT_KEY);
|
286
226
|
this._element = null;
|
287
227
|
this._menu = null;
|
288
228
|
|
@@ -305,7 +245,7 @@
|
|
305
245
|
_proto._addEventListeners = function _addEventListeners() {
|
306
246
|
var _this = this;
|
307
247
|
|
308
|
-
$(this._element).on(
|
248
|
+
$__default['default'](this._element).on(EVENT_CLICK, function (event) {
|
309
249
|
event.preventDefault();
|
310
250
|
event.stopPropagation();
|
311
251
|
|
@@ -314,8 +254,8 @@
|
|
314
254
|
};
|
315
255
|
|
316
256
|
_proto._getConfig = function _getConfig(config) {
|
317
|
-
config =
|
318
|
-
|
257
|
+
config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);
|
258
|
+
Util__default['default'].typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
319
259
|
return config;
|
320
260
|
};
|
321
261
|
|
@@ -324,7 +264,7 @@
|
|
324
264
|
var parent = Dropdown._getParentFromElement(this._element);
|
325
265
|
|
326
266
|
if (parent) {
|
327
|
-
this._menu = parent.querySelector(
|
267
|
+
this._menu = parent.querySelector(SELECTOR_MENU);
|
328
268
|
}
|
329
269
|
}
|
330
270
|
|
@@ -332,28 +272,24 @@
|
|
332
272
|
};
|
333
273
|
|
334
274
|
_proto._getPlacement = function _getPlacement() {
|
335
|
-
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;
|
275
|
+
var $parentDropdown = $__default['default'](this._element.parentNode);
|
276
|
+
var placement = PLACEMENT_BOTTOM; // Handle dropup
|
277
|
+
|
278
|
+
if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
|
279
|
+
placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
|
280
|
+
} else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
|
281
|
+
placement = PLACEMENT_RIGHT;
|
282
|
+
} else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
|
283
|
+
placement = PLACEMENT_LEFT;
|
284
|
+
} else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
|
285
|
+
placement = PLACEMENT_BOTTOMEND;
|
350
286
|
}
|
351
287
|
|
352
288
|
return placement;
|
353
289
|
};
|
354
290
|
|
355
291
|
_proto._detectNavbar = function _detectNavbar() {
|
356
|
-
return $(this._element).closest('.navbar').length > 0;
|
292
|
+
return $__default['default'](this._element).closest('.navbar').length > 0;
|
357
293
|
};
|
358
294
|
|
359
295
|
_proto._getOffset = function _getOffset() {
|
@@ -363,7 +299,7 @@
|
|
363
299
|
|
364
300
|
if (typeof this._config.offset === 'function') {
|
365
301
|
offset.fn = function (data) {
|
366
|
-
data.offsets =
|
302
|
+
data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
|
367
303
|
return data;
|
368
304
|
};
|
369
305
|
} else {
|
@@ -384,9 +320,8 @@
|
|
384
320
|
preventOverflow: {
|
385
321
|
boundariesElement: this._config.boundary
|
386
322
|
}
|
387
|
-
}
|
388
|
-
|
389
|
-
};
|
323
|
+
}
|
324
|
+
}; // Disable Popper.js if we have a static display
|
390
325
|
|
391
326
|
if (this._config.display === 'static') {
|
392
327
|
popperConfig.modifiers.applyStyle = {
|
@@ -394,19 +329,19 @@
|
|
394
329
|
};
|
395
330
|
}
|
396
331
|
|
397
|
-
return popperConfig;
|
332
|
+
return _extends({}, popperConfig, this._config.popperConfig);
|
398
333
|
} // Static
|
399
334
|
;
|
400
335
|
|
401
336
|
Dropdown._jQueryInterface = function _jQueryInterface(config) {
|
402
337
|
return this.each(function () {
|
403
|
-
var data = $(this).data(DATA_KEY);
|
338
|
+
var data = $__default['default'](this).data(DATA_KEY);
|
404
339
|
|
405
340
|
var _config = typeof config === 'object' ? config : null;
|
406
341
|
|
407
342
|
if (!data) {
|
408
343
|
data = new Dropdown(this, _config);
|
409
|
-
$(this).data(DATA_KEY, data);
|
344
|
+
$__default['default'](this).data(DATA_KEY, data);
|
410
345
|
}
|
411
346
|
|
412
347
|
if (typeof config === 'string') {
|
@@ -424,12 +359,12 @@
|
|
424
359
|
return;
|
425
360
|
}
|
426
361
|
|
427
|
-
var toggles = [].slice.call(document.querySelectorAll(
|
362
|
+
var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
|
428
363
|
|
429
364
|
for (var i = 0, len = toggles.length; i < len; i++) {
|
430
365
|
var parent = Dropdown._getParentFromElement(toggles[i]);
|
431
366
|
|
432
|
-
var context = $(toggles[i]).data(DATA_KEY);
|
367
|
+
var context = $__default['default'](toggles[i]).data(DATA_KEY);
|
433
368
|
var relatedTarget = {
|
434
369
|
relatedTarget: toggles[i]
|
435
370
|
};
|
@@ -444,16 +379,16 @@
|
|
444
379
|
|
445
380
|
var dropdownMenu = context._menu;
|
446
381
|
|
447
|
-
if (!$(parent).hasClass(
|
382
|
+
if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW)) {
|
448
383
|
continue;
|
449
384
|
}
|
450
385
|
|
451
|
-
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&
|
386
|
+
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {
|
452
387
|
continue;
|
453
388
|
}
|
454
389
|
|
455
|
-
var hideEvent =
|
456
|
-
$(parent).trigger(hideEvent);
|
390
|
+
var hideEvent = $__default['default'].Event(EVENT_HIDE, relatedTarget);
|
391
|
+
$__default['default'](parent).trigger(hideEvent);
|
457
392
|
|
458
393
|
if (hideEvent.isDefaultPrevented()) {
|
459
394
|
continue;
|
@@ -462,18 +397,23 @@
|
|
462
397
|
|
463
398
|
|
464
399
|
if ('ontouchstart' in document.documentElement) {
|
465
|
-
$(document.body).children().off('mouseover', null,
|
400
|
+
$__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);
|
466
401
|
}
|
467
402
|
|
468
403
|
toggles[i].setAttribute('aria-expanded', 'false');
|
469
|
-
|
470
|
-
|
404
|
+
|
405
|
+
if (context._popper) {
|
406
|
+
context._popper.destroy();
|
407
|
+
}
|
408
|
+
|
409
|
+
$__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW);
|
410
|
+
$__default['default'](parent).removeClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget));
|
471
411
|
}
|
472
412
|
};
|
473
413
|
|
474
414
|
Dropdown._getParentFromElement = function _getParentFromElement(element) {
|
475
415
|
var parent;
|
476
|
-
var selector =
|
416
|
+
var selector = Util__default['default'].getSelectorFromElement(element);
|
477
417
|
|
478
418
|
if (selector) {
|
479
419
|
parent = document.querySelector(selector);
|
@@ -491,32 +431,37 @@
|
|
491
431
|
// - If key is other than escape
|
492
432
|
// - If key is not up or down => not a dropdown command
|
493
433
|
// - If trigger inside the menu => not a dropdown command
|
494
|
-
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(
|
434
|
+
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 || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
|
495
435
|
return;
|
496
436
|
}
|
497
437
|
|
498
|
-
|
499
|
-
event.stopPropagation();
|
500
|
-
|
501
|
-
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
|
438
|
+
if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {
|
502
439
|
return;
|
503
440
|
}
|
504
441
|
|
505
442
|
var parent = Dropdown._getParentFromElement(this);
|
506
443
|
|
507
|
-
var isActive = $(parent).hasClass(
|
444
|
+
var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW);
|
445
|
+
|
446
|
+
if (!isActive && event.which === ESCAPE_KEYCODE) {
|
447
|
+
return;
|
448
|
+
}
|
449
|
+
|
450
|
+
event.preventDefault();
|
451
|
+
event.stopPropagation();
|
508
452
|
|
509
|
-
if (!isActive ||
|
453
|
+
if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {
|
510
454
|
if (event.which === ESCAPE_KEYCODE) {
|
511
|
-
|
512
|
-
$(toggle).trigger('focus');
|
455
|
+
$__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus');
|
513
456
|
}
|
514
457
|
|
515
|
-
$(this).trigger('click');
|
458
|
+
$__default['default'](this).trigger('click');
|
516
459
|
return;
|
517
460
|
}
|
518
461
|
|
519
|
-
var items = [].slice.call(parent.querySelectorAll(
|
462
|
+
var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
|
463
|
+
return $__default['default'](item).is(':visible');
|
464
|
+
});
|
520
465
|
|
521
466
|
if (items.length === 0) {
|
522
467
|
return;
|
@@ -567,12 +512,12 @@
|
|
567
512
|
*/
|
568
513
|
|
569
514
|
|
570
|
-
$(document).on(
|
515
|
+
$__default['default'](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) {
|
571
516
|
event.preventDefault();
|
572
517
|
event.stopPropagation();
|
573
518
|
|
574
|
-
Dropdown._jQueryInterface.call($(this), 'toggle');
|
575
|
-
}).on(
|
519
|
+
Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');
|
520
|
+
}).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
|
576
521
|
e.stopPropagation();
|
577
522
|
});
|
578
523
|
/**
|
@@ -581,14 +526,14 @@
|
|
581
526
|
* ------------------------------------------------------------------------
|
582
527
|
*/
|
583
528
|
|
584
|
-
|
585
|
-
|
529
|
+
$__default['default'].fn[NAME] = Dropdown._jQueryInterface;
|
530
|
+
$__default['default'].fn[NAME].Constructor = Dropdown;
|
586
531
|
|
587
|
-
|
588
|
-
|
532
|
+
$__default['default'].fn[NAME].noConflict = function () {
|
533
|
+
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
589
534
|
return Dropdown._jQueryInterface;
|
590
535
|
};
|
591
536
|
|
592
537
|
return Dropdown;
|
593
538
|
|
594
|
-
}));
|
539
|
+
})));
|