bootstrap 4.0.0 → 4.3.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 +5 -5
- data/.travis.yml +1 -1
- data/CHANGELOG.md +8 -0
- data/README.md +2 -2
- data/Rakefile +4 -2
- data/assets/javascripts/bootstrap/alert.js +45 -22
- data/assets/javascripts/bootstrap/button.js +39 -19
- data/assets/javascripts/bootstrap/carousel.js +213 -51
- data/assets/javascripts/bootstrap/collapse.js +105 -52
- data/assets/javascripts/bootstrap/dropdown.js +169 -45
- data/assets/javascripts/bootstrap/modal.js +139 -71
- data/assets/javascripts/bootstrap/popover.js +77 -20
- data/assets/javascripts/bootstrap/scrollspy.js +87 -29
- data/assets/javascripts/bootstrap/tab.js +50 -32
- data/assets/javascripts/bootstrap/toast.js +282 -0
- data/assets/javascripts/bootstrap/tooltip.js +295 -59
- data/assets/javascripts/bootstrap/util.js +78 -45
- data/assets/javascripts/bootstrap-sprockets.js +7 -6
- data/assets/javascripts/bootstrap.js +1537 -996
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +4 -7
- data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
- data/assets/stylesheets/_bootstrap.scss +5 -3
- data/assets/stylesheets/bootstrap/_alert.scss +1 -1
- data/assets/stylesheets/bootstrap/_badge.scss +8 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +9 -6
- data/assets/stylesheets/bootstrap/_button-group.scss +16 -19
- data/assets/stylesheets/bootstrap/_buttons.scss +10 -16
- data/assets/stylesheets/bootstrap/_card.scss +53 -34
- data/assets/stylesheets/bootstrap/_carousel.scss +66 -60
- data/assets/stylesheets/bootstrap/_close.scss +15 -8
- data/assets/stylesheets/bootstrap/_code.scss +5 -13
- data/assets/stylesheets/bootstrap/_custom-forms.scss +250 -40
- data/assets/stylesheets/bootstrap/_dropdown.scss +65 -5
- data/assets/stylesheets/bootstrap/_forms.scss +32 -35
- data/assets/stylesheets/bootstrap/_functions.scss +9 -9
- data/assets/stylesheets/bootstrap/_images.scss +2 -2
- data/assets/stylesheets/bootstrap/_input-group.scss +45 -11
- data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +39 -5
- data/assets/stylesheets/bootstrap/_mixins.scss +6 -1
- data/assets/stylesheets/bootstrap/_modal.scss +80 -19
- data/assets/stylesheets/bootstrap/_nav.scss +2 -0
- data/assets/stylesheets/bootstrap/_navbar.scss +9 -26
- data/assets/stylesheets/bootstrap/_pagination.scss +2 -6
- data/assets/stylesheets/bootstrap/_popover.scss +47 -59
- data/assets/stylesheets/bootstrap/_print.scss +23 -6
- data/assets/stylesheets/bootstrap/_progress.scss +16 -6
- data/assets/stylesheets/bootstrap/_reboot.scss +51 -50
- data/assets/stylesheets/bootstrap/_spinners.scss +55 -0
- data/assets/stylesheets/bootstrap/_tables.scss +16 -11
- data/assets/stylesheets/bootstrap/_toasts.scss +44 -0
- data/assets/stylesheets/bootstrap/_tooltip.scss +1 -1
- data/assets/stylesheets/bootstrap/_transitions.scss +4 -20
- data/assets/stylesheets/bootstrap/_type.scss +16 -16
- data/assets/stylesheets/bootstrap/_utilities.scss +3 -0
- data/assets/stylesheets/bootstrap/_variables.scss +430 -201
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +7 -2
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +29 -1
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +12 -14
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +5 -8
- data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
- data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +68 -13
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +3 -4
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +9 -10
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +3 -5
- data/assets/stylesheets/bootstrap/mixins/_image.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -3
- data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +10 -1
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +3 -1
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +17 -1
- data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -18
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -4
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +26 -6
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +204 -0
- data/bootstrap.gemspec +6 -3
- data/lib/bootstrap/engine.rb +3 -0
- data/lib/bootstrap/version.rb +4 -2
- data/lib/bootstrap.rb +10 -7
- data/tasks/updater/js.rb +1 -1
- data/test/test_helper.rb +7 -6
- metadata +19 -12
- data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
|
@@ -1,28 +1,79 @@
|
|
|
1
|
-
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap collapse.js v4.3.1 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
5
|
+
*/
|
|
6
|
+
(function (global, factory) {
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
|
9
|
+
(global = global || self, global.Collapse = factory(global.jQuery, global.Util));
|
|
10
|
+
}(this, function ($, Util) { 'use strict';
|
|
11
|
+
|
|
12
|
+
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
|
13
|
+
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
|
|
14
|
+
|
|
15
|
+
function _defineProperties(target, props) {
|
|
16
|
+
for (var i = 0; i < props.length; i++) {
|
|
17
|
+
var descriptor = props[i];
|
|
18
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
19
|
+
descriptor.configurable = true;
|
|
20
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
21
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
|
26
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
27
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
28
|
+
return Constructor;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function _defineProperty(obj, key, value) {
|
|
32
|
+
if (key in obj) {
|
|
33
|
+
Object.defineProperty(obj, key, {
|
|
34
|
+
value: value,
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true
|
|
38
|
+
});
|
|
39
|
+
} else {
|
|
40
|
+
obj[key] = value;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return obj;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function _objectSpread(target) {
|
|
47
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
48
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
49
|
+
var ownKeys = Object.keys(source);
|
|
50
|
+
|
|
51
|
+
if (typeof Object.getOwnPropertySymbols === 'function') {
|
|
52
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
|
53
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
2
56
|
|
|
3
|
-
|
|
57
|
+
ownKeys.forEach(function (key) {
|
|
58
|
+
_defineProperty(target, key, source[key]);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
4
61
|
|
|
5
|
-
|
|
62
|
+
return target;
|
|
63
|
+
}
|
|
6
64
|
|
|
7
|
-
/**
|
|
8
|
-
* --------------------------------------------------------------------------
|
|
9
|
-
* Bootstrap (v4.0.0): collapse.js
|
|
10
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
11
|
-
* --------------------------------------------------------------------------
|
|
12
|
-
*/
|
|
13
|
-
var Collapse = function ($) {
|
|
14
65
|
/**
|
|
15
66
|
* ------------------------------------------------------------------------
|
|
16
67
|
* Constants
|
|
17
68
|
* ------------------------------------------------------------------------
|
|
18
69
|
*/
|
|
70
|
+
|
|
19
71
|
var NAME = 'collapse';
|
|
20
|
-
var VERSION = '4.
|
|
72
|
+
var VERSION = '4.3.1';
|
|
21
73
|
var DATA_KEY = 'bs.collapse';
|
|
22
74
|
var EVENT_KEY = "." + DATA_KEY;
|
|
23
75
|
var DATA_API_KEY = '.data-api';
|
|
24
76
|
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
25
|
-
var TRANSITION_DURATION = 600;
|
|
26
77
|
var Default = {
|
|
27
78
|
toggle: true,
|
|
28
79
|
parent: ''
|
|
@@ -66,14 +117,17 @@ var Collapse = function ($) {
|
|
|
66
117
|
this._isTransitioning = false;
|
|
67
118
|
this._element = element;
|
|
68
119
|
this._config = this._getConfig(config);
|
|
69
|
-
this._triggerArray =
|
|
70
|
-
var
|
|
120
|
+
this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
|
|
121
|
+
var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
|
|
71
122
|
|
|
72
|
-
for (var i = 0; i <
|
|
73
|
-
var elem =
|
|
123
|
+
for (var i = 0, len = toggleList.length; i < len; i++) {
|
|
124
|
+
var elem = toggleList[i];
|
|
74
125
|
var selector = Util.getSelectorFromElement(elem);
|
|
126
|
+
var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
|
|
127
|
+
return foundElem === element;
|
|
128
|
+
});
|
|
75
129
|
|
|
76
|
-
if (selector !== null &&
|
|
130
|
+
if (selector !== null && filterElement.length > 0) {
|
|
77
131
|
this._selector = selector;
|
|
78
132
|
|
|
79
133
|
this._triggerArray.push(elem);
|
|
@@ -114,7 +168,13 @@ var Collapse = function ($) {
|
|
|
114
168
|
var activesData;
|
|
115
169
|
|
|
116
170
|
if (this._parent) {
|
|
117
|
-
actives =
|
|
171
|
+
actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {
|
|
172
|
+
if (typeof _this._config.parent === 'string') {
|
|
173
|
+
return elem.getAttribute('data-parent') === _this._config.parent;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return elem.classList.contains(ClassName.COLLAPSE);
|
|
177
|
+
});
|
|
118
178
|
|
|
119
179
|
if (actives.length === 0) {
|
|
120
180
|
actives = null;
|
|
@@ -149,7 +209,7 @@ var Collapse = function ($) {
|
|
|
149
209
|
$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
|
|
150
210
|
this._element.style[dimension] = 0;
|
|
151
211
|
|
|
152
|
-
if (this._triggerArray.length
|
|
212
|
+
if (this._triggerArray.length) {
|
|
153
213
|
$(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
|
|
154
214
|
}
|
|
155
215
|
|
|
@@ -164,14 +224,10 @@ var Collapse = function ($) {
|
|
|
164
224
|
$(_this._element).trigger(Event.SHOWN);
|
|
165
225
|
};
|
|
166
226
|
|
|
167
|
-
if (!Util.supportsTransitionEnd()) {
|
|
168
|
-
complete();
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
227
|
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
|
173
228
|
var scrollSize = "scroll" + capitalizedDimension;
|
|
174
|
-
|
|
229
|
+
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
|
230
|
+
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
|
175
231
|
this._element.style[dimension] = this._element[scrollSize] + "px";
|
|
176
232
|
};
|
|
177
233
|
|
|
@@ -194,14 +250,15 @@ var Collapse = function ($) {
|
|
|
194
250
|
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
|
195
251
|
Util.reflow(this._element);
|
|
196
252
|
$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
|
|
253
|
+
var triggerArrayLength = this._triggerArray.length;
|
|
197
254
|
|
|
198
|
-
if (
|
|
199
|
-
for (var i = 0; i <
|
|
255
|
+
if (triggerArrayLength > 0) {
|
|
256
|
+
for (var i = 0; i < triggerArrayLength; i++) {
|
|
200
257
|
var trigger = this._triggerArray[i];
|
|
201
258
|
var selector = Util.getSelectorFromElement(trigger);
|
|
202
259
|
|
|
203
260
|
if (selector !== null) {
|
|
204
|
-
var $elem = $(selector);
|
|
261
|
+
var $elem = $([].slice.call(document.querySelectorAll(selector)));
|
|
205
262
|
|
|
206
263
|
if (!$elem.hasClass(ClassName.SHOW)) {
|
|
207
264
|
$(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
|
|
@@ -219,13 +276,8 @@ var Collapse = function ($) {
|
|
|
219
276
|
};
|
|
220
277
|
|
|
221
278
|
this._element.style[dimension] = '';
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
complete();
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
|
|
279
|
+
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
|
280
|
+
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
|
229
281
|
};
|
|
230
282
|
|
|
231
283
|
_proto.setTransitioning = function setTransitioning(isTransitioning) {
|
|
@@ -239,11 +291,11 @@ var Collapse = function ($) {
|
|
|
239
291
|
this._element = null;
|
|
240
292
|
this._triggerArray = null;
|
|
241
293
|
this._isTransitioning = null;
|
|
242
|
-
}
|
|
243
|
-
|
|
294
|
+
} // Private
|
|
295
|
+
;
|
|
244
296
|
|
|
245
297
|
_proto._getConfig = function _getConfig(config) {
|
|
246
|
-
config =
|
|
298
|
+
config = _objectSpread({}, Default, config);
|
|
247
299
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
|
248
300
|
|
|
249
301
|
Util.typeCheckConfig(NAME, config, DefaultType);
|
|
@@ -258,7 +310,7 @@ var Collapse = function ($) {
|
|
|
258
310
|
_proto._getParent = function _getParent() {
|
|
259
311
|
var _this3 = this;
|
|
260
312
|
|
|
261
|
-
var parent
|
|
313
|
+
var parent;
|
|
262
314
|
|
|
263
315
|
if (Util.isElement(this._config.parent)) {
|
|
264
316
|
parent = this._config.parent; // It's a jQuery object
|
|
@@ -267,30 +319,29 @@ var Collapse = function ($) {
|
|
|
267
319
|
parent = this._config.parent[0];
|
|
268
320
|
}
|
|
269
321
|
} else {
|
|
270
|
-
parent =
|
|
322
|
+
parent = document.querySelector(this._config.parent);
|
|
271
323
|
}
|
|
272
324
|
|
|
273
325
|
var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
|
|
274
|
-
|
|
326
|
+
var children = [].slice.call(parent.querySelectorAll(selector));
|
|
327
|
+
$(children).each(function (i, element) {
|
|
275
328
|
_this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
|
|
276
329
|
});
|
|
277
330
|
return parent;
|
|
278
331
|
};
|
|
279
332
|
|
|
280
333
|
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
|
281
|
-
|
|
282
|
-
var isOpen = $(element).hasClass(ClassName.SHOW);
|
|
334
|
+
var isOpen = $(element).hasClass(ClassName.SHOW);
|
|
283
335
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
}
|
|
336
|
+
if (triggerArray.length) {
|
|
337
|
+
$(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
|
287
338
|
}
|
|
288
|
-
}
|
|
289
|
-
|
|
339
|
+
} // Static
|
|
340
|
+
;
|
|
290
341
|
|
|
291
342
|
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
|
|
292
343
|
var selector = Util.getSelectorFromElement(element);
|
|
293
|
-
return selector ?
|
|
344
|
+
return selector ? document.querySelector(selector) : null;
|
|
294
345
|
};
|
|
295
346
|
|
|
296
347
|
Collapse._jQueryInterface = function _jQueryInterface(config) {
|
|
@@ -298,7 +349,7 @@ var Collapse = function ($) {
|
|
|
298
349
|
var $this = $(this);
|
|
299
350
|
var data = $this.data(DATA_KEY);
|
|
300
351
|
|
|
301
|
-
var _config =
|
|
352
|
+
var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
|
|
302
353
|
|
|
303
354
|
if (!data && _config.toggle && /show|hide/.test(config)) {
|
|
304
355
|
_config.toggle = false;
|
|
@@ -348,7 +399,8 @@ var Collapse = function ($) {
|
|
|
348
399
|
|
|
349
400
|
var $trigger = $(this);
|
|
350
401
|
var selector = Util.getSelectorFromElement(this);
|
|
351
|
-
|
|
402
|
+
var selectors = [].slice.call(document.querySelectorAll(selector));
|
|
403
|
+
$(selectors).each(function () {
|
|
352
404
|
var $target = $(this);
|
|
353
405
|
var data = $target.data(DATA_KEY);
|
|
354
406
|
var config = data ? 'toggle' : $trigger.data();
|
|
@@ -371,4 +423,5 @@ var Collapse = function ($) {
|
|
|
371
423
|
};
|
|
372
424
|
|
|
373
425
|
return Collapse;
|
|
374
|
-
|
|
426
|
+
|
|
427
|
+
}));
|
|
@@ -1,23 +1,76 @@
|
|
|
1
|
-
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap dropdown.js v4.3.1 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
5
|
+
*/
|
|
6
|
+
(function (global, factory) {
|
|
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.js'], factory) :
|
|
9
|
+
(global = global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));
|
|
10
|
+
}(this, function ($, Popper, Util) { 'use strict';
|
|
11
|
+
|
|
12
|
+
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
|
13
|
+
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
|
|
14
|
+
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
|
|
15
|
+
|
|
16
|
+
function _defineProperties(target, props) {
|
|
17
|
+
for (var i = 0; i < props.length; i++) {
|
|
18
|
+
var descriptor = props[i];
|
|
19
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
20
|
+
descriptor.configurable = true;
|
|
21
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
22
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
|
27
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
28
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
|
+
return Constructor;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function _defineProperty(obj, key, value) {
|
|
33
|
+
if (key in obj) {
|
|
34
|
+
Object.defineProperty(obj, key, {
|
|
35
|
+
value: value,
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
obj[key] = value;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return obj;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function _objectSpread(target) {
|
|
48
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
49
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
50
|
+
var ownKeys = Object.keys(source);
|
|
51
|
+
|
|
52
|
+
if (typeof Object.getOwnPropertySymbols === 'function') {
|
|
53
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
|
54
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
2
57
|
|
|
3
|
-
|
|
58
|
+
ownKeys.forEach(function (key) {
|
|
59
|
+
_defineProperty(target, key, source[key]);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
4
62
|
|
|
5
|
-
|
|
63
|
+
return target;
|
|
64
|
+
}
|
|
6
65
|
|
|
7
|
-
/**
|
|
8
|
-
* --------------------------------------------------------------------------
|
|
9
|
-
* Bootstrap (v4.0.0): dropdown.js
|
|
10
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
11
|
-
* --------------------------------------------------------------------------
|
|
12
|
-
*/
|
|
13
|
-
var Dropdown = function ($) {
|
|
14
66
|
/**
|
|
15
67
|
* ------------------------------------------------------------------------
|
|
16
68
|
* Constants
|
|
17
69
|
* ------------------------------------------------------------------------
|
|
18
70
|
*/
|
|
71
|
+
|
|
19
72
|
var NAME = 'dropdown';
|
|
20
|
-
var VERSION = '4.
|
|
73
|
+
var VERSION = '4.3.1';
|
|
21
74
|
var DATA_KEY = 'bs.dropdown';
|
|
22
75
|
var EVENT_KEY = "." + DATA_KEY;
|
|
23
76
|
var DATA_API_KEY = '.data-api';
|
|
@@ -60,7 +113,7 @@ var Dropdown = function ($) {
|
|
|
60
113
|
FORM_CHILD: '.dropdown form',
|
|
61
114
|
MENU: '.dropdown-menu',
|
|
62
115
|
NAVBAR_NAV: '.navbar-nav',
|
|
63
|
-
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
|
|
116
|
+
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
|
|
64
117
|
};
|
|
65
118
|
var AttachmentMap = {
|
|
66
119
|
TOP: 'top-start',
|
|
@@ -75,12 +128,16 @@ var Dropdown = function ($) {
|
|
|
75
128
|
var Default = {
|
|
76
129
|
offset: 0,
|
|
77
130
|
flip: true,
|
|
78
|
-
boundary: 'scrollParent'
|
|
131
|
+
boundary: 'scrollParent',
|
|
132
|
+
reference: 'toggle',
|
|
133
|
+
display: 'dynamic'
|
|
79
134
|
};
|
|
80
135
|
var DefaultType = {
|
|
81
136
|
offset: '(number|string|function)',
|
|
82
137
|
flip: 'boolean',
|
|
83
|
-
boundary: '(string|element)'
|
|
138
|
+
boundary: '(string|element)',
|
|
139
|
+
reference: '(string|element)',
|
|
140
|
+
display: 'string'
|
|
84
141
|
/**
|
|
85
142
|
* ------------------------------------------------------------------------
|
|
86
143
|
* Class Definition
|
|
@@ -138,14 +195,18 @@ var Dropdown = function ($) {
|
|
|
138
195
|
* Popper - https://popper.js.org
|
|
139
196
|
*/
|
|
140
197
|
if (typeof Popper === 'undefined') {
|
|
141
|
-
throw new TypeError('Bootstrap
|
|
198
|
+
throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)');
|
|
142
199
|
}
|
|
143
200
|
|
|
144
|
-
var
|
|
201
|
+
var referenceElement = this._element;
|
|
145
202
|
|
|
146
|
-
if (
|
|
147
|
-
|
|
148
|
-
|
|
203
|
+
if (this._config.reference === 'parent') {
|
|
204
|
+
referenceElement = parent;
|
|
205
|
+
} else if (Util.isElement(this._config.reference)) {
|
|
206
|
+
referenceElement = this._config.reference; // Check if it's jQuery element
|
|
207
|
+
|
|
208
|
+
if (typeof this._config.reference.jquery !== 'undefined') {
|
|
209
|
+
referenceElement = this._config.reference[0];
|
|
149
210
|
}
|
|
150
211
|
} // If boundary is not `scrollParent`, then set position to `static`
|
|
151
212
|
// to allow the menu to "escape" the scroll parent's boundaries
|
|
@@ -156,7 +217,7 @@ var Dropdown = function ($) {
|
|
|
156
217
|
$(parent).addClass(ClassName.POSITION_STATIC);
|
|
157
218
|
}
|
|
158
219
|
|
|
159
|
-
this._popper = new Popper(
|
|
220
|
+
this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
|
|
160
221
|
} // If this is a touch-enabled device we add extra
|
|
161
222
|
// empty mouseover listeners to the body's immediate children;
|
|
162
223
|
// only needed because of broken event delegation on iOS
|
|
@@ -164,7 +225,7 @@ var Dropdown = function ($) {
|
|
|
164
225
|
|
|
165
226
|
|
|
166
227
|
if ('ontouchstart' in document.documentElement && $(parent).closest(Selector.NAVBAR_NAV).length === 0) {
|
|
167
|
-
$(
|
|
228
|
+
$(document.body).children().on('mouseover', null, $.noop);
|
|
168
229
|
}
|
|
169
230
|
|
|
170
231
|
this._element.focus();
|
|
@@ -175,6 +236,50 @@ var Dropdown = function ($) {
|
|
|
175
236
|
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
|
|
176
237
|
};
|
|
177
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));
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
_proto.hide = function hide() {
|
|
262
|
+
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || !$(this._menu).hasClass(ClassName.SHOW)) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
var relatedTarget = {
|
|
267
|
+
relatedTarget: this._element
|
|
268
|
+
};
|
|
269
|
+
var hideEvent = $.Event(Event.HIDE, relatedTarget);
|
|
270
|
+
|
|
271
|
+
var parent = Dropdown._getParentFromElement(this._element);
|
|
272
|
+
|
|
273
|
+
$(parent).trigger(hideEvent);
|
|
274
|
+
|
|
275
|
+
if (hideEvent.isDefaultPrevented()) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
$(this._menu).toggleClass(ClassName.SHOW);
|
|
280
|
+
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
|
|
281
|
+
};
|
|
282
|
+
|
|
178
283
|
_proto.dispose = function dispose() {
|
|
179
284
|
$.removeData(this._element, DATA_KEY);
|
|
180
285
|
$(this._element).off(EVENT_KEY);
|
|
@@ -194,8 +299,8 @@ var Dropdown = function ($) {
|
|
|
194
299
|
if (this._popper !== null) {
|
|
195
300
|
this._popper.scheduleUpdate();
|
|
196
301
|
}
|
|
197
|
-
}
|
|
198
|
-
|
|
302
|
+
} // Private
|
|
303
|
+
;
|
|
199
304
|
|
|
200
305
|
_proto._addEventListeners = function _addEventListeners() {
|
|
201
306
|
var _this = this;
|
|
@@ -209,7 +314,7 @@ var Dropdown = function ($) {
|
|
|
209
314
|
};
|
|
210
315
|
|
|
211
316
|
_proto._getConfig = function _getConfig(config) {
|
|
212
|
-
config =
|
|
317
|
+
config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);
|
|
213
318
|
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
|
214
319
|
return config;
|
|
215
320
|
};
|
|
@@ -218,14 +323,16 @@ var Dropdown = function ($) {
|
|
|
218
323
|
if (!this._menu) {
|
|
219
324
|
var parent = Dropdown._getParentFromElement(this._element);
|
|
220
325
|
|
|
221
|
-
|
|
326
|
+
if (parent) {
|
|
327
|
+
this._menu = parent.querySelector(Selector.MENU);
|
|
328
|
+
}
|
|
222
329
|
}
|
|
223
330
|
|
|
224
331
|
return this._menu;
|
|
225
332
|
};
|
|
226
333
|
|
|
227
334
|
_proto._getPlacement = function _getPlacement() {
|
|
228
|
-
var $parentDropdown = $(this._element
|
|
335
|
+
var $parentDropdown = $(this._element.parentNode);
|
|
229
336
|
var placement = AttachmentMap.BOTTOM; // Handle dropup
|
|
230
337
|
|
|
231
338
|
if ($parentDropdown.hasClass(ClassName.DROPUP)) {
|
|
@@ -249,35 +356,47 @@ var Dropdown = function ($) {
|
|
|
249
356
|
return $(this._element).closest('.navbar').length > 0;
|
|
250
357
|
};
|
|
251
358
|
|
|
252
|
-
_proto.
|
|
359
|
+
_proto._getOffset = function _getOffset() {
|
|
253
360
|
var _this2 = this;
|
|
254
361
|
|
|
255
|
-
var
|
|
362
|
+
var offset = {};
|
|
256
363
|
|
|
257
364
|
if (typeof this._config.offset === 'function') {
|
|
258
|
-
|
|
259
|
-
data.offsets =
|
|
365
|
+
offset.fn = function (data) {
|
|
366
|
+
data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
|
|
260
367
|
return data;
|
|
261
368
|
};
|
|
262
369
|
} else {
|
|
263
|
-
|
|
370
|
+
offset.offset = this._config.offset;
|
|
264
371
|
}
|
|
265
372
|
|
|
373
|
+
return offset;
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
_proto._getPopperConfig = function _getPopperConfig() {
|
|
266
377
|
var popperConfig = {
|
|
267
378
|
placement: this._getPlacement(),
|
|
268
379
|
modifiers: {
|
|
269
|
-
offset:
|
|
380
|
+
offset: this._getOffset(),
|
|
270
381
|
flip: {
|
|
271
382
|
enabled: this._config.flip
|
|
272
383
|
},
|
|
273
384
|
preventOverflow: {
|
|
274
385
|
boundariesElement: this._config.boundary
|
|
275
386
|
}
|
|
276
|
-
}
|
|
387
|
+
} // Disable Popper.js if we have a static display
|
|
388
|
+
|
|
277
389
|
};
|
|
278
|
-
return popperConfig;
|
|
279
|
-
}; // Static
|
|
280
390
|
|
|
391
|
+
if (this._config.display === 'static') {
|
|
392
|
+
popperConfig.modifiers.applyStyle = {
|
|
393
|
+
enabled: false
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
return popperConfig;
|
|
398
|
+
} // Static
|
|
399
|
+
;
|
|
281
400
|
|
|
282
401
|
Dropdown._jQueryInterface = function _jQueryInterface(config) {
|
|
283
402
|
return this.each(function () {
|
|
@@ -305,9 +424,9 @@ var Dropdown = function ($) {
|
|
|
305
424
|
return;
|
|
306
425
|
}
|
|
307
426
|
|
|
308
|
-
var toggles =
|
|
427
|
+
var toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
|
|
309
428
|
|
|
310
|
-
for (var i = 0
|
|
429
|
+
for (var i = 0, len = toggles.length; i < len; i++) {
|
|
311
430
|
var parent = Dropdown._getParentFromElement(toggles[i]);
|
|
312
431
|
|
|
313
432
|
var context = $(toggles[i]).data(DATA_KEY);
|
|
@@ -315,6 +434,10 @@ var Dropdown = function ($) {
|
|
|
315
434
|
relatedTarget: toggles[i]
|
|
316
435
|
};
|
|
317
436
|
|
|
437
|
+
if (event && event.type === 'click') {
|
|
438
|
+
relatedTarget.clickEvent = event;
|
|
439
|
+
}
|
|
440
|
+
|
|
318
441
|
if (!context) {
|
|
319
442
|
continue;
|
|
320
443
|
}
|
|
@@ -339,7 +462,7 @@ var Dropdown = function ($) {
|
|
|
339
462
|
|
|
340
463
|
|
|
341
464
|
if ('ontouchstart' in document.documentElement) {
|
|
342
|
-
$(
|
|
465
|
+
$(document.body).children().off('mouseover', null, $.noop);
|
|
343
466
|
}
|
|
344
467
|
|
|
345
468
|
toggles[i].setAttribute('aria-expanded', 'false');
|
|
@@ -353,12 +476,12 @@ var Dropdown = function ($) {
|
|
|
353
476
|
var selector = Util.getSelectorFromElement(element);
|
|
354
477
|
|
|
355
478
|
if (selector) {
|
|
356
|
-
parent =
|
|
479
|
+
parent = document.querySelector(selector);
|
|
357
480
|
}
|
|
358
481
|
|
|
359
482
|
return parent || element.parentNode;
|
|
360
|
-
}
|
|
361
|
-
|
|
483
|
+
} // eslint-disable-next-line complexity
|
|
484
|
+
;
|
|
362
485
|
|
|
363
486
|
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
|
364
487
|
// If not input/textarea:
|
|
@@ -383,9 +506,9 @@ var Dropdown = function ($) {
|
|
|
383
506
|
|
|
384
507
|
var isActive = $(parent).hasClass(ClassName.SHOW);
|
|
385
508
|
|
|
386
|
-
if (!isActive
|
|
509
|
+
if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
|
387
510
|
if (event.which === ESCAPE_KEYCODE) {
|
|
388
|
-
var toggle =
|
|
511
|
+
var toggle = parent.querySelector(Selector.DATA_TOGGLE);
|
|
389
512
|
$(toggle).trigger('focus');
|
|
390
513
|
}
|
|
391
514
|
|
|
@@ -393,7 +516,7 @@ var Dropdown = function ($) {
|
|
|
393
516
|
return;
|
|
394
517
|
}
|
|
395
518
|
|
|
396
|
-
var items =
|
|
519
|
+
var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS));
|
|
397
520
|
|
|
398
521
|
if (items.length === 0) {
|
|
399
522
|
return;
|
|
@@ -467,4 +590,5 @@ var Dropdown = function ($) {
|
|
|
467
590
|
};
|
|
468
591
|
|
|
469
592
|
return Dropdown;
|
|
470
|
-
|
|
593
|
+
|
|
594
|
+
}));
|