bootstrap 4.5.0 → 5.0.0.alpha3
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 +1 -1
- data/README.md +5 -2
- data/assets/javascripts/bootstrap-sprockets.js +12 -9
- data/assets/javascripts/bootstrap.js +1852 -1266
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/javascripts/bootstrap/alert.js +149 -69
- data/assets/javascripts/bootstrap/button.js +71 -141
- data/assets/javascripts/bootstrap/carousel.js +291 -192
- data/assets/javascripts/bootstrap/collapse.js +285 -161
- data/assets/javascripts/bootstrap/dom/data.js +81 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +307 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +85 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
- data/assets/javascripts/bootstrap/dropdown.js +240 -218
- data/assets/javascripts/bootstrap/modal.js +342 -234
- data/assets/javascripts/bootstrap/popover.js +82 -106
- data/assets/javascripts/bootstrap/scrollspy.js +154 -114
- data/assets/javascripts/bootstrap/tab.js +166 -80
- data/assets/javascripts/bootstrap/toast.js +171 -113
- data/assets/javascripts/bootstrap/tooltip.js +351 -219
- data/assets/stylesheets/_bootstrap-grid.scss +52 -16
- data/assets/stylesheets/_bootstrap-reboot.scss +5 -2
- data/assets/stylesheets/_bootstrap.scss +16 -9
- data/assets/stylesheets/bootstrap/_accordion.scss +125 -0
- data/assets/stylesheets/bootstrap/_alert.scss +15 -9
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -19
- data/assets/stylesheets/bootstrap/_button-group.scss +16 -40
- data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
- data/assets/stylesheets/bootstrap/_card.scss +30 -97
- data/assets/stylesheets/bootstrap/_carousel.scss +30 -15
- data/assets/stylesheets/bootstrap/_close.scss +30 -30
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +52 -8
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +88 -23
- data/assets/stylesheets/bootstrap/_grid.scss +3 -58
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +14 -5
- data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
- data/assets/stylesheets/bootstrap/_modal.scss +41 -47
- data/assets/stylesheets/bootstrap/_nav.scss +14 -8
- data/assets/stylesheets/bootstrap/_navbar.scss +43 -74
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
- data/assets/stylesheets/bootstrap/_popover.scss +6 -6
- data/assets/stylesheets/bootstrap/_progress.scss +3 -5
- data/assets/stylesheets/bootstrap/_reboot.scss +310 -171
- data/assets/stylesheets/bootstrap/_root.scss +5 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +13 -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 +545 -18
- data/assets/stylesheets/bootstrap/_variables.scss +653 -469
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +151 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +68 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -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 +1 -5
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +9 -9
- 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 +65 -47
- 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 +17 -77
- 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 +3 -2
- 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 +2 -2
- 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
- metadata +33 -41
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -522
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
- 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 -23
- 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 -81
- 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/_interactions.scss +0 -5
- 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 -71
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
|
@@ -1,82 +1,153 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap collapse.js
|
|
2
|
+
* Bootstrap collapse.js v5.0.0-alpha3 (https://getbootstrap.com/)
|
|
3
3
|
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
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.Collapse = factory(global.
|
|
10
|
-
}(this, (function (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
|
|
10
|
+
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
|
|
11
|
+
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
|
+
|
|
14
|
+
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
+
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
17
|
+
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* --------------------------------------------------------------------------
|
|
21
|
+
* Bootstrap (v5.0.0-alpha3): util/index.js
|
|
22
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
23
|
+
* --------------------------------------------------------------------------
|
|
24
|
+
*/
|
|
25
|
+
var MILLISECONDS_MULTIPLIER = 1000;
|
|
26
|
+
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
|
27
|
+
|
|
28
|
+
var toType = function toType(obj) {
|
|
29
|
+
if (obj === null || obj === undefined) {
|
|
30
|
+
return "" + obj;
|
|
22
31
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Object.defineProperty(obj, key, {
|
|
34
|
-
value: value,
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true,
|
|
37
|
-
writable: true
|
|
38
|
-
});
|
|
39
|
-
} else {
|
|
40
|
-
obj[key] = value;
|
|
32
|
+
|
|
33
|
+
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var getSelector = function getSelector(element) {
|
|
37
|
+
var selector = element.getAttribute('data-target');
|
|
38
|
+
|
|
39
|
+
if (!selector || selector === '#') {
|
|
40
|
+
var hrefAttr = element.getAttribute('href');
|
|
41
|
+
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
return
|
|
44
|
-
}
|
|
44
|
+
return selector;
|
|
45
|
+
};
|
|
45
46
|
|
|
46
|
-
function
|
|
47
|
-
var
|
|
47
|
+
var getSelectorFromElement = function getSelectorFromElement(element) {
|
|
48
|
+
var selector = getSelector(element);
|
|
48
49
|
|
|
49
|
-
if (
|
|
50
|
-
|
|
51
|
-
if (enumerableOnly) symbols = symbols.filter(function (sym) {
|
|
52
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
53
|
-
});
|
|
54
|
-
keys.push.apply(keys, symbols);
|
|
50
|
+
if (selector) {
|
|
51
|
+
return document.querySelector(selector) ? selector : null;
|
|
55
52
|
}
|
|
56
53
|
|
|
57
|
-
return
|
|
58
|
-
}
|
|
54
|
+
return null;
|
|
55
|
+
};
|
|
59
56
|
|
|
60
|
-
function
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
var getElementFromSelector = function getElementFromSelector(element) {
|
|
58
|
+
var selector = getSelector(element);
|
|
59
|
+
return selector ? document.querySelector(selector) : null;
|
|
60
|
+
};
|
|
63
61
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
62
|
+
var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
|
|
63
|
+
if (!element) {
|
|
64
|
+
return 0;
|
|
65
|
+
} // Get transition-duration of the element
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
var _window$getComputedSt = window.getComputedStyle(element),
|
|
69
|
+
transitionDuration = _window$getComputedSt.transitionDuration,
|
|
70
|
+
transitionDelay = _window$getComputedSt.transitionDelay;
|
|
71
|
+
|
|
72
|
+
var floatTransitionDuration = parseFloat(transitionDuration);
|
|
73
|
+
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
|
|
74
|
+
|
|
75
|
+
if (!floatTransitionDuration && !floatTransitionDelay) {
|
|
76
|
+
return 0;
|
|
77
|
+
} // If multiple durations are defined, take the first
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
transitionDuration = transitionDuration.split(',')[0];
|
|
81
|
+
transitionDelay = transitionDelay.split(',')[0];
|
|
82
|
+
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
var triggerTransitionEnd = function triggerTransitionEnd(element) {
|
|
86
|
+
element.dispatchEvent(new Event(TRANSITION_END));
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var isElement = function isElement(obj) {
|
|
90
|
+
return (obj[0] || obj).nodeType;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
|
|
94
|
+
var called = false;
|
|
95
|
+
var durationPadding = 5;
|
|
96
|
+
var emulatedDuration = duration + durationPadding;
|
|
97
|
+
|
|
98
|
+
function listener() {
|
|
99
|
+
called = true;
|
|
100
|
+
element.removeEventListener(TRANSITION_END, listener);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
element.addEventListener(TRANSITION_END, listener);
|
|
104
|
+
setTimeout(function () {
|
|
105
|
+
if (!called) {
|
|
106
|
+
triggerTransitionEnd(element);
|
|
107
|
+
}
|
|
108
|
+
}, emulatedDuration);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
|
|
112
|
+
Object.keys(configTypes).forEach(function (property) {
|
|
113
|
+
var expectedTypes = configTypes[property];
|
|
114
|
+
var value = config[property];
|
|
115
|
+
var valueType = value && isElement(value) ? 'element' : toType(value);
|
|
116
|
+
|
|
117
|
+
if (!new RegExp(expectedTypes).test(valueType)) {
|
|
118
|
+
throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
|
|
74
119
|
}
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
var reflow = function reflow(element) {
|
|
124
|
+
return element.offsetHeight;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
var getjQuery = function getjQuery() {
|
|
128
|
+
var _window = window,
|
|
129
|
+
jQuery = _window.jQuery;
|
|
130
|
+
|
|
131
|
+
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
|
|
132
|
+
return jQuery;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return null;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
|
|
139
|
+
if (document.readyState === 'loading') {
|
|
140
|
+
document.addEventListener('DOMContentLoaded', callback);
|
|
141
|
+
} else {
|
|
142
|
+
callback();
|
|
75
143
|
}
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
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); }
|
|
76
147
|
|
|
77
|
-
|
|
78
|
-
}
|
|
148
|
+
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); } }
|
|
79
149
|
|
|
150
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
80
151
|
/**
|
|
81
152
|
* ------------------------------------------------------------------------
|
|
82
153
|
* Constants
|
|
@@ -84,11 +155,10 @@
|
|
|
84
155
|
*/
|
|
85
156
|
|
|
86
157
|
var NAME = 'collapse';
|
|
87
|
-
var VERSION = '
|
|
158
|
+
var VERSION = '5.0.0-alpha3';
|
|
88
159
|
var DATA_KEY = 'bs.collapse';
|
|
89
160
|
var EVENT_KEY = "." + DATA_KEY;
|
|
90
161
|
var DATA_API_KEY = '.data-api';
|
|
91
|
-
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
92
162
|
var Default = {
|
|
93
163
|
toggle: true,
|
|
94
164
|
parent: ''
|
|
@@ -106,8 +176,8 @@
|
|
|
106
176
|
var CLASS_NAME_COLLAPSE = 'collapse';
|
|
107
177
|
var CLASS_NAME_COLLAPSING = 'collapsing';
|
|
108
178
|
var CLASS_NAME_COLLAPSED = 'collapsed';
|
|
109
|
-
var
|
|
110
|
-
var
|
|
179
|
+
var WIDTH = 'width';
|
|
180
|
+
var HEIGHT = 'height';
|
|
111
181
|
var SELECTOR_ACTIVES = '.show, .collapsing';
|
|
112
182
|
var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
|
|
113
183
|
/**
|
|
@@ -121,17 +191,17 @@
|
|
|
121
191
|
this._isTransitioning = false;
|
|
122
192
|
this._element = element;
|
|
123
193
|
this._config = this._getConfig(config);
|
|
124
|
-
this._triggerArray = [].
|
|
125
|
-
var toggleList = [].
|
|
194
|
+
this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-target=\"#" + element.id + "\"]"));
|
|
195
|
+
var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
|
|
126
196
|
|
|
127
197
|
for (var i = 0, len = toggleList.length; i < len; i++) {
|
|
128
198
|
var elem = toggleList[i];
|
|
129
|
-
var selector =
|
|
130
|
-
var filterElement = [].
|
|
199
|
+
var selector = getSelectorFromElement(elem);
|
|
200
|
+
var filterElement = SelectorEngine__default['default'].find(selector).filter(function (foundElem) {
|
|
131
201
|
return foundElem === element;
|
|
132
202
|
});
|
|
133
203
|
|
|
134
|
-
if (selector !== null && filterElement.length
|
|
204
|
+
if (selector !== null && filterElement.length) {
|
|
135
205
|
this._selector = selector;
|
|
136
206
|
|
|
137
207
|
this._triggerArray.push(elem);
|
|
@@ -147,6 +217,8 @@
|
|
|
147
217
|
if (this._config.toggle) {
|
|
148
218
|
this.toggle();
|
|
149
219
|
}
|
|
220
|
+
|
|
221
|
+
Data__default['default'].setData(element, DATA_KEY, this);
|
|
150
222
|
} // Getters
|
|
151
223
|
|
|
152
224
|
|
|
@@ -154,7 +226,7 @@
|
|
|
154
226
|
|
|
155
227
|
// Public
|
|
156
228
|
_proto.toggle = function toggle() {
|
|
157
|
-
if (
|
|
229
|
+
if (this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
158
230
|
this.hide();
|
|
159
231
|
} else {
|
|
160
232
|
this.show();
|
|
@@ -164,7 +236,7 @@
|
|
|
164
236
|
_proto.show = function show() {
|
|
165
237
|
var _this = this;
|
|
166
238
|
|
|
167
|
-
if (this._isTransitioning ||
|
|
239
|
+
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
168
240
|
return;
|
|
169
241
|
}
|
|
170
242
|
|
|
@@ -172,7 +244,7 @@
|
|
|
172
244
|
var activesData;
|
|
173
245
|
|
|
174
246
|
if (this._parent) {
|
|
175
|
-
actives = [].
|
|
247
|
+
actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
|
|
176
248
|
if (typeof _this._config.parent === 'string') {
|
|
177
249
|
return elem.getAttribute('data-parent') === _this._config.parent;
|
|
178
250
|
}
|
|
@@ -185,88 +257,106 @@
|
|
|
185
257
|
}
|
|
186
258
|
}
|
|
187
259
|
|
|
260
|
+
var container = SelectorEngine__default['default'].findOne(this._selector);
|
|
261
|
+
|
|
188
262
|
if (actives) {
|
|
189
|
-
|
|
263
|
+
var tempActiveData = actives.filter(function (elem) {
|
|
264
|
+
return container !== elem;
|
|
265
|
+
});
|
|
266
|
+
activesData = tempActiveData[0] ? Data__default['default'].getData(tempActiveData[0], DATA_KEY) : null;
|
|
190
267
|
|
|
191
268
|
if (activesData && activesData._isTransitioning) {
|
|
192
269
|
return;
|
|
193
270
|
}
|
|
194
271
|
}
|
|
195
272
|
|
|
196
|
-
var startEvent =
|
|
197
|
-
$(this._element).trigger(startEvent);
|
|
273
|
+
var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
|
|
198
274
|
|
|
199
|
-
if (startEvent.
|
|
275
|
+
if (startEvent.defaultPrevented) {
|
|
200
276
|
return;
|
|
201
277
|
}
|
|
202
278
|
|
|
203
279
|
if (actives) {
|
|
204
|
-
|
|
280
|
+
actives.forEach(function (elemActive) {
|
|
281
|
+
if (container !== elemActive) {
|
|
282
|
+
Collapse.collapseInterface(elemActive, 'hide');
|
|
283
|
+
}
|
|
205
284
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
285
|
+
if (!activesData) {
|
|
286
|
+
Data__default['default'].setData(elemActive, DATA_KEY, null);
|
|
287
|
+
}
|
|
288
|
+
});
|
|
209
289
|
}
|
|
210
290
|
|
|
211
291
|
var dimension = this._getDimension();
|
|
212
292
|
|
|
213
|
-
|
|
293
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE);
|
|
294
|
+
|
|
295
|
+
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
296
|
+
|
|
214
297
|
this._element.style[dimension] = 0;
|
|
215
298
|
|
|
216
299
|
if (this._triggerArray.length) {
|
|
217
|
-
|
|
300
|
+
this._triggerArray.forEach(function (element) {
|
|
301
|
+
element.classList.remove(CLASS_NAME_COLLAPSED);
|
|
302
|
+
element.setAttribute('aria-expanded', true);
|
|
303
|
+
});
|
|
218
304
|
}
|
|
219
305
|
|
|
220
306
|
this.setTransitioning(true);
|
|
221
307
|
|
|
222
308
|
var complete = function complete() {
|
|
223
|
-
|
|
309
|
+
_this._element.classList.remove(CLASS_NAME_COLLAPSING);
|
|
310
|
+
|
|
311
|
+
_this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
312
|
+
|
|
224
313
|
_this._element.style[dimension] = '';
|
|
225
314
|
|
|
226
315
|
_this.setTransitioning(false);
|
|
227
316
|
|
|
228
|
-
|
|
317
|
+
EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN);
|
|
229
318
|
};
|
|
230
319
|
|
|
231
320
|
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
|
232
321
|
var scrollSize = "scroll" + capitalizedDimension;
|
|
233
|
-
var transitionDuration =
|
|
234
|
-
|
|
322
|
+
var transitionDuration = getTransitionDurationFromElement(this._element);
|
|
323
|
+
EventHandler__default['default'].one(this._element, TRANSITION_END, complete);
|
|
324
|
+
emulateTransitionEnd(this._element, transitionDuration);
|
|
235
325
|
this._element.style[dimension] = this._element[scrollSize] + "px";
|
|
236
326
|
};
|
|
237
327
|
|
|
238
328
|
_proto.hide = function hide() {
|
|
239
329
|
var _this2 = this;
|
|
240
330
|
|
|
241
|
-
if (this._isTransitioning ||
|
|
331
|
+
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
242
332
|
return;
|
|
243
333
|
}
|
|
244
334
|
|
|
245
|
-
var startEvent =
|
|
246
|
-
$(this._element).trigger(startEvent);
|
|
335
|
+
var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
|
|
247
336
|
|
|
248
|
-
if (startEvent.
|
|
337
|
+
if (startEvent.defaultPrevented) {
|
|
249
338
|
return;
|
|
250
339
|
}
|
|
251
340
|
|
|
252
341
|
var dimension = this._getDimension();
|
|
253
342
|
|
|
254
343
|
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
|
255
|
-
|
|
256
|
-
|
|
344
|
+
reflow(this._element);
|
|
345
|
+
|
|
346
|
+
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
347
|
+
|
|
348
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
349
|
+
|
|
257
350
|
var triggerArrayLength = this._triggerArray.length;
|
|
258
351
|
|
|
259
352
|
if (triggerArrayLength > 0) {
|
|
260
353
|
for (var i = 0; i < triggerArrayLength; i++) {
|
|
261
354
|
var trigger = this._triggerArray[i];
|
|
262
|
-
var
|
|
263
|
-
|
|
264
|
-
if (selector !== null) {
|
|
265
|
-
var $elem = $([].slice.call(document.querySelectorAll(selector)));
|
|
355
|
+
var elem = getElementFromSelector(trigger);
|
|
266
356
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
357
|
+
if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
|
|
358
|
+
trigger.classList.add(CLASS_NAME_COLLAPSED);
|
|
359
|
+
trigger.setAttribute('aria-expanded', false);
|
|
270
360
|
}
|
|
271
361
|
}
|
|
272
362
|
}
|
|
@@ -276,12 +366,17 @@
|
|
|
276
366
|
var complete = function complete() {
|
|
277
367
|
_this2.setTransitioning(false);
|
|
278
368
|
|
|
279
|
-
|
|
369
|
+
_this2._element.classList.remove(CLASS_NAME_COLLAPSING);
|
|
370
|
+
|
|
371
|
+
_this2._element.classList.add(CLASS_NAME_COLLAPSE);
|
|
372
|
+
|
|
373
|
+
EventHandler__default['default'].trigger(_this2._element, EVENT_HIDDEN);
|
|
280
374
|
};
|
|
281
375
|
|
|
282
376
|
this._element.style[dimension] = '';
|
|
283
|
-
var transitionDuration =
|
|
284
|
-
|
|
377
|
+
var transitionDuration = getTransitionDurationFromElement(this._element);
|
|
378
|
+
EventHandler__default['default'].one(this._element, TRANSITION_END, complete);
|
|
379
|
+
emulateTransitionEnd(this._element, transitionDuration);
|
|
285
380
|
};
|
|
286
381
|
|
|
287
382
|
_proto.setTransitioning = function setTransitioning(isTransitioning) {
|
|
@@ -289,7 +384,7 @@
|
|
|
289
384
|
};
|
|
290
385
|
|
|
291
386
|
_proto.dispose = function dispose() {
|
|
292
|
-
|
|
387
|
+
Data__default['default'].removeData(this._element, DATA_KEY);
|
|
293
388
|
this._config = null;
|
|
294
389
|
this._parent = null;
|
|
295
390
|
this._element = null;
|
|
@@ -299,81 +394,90 @@
|
|
|
299
394
|
;
|
|
300
395
|
|
|
301
396
|
_proto._getConfig = function _getConfig(config) {
|
|
302
|
-
config =
|
|
397
|
+
config = _extends({}, Default, config);
|
|
303
398
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
|
304
399
|
|
|
305
|
-
|
|
400
|
+
typeCheckConfig(NAME, config, DefaultType);
|
|
306
401
|
return config;
|
|
307
402
|
};
|
|
308
403
|
|
|
309
404
|
_proto._getDimension = function _getDimension() {
|
|
310
|
-
|
|
311
|
-
return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
|
|
405
|
+
return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;
|
|
312
406
|
};
|
|
313
407
|
|
|
314
408
|
_proto._getParent = function _getParent() {
|
|
315
409
|
var _this3 = this;
|
|
316
410
|
|
|
317
|
-
var parent;
|
|
318
|
-
|
|
319
|
-
if (Util.isElement(this._config.parent)) {
|
|
320
|
-
parent = this._config.parent; // It's a jQuery object
|
|
411
|
+
var parent = this._config.parent;
|
|
321
412
|
|
|
322
|
-
|
|
323
|
-
|
|
413
|
+
if (isElement(parent)) {
|
|
414
|
+
// it's a jQuery object
|
|
415
|
+
if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
|
|
416
|
+
parent = parent[0];
|
|
324
417
|
}
|
|
325
418
|
} else {
|
|
326
|
-
parent =
|
|
419
|
+
parent = SelectorEngine__default['default'].findOne(parent);
|
|
327
420
|
}
|
|
328
421
|
|
|
329
|
-
var selector = "[data-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
422
|
+
var selector = SELECTOR_DATA_TOGGLE + "[data-parent=\"" + parent + "\"]";
|
|
423
|
+
SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {
|
|
424
|
+
var selected = getElementFromSelector(element);
|
|
425
|
+
|
|
426
|
+
_this3._addAriaAndCollapsedClass(selected, [element]);
|
|
333
427
|
});
|
|
334
428
|
return parent;
|
|
335
429
|
};
|
|
336
430
|
|
|
337
431
|
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
if (triggerArray.length) {
|
|
341
|
-
$(triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
|
432
|
+
if (!element || !triggerArray.length) {
|
|
433
|
+
return;
|
|
342
434
|
}
|
|
435
|
+
|
|
436
|
+
var isOpen = element.classList.contains(CLASS_NAME_SHOW);
|
|
437
|
+
triggerArray.forEach(function (elem) {
|
|
438
|
+
if (isOpen) {
|
|
439
|
+
elem.classList.remove(CLASS_NAME_COLLAPSED);
|
|
440
|
+
} else {
|
|
441
|
+
elem.classList.add(CLASS_NAME_COLLAPSED);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
elem.setAttribute('aria-expanded', isOpen);
|
|
445
|
+
});
|
|
343
446
|
} // Static
|
|
344
447
|
;
|
|
345
448
|
|
|
346
|
-
Collapse.
|
|
347
|
-
var
|
|
348
|
-
return selector ? document.querySelector(selector) : null;
|
|
349
|
-
};
|
|
449
|
+
Collapse.collapseInterface = function collapseInterface(element, config) {
|
|
450
|
+
var data = Data__default['default'].getData(element, DATA_KEY);
|
|
350
451
|
|
|
351
|
-
|
|
352
|
-
return this.each(function () {
|
|
353
|
-
var $this = $(this);
|
|
354
|
-
var data = $this.data(DATA_KEY);
|
|
452
|
+
var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element), typeof config === 'object' && config ? config : {});
|
|
355
453
|
|
|
356
|
-
|
|
454
|
+
if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
|
|
455
|
+
_config.toggle = false;
|
|
456
|
+
}
|
|
357
457
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
458
|
+
if (!data) {
|
|
459
|
+
data = new Collapse(element, _config);
|
|
460
|
+
}
|
|
361
461
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
462
|
+
if (typeof config === 'string') {
|
|
463
|
+
if (typeof data[config] === 'undefined') {
|
|
464
|
+
throw new TypeError("No method named \"" + config + "\"");
|
|
365
465
|
}
|
|
366
466
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
}
|
|
467
|
+
data[config]();
|
|
468
|
+
}
|
|
469
|
+
};
|
|
371
470
|
|
|
372
|
-
|
|
373
|
-
|
|
471
|
+
Collapse.jQueryInterface = function jQueryInterface(config) {
|
|
472
|
+
return this.each(function () {
|
|
473
|
+
Collapse.collapseInterface(this, config);
|
|
374
474
|
});
|
|
375
475
|
};
|
|
376
476
|
|
|
477
|
+
Collapse.getInstance = function getInstance(element) {
|
|
478
|
+
return Data__default['default'].getData(element, DATA_KEY);
|
|
479
|
+
};
|
|
480
|
+
|
|
377
481
|
_createClass(Collapse, null, [{
|
|
378
482
|
key: "VERSION",
|
|
379
483
|
get: function get() {
|
|
@@ -395,36 +499,56 @@
|
|
|
395
499
|
*/
|
|
396
500
|
|
|
397
501
|
|
|
398
|
-
|
|
502
|
+
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
399
503
|
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
|
|
400
|
-
if (event.
|
|
504
|
+
if (event.target.tagName === 'A') {
|
|
401
505
|
event.preventDefault();
|
|
402
506
|
}
|
|
403
507
|
|
|
404
|
-
var
|
|
405
|
-
var selector =
|
|
406
|
-
var
|
|
407
|
-
|
|
408
|
-
var
|
|
409
|
-
var
|
|
410
|
-
|
|
508
|
+
var triggerData = Manipulator__default['default'].getDataAttributes(this);
|
|
509
|
+
var selector = getSelectorFromElement(this);
|
|
510
|
+
var selectorElements = SelectorEngine__default['default'].find(selector);
|
|
511
|
+
selectorElements.forEach(function (element) {
|
|
512
|
+
var data = Data__default['default'].getData(element, DATA_KEY);
|
|
513
|
+
var config;
|
|
514
|
+
|
|
515
|
+
if (data) {
|
|
516
|
+
// update parent attribute
|
|
517
|
+
if (data._parent === null && typeof triggerData.parent === 'string') {
|
|
518
|
+
data._config.parent = triggerData.parent;
|
|
519
|
+
data._parent = data._getParent();
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
config = 'toggle';
|
|
523
|
+
} else {
|
|
524
|
+
config = triggerData;
|
|
525
|
+
}
|
|
411
526
|
|
|
412
|
-
Collapse.
|
|
527
|
+
Collapse.collapseInterface(element, config);
|
|
413
528
|
});
|
|
414
529
|
});
|
|
415
530
|
/**
|
|
416
531
|
* ------------------------------------------------------------------------
|
|
417
532
|
* jQuery
|
|
418
533
|
* ------------------------------------------------------------------------
|
|
534
|
+
* add .Collapse to jQuery only if jQuery is present
|
|
419
535
|
*/
|
|
420
536
|
|
|
421
|
-
|
|
422
|
-
|
|
537
|
+
onDOMContentLoaded(function () {
|
|
538
|
+
var $ = getjQuery();
|
|
539
|
+
/* istanbul ignore if */
|
|
423
540
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
541
|
+
if ($) {
|
|
542
|
+
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
543
|
+
$.fn[NAME] = Collapse.jQueryInterface;
|
|
544
|
+
$.fn[NAME].Constructor = Collapse;
|
|
545
|
+
|
|
546
|
+
$.fn[NAME].noConflict = function () {
|
|
547
|
+
$.fn[NAME] = JQUERY_NO_CONFLICT;
|
|
548
|
+
return Collapse.jQueryInterface;
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
});
|
|
428
552
|
|
|
429
553
|
return Collapse;
|
|
430
554
|
|