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