bootstrap 4.4.1 → 4.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +11 -1
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +7 -7
- data/assets/javascripts/bootstrap.js +516 -617
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/javascripts/bootstrap/alert.js +19 -27
- data/assets/javascripts/bootstrap/button.js +50 -56
- data/assets/javascripts/bootstrap/carousel.js +88 -99
- data/assets/javascripts/bootstrap/collapse.js +43 -53
- data/assets/javascripts/bootstrap/dropdown.js +75 -93
- data/assets/javascripts/bootstrap/modal.js +87 -91
- data/assets/javascripts/bootstrap/popover.js +15 -21
- data/assets/javascripts/bootstrap/scrollspy.js +39 -53
- data/assets/javascripts/bootstrap/tab.js +44 -52
- data/assets/javascripts/bootstrap/toast.js +33 -41
- data/assets/javascripts/bootstrap/tooltip.js +53 -65
- data/assets/javascripts/bootstrap/util.js +9 -5
- data/assets/stylesheets/_bootstrap-grid.scss +3 -3
- data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
- data/assets/stylesheets/_bootstrap.scss +3 -3
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +2 -0
- data/assets/stylesheets/bootstrap/_buttons.scss +10 -7
- data/assets/stylesheets/bootstrap/_card.scss +11 -7
- data/assets/stylesheets/bootstrap/_close.scss +0 -1
- data/assets/stylesheets/bootstrap/_custom-forms.scss +2 -1
- data/assets/stylesheets/bootstrap/_dropdown.scss +2 -1
- data/assets/stylesheets/bootstrap/_forms.scss +9 -0
- data/assets/stylesheets/bootstrap/_functions.scss +12 -5
- data/assets/stylesheets/bootstrap/_grid.scss +9 -1
- data/assets/stylesheets/bootstrap/_input-group.scss +2 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +9 -13
- data/assets/stylesheets/bootstrap/_modal.scss +2 -0
- data/assets/stylesheets/bootstrap/_nav.scss +1 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +1 -0
- data/assets/stylesheets/bootstrap/_progress.scss +1 -0
- data/assets/stylesheets/bootstrap/_reboot.scss +10 -12
- data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +4 -0
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +26 -13
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +6 -6
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +25 -15
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
- data/assets/stylesheets/bootstrap/utilities/_background.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +1 -2
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/network.rb +2 -2
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- metadata +6 -3
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap collapse.js v4.
|
3
|
-
* Copyright 2011-
|
2
|
+
* Bootstrap collapse.js v4.5.0 (https://getbootstrap.com/)
|
3
|
+
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
5
5
|
*/
|
6
6
|
(function (global, factory) {
|
@@ -9,8 +9,8 @@
|
|
9
9
|
(global = global || self, global.Collapse = factory(global.jQuery, global.Util));
|
10
10
|
}(this, (function ($, Util) { 'use strict';
|
11
11
|
|
12
|
-
$ = $ &&
|
13
|
-
Util = Util &&
|
12
|
+
$ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
|
13
|
+
Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
|
14
14
|
|
15
15
|
function _defineProperties(target, props) {
|
16
16
|
for (var i = 0; i < props.length; i++) {
|
@@ -84,7 +84,7 @@
|
|
84
84
|
*/
|
85
85
|
|
86
86
|
var NAME = 'collapse';
|
87
|
-
var VERSION = '4.
|
87
|
+
var VERSION = '4.5.0';
|
88
88
|
var DATA_KEY = 'bs.collapse';
|
89
89
|
var EVENT_KEY = "." + DATA_KEY;
|
90
90
|
var DATA_API_KEY = '.data-api';
|
@@ -97,42 +97,32 @@
|
|
97
97
|
toggle: 'boolean',
|
98
98
|
parent: '(string|element)'
|
99
99
|
};
|
100
|
-
var
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
var
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
var Dimension = {
|
114
|
-
WIDTH: 'width',
|
115
|
-
HEIGHT: 'height'
|
116
|
-
};
|
117
|
-
var Selector = {
|
118
|
-
ACTIVES: '.show, .collapsing',
|
119
|
-
DATA_TOGGLE: '[data-toggle="collapse"]'
|
120
|
-
};
|
100
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
101
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
102
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
103
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
104
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
105
|
+
var CLASS_NAME_SHOW = 'show';
|
106
|
+
var CLASS_NAME_COLLAPSE = 'collapse';
|
107
|
+
var CLASS_NAME_COLLAPSING = 'collapsing';
|
108
|
+
var CLASS_NAME_COLLAPSED = 'collapsed';
|
109
|
+
var DIMENSION_WIDTH = 'width';
|
110
|
+
var DIMENSION_HEIGHT = 'height';
|
111
|
+
var SELECTOR_ACTIVES = '.show, .collapsing';
|
112
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
|
121
113
|
/**
|
122
114
|
* ------------------------------------------------------------------------
|
123
115
|
* Class Definition
|
124
116
|
* ------------------------------------------------------------------------
|
125
117
|
*/
|
126
118
|
|
127
|
-
var Collapse =
|
128
|
-
/*#__PURE__*/
|
129
|
-
function () {
|
119
|
+
var Collapse = /*#__PURE__*/function () {
|
130
120
|
function Collapse(element, config) {
|
131
121
|
this._isTransitioning = false;
|
132
122
|
this._element = element;
|
133
123
|
this._config = this._getConfig(config);
|
134
124
|
this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
|
135
|
-
var toggleList = [].slice.call(document.querySelectorAll(
|
125
|
+
var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
|
136
126
|
|
137
127
|
for (var i = 0, len = toggleList.length; i < len; i++) {
|
138
128
|
var elem = toggleList[i];
|
@@ -164,7 +154,7 @@
|
|
164
154
|
|
165
155
|
// Public
|
166
156
|
_proto.toggle = function toggle() {
|
167
|
-
if ($(this._element).hasClass(
|
157
|
+
if ($(this._element).hasClass(CLASS_NAME_SHOW)) {
|
168
158
|
this.hide();
|
169
159
|
} else {
|
170
160
|
this.show();
|
@@ -174,7 +164,7 @@
|
|
174
164
|
_proto.show = function show() {
|
175
165
|
var _this = this;
|
176
166
|
|
177
|
-
if (this._isTransitioning || $(this._element).hasClass(
|
167
|
+
if (this._isTransitioning || $(this._element).hasClass(CLASS_NAME_SHOW)) {
|
178
168
|
return;
|
179
169
|
}
|
180
170
|
|
@@ -182,12 +172,12 @@
|
|
182
172
|
var activesData;
|
183
173
|
|
184
174
|
if (this._parent) {
|
185
|
-
actives = [].slice.call(this._parent.querySelectorAll(
|
175
|
+
actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {
|
186
176
|
if (typeof _this._config.parent === 'string') {
|
187
177
|
return elem.getAttribute('data-parent') === _this._config.parent;
|
188
178
|
}
|
189
179
|
|
190
|
-
return elem.classList.contains(
|
180
|
+
return elem.classList.contains(CLASS_NAME_COLLAPSE);
|
191
181
|
});
|
192
182
|
|
193
183
|
if (actives.length === 0) {
|
@@ -203,7 +193,7 @@
|
|
203
193
|
}
|
204
194
|
}
|
205
195
|
|
206
|
-
var startEvent = $.Event(
|
196
|
+
var startEvent = $.Event(EVENT_SHOW);
|
207
197
|
$(this._element).trigger(startEvent);
|
208
198
|
|
209
199
|
if (startEvent.isDefaultPrevented()) {
|
@@ -220,22 +210,22 @@
|
|
220
210
|
|
221
211
|
var dimension = this._getDimension();
|
222
212
|
|
223
|
-
$(this._element).removeClass(
|
213
|
+
$(this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
|
224
214
|
this._element.style[dimension] = 0;
|
225
215
|
|
226
216
|
if (this._triggerArray.length) {
|
227
|
-
$(this._triggerArray).removeClass(
|
217
|
+
$(this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);
|
228
218
|
}
|
229
219
|
|
230
220
|
this.setTransitioning(true);
|
231
221
|
|
232
222
|
var complete = function complete() {
|
233
|
-
$(_this._element).removeClass(
|
223
|
+
$(_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
|
234
224
|
_this._element.style[dimension] = '';
|
235
225
|
|
236
226
|
_this.setTransitioning(false);
|
237
227
|
|
238
|
-
$(_this._element).trigger(
|
228
|
+
$(_this._element).trigger(EVENT_SHOWN);
|
239
229
|
};
|
240
230
|
|
241
231
|
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
@@ -248,11 +238,11 @@
|
|
248
238
|
_proto.hide = function hide() {
|
249
239
|
var _this2 = this;
|
250
240
|
|
251
|
-
if (this._isTransitioning || !$(this._element).hasClass(
|
241
|
+
if (this._isTransitioning || !$(this._element).hasClass(CLASS_NAME_SHOW)) {
|
252
242
|
return;
|
253
243
|
}
|
254
244
|
|
255
|
-
var startEvent = $.Event(
|
245
|
+
var startEvent = $.Event(EVENT_HIDE);
|
256
246
|
$(this._element).trigger(startEvent);
|
257
247
|
|
258
248
|
if (startEvent.isDefaultPrevented()) {
|
@@ -263,7 +253,7 @@
|
|
263
253
|
|
264
254
|
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
265
255
|
Util.reflow(this._element);
|
266
|
-
$(this._element).addClass(
|
256
|
+
$(this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
|
267
257
|
var triggerArrayLength = this._triggerArray.length;
|
268
258
|
|
269
259
|
if (triggerArrayLength > 0) {
|
@@ -274,8 +264,8 @@
|
|
274
264
|
if (selector !== null) {
|
275
265
|
var $elem = $([].slice.call(document.querySelectorAll(selector)));
|
276
266
|
|
277
|
-
if (!$elem.hasClass(
|
278
|
-
$(trigger).addClass(
|
267
|
+
if (!$elem.hasClass(CLASS_NAME_SHOW)) {
|
268
|
+
$(trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
|
279
269
|
}
|
280
270
|
}
|
281
271
|
}
|
@@ -286,7 +276,7 @@
|
|
286
276
|
var complete = function complete() {
|
287
277
|
_this2.setTransitioning(false);
|
288
278
|
|
289
|
-
$(_this2._element).removeClass(
|
279
|
+
$(_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);
|
290
280
|
};
|
291
281
|
|
292
282
|
this._element.style[dimension] = '';
|
@@ -309,7 +299,7 @@
|
|
309
299
|
;
|
310
300
|
|
311
301
|
_proto._getConfig = function _getConfig(config) {
|
312
|
-
config = _objectSpread2({}, Default,
|
302
|
+
config = _objectSpread2(_objectSpread2({}, Default), config);
|
313
303
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
314
304
|
|
315
305
|
Util.typeCheckConfig(NAME, config, DefaultType);
|
@@ -317,8 +307,8 @@
|
|
317
307
|
};
|
318
308
|
|
319
309
|
_proto._getDimension = function _getDimension() {
|
320
|
-
var hasWidth = $(this._element).hasClass(
|
321
|
-
return hasWidth ?
|
310
|
+
var hasWidth = $(this._element).hasClass(DIMENSION_WIDTH);
|
311
|
+
return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
|
322
312
|
};
|
323
313
|
|
324
314
|
_proto._getParent = function _getParent() {
|
@@ -345,10 +335,10 @@
|
|
345
335
|
};
|
346
336
|
|
347
337
|
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
348
|
-
var isOpen = $(element).hasClass(
|
338
|
+
var isOpen = $(element).hasClass(CLASS_NAME_SHOW);
|
349
339
|
|
350
340
|
if (triggerArray.length) {
|
351
|
-
$(triggerArray).toggleClass(
|
341
|
+
$(triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
352
342
|
}
|
353
343
|
} // Static
|
354
344
|
;
|
@@ -363,9 +353,9 @@
|
|
363
353
|
var $this = $(this);
|
364
354
|
var data = $this.data(DATA_KEY);
|
365
355
|
|
366
|
-
var _config = _objectSpread2({}, Default,
|
356
|
+
var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default), $this.data()), typeof config === 'object' && config ? config : {});
|
367
357
|
|
368
|
-
if (!data && _config.toggle && /show|hide/.test(config)) {
|
358
|
+
if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
|
369
359
|
_config.toggle = false;
|
370
360
|
}
|
371
361
|
|
@@ -405,7 +395,7 @@
|
|
405
395
|
*/
|
406
396
|
|
407
397
|
|
408
|
-
$(document).on(
|
398
|
+
$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
409
399
|
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
|
410
400
|
if (event.currentTarget.tagName === 'A') {
|
411
401
|
event.preventDefault();
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap dropdown.js v4.
|
3
|
-
* Copyright 2011-
|
2
|
+
* Bootstrap dropdown.js v4.5.0 (https://getbootstrap.com/)
|
3
|
+
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
5
5
|
*/
|
6
6
|
(function (global, factory) {
|
@@ -9,9 +9,9 @@
|
|
9
9
|
(global = global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));
|
10
10
|
}(this, (function ($, Popper, Util) { 'use strict';
|
11
11
|
|
12
|
-
$ = $ &&
|
13
|
-
Popper = Popper &&
|
14
|
-
Util = Util &&
|
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;
|
15
15
|
|
16
16
|
function _defineProperties(target, props) {
|
17
17
|
for (var i = 0; i < props.length; i++) {
|
@@ -85,7 +85,7 @@
|
|
85
85
|
*/
|
86
86
|
|
87
87
|
var NAME = 'dropdown';
|
88
|
-
var VERSION = '4.
|
88
|
+
var VERSION = '4.5.0';
|
89
89
|
var DATA_KEY = 'bs.dropdown';
|
90
90
|
var EVENT_KEY = "." + DATA_KEY;
|
91
91
|
var DATA_API_KEY = '.data-api';
|
@@ -103,43 +103,32 @@
|
|
103
103
|
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
104
104
|
|
105
105
|
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
|
106
|
-
var
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
var
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
var
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
};
|
133
|
-
var AttachmentMap = {
|
134
|
-
TOP: 'top-start',
|
135
|
-
TOPEND: 'top-end',
|
136
|
-
BOTTOM: 'bottom-start',
|
137
|
-
BOTTOMEND: 'bottom-end',
|
138
|
-
RIGHT: 'right-start',
|
139
|
-
RIGHTEND: 'right-end',
|
140
|
-
LEFT: 'left-start',
|
141
|
-
LEFTEND: 'left-end'
|
142
|
-
};
|
106
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
107
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
108
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
109
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
110
|
+
var EVENT_CLICK = "click" + EVENT_KEY;
|
111
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
112
|
+
var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY;
|
113
|
+
var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY;
|
114
|
+
var CLASS_NAME_DISABLED = 'disabled';
|
115
|
+
var CLASS_NAME_SHOW = 'show';
|
116
|
+
var CLASS_NAME_DROPUP = 'dropup';
|
117
|
+
var CLASS_NAME_DROPRIGHT = 'dropright';
|
118
|
+
var CLASS_NAME_DROPLEFT = 'dropleft';
|
119
|
+
var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
|
120
|
+
var CLASS_NAME_POSITION_STATIC = 'position-static';
|
121
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
|
122
|
+
var SELECTOR_FORM_CHILD = '.dropdown form';
|
123
|
+
var SELECTOR_MENU = '.dropdown-menu';
|
124
|
+
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
|
125
|
+
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
|
126
|
+
var PLACEMENT_TOP = 'top-start';
|
127
|
+
var PLACEMENT_TOPEND = 'top-end';
|
128
|
+
var PLACEMENT_BOTTOM = 'bottom-start';
|
129
|
+
var PLACEMENT_BOTTOMEND = 'bottom-end';
|
130
|
+
var PLACEMENT_RIGHT = 'right-start';
|
131
|
+
var PLACEMENT_LEFT = 'left-start';
|
143
132
|
var Default = {
|
144
133
|
offset: 0,
|
145
134
|
flip: true,
|
@@ -162,9 +151,7 @@
|
|
162
151
|
* ------------------------------------------------------------------------
|
163
152
|
*/
|
164
153
|
|
165
|
-
var Dropdown =
|
166
|
-
/*#__PURE__*/
|
167
|
-
function () {
|
154
|
+
var Dropdown = /*#__PURE__*/function () {
|
168
155
|
function Dropdown(element, config) {
|
169
156
|
this._element = element;
|
170
157
|
this._popper = null;
|
@@ -180,11 +167,11 @@
|
|
180
167
|
|
181
168
|
// Public
|
182
169
|
_proto.toggle = function toggle() {
|
183
|
-
if (this._element.disabled || $(this._element).hasClass(
|
170
|
+
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
|
184
171
|
return;
|
185
172
|
}
|
186
173
|
|
187
|
-
var isActive = $(this._menu).hasClass(
|
174
|
+
var isActive = $(this._menu).hasClass(CLASS_NAME_SHOW);
|
188
175
|
|
189
176
|
Dropdown._clearMenus();
|
190
177
|
|
@@ -200,14 +187,14 @@
|
|
200
187
|
usePopper = false;
|
201
188
|
}
|
202
189
|
|
203
|
-
if (this._element.disabled || $(this._element).hasClass(
|
190
|
+
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {
|
204
191
|
return;
|
205
192
|
}
|
206
193
|
|
207
194
|
var relatedTarget = {
|
208
195
|
relatedTarget: this._element
|
209
196
|
};
|
210
|
-
var showEvent = $.Event(
|
197
|
+
var showEvent = $.Event(EVENT_SHOW, relatedTarget);
|
211
198
|
|
212
199
|
var parent = Dropdown._getParentFromElement(this._element);
|
213
200
|
|
@@ -243,7 +230,7 @@
|
|
243
230
|
|
244
231
|
|
245
232
|
if (this._config.boundary !== 'scrollParent') {
|
246
|
-
$(parent).addClass(
|
233
|
+
$(parent).addClass(CLASS_NAME_POSITION_STATIC);
|
247
234
|
}
|
248
235
|
|
249
236
|
this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
|
@@ -253,7 +240,7 @@
|
|
253
240
|
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
254
241
|
|
255
242
|
|
256
|
-
if ('ontouchstart' in document.documentElement && $(parent).closest(
|
243
|
+
if ('ontouchstart' in document.documentElement && $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
|
257
244
|
$(document.body).children().on('mouseover', null, $.noop);
|
258
245
|
}
|
259
246
|
|
@@ -261,19 +248,19 @@
|
|
261
248
|
|
262
249
|
this._element.setAttribute('aria-expanded', true);
|
263
250
|
|
264
|
-
$(this._menu).toggleClass(
|
265
|
-
$(parent).toggleClass(
|
251
|
+
$(this._menu).toggleClass(CLASS_NAME_SHOW);
|
252
|
+
$(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_SHOWN, relatedTarget));
|
266
253
|
};
|
267
254
|
|
268
255
|
_proto.hide = function hide() {
|
269
|
-
if (this._element.disabled || $(this._element).hasClass(
|
256
|
+
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {
|
270
257
|
return;
|
271
258
|
}
|
272
259
|
|
273
260
|
var relatedTarget = {
|
274
261
|
relatedTarget: this._element
|
275
262
|
};
|
276
|
-
var hideEvent = $.Event(
|
263
|
+
var hideEvent = $.Event(EVENT_HIDE, relatedTarget);
|
277
264
|
|
278
265
|
var parent = Dropdown._getParentFromElement(this._element);
|
279
266
|
|
@@ -287,8 +274,8 @@
|
|
287
274
|
this._popper.destroy();
|
288
275
|
}
|
289
276
|
|
290
|
-
$(this._menu).toggleClass(
|
291
|
-
$(parent).toggleClass(
|
277
|
+
$(this._menu).toggleClass(CLASS_NAME_SHOW);
|
278
|
+
$(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget));
|
292
279
|
};
|
293
280
|
|
294
281
|
_proto.dispose = function dispose() {
|
@@ -316,7 +303,7 @@
|
|
316
303
|
_proto._addEventListeners = function _addEventListeners() {
|
317
304
|
var _this = this;
|
318
305
|
|
319
|
-
$(this._element).on(
|
306
|
+
$(this._element).on(EVENT_CLICK, function (event) {
|
320
307
|
event.preventDefault();
|
321
308
|
event.stopPropagation();
|
322
309
|
|
@@ -325,7 +312,7 @@
|
|
325
312
|
};
|
326
313
|
|
327
314
|
_proto._getConfig = function _getConfig(config) {
|
328
|
-
config = _objectSpread2({}, this.constructor.Default,
|
315
|
+
config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), $(this._element).data()), config);
|
329
316
|
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
330
317
|
return config;
|
331
318
|
};
|
@@ -335,7 +322,7 @@
|
|
335
322
|
var parent = Dropdown._getParentFromElement(this._element);
|
336
323
|
|
337
324
|
if (parent) {
|
338
|
-
this._menu = parent.querySelector(
|
325
|
+
this._menu = parent.querySelector(SELECTOR_MENU);
|
339
326
|
}
|
340
327
|
}
|
341
328
|
|
@@ -344,20 +331,16 @@
|
|
344
331
|
|
345
332
|
_proto._getPlacement = function _getPlacement() {
|
346
333
|
var $parentDropdown = $(this._element.parentNode);
|
347
|
-
var placement =
|
348
|
-
|
349
|
-
if ($parentDropdown.hasClass(
|
350
|
-
placement =
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
} else if ($
|
356
|
-
placement =
|
357
|
-
} else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
|
358
|
-
placement = AttachmentMap.LEFT;
|
359
|
-
} else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
|
360
|
-
placement = AttachmentMap.BOTTOMEND;
|
334
|
+
var placement = PLACEMENT_BOTTOM; // Handle dropup
|
335
|
+
|
336
|
+
if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
|
337
|
+
placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
|
338
|
+
} else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
|
339
|
+
placement = PLACEMENT_RIGHT;
|
340
|
+
} else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
|
341
|
+
placement = PLACEMENT_LEFT;
|
342
|
+
} else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
|
343
|
+
placement = PLACEMENT_BOTTOMEND;
|
361
344
|
}
|
362
345
|
|
363
346
|
return placement;
|
@@ -374,7 +357,7 @@
|
|
374
357
|
|
375
358
|
if (typeof this._config.offset === 'function') {
|
376
359
|
offset.fn = function (data) {
|
377
|
-
data.offsets = _objectSpread2({}, data.offsets,
|
360
|
+
data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
|
378
361
|
return data;
|
379
362
|
};
|
380
363
|
} else {
|
@@ -404,7 +387,7 @@
|
|
404
387
|
};
|
405
388
|
}
|
406
389
|
|
407
|
-
return _objectSpread2({}, popperConfig,
|
390
|
+
return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
|
408
391
|
} // Static
|
409
392
|
;
|
410
393
|
|
@@ -434,7 +417,7 @@
|
|
434
417
|
return;
|
435
418
|
}
|
436
419
|
|
437
|
-
var toggles = [].slice.call(document.querySelectorAll(
|
420
|
+
var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
|
438
421
|
|
439
422
|
for (var i = 0, len = toggles.length; i < len; i++) {
|
440
423
|
var parent = Dropdown._getParentFromElement(toggles[i]);
|
@@ -454,7 +437,7 @@
|
|
454
437
|
|
455
438
|
var dropdownMenu = context._menu;
|
456
439
|
|
457
|
-
if (!$(parent).hasClass(
|
440
|
+
if (!$(parent).hasClass(CLASS_NAME_SHOW)) {
|
458
441
|
continue;
|
459
442
|
}
|
460
443
|
|
@@ -462,7 +445,7 @@
|
|
462
445
|
continue;
|
463
446
|
}
|
464
447
|
|
465
|
-
var hideEvent = $.Event(
|
448
|
+
var hideEvent = $.Event(EVENT_HIDE, relatedTarget);
|
466
449
|
$(parent).trigger(hideEvent);
|
467
450
|
|
468
451
|
if (hideEvent.isDefaultPrevented()) {
|
@@ -481,8 +464,8 @@
|
|
481
464
|
context._popper.destroy();
|
482
465
|
}
|
483
466
|
|
484
|
-
$(dropdownMenu).removeClass(
|
485
|
-
$(parent).removeClass(
|
467
|
+
$(dropdownMenu).removeClass(CLASS_NAME_SHOW);
|
468
|
+
$(parent).removeClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget));
|
486
469
|
}
|
487
470
|
};
|
488
471
|
|
@@ -506,36 +489,35 @@
|
|
506
489
|
// - If key is other than escape
|
507
490
|
// - If key is not up or down => not a dropdown command
|
508
491
|
// - If trigger inside the menu => not a dropdown command
|
509
|
-
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(
|
492
|
+
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)) {
|
510
493
|
return;
|
511
494
|
}
|
512
495
|
|
513
|
-
|
514
|
-
event.stopPropagation();
|
515
|
-
|
516
|
-
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
|
496
|
+
if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {
|
517
497
|
return;
|
518
498
|
}
|
519
499
|
|
520
500
|
var parent = Dropdown._getParentFromElement(this);
|
521
501
|
|
522
|
-
var isActive = $(parent).hasClass(
|
502
|
+
var isActive = $(parent).hasClass(CLASS_NAME_SHOW);
|
523
503
|
|
524
504
|
if (!isActive && event.which === ESCAPE_KEYCODE) {
|
525
505
|
return;
|
526
506
|
}
|
527
507
|
|
508
|
+
event.preventDefault();
|
509
|
+
event.stopPropagation();
|
510
|
+
|
528
511
|
if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
529
512
|
if (event.which === ESCAPE_KEYCODE) {
|
530
|
-
|
531
|
-
$(toggle).trigger('focus');
|
513
|
+
$(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus');
|
532
514
|
}
|
533
515
|
|
534
516
|
$(this).trigger('click');
|
535
517
|
return;
|
536
518
|
}
|
537
519
|
|
538
|
-
var items = [].slice.call(parent.querySelectorAll(
|
520
|
+
var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
|
539
521
|
return $(item).is(':visible');
|
540
522
|
});
|
541
523
|
|
@@ -588,12 +570,12 @@
|
|
588
570
|
*/
|
589
571
|
|
590
572
|
|
591
|
-
$(document).on(
|
573
|
+
$(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) {
|
592
574
|
event.preventDefault();
|
593
575
|
event.stopPropagation();
|
594
576
|
|
595
577
|
Dropdown._jQueryInterface.call($(this), 'toggle');
|
596
|
-
}).on(
|
578
|
+
}).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
|
597
579
|
e.stopPropagation();
|
598
580
|
});
|
599
581
|
/**
|