bootstrap 4.4.1 → 5.0.0.alpha2
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 +12 -2
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +12 -8
- data/assets/javascripts/bootstrap.js +2094 -1562
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/javascripts/bootstrap/alert.js +145 -83
- data/assets/javascripts/bootstrap/button.js +66 -152
- data/assets/javascripts/bootstrap/carousel.js +307 -241
- data/assets/javascripts/bootstrap/collapse.js +287 -183
- data/assets/javascripts/bootstrap/dom/data.js +81 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +315 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +96 -0
- data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
- data/assets/javascripts/bootstrap/dropdown.js +255 -261
- data/assets/javascripts/bootstrap/modal.js +364 -270
- data/assets/javascripts/bootstrap/popover.js +72 -113
- data/assets/javascripts/bootstrap/scrollspy.js +162 -147
- data/assets/javascripts/bootstrap/tab.js +176 -108
- data/assets/javascripts/bootstrap/toast.js +179 -139
- data/assets/javascripts/bootstrap/tooltip.js +369 -259
- data/assets/stylesheets/_bootstrap-grid.scss +54 -18
- data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
- data/assets/stylesheets/_bootstrap.scss +17 -11
- data/assets/stylesheets/bootstrap/_alert.scss +6 -7
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -17
- data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
- data/assets/stylesheets/bootstrap/_buttons.scss +25 -40
- data/assets/stylesheets/bootstrap/_card.scss +43 -79
- data/assets/stylesheets/bootstrap/_carousel.scss +30 -15
- data/assets/stylesheets/bootstrap/_close.scss +31 -31
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +54 -9
- data/assets/stylesheets/bootstrap/_forms.scss +9 -338
- data/assets/stylesheets/bootstrap/_functions.scss +97 -25
- data/assets/stylesheets/bootstrap/_grid.scss +3 -50
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +16 -17
- data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
- data/assets/stylesheets/bootstrap/_modal.scss +41 -45
- data/assets/stylesheets/bootstrap/_nav.scss +16 -9
- data/assets/stylesheets/bootstrap/_navbar.scss +43 -74
- data/assets/stylesheets/bootstrap/_pagination.scss +11 -20
- data/assets/stylesheets/bootstrap/_popover.scss +5 -5
- data/assets/stylesheets/bootstrap/_progress.scss +2 -3
- data/assets/stylesheets/bootstrap/_reboot.scss +310 -175
- data/assets/stylesheets/bootstrap/_root.scss +5 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +5 -4
- data/assets/stylesheets/bootstrap/_tables.scss +80 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +6 -2
- data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +531 -17
- data/assets/stylesheets/bootstrap/_variables.scss +609 -444
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +142 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +116 -0
- data/assets/stylesheets/bootstrap/forms/_form-file.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +136 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +82 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +140 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
- data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -4
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +35 -22
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +69 -51
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +22 -66
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +84 -33
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +28 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +3 -3
- data/tasks/updater/network.rb +2 -2
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- metadata +36 -41
- data/assets/javascripts/bootstrap/util.js +0 -188
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -521
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -191
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -141
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -22
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -71
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap polyfill.js v5.0.0-alpha2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
|
+
*/
|
|
6
|
+
(function (global, factory) {
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Polyfill = {}));
|
|
10
|
+
}(this, (function (exports) { 'use strict';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* --------------------------------------------------------------------------
|
|
14
|
+
* Bootstrap (v5.0.0-alpha2): util/index.js
|
|
15
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
16
|
+
* --------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
var MAX_UID = 1000000;
|
|
19
|
+
/**
|
|
20
|
+
* --------------------------------------------------------------------------
|
|
21
|
+
* Public Util Api
|
|
22
|
+
* --------------------------------------------------------------------------
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
var getUID = function getUID(prefix) {
|
|
27
|
+
do {
|
|
28
|
+
prefix += Math.floor(Math.random() * MAX_UID);
|
|
29
|
+
} while (document.getElementById(prefix));
|
|
30
|
+
|
|
31
|
+
return prefix;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/* istanbul ignore file */
|
|
35
|
+
exports.find = Element.prototype.querySelectorAll;
|
|
36
|
+
exports.findOne = Element.prototype.querySelector; // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached
|
|
37
|
+
|
|
38
|
+
var defaultPreventedPreservedOnDispatch = function () {
|
|
39
|
+
var e = new CustomEvent('Bootstrap', {
|
|
40
|
+
cancelable: true
|
|
41
|
+
});
|
|
42
|
+
var element = document.createElement('div');
|
|
43
|
+
element.addEventListener('Bootstrap', function () {
|
|
44
|
+
return null;
|
|
45
|
+
});
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
element.dispatchEvent(e);
|
|
48
|
+
return e.defaultPrevented;
|
|
49
|
+
}();
|
|
50
|
+
|
|
51
|
+
var scopeSelectorRegex = /:scope\b/;
|
|
52
|
+
|
|
53
|
+
var supportScopeQuery = function () {
|
|
54
|
+
var element = document.createElement('div');
|
|
55
|
+
|
|
56
|
+
try {
|
|
57
|
+
element.querySelectorAll(':scope *');
|
|
58
|
+
} catch (_) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return true;
|
|
63
|
+
}();
|
|
64
|
+
|
|
65
|
+
if (!supportScopeQuery) {
|
|
66
|
+
exports.find = function find(selector) {
|
|
67
|
+
if (!scopeSelectorRegex.test(selector)) {
|
|
68
|
+
return this.querySelectorAll(selector);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var hasId = Boolean(this.id);
|
|
72
|
+
|
|
73
|
+
if (!hasId) {
|
|
74
|
+
this.id = getUID('scope');
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var nodeList = null;
|
|
78
|
+
|
|
79
|
+
try {
|
|
80
|
+
selector = selector.replace(scopeSelectorRegex, "#" + this.id);
|
|
81
|
+
nodeList = this.querySelectorAll(selector);
|
|
82
|
+
} finally {
|
|
83
|
+
if (!hasId) {
|
|
84
|
+
this.removeAttribute('id');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return nodeList;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
exports.findOne = function findOne(selector) {
|
|
92
|
+
if (!scopeSelectorRegex.test(selector)) {
|
|
93
|
+
return this.querySelector(selector);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
var matches = exports.find.call(this, selector);
|
|
97
|
+
|
|
98
|
+
if (typeof matches[0] !== 'undefined') {
|
|
99
|
+
return matches[0];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return null;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
exports.defaultPreventedPreservedOnDispatch = defaultPreventedPreservedOnDispatch;
|
|
107
|
+
|
|
108
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
109
|
+
|
|
110
|
+
})));
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap selector-engine.js v5.0.0-alpha2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
|
+
*/
|
|
6
|
+
(function (global, factory) {
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SelectorEngine = factory(global.Polyfill));
|
|
10
|
+
}(this, (function (polyfill_js) { 'use strict';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* --------------------------------------------------------------------------
|
|
14
|
+
* Bootstrap (v5.0.0-alpha2): dom/selector-engine.js
|
|
15
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
16
|
+
* --------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* ------------------------------------------------------------------------
|
|
20
|
+
* Constants
|
|
21
|
+
* ------------------------------------------------------------------------
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
var NODE_TEXT = 3;
|
|
25
|
+
var SelectorEngine = {
|
|
26
|
+
matches: function matches(element, selector) {
|
|
27
|
+
return element.matches(selector);
|
|
28
|
+
},
|
|
29
|
+
find: function find(selector, element) {
|
|
30
|
+
var _ref;
|
|
31
|
+
|
|
32
|
+
if (element === void 0) {
|
|
33
|
+
element = document.documentElement;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return (_ref = []).concat.apply(_ref, polyfill_js.find.call(element, selector));
|
|
37
|
+
},
|
|
38
|
+
findOne: function findOne(selector, element) {
|
|
39
|
+
if (element === void 0) {
|
|
40
|
+
element = document.documentElement;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return polyfill_js.findOne.call(element, selector);
|
|
44
|
+
},
|
|
45
|
+
children: function children(element, selector) {
|
|
46
|
+
var _ref2;
|
|
47
|
+
|
|
48
|
+
var children = (_ref2 = []).concat.apply(_ref2, element.children);
|
|
49
|
+
|
|
50
|
+
return children.filter(function (child) {
|
|
51
|
+
return child.matches(selector);
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
parents: function parents(element, selector) {
|
|
55
|
+
var parents = [];
|
|
56
|
+
var ancestor = element.parentNode;
|
|
57
|
+
|
|
58
|
+
while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
|
|
59
|
+
if (this.matches(ancestor, selector)) {
|
|
60
|
+
parents.push(ancestor);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
ancestor = ancestor.parentNode;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return parents;
|
|
67
|
+
},
|
|
68
|
+
prev: function prev(element, selector) {
|
|
69
|
+
var previous = element.previousElementSibling;
|
|
70
|
+
|
|
71
|
+
while (previous) {
|
|
72
|
+
if (previous.matches(selector)) {
|
|
73
|
+
return [previous];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
previous = previous.previousElementSibling;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return [];
|
|
80
|
+
},
|
|
81
|
+
next: function next(element, selector) {
|
|
82
|
+
var next = element.nextElementSibling;
|
|
83
|
+
|
|
84
|
+
while (next) {
|
|
85
|
+
if (this.matches(next, selector)) {
|
|
86
|
+
return [next];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
next = next.nextElementSibling;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
return SelectorEngine;
|
|
97
|
+
|
|
98
|
+
})));
|
|
@@ -1,83 +1,103 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap dropdown.js
|
|
3
|
-
* Copyright 2011-
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
2
|
+
* Bootstrap dropdown.js v5.0.0-alpha2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2020 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
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['
|
|
9
|
-
(global = global || self, global.Dropdown = factory(global.
|
|
10
|
-
}(this, (function (
|
|
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
|
-
}
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('popper.js'), require('./dom/selector-engine.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', 'popper.js', './dom/selector-engine.js'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Data, global.EventHandler, global.Manipulator, global.Popper, global.SelectorEngine));
|
|
10
|
+
}(this, (function (Data, EventHandler, Manipulator, Popper, SelectorEngine) { 'use strict';
|
|
25
11
|
|
|
26
|
-
function
|
|
27
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
28
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
|
-
return Constructor;
|
|
30
|
-
}
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
31
13
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
14
|
+
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
+
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
17
|
+
var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
|
|
18
|
+
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* --------------------------------------------------------------------------
|
|
22
|
+
* Bootstrap (v5.0.0-alpha2): util/index.js
|
|
23
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
24
|
+
* --------------------------------------------------------------------------
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
var toType = function toType(obj) {
|
|
28
|
+
if (obj === null || obj === undefined) {
|
|
29
|
+
return "" + obj;
|
|
42
30
|
}
|
|
43
31
|
|
|
44
|
-
return obj;
|
|
45
|
-
}
|
|
32
|
+
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
33
|
+
};
|
|
46
34
|
|
|
47
|
-
function
|
|
48
|
-
var
|
|
35
|
+
var getSelector = function getSelector(element) {
|
|
36
|
+
var selector = element.getAttribute('data-target');
|
|
49
37
|
|
|
50
|
-
if (
|
|
51
|
-
var
|
|
52
|
-
|
|
53
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
54
|
-
});
|
|
55
|
-
keys.push.apply(keys, symbols);
|
|
38
|
+
if (!selector || selector === '#') {
|
|
39
|
+
var hrefAttr = element.getAttribute('href');
|
|
40
|
+
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
|
56
41
|
}
|
|
57
42
|
|
|
58
|
-
return
|
|
59
|
-
}
|
|
43
|
+
return selector;
|
|
44
|
+
};
|
|
60
45
|
|
|
61
|
-
function
|
|
62
|
-
|
|
63
|
-
|
|
46
|
+
var getElementFromSelector = function getElementFromSelector(element) {
|
|
47
|
+
var selector = getSelector(element);
|
|
48
|
+
return selector ? document.querySelector(selector) : null;
|
|
49
|
+
};
|
|
64
50
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
51
|
+
var isElement = function isElement(obj) {
|
|
52
|
+
return (obj[0] || obj).nodeType;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
|
|
56
|
+
Object.keys(configTypes).forEach(function (property) {
|
|
57
|
+
var expectedTypes = configTypes[property];
|
|
58
|
+
var value = config[property];
|
|
59
|
+
var valueType = value && isElement(value) ? 'element' : toType(value);
|
|
60
|
+
|
|
61
|
+
if (!new RegExp(expectedTypes).test(valueType)) {
|
|
62
|
+
throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
|
|
75
63
|
}
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var isVisible = function isVisible(element) {
|
|
68
|
+
if (!element) {
|
|
69
|
+
return false;
|
|
76
70
|
}
|
|
77
71
|
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
if (element.style && element.parentNode && element.parentNode.style) {
|
|
73
|
+
var elementStyle = getComputedStyle(element);
|
|
74
|
+
var parentNodeStyle = getComputedStyle(element.parentNode);
|
|
75
|
+
return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return false;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
var noop = function noop() {
|
|
82
|
+
return function () {};
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
var getjQuery = function getjQuery() {
|
|
86
|
+
var _window = window,
|
|
87
|
+
jQuery = _window.jQuery;
|
|
88
|
+
|
|
89
|
+
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
|
|
90
|
+
return jQuery;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return null;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
80
97
|
|
|
98
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
99
|
+
|
|
100
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
81
101
|
/**
|
|
82
102
|
* ------------------------------------------------------------------------
|
|
83
103
|
* Constants
|
|
@@ -85,61 +105,45 @@
|
|
|
85
105
|
*/
|
|
86
106
|
|
|
87
107
|
var NAME = 'dropdown';
|
|
88
|
-
var VERSION = '
|
|
108
|
+
var VERSION = '5.0.0-alpha2';
|
|
89
109
|
var DATA_KEY = 'bs.dropdown';
|
|
90
110
|
var EVENT_KEY = "." + DATA_KEY;
|
|
91
111
|
var DATA_API_KEY = '.data-api';
|
|
92
|
-
var
|
|
93
|
-
var
|
|
94
|
-
|
|
95
|
-
var
|
|
96
|
-
|
|
97
|
-
var
|
|
98
|
-
|
|
99
|
-
var
|
|
100
|
-
|
|
101
|
-
var
|
|
102
|
-
|
|
103
|
-
var
|
|
104
|
-
|
|
105
|
-
var
|
|
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
|
-
DATA_TOGGLE: '[data-toggle="dropdown"]',
|
|
128
|
-
FORM_CHILD: '.dropdown form',
|
|
129
|
-
MENU: '.dropdown-menu',
|
|
130
|
-
NAVBAR_NAV: '.navbar-nav',
|
|
131
|
-
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
|
|
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
|
-
};
|
|
112
|
+
var ESCAPE_KEY = 'Escape';
|
|
113
|
+
var SPACE_KEY = 'Space';
|
|
114
|
+
var TAB_KEY = 'Tab';
|
|
115
|
+
var ARROW_UP_KEY = 'ArrowUp';
|
|
116
|
+
var ARROW_DOWN_KEY = 'ArrowDown';
|
|
117
|
+
var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
|
|
118
|
+
|
|
119
|
+
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY);
|
|
120
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
|
121
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
|
122
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
|
123
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
|
124
|
+
var EVENT_CLICK = "click" + EVENT_KEY;
|
|
125
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
126
|
+
var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY;
|
|
127
|
+
var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY;
|
|
128
|
+
var CLASS_NAME_DISABLED = 'disabled';
|
|
129
|
+
var CLASS_NAME_SHOW = 'show';
|
|
130
|
+
var CLASS_NAME_DROPUP = 'dropup';
|
|
131
|
+
var CLASS_NAME_DROPRIGHT = 'dropright';
|
|
132
|
+
var CLASS_NAME_DROPLEFT = 'dropleft';
|
|
133
|
+
var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
|
|
134
|
+
var CLASS_NAME_NAVBAR = 'navbar';
|
|
135
|
+
var CLASS_NAME_POSITION_STATIC = 'position-static';
|
|
136
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
|
|
137
|
+
var SELECTOR_FORM_CHILD = '.dropdown form';
|
|
138
|
+
var SELECTOR_MENU = '.dropdown-menu';
|
|
139
|
+
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
|
|
140
|
+
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
|
|
141
|
+
var PLACEMENT_TOP = 'top-start';
|
|
142
|
+
var PLACEMENT_TOPEND = 'top-end';
|
|
143
|
+
var PLACEMENT_BOTTOM = 'bottom-start';
|
|
144
|
+
var PLACEMENT_BOTTOMEND = 'bottom-end';
|
|
145
|
+
var PLACEMENT_RIGHT = 'right-start';
|
|
146
|
+
var PLACEMENT_LEFT = 'left-start';
|
|
143
147
|
var Default = {
|
|
144
148
|
offset: 0,
|
|
145
149
|
flip: true,
|
|
@@ -162,9 +166,7 @@
|
|
|
162
166
|
* ------------------------------------------------------------------------
|
|
163
167
|
*/
|
|
164
168
|
|
|
165
|
-
var Dropdown =
|
|
166
|
-
/*#__PURE__*/
|
|
167
|
-
function () {
|
|
169
|
+
var Dropdown = /*#__PURE__*/function () {
|
|
168
170
|
function Dropdown(element, config) {
|
|
169
171
|
this._element = element;
|
|
170
172
|
this._popper = null;
|
|
@@ -173,6 +175,8 @@
|
|
|
173
175
|
this._inNavbar = this._detectNavbar();
|
|
174
176
|
|
|
175
177
|
this._addEventListeners();
|
|
178
|
+
|
|
179
|
+
Data__default['default'].setData(element, DATA_KEY, this);
|
|
176
180
|
} // Getters
|
|
177
181
|
|
|
178
182
|
|
|
@@ -180,58 +184,47 @@
|
|
|
180
184
|
|
|
181
185
|
// Public
|
|
182
186
|
_proto.toggle = function toggle() {
|
|
183
|
-
if (this._element.disabled ||
|
|
187
|
+
if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {
|
|
184
188
|
return;
|
|
185
189
|
}
|
|
186
190
|
|
|
187
|
-
var isActive =
|
|
191
|
+
var isActive = this._element.classList.contains(CLASS_NAME_SHOW);
|
|
188
192
|
|
|
189
|
-
Dropdown.
|
|
193
|
+
Dropdown.clearMenus();
|
|
190
194
|
|
|
191
195
|
if (isActive) {
|
|
192
196
|
return;
|
|
193
197
|
}
|
|
194
198
|
|
|
195
|
-
this.show(
|
|
199
|
+
this.show();
|
|
196
200
|
};
|
|
197
201
|
|
|
198
|
-
_proto.show = function show(
|
|
199
|
-
if (
|
|
200
|
-
usePopper = false;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {
|
|
202
|
+
_proto.show = function show() {
|
|
203
|
+
if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {
|
|
204
204
|
return;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
var parent = Dropdown.getParentFromElement(this._element);
|
|
207
208
|
var relatedTarget = {
|
|
208
209
|
relatedTarget: this._element
|
|
209
210
|
};
|
|
210
|
-
var showEvent =
|
|
211
|
+
var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, relatedTarget);
|
|
211
212
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
$(parent).trigger(showEvent);
|
|
215
|
-
|
|
216
|
-
if (showEvent.isDefaultPrevented()) {
|
|
213
|
+
if (showEvent.defaultPrevented) {
|
|
217
214
|
return;
|
|
218
215
|
} // Disable totally Popper.js for Dropdown in Navbar
|
|
219
216
|
|
|
220
217
|
|
|
221
|
-
if (!this._inNavbar
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
* Popper - https://popper.js.org
|
|
225
|
-
*/
|
|
226
|
-
if (typeof Popper === 'undefined') {
|
|
227
|
-
throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)');
|
|
218
|
+
if (!this._inNavbar) {
|
|
219
|
+
if (typeof Popper__default['default'] === 'undefined') {
|
|
220
|
+
throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org)');
|
|
228
221
|
}
|
|
229
222
|
|
|
230
223
|
var referenceElement = this._element;
|
|
231
224
|
|
|
232
225
|
if (this._config.reference === 'parent') {
|
|
233
226
|
referenceElement = parent;
|
|
234
|
-
} else if (
|
|
227
|
+
} else if (isElement(this._config.reference)) {
|
|
235
228
|
referenceElement = this._config.reference; // Check if it's jQuery element
|
|
236
229
|
|
|
237
230
|
if (typeof this._config.reference.jquery !== 'undefined') {
|
|
@@ -243,43 +236,45 @@
|
|
|
243
236
|
|
|
244
237
|
|
|
245
238
|
if (this._config.boundary !== 'scrollParent') {
|
|
246
|
-
|
|
239
|
+
parent.classList.add(CLASS_NAME_POSITION_STATIC);
|
|
247
240
|
}
|
|
248
241
|
|
|
249
|
-
this._popper = new
|
|
242
|
+
this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());
|
|
250
243
|
} // If this is a touch-enabled device we add extra
|
|
251
244
|
// empty mouseover listeners to the body's immediate children;
|
|
252
245
|
// only needed because of broken event delegation on iOS
|
|
253
246
|
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
|
254
247
|
|
|
255
248
|
|
|
256
|
-
if ('ontouchstart' in document.documentElement &&
|
|
257
|
-
|
|
249
|
+
if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
|
|
250
|
+
var _ref;
|
|
251
|
+
|
|
252
|
+
(_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
|
|
253
|
+
return EventHandler__default['default'].on(elem, 'mouseover', null, noop());
|
|
254
|
+
});
|
|
258
255
|
}
|
|
259
256
|
|
|
260
257
|
this._element.focus();
|
|
261
258
|
|
|
262
259
|
this._element.setAttribute('aria-expanded', true);
|
|
263
260
|
|
|
264
|
-
|
|
265
|
-
|
|
261
|
+
Manipulator__default['default'].toggleClass(this._menu, CLASS_NAME_SHOW);
|
|
262
|
+
Manipulator__default['default'].toggleClass(this._element, CLASS_NAME_SHOW);
|
|
263
|
+
EventHandler__default['default'].trigger(parent, EVENT_SHOWN, relatedTarget);
|
|
266
264
|
};
|
|
267
265
|
|
|
268
266
|
_proto.hide = function hide() {
|
|
269
|
-
if (this._element.disabled ||
|
|
267
|
+
if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {
|
|
270
268
|
return;
|
|
271
269
|
}
|
|
272
270
|
|
|
271
|
+
var parent = Dropdown.getParentFromElement(this._element);
|
|
273
272
|
var relatedTarget = {
|
|
274
273
|
relatedTarget: this._element
|
|
275
274
|
};
|
|
276
|
-
var hideEvent =
|
|
277
|
-
|
|
278
|
-
var parent = Dropdown._getParentFromElement(this._element);
|
|
279
|
-
|
|
280
|
-
$(parent).trigger(hideEvent);
|
|
275
|
+
var hideEvent = EventHandler__default['default'].trigger(parent, EVENT_HIDE, relatedTarget);
|
|
281
276
|
|
|
282
|
-
if (hideEvent.
|
|
277
|
+
if (hideEvent.defaultPrevented) {
|
|
283
278
|
return;
|
|
284
279
|
}
|
|
285
280
|
|
|
@@ -287,17 +282,18 @@
|
|
|
287
282
|
this._popper.destroy();
|
|
288
283
|
}
|
|
289
284
|
|
|
290
|
-
|
|
291
|
-
|
|
285
|
+
Manipulator__default['default'].toggleClass(this._menu, CLASS_NAME_SHOW);
|
|
286
|
+
Manipulator__default['default'].toggleClass(this._element, CLASS_NAME_SHOW);
|
|
287
|
+
EventHandler__default['default'].trigger(parent, EVENT_HIDDEN, relatedTarget);
|
|
292
288
|
};
|
|
293
289
|
|
|
294
290
|
_proto.dispose = function dispose() {
|
|
295
|
-
|
|
296
|
-
|
|
291
|
+
Data__default['default'].removeData(this._element, DATA_KEY);
|
|
292
|
+
EventHandler__default['default'].off(this._element, EVENT_KEY);
|
|
297
293
|
this._element = null;
|
|
298
294
|
this._menu = null;
|
|
299
295
|
|
|
300
|
-
if (this._popper
|
|
296
|
+
if (this._popper) {
|
|
301
297
|
this._popper.destroy();
|
|
302
298
|
|
|
303
299
|
this._popper = null;
|
|
@@ -307,7 +303,7 @@
|
|
|
307
303
|
_proto.update = function update() {
|
|
308
304
|
this._inNavbar = this._detectNavbar();
|
|
309
305
|
|
|
310
|
-
if (this._popper
|
|
306
|
+
if (this._popper) {
|
|
311
307
|
this._popper.scheduleUpdate();
|
|
312
308
|
}
|
|
313
309
|
} // Private
|
|
@@ -316,7 +312,7 @@
|
|
|
316
312
|
_proto._addEventListeners = function _addEventListeners() {
|
|
317
313
|
var _this = this;
|
|
318
314
|
|
|
319
|
-
|
|
315
|
+
EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) {
|
|
320
316
|
event.preventDefault();
|
|
321
317
|
event.stopPropagation();
|
|
322
318
|
|
|
@@ -325,46 +321,38 @@
|
|
|
325
321
|
};
|
|
326
322
|
|
|
327
323
|
_proto._getConfig = function _getConfig(config) {
|
|
328
|
-
config =
|
|
329
|
-
|
|
324
|
+
config = _extends({}, this.constructor.Default, Manipulator__default['default'].getDataAttributes(this._element), config);
|
|
325
|
+
typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
|
330
326
|
return config;
|
|
331
327
|
};
|
|
332
328
|
|
|
333
329
|
_proto._getMenuElement = function _getMenuElement() {
|
|
334
|
-
|
|
335
|
-
var parent = Dropdown._getParentFromElement(this._element);
|
|
336
|
-
|
|
337
|
-
if (parent) {
|
|
338
|
-
this._menu = parent.querySelector(Selector.MENU);
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
return this._menu;
|
|
330
|
+
return SelectorEngine__default['default'].next(this._element, SELECTOR_MENU)[0];
|
|
343
331
|
};
|
|
344
332
|
|
|
345
333
|
_proto._getPlacement = function _getPlacement() {
|
|
346
|
-
var
|
|
347
|
-
var placement =
|
|
334
|
+
var parentDropdown = this._element.parentNode;
|
|
335
|
+
var placement = PLACEMENT_BOTTOM; // Handle dropup
|
|
348
336
|
|
|
349
|
-
if (
|
|
350
|
-
placement =
|
|
337
|
+
if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
|
|
338
|
+
placement = PLACEMENT_TOP;
|
|
351
339
|
|
|
352
|
-
if (
|
|
353
|
-
placement =
|
|
340
|
+
if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
|
|
341
|
+
placement = PLACEMENT_TOPEND;
|
|
354
342
|
}
|
|
355
|
-
} else if (
|
|
356
|
-
placement =
|
|
357
|
-
} else if (
|
|
358
|
-
placement =
|
|
359
|
-
} else if (
|
|
360
|
-
placement =
|
|
343
|
+
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {
|
|
344
|
+
placement = PLACEMENT_RIGHT;
|
|
345
|
+
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {
|
|
346
|
+
placement = PLACEMENT_LEFT;
|
|
347
|
+
} else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
|
|
348
|
+
placement = PLACEMENT_BOTTOMEND;
|
|
361
349
|
}
|
|
362
350
|
|
|
363
351
|
return placement;
|
|
364
352
|
};
|
|
365
353
|
|
|
366
354
|
_proto._detectNavbar = function _detectNavbar() {
|
|
367
|
-
return
|
|
355
|
+
return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
|
|
368
356
|
};
|
|
369
357
|
|
|
370
358
|
_proto._getOffset = function _getOffset() {
|
|
@@ -374,7 +362,7 @@
|
|
|
374
362
|
|
|
375
363
|
if (typeof this._config.offset === 'function') {
|
|
376
364
|
offset.fn = function (data) {
|
|
377
|
-
data.offsets =
|
|
365
|
+
data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
|
|
378
366
|
return data;
|
|
379
367
|
};
|
|
380
368
|
} else {
|
|
@@ -404,42 +392,44 @@
|
|
|
404
392
|
};
|
|
405
393
|
}
|
|
406
394
|
|
|
407
|
-
return
|
|
395
|
+
return _extends({}, popperConfig, this._config.popperConfig);
|
|
408
396
|
} // Static
|
|
409
397
|
;
|
|
410
398
|
|
|
411
|
-
Dropdown.
|
|
412
|
-
|
|
413
|
-
var data = $(this).data(DATA_KEY);
|
|
399
|
+
Dropdown.dropdownInterface = function dropdownInterface(element, config) {
|
|
400
|
+
var data = Data__default['default'].getData(element, DATA_KEY);
|
|
414
401
|
|
|
415
|
-
|
|
402
|
+
var _config = typeof config === 'object' ? config : null;
|
|
416
403
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
404
|
+
if (!data) {
|
|
405
|
+
data = new Dropdown(element, _config);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
if (typeof config === 'string') {
|
|
409
|
+
if (typeof data[config] === 'undefined') {
|
|
410
|
+
throw new TypeError("No method named \"" + config + "\"");
|
|
420
411
|
}
|
|
421
412
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
413
|
+
data[config]();
|
|
414
|
+
}
|
|
415
|
+
};
|
|
426
416
|
|
|
427
|
-
|
|
428
|
-
|
|
417
|
+
Dropdown.jQueryInterface = function jQueryInterface(config) {
|
|
418
|
+
return this.each(function () {
|
|
419
|
+
Dropdown.dropdownInterface(this, config);
|
|
429
420
|
});
|
|
430
421
|
};
|
|
431
422
|
|
|
432
|
-
Dropdown.
|
|
433
|
-
if (event && (event.
|
|
423
|
+
Dropdown.clearMenus = function clearMenus(event) {
|
|
424
|
+
if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
|
|
434
425
|
return;
|
|
435
426
|
}
|
|
436
427
|
|
|
437
|
-
var toggles = [].
|
|
428
|
+
var toggles = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
|
|
438
429
|
|
|
439
430
|
for (var i = 0, len = toggles.length; i < len; i++) {
|
|
440
|
-
var parent = Dropdown.
|
|
441
|
-
|
|
442
|
-
var context = $(toggles[i]).data(DATA_KEY);
|
|
431
|
+
var parent = Dropdown.getParentFromElement(toggles[i]);
|
|
432
|
+
var context = Data__default['default'].getData(toggles[i], DATA_KEY);
|
|
443
433
|
var relatedTarget = {
|
|
444
434
|
relatedTarget: toggles[i]
|
|
445
435
|
};
|
|
@@ -454,25 +444,28 @@
|
|
|
454
444
|
|
|
455
445
|
var dropdownMenu = context._menu;
|
|
456
446
|
|
|
457
|
-
if (
|
|
447
|
+
if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {
|
|
458
448
|
continue;
|
|
459
449
|
}
|
|
460
450
|
|
|
461
|
-
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.
|
|
451
|
+
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {
|
|
462
452
|
continue;
|
|
463
453
|
}
|
|
464
454
|
|
|
465
|
-
var hideEvent =
|
|
466
|
-
$(parent).trigger(hideEvent);
|
|
455
|
+
var hideEvent = EventHandler__default['default'].trigger(parent, EVENT_HIDE, relatedTarget);
|
|
467
456
|
|
|
468
|
-
if (hideEvent.
|
|
457
|
+
if (hideEvent.defaultPrevented) {
|
|
469
458
|
continue;
|
|
470
459
|
} // If this is a touch-enabled device we remove the extra
|
|
471
460
|
// empty mouseover listeners we added for iOS support
|
|
472
461
|
|
|
473
462
|
|
|
474
463
|
if ('ontouchstart' in document.documentElement) {
|
|
475
|
-
|
|
464
|
+
var _ref2;
|
|
465
|
+
|
|
466
|
+
(_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) {
|
|
467
|
+
return EventHandler__default['default'].off(elem, 'mouseover', null, noop());
|
|
468
|
+
});
|
|
476
469
|
}
|
|
477
470
|
|
|
478
471
|
toggles[i].setAttribute('aria-expanded', 'false');
|
|
@@ -481,24 +474,17 @@
|
|
|
481
474
|
context._popper.destroy();
|
|
482
475
|
}
|
|
483
476
|
|
|
484
|
-
|
|
485
|
-
|
|
477
|
+
dropdownMenu.classList.remove(CLASS_NAME_SHOW);
|
|
478
|
+
toggles[i].classList.remove(CLASS_NAME_SHOW);
|
|
479
|
+
EventHandler__default['default'].trigger(parent, EVENT_HIDDEN, relatedTarget);
|
|
486
480
|
}
|
|
487
481
|
};
|
|
488
482
|
|
|
489
|
-
Dropdown.
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
if (selector) {
|
|
494
|
-
parent = document.querySelector(selector);
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
return parent || element.parentNode;
|
|
498
|
-
} // eslint-disable-next-line complexity
|
|
499
|
-
;
|
|
483
|
+
Dropdown.getParentFromElement = function getParentFromElement(element) {
|
|
484
|
+
return getElementFromSelector(element) || element.parentNode;
|
|
485
|
+
};
|
|
500
486
|
|
|
501
|
-
Dropdown.
|
|
487
|
+
Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) {
|
|
502
488
|
// If not input/textarea:
|
|
503
489
|
// - And not a key in REGEXP_KEYDOWN => not a dropdown command
|
|
504
490
|
// If input/textarea:
|
|
@@ -506,62 +492,59 @@
|
|
|
506
492
|
// - If key is other than escape
|
|
507
493
|
// - If key is not up or down => not a dropdown command
|
|
508
494
|
// - If trigger inside the menu => not a dropdown command
|
|
509
|
-
if (/input|textarea/i.test(event.target.tagName) ? event.
|
|
495
|
+
if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {
|
|
510
496
|
return;
|
|
511
497
|
}
|
|
512
498
|
|
|
513
499
|
event.preventDefault();
|
|
514
500
|
event.stopPropagation();
|
|
515
501
|
|
|
516
|
-
if (this.disabled ||
|
|
502
|
+
if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {
|
|
517
503
|
return;
|
|
518
504
|
}
|
|
519
505
|
|
|
520
|
-
var parent = Dropdown.
|
|
521
|
-
|
|
522
|
-
var isActive = $(parent).hasClass(ClassName.SHOW);
|
|
506
|
+
var parent = Dropdown.getParentFromElement(this);
|
|
507
|
+
var isActive = this.classList.contains(CLASS_NAME_SHOW);
|
|
523
508
|
|
|
524
|
-
if (
|
|
509
|
+
if (event.key === ESCAPE_KEY) {
|
|
510
|
+
var button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];
|
|
511
|
+
button.focus();
|
|
512
|
+
Dropdown.clearMenus();
|
|
525
513
|
return;
|
|
526
514
|
}
|
|
527
515
|
|
|
528
|
-
if (!isActive ||
|
|
529
|
-
|
|
530
|
-
var toggle = parent.querySelector(Selector.DATA_TOGGLE);
|
|
531
|
-
$(toggle).trigger('focus');
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
$(this).trigger('click');
|
|
516
|
+
if (!isActive || event.key === SPACE_KEY) {
|
|
517
|
+
Dropdown.clearMenus();
|
|
535
518
|
return;
|
|
536
519
|
}
|
|
537
520
|
|
|
538
|
-
var items = [].
|
|
539
|
-
return $(item).is(':visible');
|
|
540
|
-
});
|
|
521
|
+
var items = SelectorEngine__default['default'].find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);
|
|
541
522
|
|
|
542
|
-
if (items.length
|
|
523
|
+
if (!items.length) {
|
|
543
524
|
return;
|
|
544
525
|
}
|
|
545
526
|
|
|
546
527
|
var index = items.indexOf(event.target);
|
|
547
528
|
|
|
548
|
-
if (event.
|
|
529
|
+
if (event.key === ARROW_UP_KEY && index > 0) {
|
|
549
530
|
// Up
|
|
550
531
|
index--;
|
|
551
532
|
}
|
|
552
533
|
|
|
553
|
-
if (event.
|
|
534
|
+
if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
|
|
554
535
|
// Down
|
|
555
536
|
index++;
|
|
556
|
-
}
|
|
537
|
+
} // index is -1 if the first keydown is an ArrowUp
|
|
557
538
|
|
|
558
|
-
if (index < 0) {
|
|
559
|
-
index = 0;
|
|
560
|
-
}
|
|
561
539
|
|
|
540
|
+
index = index === -1 ? 0 : index;
|
|
562
541
|
items[index].focus();
|
|
563
542
|
};
|
|
564
543
|
|
|
544
|
+
Dropdown.getInstance = function getInstance(element) {
|
|
545
|
+
return Data__default['default'].getData(element, DATA_KEY);
|
|
546
|
+
};
|
|
547
|
+
|
|
565
548
|
_createClass(Dropdown, null, [{
|
|
566
549
|
key: "VERSION",
|
|
567
550
|
get: function get() {
|
|
@@ -588,27 +571,38 @@
|
|
|
588
571
|
*/
|
|
589
572
|
|
|
590
573
|
|
|
591
|
-
|
|
574
|
+
EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler);
|
|
575
|
+
EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
|
|
576
|
+
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);
|
|
577
|
+
EventHandler__default['default'].on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
|
|
578
|
+
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
592
579
|
event.preventDefault();
|
|
593
580
|
event.stopPropagation();
|
|
594
|
-
|
|
595
|
-
Dropdown._jQueryInterface.call($(this), 'toggle');
|
|
596
|
-
}).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
|
|
597
|
-
e.stopPropagation();
|
|
581
|
+
Dropdown.dropdownInterface(this, 'toggle');
|
|
598
582
|
});
|
|
583
|
+
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
|
|
584
|
+
return e.stopPropagation();
|
|
585
|
+
});
|
|
586
|
+
var $ = getjQuery();
|
|
599
587
|
/**
|
|
600
588
|
* ------------------------------------------------------------------------
|
|
601
589
|
* jQuery
|
|
602
590
|
* ------------------------------------------------------------------------
|
|
591
|
+
* add .dropdown to jQuery only if jQuery is present
|
|
603
592
|
*/
|
|
604
593
|
|
|
605
|
-
|
|
606
|
-
$.fn[NAME].Constructor = Dropdown;
|
|
594
|
+
/* istanbul ignore if */
|
|
607
595
|
|
|
608
|
-
|
|
609
|
-
$.fn[NAME]
|
|
610
|
-
|
|
611
|
-
|
|
596
|
+
if ($) {
|
|
597
|
+
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
598
|
+
$.fn[NAME] = Dropdown.jQueryInterface;
|
|
599
|
+
$.fn[NAME].Constructor = Dropdown;
|
|
600
|
+
|
|
601
|
+
$.fn[NAME].noConflict = function () {
|
|
602
|
+
$.fn[NAME] = JQUERY_NO_CONFLICT;
|
|
603
|
+
return Dropdown.jQueryInterface;
|
|
604
|
+
};
|
|
605
|
+
}
|
|
612
606
|
|
|
613
607
|
return Dropdown;
|
|
614
608
|
|