bootstrap 4.3.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/.travis.yml +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +5 -1
- data/assets/javascripts/bootstrap.js +2292 -1514
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/javascripts/bootstrap/alert.js +148 -85
- data/assets/javascripts/bootstrap/button.js +69 -110
- data/assets/javascripts/bootstrap/carousel.js +320 -239
- data/assets/javascripts/bootstrap/collapse.js +300 -177
- 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 +282 -265
- data/assets/javascripts/bootstrap/modal.js +348 -231
- data/assets/javascripts/bootstrap/popover.js +80 -105
- data/assets/javascripts/bootstrap/scrollspy.js +173 -138
- data/assets/javascripts/bootstrap/tab.js +180 -115
- data/assets/javascripts/bootstrap/toast.js +188 -132
- data/assets/javascripts/bootstrap/tooltip.js +508 -230
- 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 +3 -3
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +7 -18
- data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
- data/assets/stylesheets/bootstrap/_buttons.scss +26 -39
- data/assets/stylesheets/bootstrap/_card.scss +48 -97
- data/assets/stylesheets/bootstrap/_carousel.scss +16 -18
- data/assets/stylesheets/bootstrap/_close.scss +9 -14
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +13 -9
- data/assets/stylesheets/bootstrap/_forms.scss +9 -330
- data/assets/stylesheets/bootstrap/_functions.scss +141 -24
- data/assets/stylesheets/bootstrap/_grid.scss +4 -34
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_images.scss +2 -2
- data/assets/stylesheets/bootstrap/_list-group.scss +41 -33
- data/assets/stylesheets/bootstrap/_mixins.scss +9 -15
- data/assets/stylesheets/bootstrap/_modal.scss +54 -48
- data/assets/stylesheets/bootstrap/_nav.scss +12 -9
- data/assets/stylesheets/bootstrap/_navbar.scss +54 -56
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -22
- data/assets/stylesheets/bootstrap/_popover.scss +13 -14
- data/assets/stylesheets/bootstrap/_progress.scss +6 -4
- data/assets/stylesheets/bootstrap/_reboot.scss +318 -185
- data/assets/stylesheets/bootstrap/_root.scss +5 -8
- data/assets/stylesheets/bootstrap/_spinners.scss +3 -2
- data/assets/stylesheets/bootstrap/_tables.scss +80 -114
- data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +40 -61
- data/assets/stylesheets/bootstrap/_utilities.scss +503 -17
- data/assets/stylesheets/bootstrap/_variables.scss +567 -430
- 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 +26 -13
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -8
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +68 -50
- 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 +47 -106
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +99 -29
- data/assets/stylesheets/bootstrap/mixins/_image.scss +0 -20
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +14 -19
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
- 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 +230 -130
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +3 -3
- data/tasks/updater/network.rb +2 -2
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +40 -42
- data/assets/javascripts/bootstrap/util.js +0 -171
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -507
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -193
- 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 -21
- 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 -66
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
- 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 -16
- 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
|
@@ -1,67 +1,147 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap collapse.js
|
|
3
|
-
* Copyright 2011-
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
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
|
+
* 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 = 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;
|
|
22
29
|
}
|
|
23
|
-
}
|
|
24
30
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
28
|
-
return Constructor;
|
|
29
|
-
}
|
|
31
|
+
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
32
|
+
};
|
|
30
33
|
|
|
31
|
-
function
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
writable: true
|
|
38
|
-
});
|
|
39
|
-
} else {
|
|
40
|
-
obj[key] = value;
|
|
34
|
+
var getSelector = function getSelector(element) {
|
|
35
|
+
var selector = element.getAttribute('data-target');
|
|
36
|
+
|
|
37
|
+
if (!selector || selector === '#') {
|
|
38
|
+
var hrefAttr = element.getAttribute('href');
|
|
39
|
+
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
return
|
|
44
|
-
}
|
|
42
|
+
return selector;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
var getSelectorFromElement = function getSelectorFromElement(element) {
|
|
46
|
+
var selector = getSelector(element);
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
+
};
|
|
50
82
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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);
|
|
55
105
|
}
|
|
106
|
+
}, emulatedDuration);
|
|
107
|
+
};
|
|
56
108
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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 + "\"."));
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
var reflow = function reflow(element) {
|
|
122
|
+
return element.offsetHeight;
|
|
123
|
+
};
|
|
124
|
+
|
|
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;
|
|
60
131
|
}
|
|
61
132
|
|
|
62
|
-
return
|
|
63
|
-
}
|
|
133
|
+
return null;
|
|
134
|
+
};
|
|
64
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; }
|
|
65
145
|
/**
|
|
66
146
|
* ------------------------------------------------------------------------
|
|
67
147
|
* Constants
|
|
@@ -69,11 +149,10 @@
|
|
|
69
149
|
*/
|
|
70
150
|
|
|
71
151
|
var NAME = 'collapse';
|
|
72
|
-
var VERSION = '
|
|
152
|
+
var VERSION = '5.0.0-alpha1';
|
|
73
153
|
var DATA_KEY = 'bs.collapse';
|
|
74
154
|
var EVENT_KEY = "." + DATA_KEY;
|
|
75
155
|
var DATA_API_KEY = '.data-api';
|
|
76
|
-
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
77
156
|
var Default = {
|
|
78
157
|
toggle: true,
|
|
79
158
|
parent: ''
|
|
@@ -82,52 +161,41 @@
|
|
|
82
161
|
toggle: 'boolean',
|
|
83
162
|
parent: '(string|element)'
|
|
84
163
|
};
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
ACTIVES: '.show, .collapsing',
|
|
104
|
-
DATA_TOGGLE: '[data-toggle="collapse"]'
|
|
105
|
-
/**
|
|
106
|
-
* ------------------------------------------------------------------------
|
|
107
|
-
* Class Definition
|
|
108
|
-
* ------------------------------------------------------------------------
|
|
109
|
-
*/
|
|
110
|
-
|
|
111
|
-
};
|
|
164
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
|
165
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
|
166
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
|
167
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
|
168
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
169
|
+
var CLASS_NAME_SHOW = 'show';
|
|
170
|
+
var CLASS_NAME_COLLAPSE = 'collapse';
|
|
171
|
+
var CLASS_NAME_COLLAPSING = 'collapsing';
|
|
172
|
+
var CLASS_NAME_COLLAPSED = 'collapsed';
|
|
173
|
+
var WIDTH = 'width';
|
|
174
|
+
var HEIGHT = 'height';
|
|
175
|
+
var SELECTOR_ACTIVES = '.show, .collapsing';
|
|
176
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
|
|
177
|
+
/**
|
|
178
|
+
* ------------------------------------------------------------------------
|
|
179
|
+
* Class Definition
|
|
180
|
+
* ------------------------------------------------------------------------
|
|
181
|
+
*/
|
|
112
182
|
|
|
113
|
-
var Collapse =
|
|
114
|
-
/*#__PURE__*/
|
|
115
|
-
function () {
|
|
183
|
+
var Collapse = /*#__PURE__*/function () {
|
|
116
184
|
function Collapse(element, config) {
|
|
117
185
|
this._isTransitioning = false;
|
|
118
186
|
this._element = element;
|
|
119
187
|
this._config = this._getConfig(config);
|
|
120
|
-
this._triggerArray =
|
|
121
|
-
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);
|
|
122
190
|
|
|
123
191
|
for (var i = 0, len = toggleList.length; i < len; i++) {
|
|
124
192
|
var elem = toggleList[i];
|
|
125
|
-
var selector =
|
|
126
|
-
var filterElement =
|
|
193
|
+
var selector = getSelectorFromElement(elem);
|
|
194
|
+
var filterElement = SelectorEngine.find(selector).filter(function (foundElem) {
|
|
127
195
|
return foundElem === element;
|
|
128
196
|
});
|
|
129
197
|
|
|
130
|
-
if (selector !== null && filterElement.length
|
|
198
|
+
if (selector !== null && filterElement.length) {
|
|
131
199
|
this._selector = selector;
|
|
132
200
|
|
|
133
201
|
this._triggerArray.push(elem);
|
|
@@ -143,6 +211,8 @@
|
|
|
143
211
|
if (this._config.toggle) {
|
|
144
212
|
this.toggle();
|
|
145
213
|
}
|
|
214
|
+
|
|
215
|
+
Data.setData(element, DATA_KEY, this);
|
|
146
216
|
} // Getters
|
|
147
217
|
|
|
148
218
|
|
|
@@ -150,7 +220,7 @@
|
|
|
150
220
|
|
|
151
221
|
// Public
|
|
152
222
|
_proto.toggle = function toggle() {
|
|
153
|
-
if (
|
|
223
|
+
if (this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
154
224
|
this.hide();
|
|
155
225
|
} else {
|
|
156
226
|
this.show();
|
|
@@ -160,7 +230,7 @@
|
|
|
160
230
|
_proto.show = function show() {
|
|
161
231
|
var _this = this;
|
|
162
232
|
|
|
163
|
-
if (this._isTransitioning ||
|
|
233
|
+
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
164
234
|
return;
|
|
165
235
|
}
|
|
166
236
|
|
|
@@ -168,12 +238,12 @@
|
|
|
168
238
|
var activesData;
|
|
169
239
|
|
|
170
240
|
if (this._parent) {
|
|
171
|
-
actives =
|
|
241
|
+
actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
|
|
172
242
|
if (typeof _this._config.parent === 'string') {
|
|
173
243
|
return elem.getAttribute('data-parent') === _this._config.parent;
|
|
174
244
|
}
|
|
175
245
|
|
|
176
|
-
return elem.classList.contains(
|
|
246
|
+
return elem.classList.contains(CLASS_NAME_COLLAPSE);
|
|
177
247
|
});
|
|
178
248
|
|
|
179
249
|
if (actives.length === 0) {
|
|
@@ -181,88 +251,106 @@
|
|
|
181
251
|
}
|
|
182
252
|
}
|
|
183
253
|
|
|
254
|
+
var container = SelectorEngine.findOne(this._selector);
|
|
255
|
+
|
|
184
256
|
if (actives) {
|
|
185
|
-
|
|
257
|
+
var tempActiveData = actives.filter(function (elem) {
|
|
258
|
+
return container !== elem;
|
|
259
|
+
});
|
|
260
|
+
activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null;
|
|
186
261
|
|
|
187
262
|
if (activesData && activesData._isTransitioning) {
|
|
188
263
|
return;
|
|
189
264
|
}
|
|
190
265
|
}
|
|
191
266
|
|
|
192
|
-
var startEvent =
|
|
193
|
-
$(this._element).trigger(startEvent);
|
|
267
|
+
var startEvent = EventHandler.trigger(this._element, EVENT_SHOW);
|
|
194
268
|
|
|
195
|
-
if (startEvent.
|
|
269
|
+
if (startEvent.defaultPrevented) {
|
|
196
270
|
return;
|
|
197
271
|
}
|
|
198
272
|
|
|
199
273
|
if (actives) {
|
|
200
|
-
|
|
274
|
+
actives.forEach(function (elemActive) {
|
|
275
|
+
if (container !== elemActive) {
|
|
276
|
+
Collapse.collapseInterface(elemActive, 'hide');
|
|
277
|
+
}
|
|
201
278
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
279
|
+
if (!activesData) {
|
|
280
|
+
Data.setData(elemActive, DATA_KEY, null);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
205
283
|
}
|
|
206
284
|
|
|
207
285
|
var dimension = this._getDimension();
|
|
208
286
|
|
|
209
|
-
|
|
287
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE);
|
|
288
|
+
|
|
289
|
+
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
290
|
+
|
|
210
291
|
this._element.style[dimension] = 0;
|
|
211
292
|
|
|
212
293
|
if (this._triggerArray.length) {
|
|
213
|
-
|
|
294
|
+
this._triggerArray.forEach(function (element) {
|
|
295
|
+
element.classList.remove(CLASS_NAME_COLLAPSED);
|
|
296
|
+
element.setAttribute('aria-expanded', true);
|
|
297
|
+
});
|
|
214
298
|
}
|
|
215
299
|
|
|
216
300
|
this.setTransitioning(true);
|
|
217
301
|
|
|
218
302
|
var complete = function complete() {
|
|
219
|
-
|
|
303
|
+
_this._element.classList.remove(CLASS_NAME_COLLAPSING);
|
|
304
|
+
|
|
305
|
+
_this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
306
|
+
|
|
220
307
|
_this._element.style[dimension] = '';
|
|
221
308
|
|
|
222
309
|
_this.setTransitioning(false);
|
|
223
310
|
|
|
224
|
-
|
|
311
|
+
EventHandler.trigger(_this._element, EVENT_SHOWN);
|
|
225
312
|
};
|
|
226
313
|
|
|
227
314
|
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
|
228
315
|
var scrollSize = "scroll" + capitalizedDimension;
|
|
229
|
-
var transitionDuration =
|
|
230
|
-
|
|
316
|
+
var transitionDuration = getTransitionDurationFromElement(this._element);
|
|
317
|
+
EventHandler.one(this._element, TRANSITION_END, complete);
|
|
318
|
+
emulateTransitionEnd(this._element, transitionDuration);
|
|
231
319
|
this._element.style[dimension] = this._element[scrollSize] + "px";
|
|
232
320
|
};
|
|
233
321
|
|
|
234
322
|
_proto.hide = function hide() {
|
|
235
323
|
var _this2 = this;
|
|
236
324
|
|
|
237
|
-
if (this._isTransitioning ||
|
|
325
|
+
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
238
326
|
return;
|
|
239
327
|
}
|
|
240
328
|
|
|
241
|
-
var startEvent =
|
|
242
|
-
$(this._element).trigger(startEvent);
|
|
329
|
+
var startEvent = EventHandler.trigger(this._element, EVENT_HIDE);
|
|
243
330
|
|
|
244
|
-
if (startEvent.
|
|
331
|
+
if (startEvent.defaultPrevented) {
|
|
245
332
|
return;
|
|
246
333
|
}
|
|
247
334
|
|
|
248
335
|
var dimension = this._getDimension();
|
|
249
336
|
|
|
250
337
|
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
|
251
|
-
|
|
252
|
-
|
|
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
|
+
|
|
253
344
|
var triggerArrayLength = this._triggerArray.length;
|
|
254
345
|
|
|
255
346
|
if (triggerArrayLength > 0) {
|
|
256
347
|
for (var i = 0; i < triggerArrayLength; i++) {
|
|
257
348
|
var trigger = this._triggerArray[i];
|
|
258
|
-
var
|
|
259
|
-
|
|
260
|
-
if (selector !== null) {
|
|
261
|
-
var $elem = $([].slice.call(document.querySelectorAll(selector)));
|
|
349
|
+
var elem = getElementFromSelector(trigger);
|
|
262
350
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
351
|
+
if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
|
|
352
|
+
trigger.classList.add(CLASS_NAME_COLLAPSED);
|
|
353
|
+
trigger.setAttribute('aria-expanded', false);
|
|
266
354
|
}
|
|
267
355
|
}
|
|
268
356
|
}
|
|
@@ -272,12 +360,17 @@
|
|
|
272
360
|
var complete = function complete() {
|
|
273
361
|
_this2.setTransitioning(false);
|
|
274
362
|
|
|
275
|
-
|
|
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);
|
|
276
368
|
};
|
|
277
369
|
|
|
278
370
|
this._element.style[dimension] = '';
|
|
279
|
-
var transitionDuration =
|
|
280
|
-
|
|
371
|
+
var transitionDuration = getTransitionDurationFromElement(this._element);
|
|
372
|
+
EventHandler.one(this._element, TRANSITION_END, complete);
|
|
373
|
+
emulateTransitionEnd(this._element, transitionDuration);
|
|
281
374
|
};
|
|
282
375
|
|
|
283
376
|
_proto.setTransitioning = function setTransitioning(isTransitioning) {
|
|
@@ -285,7 +378,7 @@
|
|
|
285
378
|
};
|
|
286
379
|
|
|
287
380
|
_proto.dispose = function dispose() {
|
|
288
|
-
|
|
381
|
+
Data.removeData(this._element, DATA_KEY);
|
|
289
382
|
this._config = null;
|
|
290
383
|
this._parent = null;
|
|
291
384
|
this._element = null;
|
|
@@ -295,81 +388,93 @@
|
|
|
295
388
|
;
|
|
296
389
|
|
|
297
390
|
_proto._getConfig = function _getConfig(config) {
|
|
298
|
-
config = _objectSpread({}, Default, config);
|
|
391
|
+
config = _objectSpread(_objectSpread({}, Default), config);
|
|
299
392
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
|
300
393
|
|
|
301
|
-
|
|
394
|
+
typeCheckConfig(NAME, config, DefaultType);
|
|
302
395
|
return config;
|
|
303
396
|
};
|
|
304
397
|
|
|
305
398
|
_proto._getDimension = function _getDimension() {
|
|
306
|
-
var hasWidth =
|
|
307
|
-
|
|
399
|
+
var hasWidth = this._element.classList.contains(WIDTH);
|
|
400
|
+
|
|
401
|
+
return hasWidth ? WIDTH : HEIGHT;
|
|
308
402
|
};
|
|
309
403
|
|
|
310
404
|
_proto._getParent = function _getParent() {
|
|
311
405
|
var _this3 = this;
|
|
312
406
|
|
|
313
|
-
var parent;
|
|
314
|
-
|
|
315
|
-
if (Util.isElement(this._config.parent)) {
|
|
316
|
-
parent = this._config.parent; // It's a jQuery object
|
|
407
|
+
var parent = this._config.parent;
|
|
317
408
|
|
|
318
|
-
|
|
319
|
-
|
|
409
|
+
if (isElement(parent)) {
|
|
410
|
+
// it's a jQuery object
|
|
411
|
+
if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
|
|
412
|
+
parent = parent[0];
|
|
320
413
|
}
|
|
321
414
|
} else {
|
|
322
|
-
parent =
|
|
415
|
+
parent = SelectorEngine.findOne(parent);
|
|
323
416
|
}
|
|
324
417
|
|
|
325
|
-
var selector = "[data-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
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]);
|
|
329
423
|
});
|
|
330
424
|
return parent;
|
|
331
425
|
};
|
|
332
426
|
|
|
333
427
|
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
|
334
|
-
|
|
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
|
+
}
|
|
335
438
|
|
|
336
|
-
|
|
337
|
-
|
|
439
|
+
elem.setAttribute('aria-expanded', isOpen);
|
|
440
|
+
});
|
|
441
|
+
}
|
|
338
442
|
}
|
|
339
443
|
} // Static
|
|
340
444
|
;
|
|
341
445
|
|
|
342
|
-
Collapse.
|
|
343
|
-
var
|
|
344
|
-
return selector ? document.querySelector(selector) : null;
|
|
345
|
-
};
|
|
446
|
+
Collapse.collapseInterface = function collapseInterface(element, config) {
|
|
447
|
+
var data = Data.getData(element, DATA_KEY);
|
|
346
448
|
|
|
347
|
-
|
|
348
|
-
return this.each(function () {
|
|
349
|
-
var $this = $(this);
|
|
350
|
-
var data = $this.data(DATA_KEY);
|
|
449
|
+
var _config = _objectSpread(_objectSpread(_objectSpread({}, Default), Manipulator.getDataAttributes(element)), typeof config === 'object' && config ? config : {});
|
|
351
450
|
|
|
352
|
-
|
|
451
|
+
if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
|
|
452
|
+
_config.toggle = false;
|
|
453
|
+
}
|
|
353
454
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
455
|
+
if (!data) {
|
|
456
|
+
data = new Collapse(element, _config);
|
|
457
|
+
}
|
|
357
458
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
459
|
+
if (typeof config === 'string') {
|
|
460
|
+
if (typeof data[config] === 'undefined') {
|
|
461
|
+
throw new TypeError("No method named \"" + config + "\"");
|
|
361
462
|
}
|
|
362
463
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
}
|
|
464
|
+
data[config]();
|
|
465
|
+
}
|
|
466
|
+
};
|
|
367
467
|
|
|
368
|
-
|
|
369
|
-
|
|
468
|
+
Collapse.jQueryInterface = function jQueryInterface(config) {
|
|
469
|
+
return this.each(function () {
|
|
470
|
+
Collapse.collapseInterface(this, config);
|
|
370
471
|
});
|
|
371
472
|
};
|
|
372
473
|
|
|
474
|
+
Collapse.getInstance = function getInstance(element) {
|
|
475
|
+
return Data.getData(element, DATA_KEY);
|
|
476
|
+
};
|
|
477
|
+
|
|
373
478
|
_createClass(Collapse, null, [{
|
|
374
479
|
key: "VERSION",
|
|
375
480
|
get: function get() {
|
|
@@ -391,37 +496,55 @@
|
|
|
391
496
|
*/
|
|
392
497
|
|
|
393
498
|
|
|
394
|
-
|
|
499
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
395
500
|
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
|
|
396
|
-
if (event.
|
|
501
|
+
if (event.target.tagName === 'A') {
|
|
397
502
|
event.preventDefault();
|
|
398
503
|
}
|
|
399
504
|
|
|
400
|
-
var
|
|
401
|
-
var selector =
|
|
402
|
-
var
|
|
403
|
-
|
|
404
|
-
var
|
|
405
|
-
var
|
|
406
|
-
|
|
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
|
+
}
|
|
407
523
|
|
|
408
|
-
Collapse.
|
|
524
|
+
Collapse.collapseInterface(element, config);
|
|
409
525
|
});
|
|
410
526
|
});
|
|
527
|
+
var $ = getjQuery();
|
|
411
528
|
/**
|
|
412
529
|
* ------------------------------------------------------------------------
|
|
413
530
|
* jQuery
|
|
414
531
|
* ------------------------------------------------------------------------
|
|
532
|
+
* add .collapse to jQuery only if jQuery is present
|
|
415
533
|
*/
|
|
416
534
|
|
|
417
|
-
|
|
418
|
-
$.fn[NAME].Constructor = Collapse;
|
|
535
|
+
/* istanbul ignore if */
|
|
419
536
|
|
|
420
|
-
|
|
421
|
-
$.fn[NAME]
|
|
422
|
-
|
|
423
|
-
|
|
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
|
+
}
|
|
424
547
|
|
|
425
548
|
return Collapse;
|
|
426
549
|
|
|
427
|
-
}));
|
|
550
|
+
})));
|