bootstrap 5.1.3 → 5.2.2
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 +24 -4
- data/assets/javascripts/bootstrap/alert.js +11 -146
- data/assets/javascripts/bootstrap/base-component.js +37 -120
- data/assets/javascripts/bootstrap/button.js +10 -74
- data/assets/javascripts/bootstrap/carousel.js +213 -485
- data/assets/javascripts/bootstrap/collapse.js +65 -249
- data/assets/javascripts/bootstrap/dom/data.js +3 -5
- data/assets/javascripts/bootstrap/dom/event-handler.js +94 -132
- data/assets/javascripts/bootstrap/dom/manipulator.js +23 -27
- data/assets/javascripts/bootstrap/dom/selector-engine.js +16 -58
- data/assets/javascripts/bootstrap/dropdown.js +103 -317
- data/assets/javascripts/bootstrap/modal.js +107 -749
- data/assets/javascripts/bootstrap/offcanvas.js +90 -659
- data/assets/javascripts/bootstrap/popover.js +36 -118
- data/assets/javascripts/bootstrap/scrollspy.js +183 -262
- data/assets/javascripts/bootstrap/tab.js +215 -214
- data/assets/javascripts/bootstrap/toast.js +36 -218
- data/assets/javascripts/bootstrap/tooltip.js +280 -629
- data/assets/javascripts/bootstrap/util/backdrop.js +165 -0
- data/assets/javascripts/bootstrap/util/component-functions.js +46 -0
- data/assets/javascripts/bootstrap/util/config.js +79 -0
- data/assets/javascripts/bootstrap/util/focustrap.js +129 -0
- data/assets/javascripts/bootstrap/util/index.js +350 -0
- data/assets/javascripts/bootstrap/util/sanitizer.js +122 -0
- data/assets/javascripts/bootstrap/util/scrollbar.js +138 -0
- data/assets/javascripts/bootstrap/util/swipe.js +155 -0
- data/assets/javascripts/bootstrap/util/template-factory.js +177 -0
- data/assets/javascripts/bootstrap-global-this-define.js +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +17 -8
- data/assets/javascripts/bootstrap.js +2093 -1881
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +3 -6
- data/assets/stylesheets/_bootstrap-reboot.scss +3 -7
- data/assets/stylesheets/_bootstrap.scss +4 -6
- data/assets/stylesheets/bootstrap/_accordion.scss +56 -25
- data/assets/stylesheets/bootstrap/_alert.scss +18 -4
- data/assets/stylesheets/bootstrap/_badge.scss +14 -5
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -10
- data/assets/stylesheets/bootstrap/_button-group.scss +4 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +125 -29
- data/assets/stylesheets/bootstrap/_card.scss +55 -37
- data/assets/stylesheets/bootstrap/_close.scss +1 -1
- data/assets/stylesheets/bootstrap/_containers.scss +1 -1
- data/assets/stylesheets/bootstrap/_dropdown.scss +85 -76
- data/assets/stylesheets/bootstrap/_functions.scss +8 -8
- data/assets/stylesheets/bootstrap/_grid.scss +3 -3
- data/assets/stylesheets/bootstrap/_helpers.scss +1 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +48 -30
- data/assets/stylesheets/bootstrap/_maps.scss +54 -0
- data/assets/stylesheets/bootstrap/_modal.scss +71 -43
- data/assets/stylesheets/bootstrap/_nav.scss +53 -20
- data/assets/stylesheets/bootstrap/_navbar.scss +93 -150
- data/assets/stylesheets/bootstrap/_offcanvas.scss +120 -59
- data/assets/stylesheets/bootstrap/_pagination.scss +66 -21
- data/assets/stylesheets/bootstrap/_placeholders.scss +1 -1
- data/assets/stylesheets/bootstrap/_popover.scss +90 -52
- data/assets/stylesheets/bootstrap/_progress.scss +20 -9
- data/assets/stylesheets/bootstrap/_reboot.scss +25 -40
- data/assets/stylesheets/bootstrap/_root.scss +40 -21
- data/assets/stylesheets/bootstrap/_spinners.scss +38 -22
- data/assets/stylesheets/bootstrap/_tables.scss +32 -23
- data/assets/stylesheets/bootstrap/_toasts.scss +38 -16
- data/assets/stylesheets/bootstrap/_tooltip.scss +61 -56
- data/assets/stylesheets/bootstrap/_type.scss +2 -0
- data/assets/stylesheets/bootstrap/_utilities.scss +43 -26
- data/assets/stylesheets/bootstrap/_variables.scss +128 -135
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +3 -6
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +15 -3
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +28 -5
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +12 -37
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +0 -1
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +19 -8
- data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +10 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +2 -2
- data/assets/stylesheets/bootstrap/helpers/_position.scss +7 -1
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +2 -2
- data/assets/stylesheets/bootstrap/helpers/_vr.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +7 -3
- data/assets/stylesheets/bootstrap/mixins/_banner.scss +9 -0
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +32 -95
- data/assets/stylesheets/bootstrap/mixins/_container.scss +4 -2
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +18 -10
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +12 -12
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +4 -25
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +12 -9
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +13 -5
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +10 -5
- data/tasks/updater.rb +2 -2
- metadata +16 -4
|
@@ -1,199 +1,34 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap collapse.js v5.
|
|
3
|
-
* Copyright 2011-
|
|
2
|
+
* Bootstrap collapse.js v5.2.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2022 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('./util/index'), require('./dom/event-handler'), require('./dom/selector-engine'), require('./base-component')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/selector-engine', './base-component'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Index, global.EventHandler, global.SelectorEngine, global.BaseComponent));
|
|
10
|
+
})(this, (function (index, EventHandler, SelectorEngine, BaseComponent) { 'use strict';
|
|
11
11
|
|
|
12
12
|
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
13
13
|
|
|
14
|
-
const Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
14
|
const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
-
const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
17
15
|
const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
18
16
|
const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
19
17
|
|
|
20
18
|
/**
|
|
21
19
|
* --------------------------------------------------------------------------
|
|
22
|
-
* Bootstrap (v5.
|
|
20
|
+
* Bootstrap (v5.2.2): collapse.js
|
|
23
21
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
24
22
|
* --------------------------------------------------------------------------
|
|
25
23
|
*/
|
|
26
|
-
|
|
27
|
-
const toType = obj => {
|
|
28
|
-
if (obj === null || obj === undefined) {
|
|
29
|
-
return `${obj}`;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const getSelector = element => {
|
|
36
|
-
let selector = element.getAttribute('data-bs-target');
|
|
37
|
-
|
|
38
|
-
if (!selector || selector === '#') {
|
|
39
|
-
let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
|
|
40
|
-
// so everything starting with `#` or `.`. If a "real" URL is used as the selector,
|
|
41
|
-
// `document.querySelector` will rightfully complain it is invalid.
|
|
42
|
-
// See https://github.com/twbs/bootstrap/issues/32273
|
|
43
|
-
|
|
44
|
-
if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
|
|
45
|
-
return null;
|
|
46
|
-
} // Just in case some CMS puts out a full URL with the anchor appended
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
|
|
50
|
-
hrefAttr = `#${hrefAttr.split('#')[1]}`;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return selector;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const getSelectorFromElement = element => {
|
|
60
|
-
const selector = getSelector(element);
|
|
61
|
-
|
|
62
|
-
if (selector) {
|
|
63
|
-
return document.querySelector(selector) ? selector : null;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return null;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
const getElementFromSelector = element => {
|
|
70
|
-
const selector = getSelector(element);
|
|
71
|
-
return selector ? document.querySelector(selector) : null;
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const isElement = obj => {
|
|
75
|
-
if (!obj || typeof obj !== 'object') {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (typeof obj.jquery !== 'undefined') {
|
|
80
|
-
obj = obj[0];
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return typeof obj.nodeType !== 'undefined';
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
const getElement = obj => {
|
|
87
|
-
if (isElement(obj)) {
|
|
88
|
-
// it's a jQuery object or a node element
|
|
89
|
-
return obj.jquery ? obj[0] : obj;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if (typeof obj === 'string' && obj.length > 0) {
|
|
93
|
-
return document.querySelector(obj);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
return null;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const typeCheckConfig = (componentName, config, configTypes) => {
|
|
100
|
-
Object.keys(configTypes).forEach(property => {
|
|
101
|
-
const expectedTypes = configTypes[property];
|
|
102
|
-
const value = config[property];
|
|
103
|
-
const valueType = value && isElement(value) ? 'element' : toType(value);
|
|
104
|
-
|
|
105
|
-
if (!new RegExp(expectedTypes).test(valueType)) {
|
|
106
|
-
throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* Trick to restart an element's animation
|
|
112
|
-
*
|
|
113
|
-
* @param {HTMLElement} element
|
|
114
|
-
* @return void
|
|
115
|
-
*
|
|
116
|
-
* @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
|
|
117
|
-
*/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const reflow = element => {
|
|
121
|
-
// eslint-disable-next-line no-unused-expressions
|
|
122
|
-
element.offsetHeight;
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
const getjQuery = () => {
|
|
126
|
-
const {
|
|
127
|
-
jQuery
|
|
128
|
-
} = window;
|
|
129
|
-
|
|
130
|
-
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
|
|
131
|
-
return jQuery;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
return null;
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
const DOMContentLoadedCallbacks = [];
|
|
138
|
-
|
|
139
|
-
const onDOMContentLoaded = callback => {
|
|
140
|
-
if (document.readyState === 'loading') {
|
|
141
|
-
// add listener on the first call when the document is in loading state
|
|
142
|
-
if (!DOMContentLoadedCallbacks.length) {
|
|
143
|
-
document.addEventListener('DOMContentLoaded', () => {
|
|
144
|
-
DOMContentLoadedCallbacks.forEach(callback => callback());
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
DOMContentLoadedCallbacks.push(callback);
|
|
149
|
-
} else {
|
|
150
|
-
callback();
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
const defineJQueryPlugin = plugin => {
|
|
155
|
-
onDOMContentLoaded(() => {
|
|
156
|
-
const $ = getjQuery();
|
|
157
|
-
/* istanbul ignore if */
|
|
158
|
-
|
|
159
|
-
if ($) {
|
|
160
|
-
const name = plugin.NAME;
|
|
161
|
-
const JQUERY_NO_CONFLICT = $.fn[name];
|
|
162
|
-
$.fn[name] = plugin.jQueryInterface;
|
|
163
|
-
$.fn[name].Constructor = plugin;
|
|
164
|
-
|
|
165
|
-
$.fn[name].noConflict = () => {
|
|
166
|
-
$.fn[name] = JQUERY_NO_CONFLICT;
|
|
167
|
-
return plugin.jQueryInterface;
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
};
|
|
172
|
-
|
|
173
24
|
/**
|
|
174
|
-
* --------------------------------------------------------------------------
|
|
175
|
-
* Bootstrap (v5.1.3): collapse.js
|
|
176
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
177
|
-
* --------------------------------------------------------------------------
|
|
178
|
-
*/
|
|
179
|
-
/**
|
|
180
|
-
* ------------------------------------------------------------------------
|
|
181
25
|
* Constants
|
|
182
|
-
* ------------------------------------------------------------------------
|
|
183
26
|
*/
|
|
184
27
|
|
|
185
28
|
const NAME = 'collapse';
|
|
186
29
|
const DATA_KEY = 'bs.collapse';
|
|
187
30
|
const EVENT_KEY = `.${DATA_KEY}`;
|
|
188
31
|
const DATA_API_KEY = '.data-api';
|
|
189
|
-
const Default = {
|
|
190
|
-
toggle: true,
|
|
191
|
-
parent: null
|
|
192
|
-
};
|
|
193
|
-
const DefaultType = {
|
|
194
|
-
toggle: 'boolean',
|
|
195
|
-
parent: '(null|element)'
|
|
196
|
-
};
|
|
197
32
|
const EVENT_SHOW = `show${EVENT_KEY}`;
|
|
198
33
|
const EVENT_SHOWN = `shown${EVENT_KEY}`;
|
|
199
34
|
const EVENT_HIDE = `hide${EVENT_KEY}`;
|
|
@@ -209,28 +44,30 @@
|
|
|
209
44
|
const HEIGHT = 'height';
|
|
210
45
|
const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
|
|
211
46
|
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
|
|
47
|
+
const Default = {
|
|
48
|
+
parent: null,
|
|
49
|
+
toggle: true
|
|
50
|
+
};
|
|
51
|
+
const DefaultType = {
|
|
52
|
+
parent: '(null|element)',
|
|
53
|
+
toggle: 'boolean'
|
|
54
|
+
};
|
|
212
55
|
/**
|
|
213
|
-
*
|
|
214
|
-
* Class Definition
|
|
215
|
-
* ------------------------------------------------------------------------
|
|
56
|
+
* Class definition
|
|
216
57
|
*/
|
|
217
58
|
|
|
218
59
|
class Collapse extends BaseComponent__default.default {
|
|
219
60
|
constructor(element, config) {
|
|
220
|
-
super(element);
|
|
61
|
+
super(element, config);
|
|
221
62
|
this._isTransitioning = false;
|
|
222
|
-
this._config = this._getConfig(config);
|
|
223
63
|
this._triggerArray = [];
|
|
224
64
|
const toggleList = SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE);
|
|
225
65
|
|
|
226
|
-
for (
|
|
227
|
-
const
|
|
228
|
-
const
|
|
229
|
-
const filterElement = SelectorEngine__default.default.find(selector).filter(foundElem => foundElem === this._element);
|
|
66
|
+
for (const elem of toggleList) {
|
|
67
|
+
const selector = index.getSelectorFromElement(elem);
|
|
68
|
+
const filterElement = SelectorEngine__default.default.find(selector).filter(foundElement => foundElement === this._element);
|
|
230
69
|
|
|
231
70
|
if (selector !== null && filterElement.length) {
|
|
232
|
-
this._selector = selector;
|
|
233
|
-
|
|
234
71
|
this._triggerArray.push(elem);
|
|
235
72
|
}
|
|
236
73
|
}
|
|
@@ -251,6 +88,10 @@
|
|
|
251
88
|
return Default;
|
|
252
89
|
}
|
|
253
90
|
|
|
91
|
+
static get DefaultType() {
|
|
92
|
+
return DefaultType;
|
|
93
|
+
}
|
|
94
|
+
|
|
254
95
|
static get NAME() {
|
|
255
96
|
return NAME;
|
|
256
97
|
} // Public
|
|
@@ -269,23 +110,16 @@
|
|
|
269
110
|
return;
|
|
270
111
|
}
|
|
271
112
|
|
|
272
|
-
let
|
|
273
|
-
let activesData;
|
|
113
|
+
let activeChildren = []; // find active children
|
|
274
114
|
|
|
275
115
|
if (this._config.parent) {
|
|
276
|
-
|
|
277
|
-
|
|
116
|
+
activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {
|
|
117
|
+
toggle: false
|
|
118
|
+
}));
|
|
278
119
|
}
|
|
279
120
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
if (actives.length) {
|
|
283
|
-
const tempActiveData = actives.find(elem => container !== elem);
|
|
284
|
-
activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;
|
|
285
|
-
|
|
286
|
-
if (activesData && activesData._isTransitioning) {
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
121
|
+
if (activeChildren.length && activeChildren[0]._isTransitioning) {
|
|
122
|
+
return;
|
|
289
123
|
}
|
|
290
124
|
|
|
291
125
|
const startEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW);
|
|
@@ -294,17 +128,9 @@
|
|
|
294
128
|
return;
|
|
295
129
|
}
|
|
296
130
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
toggle: false
|
|
301
|
-
}).hide();
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
if (!activesData) {
|
|
305
|
-
Data__default.default.set(elemActive, DATA_KEY, null);
|
|
306
|
-
}
|
|
307
|
-
});
|
|
131
|
+
for (const activeInstance of activeChildren) {
|
|
132
|
+
activeInstance.hide();
|
|
133
|
+
}
|
|
308
134
|
|
|
309
135
|
const dimension = this._getDimension();
|
|
310
136
|
|
|
@@ -351,19 +177,16 @@
|
|
|
351
177
|
const dimension = this._getDimension();
|
|
352
178
|
|
|
353
179
|
this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
|
|
354
|
-
reflow(this._element);
|
|
180
|
+
index.reflow(this._element);
|
|
355
181
|
|
|
356
182
|
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
357
183
|
|
|
358
184
|
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
359
185
|
|
|
360
|
-
const
|
|
186
|
+
for (const trigger of this._triggerArray) {
|
|
187
|
+
const element = index.getElementFromSelector(trigger);
|
|
361
188
|
|
|
362
|
-
|
|
363
|
-
const trigger = this._triggerArray[i];
|
|
364
|
-
const elem = getElementFromSelector(trigger);
|
|
365
|
-
|
|
366
|
-
if (elem && !this._isShown(elem)) {
|
|
189
|
+
if (element && !this._isShown(element)) {
|
|
367
190
|
this._addAriaAndCollapsedClass([trigger], false);
|
|
368
191
|
}
|
|
369
192
|
}
|
|
@@ -390,15 +213,10 @@
|
|
|
390
213
|
} // Private
|
|
391
214
|
|
|
392
215
|
|
|
393
|
-
|
|
394
|
-
config = { ...Default,
|
|
395
|
-
...Manipulator__default.default.getDataAttributes(this._element),
|
|
396
|
-
...config
|
|
397
|
-
};
|
|
216
|
+
_configAfterMerge(config) {
|
|
398
217
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
|
399
218
|
|
|
400
|
-
config.parent = getElement(config.parent);
|
|
401
|
-
typeCheckConfig(NAME, config, DefaultType);
|
|
219
|
+
config.parent = index.getElement(config.parent);
|
|
402
220
|
return config;
|
|
403
221
|
}
|
|
404
222
|
|
|
@@ -411,14 +229,21 @@
|
|
|
411
229
|
return;
|
|
412
230
|
}
|
|
413
231
|
|
|
414
|
-
const children =
|
|
415
|
-
|
|
416
|
-
|
|
232
|
+
const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);
|
|
233
|
+
|
|
234
|
+
for (const element of children) {
|
|
235
|
+
const selected = index.getElementFromSelector(element);
|
|
417
236
|
|
|
418
237
|
if (selected) {
|
|
419
238
|
this._addAriaAndCollapsedClass([element], this._isShown(selected));
|
|
420
239
|
}
|
|
421
|
-
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
_getFirstLevelChildren(selector) {
|
|
244
|
+
const children = SelectorEngine__default.default.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth
|
|
245
|
+
|
|
246
|
+
return SelectorEngine__default.default.find(selector, this._config.parent).filter(element => !children.includes(element));
|
|
422
247
|
}
|
|
423
248
|
|
|
424
249
|
_addAriaAndCollapsedClass(triggerArray, isOpen) {
|
|
@@ -426,26 +251,21 @@
|
|
|
426
251
|
return;
|
|
427
252
|
}
|
|
428
253
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
elem.classList.add(CLASS_NAME_COLLAPSED);
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
elem.setAttribute('aria-expanded', isOpen);
|
|
437
|
-
});
|
|
254
|
+
for (const element of triggerArray) {
|
|
255
|
+
element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
|
|
256
|
+
element.setAttribute('aria-expanded', isOpen);
|
|
257
|
+
}
|
|
438
258
|
} // Static
|
|
439
259
|
|
|
440
260
|
|
|
441
261
|
static jQueryInterface(config) {
|
|
442
|
-
|
|
443
|
-
const _config = {};
|
|
262
|
+
const _config = {};
|
|
444
263
|
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
264
|
+
if (typeof config === 'string' && /show|hide/.test(config)) {
|
|
265
|
+
_config.toggle = false;
|
|
266
|
+
}
|
|
448
267
|
|
|
268
|
+
return this.each(function () {
|
|
449
269
|
const data = Collapse.getOrCreateInstance(this, _config);
|
|
450
270
|
|
|
451
271
|
if (typeof config === 'string') {
|
|
@@ -460,9 +280,7 @@
|
|
|
460
280
|
|
|
461
281
|
}
|
|
462
282
|
/**
|
|
463
|
-
*
|
|
464
|
-
* Data Api implementation
|
|
465
|
-
* ------------------------------------------------------------------------
|
|
283
|
+
* Data API implementation
|
|
466
284
|
*/
|
|
467
285
|
|
|
468
286
|
|
|
@@ -472,22 +290,20 @@
|
|
|
472
290
|
event.preventDefault();
|
|
473
291
|
}
|
|
474
292
|
|
|
475
|
-
const selector = getSelectorFromElement(this);
|
|
293
|
+
const selector = index.getSelectorFromElement(this);
|
|
476
294
|
const selectorElements = SelectorEngine__default.default.find(selector);
|
|
477
|
-
|
|
295
|
+
|
|
296
|
+
for (const element of selectorElements) {
|
|
478
297
|
Collapse.getOrCreateInstance(element, {
|
|
479
298
|
toggle: false
|
|
480
299
|
}).toggle();
|
|
481
|
-
}
|
|
300
|
+
}
|
|
482
301
|
});
|
|
483
302
|
/**
|
|
484
|
-
* ------------------------------------------------------------------------
|
|
485
303
|
* jQuery
|
|
486
|
-
* ------------------------------------------------------------------------
|
|
487
|
-
* add .Collapse to jQuery only if jQuery is present
|
|
488
304
|
*/
|
|
489
305
|
|
|
490
|
-
defineJQueryPlugin(Collapse);
|
|
306
|
+
index.defineJQueryPlugin(Collapse);
|
|
491
307
|
|
|
492
308
|
return Collapse;
|
|
493
309
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap data.js v5.
|
|
3
|
-
* Copyright 2011-
|
|
2
|
+
* Bootstrap data.js v5.2.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2022 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) {
|
|
@@ -11,15 +11,13 @@
|
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* --------------------------------------------------------------------------
|
|
14
|
-
* Bootstrap (v5.
|
|
14
|
+
* Bootstrap (v5.2.2): dom/data.js
|
|
15
15
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
16
16
|
* --------------------------------------------------------------------------
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
* ------------------------------------------------------------------------
|
|
21
20
|
* Constants
|
|
22
|
-
* ------------------------------------------------------------------------
|
|
23
21
|
*/
|
|
24
22
|
const elementMap = new Map();
|
|
25
23
|
const data = {
|