bootstrap 4.4.1 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bootstrap might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +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
|
/**
|