bootstrap 4.3.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 +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap/alert.js +26 -35
- data/assets/javascripts/bootstrap/button.js +93 -52
- data/assets/javascripts/bootstrap/carousel.js +122 -120
- data/assets/javascripts/bootstrap/collapse.js +75 -71
- data/assets/javascripts/bootstrap/dropdown.js +143 -140
- data/assets/javascripts/bootstrap/modal.js +165 -134
- data/assets/javascripts/bootstrap/popover.js +47 -39
- data/assets/javascripts/bootstrap/scrollspy.js +71 -71
- data/assets/javascripts/bootstrap/tab.js +51 -60
- data/assets/javascripts/bootstrap/toast.js +84 -72
- data/assets/javascripts/bootstrap/tooltip.js +141 -131
- data/assets/javascripts/bootstrap/util.js +28 -7
- data/assets/javascripts/bootstrap-sprockets.js +6 -6
- data/assets/javascripts/bootstrap.js +811 -826
- data/assets/javascripts/bootstrap.min.js +3 -3
- 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/_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 +28 -35
- 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 +24 -9
- data/assets/stylesheets/bootstrap/_dropdown.scss +5 -4
- data/assets/stylesheets/bootstrap/_forms.scss +26 -9
- data/assets/stylesheets/bootstrap/_functions.scss +60 -5
- data/assets/stylesheets/bootstrap/_grid.scss +33 -8
- 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 +28 -16
- data/assets/stylesheets/bootstrap/_nav.scss +4 -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 +24 -27
- data/assets/stylesheets/bootstrap/_root.scss +1 -0
- data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_type.scss +2 -2
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +46 -22
- 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 +26 -13
- 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 +34 -49
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +30 -15
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -0
- 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 +3 -2
- 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 +17 -7
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +3 -4
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- 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,17 +1,17 @@
|
|
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) {
|
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
9
|
(global = global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));
|
10
|
-
}(this, function ($, Popper, Util) { 'use strict';
|
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++) {
|
@@ -44,20 +44,35 @@
|
|
44
44
|
return obj;
|
45
45
|
}
|
46
46
|
|
47
|
-
function
|
47
|
+
function ownKeys(object, enumerableOnly) {
|
48
|
+
var keys = Object.keys(object);
|
49
|
+
|
50
|
+
if (Object.getOwnPropertySymbols) {
|
51
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
52
|
+
if (enumerableOnly) symbols = symbols.filter(function (sym) {
|
53
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
54
|
+
});
|
55
|
+
keys.push.apply(keys, symbols);
|
56
|
+
}
|
57
|
+
|
58
|
+
return keys;
|
59
|
+
}
|
60
|
+
|
61
|
+
function _objectSpread2(target) {
|
48
62
|
for (var i = 1; i < arguments.length; i++) {
|
49
63
|
var source = arguments[i] != null ? arguments[i] : {};
|
50
|
-
var ownKeys = Object.keys(source);
|
51
64
|
|
52
|
-
if (
|
53
|
-
ownKeys
|
54
|
-
|
55
|
-
})
|
65
|
+
if (i % 2) {
|
66
|
+
ownKeys(Object(source), true).forEach(function (key) {
|
67
|
+
_defineProperty(target, key, source[key]);
|
68
|
+
});
|
69
|
+
} else if (Object.getOwnPropertyDescriptors) {
|
70
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
71
|
+
} else {
|
72
|
+
ownKeys(Object(source)).forEach(function (key) {
|
73
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
74
|
+
});
|
56
75
|
}
|
57
|
-
|
58
|
-
ownKeys.forEach(function (key) {
|
59
|
-
_defineProperty(target, key, source[key]);
|
60
|
-
});
|
61
76
|
}
|
62
77
|
|
63
78
|
return target;
|
@@ -70,7 +85,7 @@
|
|
70
85
|
*/
|
71
86
|
|
72
87
|
var NAME = 'dropdown';
|
73
|
-
var VERSION = '4.
|
88
|
+
var VERSION = '4.5.0';
|
74
89
|
var DATA_KEY = 'bs.dropdown';
|
75
90
|
var EVENT_KEY = "." + DATA_KEY;
|
76
91
|
var DATA_API_KEY = '.data-api';
|
@@ -88,67 +103,55 @@
|
|
88
103
|
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
89
104
|
|
90
105
|
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
|
-
};
|
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';
|
128
132
|
var Default = {
|
129
133
|
offset: 0,
|
130
134
|
flip: true,
|
131
135
|
boundary: 'scrollParent',
|
132
136
|
reference: 'toggle',
|
133
|
-
display: 'dynamic'
|
137
|
+
display: 'dynamic',
|
138
|
+
popperConfig: null
|
134
139
|
};
|
135
140
|
var DefaultType = {
|
136
141
|
offset: '(number|string|function)',
|
137
142
|
flip: 'boolean',
|
138
143
|
boundary: '(string|element)',
|
139
144
|
reference: '(string|element)',
|
140
|
-
display: 'string'
|
141
|
-
|
142
|
-
* ------------------------------------------------------------------------
|
143
|
-
* Class Definition
|
144
|
-
* ------------------------------------------------------------------------
|
145
|
-
*/
|
146
|
-
|
145
|
+
display: 'string',
|
146
|
+
popperConfig: '(null|object)'
|
147
147
|
};
|
148
|
+
/**
|
149
|
+
* ------------------------------------------------------------------------
|
150
|
+
* Class Definition
|
151
|
+
* ------------------------------------------------------------------------
|
152
|
+
*/
|
148
153
|
|
149
|
-
var Dropdown =
|
150
|
-
/*#__PURE__*/
|
151
|
-
function () {
|
154
|
+
var Dropdown = /*#__PURE__*/function () {
|
152
155
|
function Dropdown(element, config) {
|
153
156
|
this._element = element;
|
154
157
|
this._popper = null;
|
@@ -164,13 +167,11 @@
|
|
164
167
|
|
165
168
|
// Public
|
166
169
|
_proto.toggle = function toggle() {
|
167
|
-
if (this._element.disabled || $(this._element).hasClass(
|
170
|
+
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
|
168
171
|
return;
|
169
172
|
}
|
170
173
|
|
171
|
-
var
|
172
|
-
|
173
|
-
var isActive = $(this._menu).hasClass(ClassName.SHOW);
|
174
|
+
var isActive = $(this._menu).hasClass(CLASS_NAME_SHOW);
|
174
175
|
|
175
176
|
Dropdown._clearMenus();
|
176
177
|
|
@@ -178,10 +179,25 @@
|
|
178
179
|
return;
|
179
180
|
}
|
180
181
|
|
182
|
+
this.show(true);
|
183
|
+
};
|
184
|
+
|
185
|
+
_proto.show = function show(usePopper) {
|
186
|
+
if (usePopper === void 0) {
|
187
|
+
usePopper = false;
|
188
|
+
}
|
189
|
+
|
190
|
+
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {
|
191
|
+
return;
|
192
|
+
}
|
193
|
+
|
181
194
|
var relatedTarget = {
|
182
195
|
relatedTarget: this._element
|
183
196
|
};
|
184
|
-
var showEvent = $.Event(
|
197
|
+
var showEvent = $.Event(EVENT_SHOW, relatedTarget);
|
198
|
+
|
199
|
+
var parent = Dropdown._getParentFromElement(this._element);
|
200
|
+
|
185
201
|
$(parent).trigger(showEvent);
|
186
202
|
|
187
203
|
if (showEvent.isDefaultPrevented()) {
|
@@ -189,7 +205,7 @@
|
|
189
205
|
} // Disable totally Popper.js for Dropdown in Navbar
|
190
206
|
|
191
207
|
|
192
|
-
if (!this._inNavbar) {
|
208
|
+
if (!this._inNavbar && usePopper) {
|
193
209
|
/**
|
194
210
|
* Check for Popper dependency
|
195
211
|
* Popper - https://popper.js.org
|
@@ -214,7 +230,7 @@
|
|
214
230
|
|
215
231
|
|
216
232
|
if (this._config.boundary !== 'scrollParent') {
|
217
|
-
$(parent).addClass(
|
233
|
+
$(parent).addClass(CLASS_NAME_POSITION_STATIC);
|
218
234
|
}
|
219
235
|
|
220
236
|
this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
|
@@ -224,7 +240,7 @@
|
|
224
240
|
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
225
241
|
|
226
242
|
|
227
|
-
if ('ontouchstart' in document.documentElement && $(parent).closest(
|
243
|
+
if ('ontouchstart' in document.documentElement && $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
|
228
244
|
$(document.body).children().on('mouseover', null, $.noop);
|
229
245
|
}
|
230
246
|
|
@@ -232,41 +248,19 @@
|
|
232
248
|
|
233
249
|
this._element.setAttribute('aria-expanded', true);
|
234
250
|
|
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));
|
251
|
+
$(this._menu).toggleClass(CLASS_NAME_SHOW);
|
252
|
+
$(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_SHOWN, relatedTarget));
|
259
253
|
};
|
260
254
|
|
261
255
|
_proto.hide = function hide() {
|
262
|
-
if (this._element.disabled || $(this._element).hasClass(
|
256
|
+
if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {
|
263
257
|
return;
|
264
258
|
}
|
265
259
|
|
266
260
|
var relatedTarget = {
|
267
261
|
relatedTarget: this._element
|
268
262
|
};
|
269
|
-
var hideEvent = $.Event(
|
263
|
+
var hideEvent = $.Event(EVENT_HIDE, relatedTarget);
|
270
264
|
|
271
265
|
var parent = Dropdown._getParentFromElement(this._element);
|
272
266
|
|
@@ -276,8 +270,12 @@
|
|
276
270
|
return;
|
277
271
|
}
|
278
272
|
|
279
|
-
|
280
|
-
|
273
|
+
if (this._popper) {
|
274
|
+
this._popper.destroy();
|
275
|
+
}
|
276
|
+
|
277
|
+
$(this._menu).toggleClass(CLASS_NAME_SHOW);
|
278
|
+
$(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget));
|
281
279
|
};
|
282
280
|
|
283
281
|
_proto.dispose = function dispose() {
|
@@ -305,7 +303,7 @@
|
|
305
303
|
_proto._addEventListeners = function _addEventListeners() {
|
306
304
|
var _this = this;
|
307
305
|
|
308
|
-
$(this._element).on(
|
306
|
+
$(this._element).on(EVENT_CLICK, function (event) {
|
309
307
|
event.preventDefault();
|
310
308
|
event.stopPropagation();
|
311
309
|
|
@@ -314,7 +312,7 @@
|
|
314
312
|
};
|
315
313
|
|
316
314
|
_proto._getConfig = function _getConfig(config) {
|
317
|
-
config =
|
315
|
+
config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), $(this._element).data()), config);
|
318
316
|
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
319
317
|
return config;
|
320
318
|
};
|
@@ -324,7 +322,7 @@
|
|
324
322
|
var parent = Dropdown._getParentFromElement(this._element);
|
325
323
|
|
326
324
|
if (parent) {
|
327
|
-
this._menu = parent.querySelector(
|
325
|
+
this._menu = parent.querySelector(SELECTOR_MENU);
|
328
326
|
}
|
329
327
|
}
|
330
328
|
|
@@ -333,20 +331,16 @@
|
|
333
331
|
|
334
332
|
_proto._getPlacement = function _getPlacement() {
|
335
333
|
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;
|
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;
|
350
344
|
}
|
351
345
|
|
352
346
|
return placement;
|
@@ -363,7 +357,7 @@
|
|
363
357
|
|
364
358
|
if (typeof this._config.offset === 'function') {
|
365
359
|
offset.fn = function (data) {
|
366
|
-
data.offsets =
|
360
|
+
data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
|
367
361
|
return data;
|
368
362
|
};
|
369
363
|
} else {
|
@@ -384,9 +378,8 @@
|
|
384
378
|
preventOverflow: {
|
385
379
|
boundariesElement: this._config.boundary
|
386
380
|
}
|
387
|
-
}
|
388
|
-
|
389
|
-
};
|
381
|
+
}
|
382
|
+
}; // Disable Popper.js if we have a static display
|
390
383
|
|
391
384
|
if (this._config.display === 'static') {
|
392
385
|
popperConfig.modifiers.applyStyle = {
|
@@ -394,7 +387,7 @@
|
|
394
387
|
};
|
395
388
|
}
|
396
389
|
|
397
|
-
return popperConfig;
|
390
|
+
return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
|
398
391
|
} // Static
|
399
392
|
;
|
400
393
|
|
@@ -424,7 +417,7 @@
|
|
424
417
|
return;
|
425
418
|
}
|
426
419
|
|
427
|
-
var toggles = [].slice.call(document.querySelectorAll(
|
420
|
+
var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
|
428
421
|
|
429
422
|
for (var i = 0, len = toggles.length; i < len; i++) {
|
430
423
|
var parent = Dropdown._getParentFromElement(toggles[i]);
|
@@ -444,7 +437,7 @@
|
|
444
437
|
|
445
438
|
var dropdownMenu = context._menu;
|
446
439
|
|
447
|
-
if (!$(parent).hasClass(
|
440
|
+
if (!$(parent).hasClass(CLASS_NAME_SHOW)) {
|
448
441
|
continue;
|
449
442
|
}
|
450
443
|
|
@@ -452,7 +445,7 @@
|
|
452
445
|
continue;
|
453
446
|
}
|
454
447
|
|
455
|
-
var hideEvent = $.Event(
|
448
|
+
var hideEvent = $.Event(EVENT_HIDE, relatedTarget);
|
456
449
|
$(parent).trigger(hideEvent);
|
457
450
|
|
458
451
|
if (hideEvent.isDefaultPrevented()) {
|
@@ -466,8 +459,13 @@
|
|
466
459
|
}
|
467
460
|
|
468
461
|
toggles[i].setAttribute('aria-expanded', 'false');
|
469
|
-
|
470
|
-
|
462
|
+
|
463
|
+
if (context._popper) {
|
464
|
+
context._popper.destroy();
|
465
|
+
}
|
466
|
+
|
467
|
+
$(dropdownMenu).removeClass(CLASS_NAME_SHOW);
|
468
|
+
$(parent).removeClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget));
|
471
469
|
}
|
472
470
|
};
|
473
471
|
|
@@ -491,32 +489,37 @@
|
|
491
489
|
// - If key is other than escape
|
492
490
|
// - If key is not up or down => not a dropdown command
|
493
491
|
// - 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(
|
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)) {
|
495
493
|
return;
|
496
494
|
}
|
497
495
|
|
498
|
-
|
499
|
-
event.stopPropagation();
|
500
|
-
|
501
|
-
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
|
496
|
+
if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {
|
502
497
|
return;
|
503
498
|
}
|
504
499
|
|
505
500
|
var parent = Dropdown._getParentFromElement(this);
|
506
501
|
|
507
|
-
var isActive = $(parent).hasClass(
|
502
|
+
var isActive = $(parent).hasClass(CLASS_NAME_SHOW);
|
503
|
+
|
504
|
+
if (!isActive && event.which === ESCAPE_KEYCODE) {
|
505
|
+
return;
|
506
|
+
}
|
507
|
+
|
508
|
+
event.preventDefault();
|
509
|
+
event.stopPropagation();
|
508
510
|
|
509
511
|
if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
510
512
|
if (event.which === ESCAPE_KEYCODE) {
|
511
|
-
|
512
|
-
$(toggle).trigger('focus');
|
513
|
+
$(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus');
|
513
514
|
}
|
514
515
|
|
515
516
|
$(this).trigger('click');
|
516
517
|
return;
|
517
518
|
}
|
518
519
|
|
519
|
-
var items = [].slice.call(parent.querySelectorAll(
|
520
|
+
var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
|
521
|
+
return $(item).is(':visible');
|
522
|
+
});
|
520
523
|
|
521
524
|
if (items.length === 0) {
|
522
525
|
return;
|
@@ -567,12 +570,12 @@
|
|
567
570
|
*/
|
568
571
|
|
569
572
|
|
570
|
-
$(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) {
|
571
574
|
event.preventDefault();
|
572
575
|
event.stopPropagation();
|
573
576
|
|
574
577
|
Dropdown._jQueryInterface.call($(this), 'toggle');
|
575
|
-
}).on(
|
578
|
+
}).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
|
576
579
|
e.stopPropagation();
|
577
580
|
});
|
578
581
|
/**
|
@@ -591,4 +594,4 @@
|
|
591
594
|
|
592
595
|
return Dropdown;
|
593
596
|
|
594
|
-
}));
|
597
|
+
})));
|