bootstrap 4.6.0 → 5.0.0.beta2
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 +2 -1
- data/README.md +7 -4
- data/assets/javascripts/bootstrap-global-this-define.js +6 -0
- data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
- data/assets/javascripts/bootstrap-sprockets.js +14 -8
- data/assets/javascripts/bootstrap.js +2152 -1633
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +179 -64
- data/assets/javascripts/bootstrap/base-component.js +75 -0
- data/assets/javascripts/bootstrap/button.js +94 -143
- data/assets/javascripts/bootstrap/carousel.js +386 -202
- data/assets/javascripts/bootstrap/collapse.js +349 -132
- data/assets/javascripts/bootstrap/dom/data.js +81 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +310 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +86 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +93 -0
- data/assets/javascripts/bootstrap/dropdown.js +387 -224
- data/assets/javascripts/bootstrap/modal.js +391 -220
- data/assets/javascripts/bootstrap/popover.js +94 -49
- data/assets/javascripts/bootstrap/scrollspy.js +212 -80
- data/assets/javascripts/bootstrap/tab.js +198 -79
- data/assets/javascripts/bootstrap/toast.js +211 -78
- data/assets/javascripts/bootstrap/tooltip.js +558 -300
- data/assets/stylesheets/_bootstrap-grid.scss +51 -16
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
- data/assets/stylesheets/_bootstrap.scss +15 -8
- data/assets/stylesheets/bootstrap/_accordion.scss +126 -0
- data/assets/stylesheets/bootstrap/_alert.scss +15 -10
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
- data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
- data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
- data/assets/stylesheets/bootstrap/_card.scss +21 -92
- data/assets/stylesheets/bootstrap/_carousel.scss +65 -33
- data/assets/stylesheets/bootstrap/_close.scss +30 -30
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +95 -38
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +84 -23
- data/assets/stylesheets/bootstrap/_grid.scss +3 -54
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +17 -8
- data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
- data/assets/stylesheets/bootstrap/_modal.scss +41 -46
- data/assets/stylesheets/bootstrap/_nav.scss +16 -4
- data/assets/stylesheets/bootstrap/_navbar.scss +43 -71
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
- data/assets/stylesheets/bootstrap/_popover.scss +15 -27
- data/assets/stylesheets/bootstrap/_progress.scss +2 -4
- data/assets/stylesheets/bootstrap/_reboot.scss +314 -163
- data/assets/stylesheets/bootstrap/_root.scss +5 -8
- data/assets/stylesheets/bootstrap/_spinners.scss +5 -5
- data/assets/stylesheets/bootstrap/_tables.scss +79 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +20 -15
- data/assets/stylesheets/bootstrap/_tooltip.scss +17 -17
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +566 -18
- data/assets/stylesheets/bootstrap/_variables.scss +673 -463
- 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 +152 -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 +67 -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 +8 -8
- 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 +8 -8
- 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 +27 -88
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +83 -32
- 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 +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
- data/bootstrap.gemspec +1 -3
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +20 -5
- data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
- data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
- data/test/dummy_rails/app/views/pages/root.html +89 -0
- data/test/dummy_rails/config/application.rb +0 -3
- data/test/gemfiles/rails_6_1.gemfile +7 -0
- metadata +44 -75
- 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/_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 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
- data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap collapse.js
|
|
2
|
+
* Bootstrap collapse.js v5.0.0-beta2 (https://getbootstrap.com/)
|
|
3
3
|
* Copyright 2011-2021 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 = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.
|
|
10
|
-
}(this, (function (
|
|
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'), require('./base-component.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
|
|
10
|
+
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
|
|
11
11
|
|
|
12
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
13
|
|
|
14
|
-
var
|
|
15
|
-
var
|
|
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
|
+
var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
16
19
|
|
|
17
20
|
function _defineProperties(target, props) {
|
|
18
21
|
for (var i = 0; i < props.length; i++) {
|
|
@@ -48,6 +51,182 @@
|
|
|
48
51
|
return _extends.apply(this, arguments);
|
|
49
52
|
}
|
|
50
53
|
|
|
54
|
+
function _inheritsLoose(subClass, superClass) {
|
|
55
|
+
subClass.prototype = Object.create(superClass.prototype);
|
|
56
|
+
subClass.prototype.constructor = subClass;
|
|
57
|
+
|
|
58
|
+
_setPrototypeOf(subClass, superClass);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function _setPrototypeOf(o, p) {
|
|
62
|
+
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
63
|
+
o.__proto__ = p;
|
|
64
|
+
return o;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
return _setPrototypeOf(o, p);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* --------------------------------------------------------------------------
|
|
72
|
+
* Bootstrap (v5.0.0-beta2): util/index.js
|
|
73
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
74
|
+
* --------------------------------------------------------------------------
|
|
75
|
+
*/
|
|
76
|
+
var MILLISECONDS_MULTIPLIER = 1000;
|
|
77
|
+
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
|
78
|
+
|
|
79
|
+
var toType = function toType(obj) {
|
|
80
|
+
if (obj === null || obj === undefined) {
|
|
81
|
+
return "" + obj;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
var getSelector = function getSelector(element) {
|
|
88
|
+
var selector = element.getAttribute('data-bs-target');
|
|
89
|
+
|
|
90
|
+
if (!selector || selector === '#') {
|
|
91
|
+
var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
|
|
92
|
+
// so everything starting with `#` or `.`. If a "real" URL is used as the selector,
|
|
93
|
+
// `document.querySelector` will rightfully complain it is invalid.
|
|
94
|
+
// See https://github.com/twbs/bootstrap/issues/32273
|
|
95
|
+
|
|
96
|
+
if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
|
|
97
|
+
return null;
|
|
98
|
+
} // Just in case some CMS puts out a full URL with the anchor appended
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
|
|
102
|
+
hrefAttr = '#' + hrefAttr.split('#')[1];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return selector;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
var getSelectorFromElement = function getSelectorFromElement(element) {
|
|
112
|
+
var selector = getSelector(element);
|
|
113
|
+
|
|
114
|
+
if (selector) {
|
|
115
|
+
return document.querySelector(selector) ? selector : null;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return null;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
var getElementFromSelector = function getElementFromSelector(element) {
|
|
122
|
+
var selector = getSelector(element);
|
|
123
|
+
return selector ? document.querySelector(selector) : null;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
|
|
127
|
+
if (!element) {
|
|
128
|
+
return 0;
|
|
129
|
+
} // Get transition-duration of the element
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
var _window$getComputedSt = window.getComputedStyle(element),
|
|
133
|
+
transitionDuration = _window$getComputedSt.transitionDuration,
|
|
134
|
+
transitionDelay = _window$getComputedSt.transitionDelay;
|
|
135
|
+
|
|
136
|
+
var floatTransitionDuration = Number.parseFloat(transitionDuration);
|
|
137
|
+
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
|
|
138
|
+
|
|
139
|
+
if (!floatTransitionDuration && !floatTransitionDelay) {
|
|
140
|
+
return 0;
|
|
141
|
+
} // If multiple durations are defined, take the first
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
transitionDuration = transitionDuration.split(',')[0];
|
|
145
|
+
transitionDelay = transitionDelay.split(',')[0];
|
|
146
|
+
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
var triggerTransitionEnd = function triggerTransitionEnd(element) {
|
|
150
|
+
element.dispatchEvent(new Event(TRANSITION_END));
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
var isElement = function isElement(obj) {
|
|
154
|
+
return (obj[0] || obj).nodeType;
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
|
|
158
|
+
var called = false;
|
|
159
|
+
var durationPadding = 5;
|
|
160
|
+
var emulatedDuration = duration + durationPadding;
|
|
161
|
+
|
|
162
|
+
function listener() {
|
|
163
|
+
called = true;
|
|
164
|
+
element.removeEventListener(TRANSITION_END, listener);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
element.addEventListener(TRANSITION_END, listener);
|
|
168
|
+
setTimeout(function () {
|
|
169
|
+
if (!called) {
|
|
170
|
+
triggerTransitionEnd(element);
|
|
171
|
+
}
|
|
172
|
+
}, emulatedDuration);
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
|
|
176
|
+
Object.keys(configTypes).forEach(function (property) {
|
|
177
|
+
var expectedTypes = configTypes[property];
|
|
178
|
+
var value = config[property];
|
|
179
|
+
var valueType = value && isElement(value) ? 'element' : toType(value);
|
|
180
|
+
|
|
181
|
+
if (!new RegExp(expectedTypes).test(valueType)) {
|
|
182
|
+
throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
var reflow = function reflow(element) {
|
|
188
|
+
return element.offsetHeight;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
var getjQuery = function getjQuery() {
|
|
192
|
+
var _window = window,
|
|
193
|
+
jQuery = _window.jQuery;
|
|
194
|
+
|
|
195
|
+
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
|
|
196
|
+
return jQuery;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
return null;
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
|
|
203
|
+
if (document.readyState === 'loading') {
|
|
204
|
+
document.addEventListener('DOMContentLoaded', callback);
|
|
205
|
+
} else {
|
|
206
|
+
callback();
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
document.documentElement.dir === 'rtl';
|
|
211
|
+
|
|
212
|
+
var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
|
|
213
|
+
onDOMContentLoaded(function () {
|
|
214
|
+
var $ = getjQuery();
|
|
215
|
+
/* istanbul ignore if */
|
|
216
|
+
|
|
217
|
+
if ($) {
|
|
218
|
+
var JQUERY_NO_CONFLICT = $.fn[name];
|
|
219
|
+
$.fn[name] = plugin.jQueryInterface;
|
|
220
|
+
$.fn[name].Constructor = plugin;
|
|
221
|
+
|
|
222
|
+
$.fn[name].noConflict = function () {
|
|
223
|
+
$.fn[name] = JQUERY_NO_CONFLICT;
|
|
224
|
+
return plugin.jQueryInterface;
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
};
|
|
229
|
+
|
|
51
230
|
/**
|
|
52
231
|
* ------------------------------------------------------------------------
|
|
53
232
|
* Constants
|
|
@@ -55,11 +234,9 @@
|
|
|
55
234
|
*/
|
|
56
235
|
|
|
57
236
|
var NAME = 'collapse';
|
|
58
|
-
var VERSION = '4.6.0';
|
|
59
237
|
var DATA_KEY = 'bs.collapse';
|
|
60
238
|
var EVENT_KEY = "." + DATA_KEY;
|
|
61
239
|
var DATA_API_KEY = '.data-api';
|
|
62
|
-
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
|
|
63
240
|
var Default = {
|
|
64
241
|
toggle: true,
|
|
65
242
|
parent: ''
|
|
@@ -77,47 +254,53 @@
|
|
|
77
254
|
var CLASS_NAME_COLLAPSE = 'collapse';
|
|
78
255
|
var CLASS_NAME_COLLAPSING = 'collapsing';
|
|
79
256
|
var CLASS_NAME_COLLAPSED = 'collapsed';
|
|
80
|
-
var
|
|
81
|
-
var
|
|
257
|
+
var WIDTH = 'width';
|
|
258
|
+
var HEIGHT = 'height';
|
|
82
259
|
var SELECTOR_ACTIVES = '.show, .collapsing';
|
|
83
|
-
var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
|
|
260
|
+
var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
|
|
84
261
|
/**
|
|
85
262
|
* ------------------------------------------------------------------------
|
|
86
263
|
* Class Definition
|
|
87
264
|
* ------------------------------------------------------------------------
|
|
88
265
|
*/
|
|
89
266
|
|
|
90
|
-
var Collapse = /*#__PURE__*/function () {
|
|
267
|
+
var Collapse = /*#__PURE__*/function (_BaseComponent) {
|
|
268
|
+
_inheritsLoose(Collapse, _BaseComponent);
|
|
269
|
+
|
|
91
270
|
function Collapse(element, config) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
271
|
+
var _this;
|
|
272
|
+
|
|
273
|
+
_this = _BaseComponent.call(this, element) || this;
|
|
274
|
+
_this._isTransitioning = false;
|
|
275
|
+
_this._config = _this._getConfig(config);
|
|
276
|
+
_this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-bs-target=\"#" + element.id + "\"]"));
|
|
277
|
+
var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
|
|
97
278
|
|
|
98
279
|
for (var i = 0, len = toggleList.length; i < len; i++) {
|
|
99
280
|
var elem = toggleList[i];
|
|
100
|
-
var selector =
|
|
101
|
-
var filterElement = [].
|
|
281
|
+
var selector = getSelectorFromElement(elem);
|
|
282
|
+
var filterElement = SelectorEngine__default['default'].find(selector).filter(function (foundElem) {
|
|
102
283
|
return foundElem === element;
|
|
103
284
|
});
|
|
104
285
|
|
|
105
|
-
if (selector !== null && filterElement.length
|
|
106
|
-
|
|
286
|
+
if (selector !== null && filterElement.length) {
|
|
287
|
+
_this._selector = selector;
|
|
107
288
|
|
|
108
|
-
|
|
289
|
+
_this._triggerArray.push(elem);
|
|
109
290
|
}
|
|
110
291
|
}
|
|
111
292
|
|
|
112
|
-
|
|
293
|
+
_this._parent = _this._config.parent ? _this._getParent() : null;
|
|
113
294
|
|
|
114
|
-
if (!
|
|
115
|
-
|
|
295
|
+
if (!_this._config.parent) {
|
|
296
|
+
_this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);
|
|
116
297
|
}
|
|
117
298
|
|
|
118
|
-
if (
|
|
119
|
-
|
|
299
|
+
if (_this._config.toggle) {
|
|
300
|
+
_this.toggle();
|
|
120
301
|
}
|
|
302
|
+
|
|
303
|
+
return _this;
|
|
121
304
|
} // Getters
|
|
122
305
|
|
|
123
306
|
|
|
@@ -125,7 +308,7 @@
|
|
|
125
308
|
|
|
126
309
|
// Public
|
|
127
310
|
_proto.toggle = function toggle() {
|
|
128
|
-
if (
|
|
311
|
+
if (this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
129
312
|
this.hide();
|
|
130
313
|
} else {
|
|
131
314
|
this.show();
|
|
@@ -133,9 +316,9 @@
|
|
|
133
316
|
};
|
|
134
317
|
|
|
135
318
|
_proto.show = function show() {
|
|
136
|
-
var
|
|
319
|
+
var _this2 = this;
|
|
137
320
|
|
|
138
|
-
if (this._isTransitioning ||
|
|
321
|
+
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
139
322
|
return;
|
|
140
323
|
}
|
|
141
324
|
|
|
@@ -143,9 +326,9 @@
|
|
|
143
326
|
var activesData;
|
|
144
327
|
|
|
145
328
|
if (this._parent) {
|
|
146
|
-
actives = [].
|
|
147
|
-
if (typeof
|
|
148
|
-
return elem.getAttribute('data-parent') ===
|
|
329
|
+
actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
|
|
330
|
+
if (typeof _this2._config.parent === 'string') {
|
|
331
|
+
return elem.getAttribute('data-bs-parent') === _this2._config.parent;
|
|
149
332
|
}
|
|
150
333
|
|
|
151
334
|
return elem.classList.contains(CLASS_NAME_COLLAPSE);
|
|
@@ -156,88 +339,106 @@
|
|
|
156
339
|
}
|
|
157
340
|
}
|
|
158
341
|
|
|
342
|
+
var container = SelectorEngine__default['default'].findOne(this._selector);
|
|
343
|
+
|
|
159
344
|
if (actives) {
|
|
160
|
-
|
|
345
|
+
var tempActiveData = actives.find(function (elem) {
|
|
346
|
+
return container !== elem;
|
|
347
|
+
});
|
|
348
|
+
activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null;
|
|
161
349
|
|
|
162
350
|
if (activesData && activesData._isTransitioning) {
|
|
163
351
|
return;
|
|
164
352
|
}
|
|
165
353
|
}
|
|
166
354
|
|
|
167
|
-
var startEvent =
|
|
168
|
-
$__default['default'](this._element).trigger(startEvent);
|
|
355
|
+
var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
|
|
169
356
|
|
|
170
|
-
if (startEvent.
|
|
357
|
+
if (startEvent.defaultPrevented) {
|
|
171
358
|
return;
|
|
172
359
|
}
|
|
173
360
|
|
|
174
361
|
if (actives) {
|
|
175
|
-
|
|
362
|
+
actives.forEach(function (elemActive) {
|
|
363
|
+
if (container !== elemActive) {
|
|
364
|
+
Collapse.collapseInterface(elemActive, 'hide');
|
|
365
|
+
}
|
|
176
366
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
367
|
+
if (!activesData) {
|
|
368
|
+
Data__default['default'].setData(elemActive, DATA_KEY, null);
|
|
369
|
+
}
|
|
370
|
+
});
|
|
180
371
|
}
|
|
181
372
|
|
|
182
373
|
var dimension = this._getDimension();
|
|
183
374
|
|
|
184
|
-
|
|
375
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE);
|
|
376
|
+
|
|
377
|
+
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
378
|
+
|
|
185
379
|
this._element.style[dimension] = 0;
|
|
186
380
|
|
|
187
381
|
if (this._triggerArray.length) {
|
|
188
|
-
|
|
382
|
+
this._triggerArray.forEach(function (element) {
|
|
383
|
+
element.classList.remove(CLASS_NAME_COLLAPSED);
|
|
384
|
+
element.setAttribute('aria-expanded', true);
|
|
385
|
+
});
|
|
189
386
|
}
|
|
190
387
|
|
|
191
388
|
this.setTransitioning(true);
|
|
192
389
|
|
|
193
390
|
var complete = function complete() {
|
|
194
|
-
|
|
195
|
-
|
|
391
|
+
_this2._element.classList.remove(CLASS_NAME_COLLAPSING);
|
|
392
|
+
|
|
393
|
+
_this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
196
394
|
|
|
197
|
-
|
|
395
|
+
_this2._element.style[dimension] = '';
|
|
396
|
+
|
|
397
|
+
_this2.setTransitioning(false);
|
|
198
398
|
|
|
199
|
-
|
|
399
|
+
EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
|
|
200
400
|
};
|
|
201
401
|
|
|
202
402
|
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
|
203
403
|
var scrollSize = "scroll" + capitalizedDimension;
|
|
204
|
-
var transitionDuration =
|
|
205
|
-
|
|
404
|
+
var transitionDuration = getTransitionDurationFromElement(this._element);
|
|
405
|
+
EventHandler__default['default'].one(this._element, 'transitionend', complete);
|
|
406
|
+
emulateTransitionEnd(this._element, transitionDuration);
|
|
206
407
|
this._element.style[dimension] = this._element[scrollSize] + "px";
|
|
207
408
|
};
|
|
208
409
|
|
|
209
410
|
_proto.hide = function hide() {
|
|
210
|
-
var
|
|
411
|
+
var _this3 = this;
|
|
211
412
|
|
|
212
|
-
if (this._isTransitioning ||
|
|
413
|
+
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
213
414
|
return;
|
|
214
415
|
}
|
|
215
416
|
|
|
216
|
-
var startEvent =
|
|
217
|
-
$__default['default'](this._element).trigger(startEvent);
|
|
417
|
+
var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
|
|
218
418
|
|
|
219
|
-
if (startEvent.
|
|
419
|
+
if (startEvent.defaultPrevented) {
|
|
220
420
|
return;
|
|
221
421
|
}
|
|
222
422
|
|
|
223
423
|
var dimension = this._getDimension();
|
|
224
424
|
|
|
225
425
|
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
|
226
|
-
|
|
227
|
-
|
|
426
|
+
reflow(this._element);
|
|
427
|
+
|
|
428
|
+
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
429
|
+
|
|
430
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
431
|
+
|
|
228
432
|
var triggerArrayLength = this._triggerArray.length;
|
|
229
433
|
|
|
230
434
|
if (triggerArrayLength > 0) {
|
|
231
435
|
for (var i = 0; i < triggerArrayLength; i++) {
|
|
232
436
|
var trigger = this._triggerArray[i];
|
|
233
|
-
var
|
|
234
|
-
|
|
235
|
-
if (selector !== null) {
|
|
236
|
-
var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));
|
|
437
|
+
var elem = getElementFromSelector(trigger);
|
|
237
438
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
439
|
+
if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
|
|
440
|
+
trigger.classList.add(CLASS_NAME_COLLAPSED);
|
|
441
|
+
trigger.setAttribute('aria-expanded', false);
|
|
241
442
|
}
|
|
242
443
|
}
|
|
243
444
|
}
|
|
@@ -245,14 +446,19 @@
|
|
|
245
446
|
this.setTransitioning(true);
|
|
246
447
|
|
|
247
448
|
var complete = function complete() {
|
|
248
|
-
|
|
449
|
+
_this3.setTransitioning(false);
|
|
450
|
+
|
|
451
|
+
_this3._element.classList.remove(CLASS_NAME_COLLAPSING);
|
|
249
452
|
|
|
250
|
-
|
|
453
|
+
_this3._element.classList.add(CLASS_NAME_COLLAPSE);
|
|
454
|
+
|
|
455
|
+
EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
|
|
251
456
|
};
|
|
252
457
|
|
|
253
458
|
this._element.style[dimension] = '';
|
|
254
|
-
var transitionDuration =
|
|
255
|
-
|
|
459
|
+
var transitionDuration = getTransitionDurationFromElement(this._element);
|
|
460
|
+
EventHandler__default['default'].one(this._element, 'transitionend', complete);
|
|
461
|
+
emulateTransitionEnd(this._element, transitionDuration);
|
|
256
462
|
};
|
|
257
463
|
|
|
258
464
|
_proto.setTransitioning = function setTransitioning(isTransitioning) {
|
|
@@ -260,10 +466,10 @@
|
|
|
260
466
|
};
|
|
261
467
|
|
|
262
468
|
_proto.dispose = function dispose() {
|
|
263
|
-
|
|
469
|
+
_BaseComponent.prototype.dispose.call(this);
|
|
470
|
+
|
|
264
471
|
this._config = null;
|
|
265
472
|
this._parent = null;
|
|
266
|
-
this._element = null;
|
|
267
473
|
this._triggerArray = null;
|
|
268
474
|
this._isTransitioning = null;
|
|
269
475
|
} // Private
|
|
@@ -273,92 +479,97 @@
|
|
|
273
479
|
config = _extends({}, Default, config);
|
|
274
480
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
|
275
481
|
|
|
276
|
-
|
|
482
|
+
typeCheckConfig(NAME, config, DefaultType);
|
|
277
483
|
return config;
|
|
278
484
|
};
|
|
279
485
|
|
|
280
486
|
_proto._getDimension = function _getDimension() {
|
|
281
|
-
|
|
282
|
-
return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
|
|
487
|
+
return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;
|
|
283
488
|
};
|
|
284
489
|
|
|
285
490
|
_proto._getParent = function _getParent() {
|
|
286
|
-
var
|
|
287
|
-
|
|
288
|
-
var parent;
|
|
491
|
+
var _this4 = this;
|
|
289
492
|
|
|
290
|
-
|
|
291
|
-
parent = this._config.parent; // It's a jQuery object
|
|
493
|
+
var parent = this._config.parent;
|
|
292
494
|
|
|
293
|
-
|
|
294
|
-
|
|
495
|
+
if (isElement(parent)) {
|
|
496
|
+
// it's a jQuery object
|
|
497
|
+
if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
|
|
498
|
+
parent = parent[0];
|
|
295
499
|
}
|
|
296
500
|
} else {
|
|
297
|
-
parent =
|
|
501
|
+
parent = SelectorEngine__default['default'].findOne(parent);
|
|
298
502
|
}
|
|
299
503
|
|
|
300
|
-
var selector = "[data-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
504
|
+
var selector = SELECTOR_DATA_TOGGLE + "[data-bs-parent=\"" + parent + "\"]";
|
|
505
|
+
SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {
|
|
506
|
+
var selected = getElementFromSelector(element);
|
|
507
|
+
|
|
508
|
+
_this4._addAriaAndCollapsedClass(selected, [element]);
|
|
304
509
|
});
|
|
305
510
|
return parent;
|
|
306
511
|
};
|
|
307
512
|
|
|
308
513
|
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
if (triggerArray.length) {
|
|
312
|
-
$__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
|
514
|
+
if (!element || !triggerArray.length) {
|
|
515
|
+
return;
|
|
313
516
|
}
|
|
517
|
+
|
|
518
|
+
var isOpen = element.classList.contains(CLASS_NAME_SHOW);
|
|
519
|
+
triggerArray.forEach(function (elem) {
|
|
520
|
+
if (isOpen) {
|
|
521
|
+
elem.classList.remove(CLASS_NAME_COLLAPSED);
|
|
522
|
+
} else {
|
|
523
|
+
elem.classList.add(CLASS_NAME_COLLAPSED);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
elem.setAttribute('aria-expanded', isOpen);
|
|
527
|
+
});
|
|
314
528
|
} // Static
|
|
315
529
|
;
|
|
316
530
|
|
|
317
|
-
Collapse.
|
|
318
|
-
var
|
|
319
|
-
return selector ? document.querySelector(selector) : null;
|
|
320
|
-
};
|
|
531
|
+
Collapse.collapseInterface = function collapseInterface(element, config) {
|
|
532
|
+
var data = Data__default['default'].getData(element, DATA_KEY);
|
|
321
533
|
|
|
322
|
-
|
|
323
|
-
return this.each(function () {
|
|
324
|
-
var $element = $__default['default'](this);
|
|
325
|
-
var data = $element.data(DATA_KEY);
|
|
534
|
+
var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element), typeof config === 'object' && config ? config : {});
|
|
326
535
|
|
|
327
|
-
|
|
536
|
+
if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
|
|
537
|
+
_config.toggle = false;
|
|
538
|
+
}
|
|
328
539
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
540
|
+
if (!data) {
|
|
541
|
+
data = new Collapse(element, _config);
|
|
542
|
+
}
|
|
332
543
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
544
|
+
if (typeof config === 'string') {
|
|
545
|
+
if (typeof data[config] === 'undefined') {
|
|
546
|
+
throw new TypeError("No method named \"" + config + "\"");
|
|
336
547
|
}
|
|
337
548
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
549
|
+
data[config]();
|
|
550
|
+
}
|
|
551
|
+
};
|
|
342
552
|
|
|
343
|
-
|
|
344
|
-
|
|
553
|
+
Collapse.jQueryInterface = function jQueryInterface(config) {
|
|
554
|
+
return this.each(function () {
|
|
555
|
+
Collapse.collapseInterface(this, config);
|
|
345
556
|
});
|
|
346
557
|
};
|
|
347
558
|
|
|
348
559
|
_createClass(Collapse, null, [{
|
|
349
|
-
key: "
|
|
560
|
+
key: "Default",
|
|
350
561
|
get: function get() {
|
|
351
|
-
return
|
|
562
|
+
return Default;
|
|
352
563
|
}
|
|
353
564
|
}, {
|
|
354
|
-
key: "
|
|
565
|
+
key: "DATA_KEY",
|
|
355
566
|
get: function get() {
|
|
356
|
-
return
|
|
567
|
+
return DATA_KEY;
|
|
357
568
|
}
|
|
358
569
|
}]);
|
|
359
570
|
|
|
360
571
|
return Collapse;
|
|
361
|
-
}();
|
|
572
|
+
}(BaseComponent__default['default']);
|
|
362
573
|
/**
|
|
363
574
|
* ------------------------------------------------------------------------
|
|
364
575
|
* Data Api implementation
|
|
@@ -366,36 +577,42 @@
|
|
|
366
577
|
*/
|
|
367
578
|
|
|
368
579
|
|
|
369
|
-
|
|
580
|
+
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
370
581
|
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
|
|
371
|
-
if (event.
|
|
582
|
+
if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
|
|
372
583
|
event.preventDefault();
|
|
373
584
|
}
|
|
374
585
|
|
|
375
|
-
var
|
|
376
|
-
var selector =
|
|
377
|
-
var
|
|
378
|
-
|
|
379
|
-
var
|
|
380
|
-
var
|
|
381
|
-
|
|
586
|
+
var triggerData = Manipulator__default['default'].getDataAttributes(this);
|
|
587
|
+
var selector = getSelectorFromElement(this);
|
|
588
|
+
var selectorElements = SelectorEngine__default['default'].find(selector);
|
|
589
|
+
selectorElements.forEach(function (element) {
|
|
590
|
+
var data = Data__default['default'].getData(element, DATA_KEY);
|
|
591
|
+
var config;
|
|
592
|
+
|
|
593
|
+
if (data) {
|
|
594
|
+
// update parent attribute
|
|
595
|
+
if (data._parent === null && typeof triggerData.parent === 'string') {
|
|
596
|
+
data._config.parent = triggerData.parent;
|
|
597
|
+
data._parent = data._getParent();
|
|
598
|
+
}
|
|
382
599
|
|
|
383
|
-
|
|
600
|
+
config = 'toggle';
|
|
601
|
+
} else {
|
|
602
|
+
config = triggerData;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
Collapse.collapseInterface(element, config);
|
|
384
606
|
});
|
|
385
607
|
});
|
|
386
608
|
/**
|
|
387
609
|
* ------------------------------------------------------------------------
|
|
388
610
|
* jQuery
|
|
389
611
|
* ------------------------------------------------------------------------
|
|
612
|
+
* add .Collapse to jQuery only if jQuery is present
|
|
390
613
|
*/
|
|
391
614
|
|
|
392
|
-
|
|
393
|
-
$__default['default'].fn[NAME].Constructor = Collapse;
|
|
394
|
-
|
|
395
|
-
$__default['default'].fn[NAME].noConflict = function () {
|
|
396
|
-
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
397
|
-
return Collapse._jQueryInterface;
|
|
398
|
-
};
|
|
615
|
+
defineJQueryPlugin(NAME, Collapse);
|
|
399
616
|
|
|
400
617
|
return Collapse;
|
|
401
618
|
|