bootstrap 4.3.1 → 4.6.2.1
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.
- checksums.yaml +4 -4
- data/.travis.yml +15 -1
- data/CHANGELOG.md +4 -12
- data/README.md +7 -1
- data/Rakefile +16 -4
- data/assets/javascripts/bootstrap/alert.js +43 -55
- data/assets/javascripts/bootstrap/button.js +112 -70
- data/assets/javascripts/bootstrap/carousel.js +164 -189
- data/assets/javascripts/bootstrap/collapse.js +98 -129
- data/assets/javascripts/bootstrap/dropdown.js +165 -200
- data/assets/javascripts/bootstrap/modal.js +218 -205
- data/assets/javascripts/bootstrap/popover.js +63 -79
- data/assets/javascripts/bootstrap/scrollspy.js +82 -119
- data/assets/javascripts/bootstrap/tab.js +79 -85
- data/assets/javascripts/bootstrap/toast.js +100 -115
- data/assets/javascripts/bootstrap/tooltip.js +207 -225
- data/assets/javascripts/bootstrap/util.js +41 -23
- data/assets/javascripts/bootstrap.js +1235 -1314
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/stylesheets/_bootstrap-grid.scss +5 -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 +3 -2
- data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
- data/assets/stylesheets/bootstrap/_card.scss +47 -50
- data/assets/stylesheets/bootstrap/_carousel.scss +12 -9
- data/assets/stylesheets/bootstrap/_close.scss +2 -3
- data/assets/stylesheets/bootstrap/_code.scss +1 -1
- data/assets/stylesheets/bootstrap/_custom-forms.scss +43 -24
- data/assets/stylesheets/bootstrap/_dropdown.scss +7 -6
- data/assets/stylesheets/bootstrap/_forms.scss +30 -13
- data/assets/stylesheets/bootstrap/_functions.scss +110 -6
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- data/assets/stylesheets/bootstrap/_images.scss +3 -3
- data/assets/stylesheets/bootstrap/_input-group.scss +23 -5
- data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -1
- 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 +12 -7
- data/assets/stylesheets/bootstrap/_navbar.scss +55 -17
- data/assets/stylesheets/bootstrap/_pagination.scss +5 -4
- data/assets/stylesheets/bootstrap/_popover.scss +17 -18
- data/assets/stylesheets/bootstrap/_print.scss +1 -10
- data/assets/stylesheets/bootstrap/_progress.scss +7 -3
- data/assets/stylesheets/bootstrap/_reboot.scss +39 -38
- data/assets/stylesheets/bootstrap/_spinners.scss +18 -8
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_toasts.scss +4 -2
- data/assets/stylesheets/bootstrap/_tooltip.scss +4 -4
- data/assets/stylesheets/bootstrap/_transitions.scss +6 -0
- data/assets/stylesheets/bootstrap/_type.scss +3 -3
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +71 -45
- 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 +52 -49
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +31 -17
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +32 -14
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_image.scss +2 -2
- 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 +2 -2
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +5 -4
- 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/_embed.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_text.scss +4 -4
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +126 -102
- data/bootstrap.gemspec +2 -4
- data/lib/bootstrap/engine.rb +17 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +18 -6
- data/tasks/updater/network.rb +8 -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/gemfiles/rails_7_0_dartsass.gemfile +8 -0
- data/test/gemfiles/rails_7_0_sassc.gemfile +8 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +17 -21
@@ -1,17 +1,19 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap dropdown.js v4.
|
3
|
-
* Copyright 2011-
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
2
|
+
* Bootstrap dropdown.js v4.6.2 (https://getbootstrap.com/)
|
3
|
+
* Copyright 2011-2022 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
|
-
typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util
|
9
|
-
(global = global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));
|
10
|
-
}(this, function ($, Popper, Util) { 'use strict';
|
8
|
+
typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util'], factory) :
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));
|
10
|
+
})(this, (function ($, Popper, Util) { 'use strict';
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
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);
|
15
17
|
|
16
18
|
function _defineProperties(target, props) {
|
17
19
|
for (var i = 0; i < props.length; i++) {
|
@@ -26,55 +28,39 @@
|
|
26
28
|
function _createClass(Constructor, protoProps, staticProps) {
|
27
29
|
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
28
30
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
31
|
+
Object.defineProperty(Constructor, "prototype", {
|
32
|
+
writable: false
|
33
|
+
});
|
29
34
|
return Constructor;
|
30
35
|
}
|
31
36
|
|
32
|
-
function
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
enumerable: true,
|
37
|
-
configurable: true,
|
38
|
-
writable: true
|
39
|
-
});
|
40
|
-
} else {
|
41
|
-
obj[key] = value;
|
42
|
-
}
|
43
|
-
|
44
|
-
return obj;
|
45
|
-
}
|
37
|
+
function _extends() {
|
38
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
39
|
+
for (var i = 1; i < arguments.length; i++) {
|
40
|
+
var source = arguments[i];
|
46
41
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
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
|
-
}));
|
42
|
+
for (var key in source) {
|
43
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
44
|
+
target[key] = source[key];
|
45
|
+
}
|
46
|
+
}
|
56
47
|
}
|
57
48
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
}
|
62
|
-
|
63
|
-
return target;
|
49
|
+
return target;
|
50
|
+
};
|
51
|
+
return _extends.apply(this, arguments);
|
64
52
|
}
|
65
53
|
|
66
54
|
/**
|
67
|
-
* ------------------------------------------------------------------------
|
68
55
|
* Constants
|
69
|
-
* ------------------------------------------------------------------------
|
70
56
|
*/
|
71
57
|
|
72
58
|
var NAME = 'dropdown';
|
73
|
-
var VERSION = '4.
|
59
|
+
var VERSION = '4.6.2';
|
74
60
|
var DATA_KEY = 'bs.dropdown';
|
75
61
|
var EVENT_KEY = "." + DATA_KEY;
|
76
62
|
var DATA_API_KEY = '.data-api';
|
77
|
-
var JQUERY_NO_CONFLICT =
|
63
|
+
var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
|
78
64
|
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
|
79
65
|
|
80
66
|
var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
|
@@ -88,67 +74,53 @@
|
|
88
74
|
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
89
75
|
|
90
76
|
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
|
-
};
|
77
|
+
var CLASS_NAME_DISABLED = 'disabled';
|
78
|
+
var CLASS_NAME_SHOW = 'show';
|
79
|
+
var CLASS_NAME_DROPUP = 'dropup';
|
80
|
+
var CLASS_NAME_DROPRIGHT = 'dropright';
|
81
|
+
var CLASS_NAME_DROPLEFT = 'dropleft';
|
82
|
+
var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
|
83
|
+
var CLASS_NAME_POSITION_STATIC = 'position-static';
|
84
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
85
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
86
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
87
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
88
|
+
var EVENT_CLICK = "click" + EVENT_KEY;
|
89
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
90
|
+
var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY;
|
91
|
+
var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY;
|
92
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
|
93
|
+
var SELECTOR_FORM_CHILD = '.dropdown form';
|
94
|
+
var SELECTOR_MENU = '.dropdown-menu';
|
95
|
+
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
|
96
|
+
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
|
97
|
+
var PLACEMENT_TOP = 'top-start';
|
98
|
+
var PLACEMENT_TOPEND = 'top-end';
|
99
|
+
var PLACEMENT_BOTTOM = 'bottom-start';
|
100
|
+
var PLACEMENT_BOTTOMEND = 'bottom-end';
|
101
|
+
var PLACEMENT_RIGHT = 'right-start';
|
102
|
+
var PLACEMENT_LEFT = 'left-start';
|
128
103
|
var Default = {
|
129
104
|
offset: 0,
|
130
105
|
flip: true,
|
131
106
|
boundary: 'scrollParent',
|
132
107
|
reference: 'toggle',
|
133
|
-
display: 'dynamic'
|
108
|
+
display: 'dynamic',
|
109
|
+
popperConfig: null
|
134
110
|
};
|
135
111
|
var DefaultType = {
|
136
112
|
offset: '(number|string|function)',
|
137
113
|
flip: 'boolean',
|
138
114
|
boundary: '(string|element)',
|
139
115
|
reference: '(string|element)',
|
140
|
-
display: 'string'
|
141
|
-
|
142
|
-
* ------------------------------------------------------------------------
|
143
|
-
* Class Definition
|
144
|
-
* ------------------------------------------------------------------------
|
145
|
-
*/
|
146
|
-
|
116
|
+
display: 'string',
|
117
|
+
popperConfig: '(null|object)'
|
147
118
|
};
|
119
|
+
/**
|
120
|
+
* Class definition
|
121
|
+
*/
|
148
122
|
|
149
|
-
var Dropdown =
|
150
|
-
/*#__PURE__*/
|
151
|
-
function () {
|
123
|
+
var Dropdown = /*#__PURE__*/function () {
|
152
124
|
function Dropdown(element, config) {
|
153
125
|
this._element = element;
|
154
126
|
this._popper = null;
|
@@ -164,13 +136,11 @@
|
|
164
136
|
|
165
137
|
// Public
|
166
138
|
_proto.toggle = function toggle() {
|
167
|
-
if (this._element.disabled || $(this._element).hasClass(
|
139
|
+
if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED)) {
|
168
140
|
return;
|
169
141
|
}
|
170
142
|
|
171
|
-
var
|
172
|
-
|
173
|
-
var isActive = $(this._menu).hasClass(ClassName.SHOW);
|
143
|
+
var isActive = $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW);
|
174
144
|
|
175
145
|
Dropdown._clearMenus();
|
176
146
|
|
@@ -178,31 +148,43 @@
|
|
178
148
|
return;
|
179
149
|
}
|
180
150
|
|
151
|
+
this.show(true);
|
152
|
+
};
|
153
|
+
|
154
|
+
_proto.show = function show(usePopper) {
|
155
|
+
if (usePopper === void 0) {
|
156
|
+
usePopper = false;
|
157
|
+
}
|
158
|
+
|
159
|
+
if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED) || $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW)) {
|
160
|
+
return;
|
161
|
+
}
|
162
|
+
|
181
163
|
var relatedTarget = {
|
182
164
|
relatedTarget: this._element
|
183
165
|
};
|
184
|
-
var showEvent =
|
185
|
-
|
166
|
+
var showEvent = $__default["default"].Event(EVENT_SHOW, relatedTarget);
|
167
|
+
|
168
|
+
var parent = Dropdown._getParentFromElement(this._element);
|
169
|
+
|
170
|
+
$__default["default"](parent).trigger(showEvent);
|
186
171
|
|
187
172
|
if (showEvent.isDefaultPrevented()) {
|
188
173
|
return;
|
189
|
-
} //
|
174
|
+
} // Totally disable Popper for Dropdowns in Navbar
|
190
175
|
|
191
176
|
|
192
|
-
if (!this._inNavbar) {
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
*/
|
197
|
-
if (typeof Popper === 'undefined') {
|
198
|
-
throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)');
|
177
|
+
if (!this._inNavbar && usePopper) {
|
178
|
+
// Check for Popper dependency
|
179
|
+
if (typeof Popper__default["default"] === 'undefined') {
|
180
|
+
throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
|
199
181
|
}
|
200
182
|
|
201
183
|
var referenceElement = this._element;
|
202
184
|
|
203
185
|
if (this._config.reference === 'parent') {
|
204
186
|
referenceElement = parent;
|
205
|
-
} else if (
|
187
|
+
} else if (Util__default["default"].isElement(this._config.reference)) {
|
206
188
|
referenceElement = this._config.reference; // Check if it's jQuery element
|
207
189
|
|
208
190
|
if (typeof this._config.reference.jquery !== 'undefined') {
|
@@ -214,75 +196,57 @@
|
|
214
196
|
|
215
197
|
|
216
198
|
if (this._config.boundary !== 'scrollParent') {
|
217
|
-
$(parent).addClass(
|
199
|
+
$__default["default"](parent).addClass(CLASS_NAME_POSITION_STATIC);
|
218
200
|
}
|
219
201
|
|
220
|
-
this._popper = new
|
202
|
+
this._popper = new Popper__default["default"](referenceElement, this._menu, this._getPopperConfig());
|
221
203
|
} // If this is a touch-enabled device we add extra
|
222
204
|
// empty mouseover listeners to the body's immediate children;
|
223
205
|
// only needed because of broken event delegation on iOS
|
224
206
|
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
225
207
|
|
226
208
|
|
227
|
-
if ('ontouchstart' in document.documentElement && $(parent).closest(
|
228
|
-
$(document.body).children().on('mouseover', null,
|
209
|
+
if ('ontouchstart' in document.documentElement && $__default["default"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
|
210
|
+
$__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop);
|
229
211
|
}
|
230
212
|
|
231
213
|
this._element.focus();
|
232
214
|
|
233
215
|
this._element.setAttribute('aria-expanded', true);
|
234
216
|
|
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));
|
217
|
+
$__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW);
|
218
|
+
$__default["default"](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_SHOWN, relatedTarget));
|
259
219
|
};
|
260
220
|
|
261
221
|
_proto.hide = function hide() {
|
262
|
-
if (this._element.disabled || $(this._element).hasClass(
|
222
|
+
if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default["default"](this._menu).hasClass(CLASS_NAME_SHOW)) {
|
263
223
|
return;
|
264
224
|
}
|
265
225
|
|
266
226
|
var relatedTarget = {
|
267
227
|
relatedTarget: this._element
|
268
228
|
};
|
269
|
-
var hideEvent =
|
229
|
+
var hideEvent = $__default["default"].Event(EVENT_HIDE, relatedTarget);
|
270
230
|
|
271
231
|
var parent = Dropdown._getParentFromElement(this._element);
|
272
232
|
|
273
|
-
$(parent).trigger(hideEvent);
|
233
|
+
$__default["default"](parent).trigger(hideEvent);
|
274
234
|
|
275
235
|
if (hideEvent.isDefaultPrevented()) {
|
276
236
|
return;
|
277
237
|
}
|
278
238
|
|
279
|
-
|
280
|
-
|
239
|
+
if (this._popper) {
|
240
|
+
this._popper.destroy();
|
241
|
+
}
|
242
|
+
|
243
|
+
$__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW);
|
244
|
+
$__default["default"](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_HIDDEN, relatedTarget));
|
281
245
|
};
|
282
246
|
|
283
247
|
_proto.dispose = function dispose() {
|
284
|
-
|
285
|
-
$(this._element).off(EVENT_KEY);
|
248
|
+
$__default["default"].removeData(this._element, DATA_KEY);
|
249
|
+
$__default["default"](this._element).off(EVENT_KEY);
|
286
250
|
this._element = null;
|
287
251
|
this._menu = null;
|
288
252
|
|
@@ -305,7 +269,7 @@
|
|
305
269
|
_proto._addEventListeners = function _addEventListeners() {
|
306
270
|
var _this = this;
|
307
271
|
|
308
|
-
$(this._element).on(
|
272
|
+
$__default["default"](this._element).on(EVENT_CLICK, function (event) {
|
309
273
|
event.preventDefault();
|
310
274
|
event.stopPropagation();
|
311
275
|
|
@@ -314,8 +278,8 @@
|
|
314
278
|
};
|
315
279
|
|
316
280
|
_proto._getConfig = function _getConfig(config) {
|
317
|
-
config =
|
318
|
-
|
281
|
+
config = _extends({}, this.constructor.Default, $__default["default"](this._element).data(), config);
|
282
|
+
Util__default["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
319
283
|
return config;
|
320
284
|
};
|
321
285
|
|
@@ -324,7 +288,7 @@
|
|
324
288
|
var parent = Dropdown._getParentFromElement(this._element);
|
325
289
|
|
326
290
|
if (parent) {
|
327
|
-
this._menu = parent.querySelector(
|
291
|
+
this._menu = parent.querySelector(SELECTOR_MENU);
|
328
292
|
}
|
329
293
|
}
|
330
294
|
|
@@ -332,28 +296,24 @@
|
|
332
296
|
};
|
333
297
|
|
334
298
|
_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;
|
299
|
+
var $parentDropdown = $__default["default"](this._element.parentNode);
|
300
|
+
var placement = PLACEMENT_BOTTOM; // Handle dropup
|
301
|
+
|
302
|
+
if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
|
303
|
+
placement = $__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
|
304
|
+
} else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
|
305
|
+
placement = PLACEMENT_RIGHT;
|
306
|
+
} else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
|
307
|
+
placement = PLACEMENT_LEFT;
|
308
|
+
} else if ($__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
|
309
|
+
placement = PLACEMENT_BOTTOMEND;
|
350
310
|
}
|
351
311
|
|
352
312
|
return placement;
|
353
313
|
};
|
354
314
|
|
355
315
|
_proto._detectNavbar = function _detectNavbar() {
|
356
|
-
return $(this._element).closest('.navbar').length > 0;
|
316
|
+
return $__default["default"](this._element).closest('.navbar').length > 0;
|
357
317
|
};
|
358
318
|
|
359
319
|
_proto._getOffset = function _getOffset() {
|
@@ -363,7 +323,7 @@
|
|
363
323
|
|
364
324
|
if (typeof this._config.offset === 'function') {
|
365
325
|
offset.fn = function (data) {
|
366
|
-
data.offsets =
|
326
|
+
data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element));
|
367
327
|
return data;
|
368
328
|
};
|
369
329
|
} else {
|
@@ -384,9 +344,8 @@
|
|
384
344
|
preventOverflow: {
|
385
345
|
boundariesElement: this._config.boundary
|
386
346
|
}
|
387
|
-
}
|
388
|
-
|
389
|
-
};
|
347
|
+
}
|
348
|
+
}; // Disable Popper if we have a static display
|
390
349
|
|
391
350
|
if (this._config.display === 'static') {
|
392
351
|
popperConfig.modifiers.applyStyle = {
|
@@ -394,19 +353,19 @@
|
|
394
353
|
};
|
395
354
|
}
|
396
355
|
|
397
|
-
return popperConfig;
|
356
|
+
return _extends({}, popperConfig, this._config.popperConfig);
|
398
357
|
} // Static
|
399
358
|
;
|
400
359
|
|
401
360
|
Dropdown._jQueryInterface = function _jQueryInterface(config) {
|
402
361
|
return this.each(function () {
|
403
|
-
var data = $(this).data(DATA_KEY);
|
362
|
+
var data = $__default["default"](this).data(DATA_KEY);
|
404
363
|
|
405
364
|
var _config = typeof config === 'object' ? config : null;
|
406
365
|
|
407
366
|
if (!data) {
|
408
367
|
data = new Dropdown(this, _config);
|
409
|
-
$(this).data(DATA_KEY, data);
|
368
|
+
$__default["default"](this).data(DATA_KEY, data);
|
410
369
|
}
|
411
370
|
|
412
371
|
if (typeof config === 'string') {
|
@@ -424,12 +383,12 @@
|
|
424
383
|
return;
|
425
384
|
}
|
426
385
|
|
427
|
-
var toggles = [].slice.call(document.querySelectorAll(
|
386
|
+
var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
|
428
387
|
|
429
388
|
for (var i = 0, len = toggles.length; i < len; i++) {
|
430
389
|
var parent = Dropdown._getParentFromElement(toggles[i]);
|
431
390
|
|
432
|
-
var context = $(toggles[i]).data(DATA_KEY);
|
391
|
+
var context = $__default["default"](toggles[i]).data(DATA_KEY);
|
433
392
|
var relatedTarget = {
|
434
393
|
relatedTarget: toggles[i]
|
435
394
|
};
|
@@ -444,16 +403,16 @@
|
|
444
403
|
|
445
404
|
var dropdownMenu = context._menu;
|
446
405
|
|
447
|
-
if (!$(parent).hasClass(
|
406
|
+
if (!$__default["default"](parent).hasClass(CLASS_NAME_SHOW)) {
|
448
407
|
continue;
|
449
408
|
}
|
450
409
|
|
451
|
-
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&
|
410
|
+
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
411
|
continue;
|
453
412
|
}
|
454
413
|
|
455
|
-
var hideEvent =
|
456
|
-
$(parent).trigger(hideEvent);
|
414
|
+
var hideEvent = $__default["default"].Event(EVENT_HIDE, relatedTarget);
|
415
|
+
$__default["default"](parent).trigger(hideEvent);
|
457
416
|
|
458
417
|
if (hideEvent.isDefaultPrevented()) {
|
459
418
|
continue;
|
@@ -462,18 +421,23 @@
|
|
462
421
|
|
463
422
|
|
464
423
|
if ('ontouchstart' in document.documentElement) {
|
465
|
-
$(document.body).children().off('mouseover', null,
|
424
|
+
$__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop);
|
466
425
|
}
|
467
426
|
|
468
427
|
toggles[i].setAttribute('aria-expanded', 'false');
|
469
|
-
|
470
|
-
|
428
|
+
|
429
|
+
if (context._popper) {
|
430
|
+
context._popper.destroy();
|
431
|
+
}
|
432
|
+
|
433
|
+
$__default["default"](dropdownMenu).removeClass(CLASS_NAME_SHOW);
|
434
|
+
$__default["default"](parent).removeClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_HIDDEN, relatedTarget));
|
471
435
|
}
|
472
436
|
};
|
473
437
|
|
474
438
|
Dropdown._getParentFromElement = function _getParentFromElement(element) {
|
475
439
|
var parent;
|
476
|
-
var selector =
|
440
|
+
var selector = Util__default["default"].getSelectorFromElement(element);
|
477
441
|
|
478
442
|
if (selector) {
|
479
443
|
parent = document.querySelector(selector);
|
@@ -491,32 +455,37 @@
|
|
491
455
|
// - If key is other than escape
|
492
456
|
// - If key is not up or down => not a dropdown command
|
493
457
|
// - 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(
|
458
|
+
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
459
|
return;
|
496
460
|
}
|
497
461
|
|
498
|
-
|
499
|
-
event.stopPropagation();
|
500
|
-
|
501
|
-
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
|
462
|
+
if (this.disabled || $__default["default"](this).hasClass(CLASS_NAME_DISABLED)) {
|
502
463
|
return;
|
503
464
|
}
|
504
465
|
|
505
466
|
var parent = Dropdown._getParentFromElement(this);
|
506
467
|
|
507
|
-
var isActive = $(parent).hasClass(
|
468
|
+
var isActive = $__default["default"](parent).hasClass(CLASS_NAME_SHOW);
|
469
|
+
|
470
|
+
if (!isActive && event.which === ESCAPE_KEYCODE) {
|
471
|
+
return;
|
472
|
+
}
|
473
|
+
|
474
|
+
event.preventDefault();
|
475
|
+
event.stopPropagation();
|
508
476
|
|
509
|
-
if (!isActive ||
|
477
|
+
if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {
|
510
478
|
if (event.which === ESCAPE_KEYCODE) {
|
511
|
-
|
512
|
-
$(toggle).trigger('focus');
|
479
|
+
$__default["default"](parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus');
|
513
480
|
}
|
514
481
|
|
515
|
-
$(this).trigger('click');
|
482
|
+
$__default["default"](this).trigger('click');
|
516
483
|
return;
|
517
484
|
}
|
518
485
|
|
519
|
-
var items = [].slice.call(parent.querySelectorAll(
|
486
|
+
var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
|
487
|
+
return $__default["default"](item).is(':visible');
|
488
|
+
});
|
520
489
|
|
521
490
|
if (items.length === 0) {
|
522
491
|
return;
|
@@ -561,31 +530,27 @@
|
|
561
530
|
return Dropdown;
|
562
531
|
}();
|
563
532
|
/**
|
564
|
-
*
|
565
|
-
* Data Api implementation
|
566
|
-
* ------------------------------------------------------------------------
|
533
|
+
* Data API implementation
|
567
534
|
*/
|
568
535
|
|
569
536
|
|
570
|
-
$(document).on(
|
537
|
+
$__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
538
|
event.preventDefault();
|
572
539
|
event.stopPropagation();
|
573
540
|
|
574
|
-
Dropdown._jQueryInterface.call($(this), 'toggle');
|
575
|
-
}).on(
|
541
|
+
Dropdown._jQueryInterface.call($__default["default"](this), 'toggle');
|
542
|
+
}).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
|
576
543
|
e.stopPropagation();
|
577
544
|
});
|
578
545
|
/**
|
579
|
-
* ------------------------------------------------------------------------
|
580
546
|
* jQuery
|
581
|
-
* ------------------------------------------------------------------------
|
582
547
|
*/
|
583
548
|
|
584
|
-
|
585
|
-
|
549
|
+
$__default["default"].fn[NAME] = Dropdown._jQueryInterface;
|
550
|
+
$__default["default"].fn[NAME].Constructor = Dropdown;
|
586
551
|
|
587
|
-
|
588
|
-
|
552
|
+
$__default["default"].fn[NAME].noConflict = function () {
|
553
|
+
$__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
|
589
554
|
return Dropdown._jQueryInterface;
|
590
555
|
};
|
591
556
|
|