bootstrap 4.6.0 → 5.3.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/.github/workflows/ci.yml +61 -0
- data/Gemfile +1 -0
- data/README.md +33 -6
- data/Rakefile +10 -1
- data/assets/javascripts/bootstrap/alert.js +53 -155
- data/assets/javascripts/bootstrap/base-component.js +83 -0
- data/assets/javascripts/bootstrap/button.js +43 -198
- data/assets/javascripts/bootstrap/carousel.js +285 -550
- data/assets/javascripts/bootstrap/collapse.js +169 -323
- data/assets/javascripts/bootstrap/dom/data.js +62 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +236 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +71 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +103 -0
- data/assets/javascripts/bootstrap/dropdown.js +300 -467
- data/assets/javascripts/bootstrap/modal.js +226 -575
- data/assets/javascripts/bootstrap/offcanvas.js +245 -0
- data/assets/javascripts/bootstrap/popover.js +61 -205
- data/assets/javascripts/bootstrap/scrollspy.js +216 -287
- data/assets/javascripts/bootstrap/tab.js +226 -203
- data/assets/javascripts/bootstrap/toast.js +136 -209
- data/assets/javascripts/bootstrap/tooltip.js +411 -757
- data/assets/javascripts/bootstrap/util/backdrop.js +139 -0
- data/assets/javascripts/bootstrap/util/component-functions.js +41 -0
- data/assets/javascripts/bootstrap/util/config.js +67 -0
- data/assets/javascripts/bootstrap/util/focustrap.js +113 -0
- data/assets/javascripts/bootstrap/util/index.js +281 -0
- data/assets/javascripts/bootstrap/util/sanitizer.js +110 -0
- data/assets/javascripts/bootstrap/util/scrollbar.js +112 -0
- data/assets/javascripts/bootstrap/util/swipe.js +134 -0
- data/assets/javascripts/bootstrap/util/template-factory.js +150 -0
- 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 +23 -7
- data/assets/javascripts/bootstrap.js +3649 -3587
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +53 -21
- data/assets/stylesheets/_bootstrap-reboot.scss +5 -7
- data/assets/stylesheets/_bootstrap-utilities.scss +19 -0
- data/assets/stylesheets/_bootstrap.scss +21 -13
- data/assets/stylesheets/bootstrap/_accordion.scss +158 -0
- data/assets/stylesheets/bootstrap/_alert.scss +32 -16
- data/assets/stylesheets/bootstrap/_badge.scss +15 -31
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -24
- data/assets/stylesheets/bootstrap/_button-group.scss +27 -48
- data/assets/stylesheets/bootstrap/_buttons.scss +136 -71
- data/assets/stylesheets/bootstrap/_card.scss +66 -113
- data/assets/stylesheets/bootstrap/_carousel.scss +83 -36
- data/assets/stylesheets/bootstrap/_close.scss +51 -28
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +129 -71
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +181 -23
- data/assets/stylesheets/bootstrap/_grid.scss +18 -52
- data/assets/stylesheets/bootstrap/_helpers.scss +12 -0
- data/assets/stylesheets/bootstrap/_images.scss +1 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +77 -34
- data/assets/stylesheets/bootstrap/_maps.scss +174 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +10 -15
- data/assets/stylesheets/bootstrap/_modal.scss +107 -110
- data/assets/stylesheets/bootstrap/_nav.scss +102 -25
- data/assets/stylesheets/bootstrap/_navbar.scss +129 -172
- data/assets/stylesheets/bootstrap/_offcanvas.scss +146 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +72 -37
- data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
- data/assets/stylesheets/bootstrap/_popover.scss +99 -73
- data/assets/stylesheets/bootstrap/_progress.scss +35 -14
- data/assets/stylesheets/bootstrap/_reboot.scss +319 -192
- data/assets/stylesheets/bootstrap/_root.scss +177 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +44 -24
- data/assets/stylesheets/bootstrap/_tables.scss +101 -115
- data/assets/stylesheets/bootstrap/_toasts.scss +54 -27
- data/assets/stylesheets/bootstrap/_tooltip.scss +67 -63
- data/assets/stylesheets/bootstrap/_transitions.scss +8 -1
- data/assets/stylesheets/bootstrap/_type.scss +40 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +806 -18
- data/assets/stylesheets/bootstrap/_variables-dark.scss +87 -0
- data/assets/stylesheets/bootstrap/_variables.scss +1216 -615
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +95 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +189 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +214 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +80 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +132 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
- data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +36 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
- data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -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/helpers/_vr.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +11 -6
- data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
- data/assets/stylesheets/bootstrap/mixins/_banner.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +10 -8
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +20 -16
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +60 -100
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +34 -27
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +53 -85
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +119 -37
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +7 -2
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +7 -19
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +24 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +97 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +33 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +276 -132
- data/bootstrap.gemspec +6 -7
- data/lib/bootstrap/engine.rb +7 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +31 -7
- data/tasks/updater/network.rb +9 -3
- data/tasks/updater/scss.rb +2 -2
- data/tasks/updater.rb +2 -2
- 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_4_2.gemfile +1 -1
- data/test/gemfiles/rails_5_0.gemfile +1 -1
- data/test/gemfiles/rails_5_1.gemfile +1 -1
- data/test/gemfiles/rails_5_2.gemfile +8 -0
- data/test/gemfiles/rails_6_0.gemfile +1 -0
- data/test/gemfiles/rails_6_1.gemfile +8 -0
- data/test/gemfiles/rails_7_0_dartsass.gemfile +8 -0
- data/test/gemfiles/rails_7_0_sassc.gemfile +8 -0
- data/test/test_helper.rb +3 -2
- metadata +97 -85
- data/.travis.yml +0 -31
- 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
- /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
|
@@ -1,402 +1,248 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap collapse.js
|
|
3
|
-
* Copyright 2011-
|
|
2
|
+
* Bootstrap collapse.js v5.3.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2023 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('./base-component.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./util/index.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './dom/selector-engine', './util/index'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.BaseComponent, global.EventHandler, global.SelectorEngine, global.Index));
|
|
10
|
+
})(this, (function (BaseComponent, EventHandler, SelectorEngine, index_js) { 'use strict';
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
for (var i = 0; i < props.length; i++) {
|
|
19
|
-
var descriptor = props[i];
|
|
20
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
21
|
-
descriptor.configurable = true;
|
|
22
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
23
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
|
28
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
29
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
30
|
-
return Constructor;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function _extends() {
|
|
34
|
-
_extends = Object.assign || function (target) {
|
|
35
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
36
|
-
var source = arguments[i];
|
|
37
|
-
|
|
38
|
-
for (var key in source) {
|
|
39
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
40
|
-
target[key] = source[key];
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return target;
|
|
46
|
-
};
|
|
12
|
+
/**
|
|
13
|
+
* --------------------------------------------------------------------------
|
|
14
|
+
* Bootstrap collapse.js
|
|
15
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
16
|
+
* --------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
47
18
|
|
|
48
|
-
return _extends.apply(this, arguments);
|
|
49
|
-
}
|
|
50
19
|
|
|
51
20
|
/**
|
|
52
|
-
* ------------------------------------------------------------------------
|
|
53
21
|
* Constants
|
|
54
|
-
* ------------------------------------------------------------------------
|
|
55
22
|
*/
|
|
56
23
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
24
|
+
const NAME = 'collapse';
|
|
25
|
+
const DATA_KEY = 'bs.collapse';
|
|
26
|
+
const EVENT_KEY = `.${DATA_KEY}`;
|
|
27
|
+
const DATA_API_KEY = '.data-api';
|
|
28
|
+
const EVENT_SHOW = `show${EVENT_KEY}`;
|
|
29
|
+
const EVENT_SHOWN = `shown${EVENT_KEY}`;
|
|
30
|
+
const EVENT_HIDE = `hide${EVENT_KEY}`;
|
|
31
|
+
const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
|
|
32
|
+
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
|
|
33
|
+
const CLASS_NAME_SHOW = 'show';
|
|
34
|
+
const CLASS_NAME_COLLAPSE = 'collapse';
|
|
35
|
+
const CLASS_NAME_COLLAPSING = 'collapsing';
|
|
36
|
+
const CLASS_NAME_COLLAPSED = 'collapsed';
|
|
37
|
+
const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
|
|
38
|
+
const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';
|
|
39
|
+
const WIDTH = 'width';
|
|
40
|
+
const HEIGHT = 'height';
|
|
41
|
+
const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
|
|
42
|
+
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
|
|
43
|
+
const Default = {
|
|
44
|
+
parent: null,
|
|
45
|
+
toggle: true
|
|
66
46
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
47
|
+
const DefaultType = {
|
|
48
|
+
parent: '(null|element)',
|
|
49
|
+
toggle: 'boolean'
|
|
70
50
|
};
|
|
71
|
-
|
|
72
|
-
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
|
73
|
-
var EVENT_HIDE = "hide" + EVENT_KEY;
|
|
74
|
-
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
|
75
|
-
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
76
|
-
var CLASS_NAME_SHOW = 'show';
|
|
77
|
-
var CLASS_NAME_COLLAPSE = 'collapse';
|
|
78
|
-
var CLASS_NAME_COLLAPSING = 'collapsing';
|
|
79
|
-
var CLASS_NAME_COLLAPSED = 'collapsed';
|
|
80
|
-
var DIMENSION_WIDTH = 'width';
|
|
81
|
-
var DIMENSION_HEIGHT = 'height';
|
|
82
|
-
var SELECTOR_ACTIVES = '.show, .collapsing';
|
|
83
|
-
var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
|
|
51
|
+
|
|
84
52
|
/**
|
|
85
|
-
*
|
|
86
|
-
* Class Definition
|
|
87
|
-
* ------------------------------------------------------------------------
|
|
53
|
+
* Class definition
|
|
88
54
|
*/
|
|
89
55
|
|
|
90
|
-
|
|
91
|
-
|
|
56
|
+
class Collapse extends BaseComponent {
|
|
57
|
+
constructor(element, config) {
|
|
58
|
+
super(element, config);
|
|
92
59
|
this._isTransitioning = false;
|
|
93
|
-
this.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
var elem = toggleList[i];
|
|
100
|
-
var selector = Util__default['default'].getSelectorFromElement(elem);
|
|
101
|
-
var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
|
|
102
|
-
return foundElem === element;
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
if (selector !== null && filterElement.length > 0) {
|
|
106
|
-
this._selector = selector;
|
|
107
|
-
|
|
60
|
+
this._triggerArray = [];
|
|
61
|
+
const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE);
|
|
62
|
+
for (const elem of toggleList) {
|
|
63
|
+
const selector = SelectorEngine.getSelectorFromElement(elem);
|
|
64
|
+
const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);
|
|
65
|
+
if (selector !== null && filterElement.length) {
|
|
108
66
|
this._triggerArray.push(elem);
|
|
109
67
|
}
|
|
110
68
|
}
|
|
111
|
-
|
|
112
|
-
this._parent = this._config.parent ? this._getParent() : null;
|
|
113
|
-
|
|
69
|
+
this._initializeChildren();
|
|
114
70
|
if (!this._config.parent) {
|
|
115
|
-
this._addAriaAndCollapsedClass(this.
|
|
71
|
+
this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
|
|
116
72
|
}
|
|
117
|
-
|
|
118
73
|
if (this._config.toggle) {
|
|
119
74
|
this.toggle();
|
|
120
75
|
}
|
|
121
|
-
}
|
|
122
|
-
|
|
76
|
+
}
|
|
123
77
|
|
|
124
|
-
|
|
78
|
+
// Getters
|
|
79
|
+
static get Default() {
|
|
80
|
+
return Default;
|
|
81
|
+
}
|
|
82
|
+
static get DefaultType() {
|
|
83
|
+
return DefaultType;
|
|
84
|
+
}
|
|
85
|
+
static get NAME() {
|
|
86
|
+
return NAME;
|
|
87
|
+
}
|
|
125
88
|
|
|
126
89
|
// Public
|
|
127
|
-
|
|
128
|
-
if (
|
|
90
|
+
toggle() {
|
|
91
|
+
if (this._isShown()) {
|
|
129
92
|
this.hide();
|
|
130
93
|
} else {
|
|
131
94
|
this.show();
|
|
132
95
|
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
var _this = this;
|
|
137
|
-
|
|
138
|
-
if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {
|
|
96
|
+
}
|
|
97
|
+
show() {
|
|
98
|
+
if (this._isTransitioning || this._isShown()) {
|
|
139
99
|
return;
|
|
140
100
|
}
|
|
101
|
+
let activeChildren = [];
|
|
141
102
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
if (typeof _this._config.parent === 'string') {
|
|
148
|
-
return elem.getAttribute('data-parent') === _this._config.parent;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return elem.classList.contains(CLASS_NAME_COLLAPSE);
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
if (actives.length === 0) {
|
|
155
|
-
actives = null;
|
|
156
|
-
}
|
|
103
|
+
// find active children
|
|
104
|
+
if (this._config.parent) {
|
|
105
|
+
activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {
|
|
106
|
+
toggle: false
|
|
107
|
+
}));
|
|
157
108
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY);
|
|
161
|
-
|
|
162
|
-
if (activesData && activesData._isTransitioning) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
109
|
+
if (activeChildren.length && activeChildren[0]._isTransitioning) {
|
|
110
|
+
return;
|
|
165
111
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
$__default['default'](this._element).trigger(startEvent);
|
|
169
|
-
|
|
170
|
-
if (startEvent.isDefaultPrevented()) {
|
|
112
|
+
const startEvent = EventHandler.trigger(this._element, EVENT_SHOW);
|
|
113
|
+
if (startEvent.defaultPrevented) {
|
|
171
114
|
return;
|
|
172
115
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');
|
|
176
|
-
|
|
177
|
-
if (!activesData) {
|
|
178
|
-
$__default['default'](actives).data(DATA_KEY, null);
|
|
179
|
-
}
|
|
116
|
+
for (const activeInstance of activeChildren) {
|
|
117
|
+
activeInstance.hide();
|
|
180
118
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
$__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
|
|
119
|
+
const dimension = this._getDimension();
|
|
120
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE);
|
|
121
|
+
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
185
122
|
this._element.style[dimension] = 0;
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
$__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
|
|
195
|
-
_this._element.style[dimension] = '';
|
|
196
|
-
|
|
197
|
-
_this.setTransitioning(false);
|
|
198
|
-
|
|
199
|
-
$__default['default'](_this._element).trigger(EVENT_SHOWN);
|
|
123
|
+
this._addAriaAndCollapsedClass(this._triggerArray, true);
|
|
124
|
+
this._isTransitioning = true;
|
|
125
|
+
const complete = () => {
|
|
126
|
+
this._isTransitioning = false;
|
|
127
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSING);
|
|
128
|
+
this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
129
|
+
this._element.style[dimension] = '';
|
|
130
|
+
EventHandler.trigger(this._element, EVENT_SHOWN);
|
|
200
131
|
};
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
_proto.hide = function hide() {
|
|
210
|
-
var _this2 = this;
|
|
211
|
-
|
|
212
|
-
if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {
|
|
132
|
+
const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
|
133
|
+
const scrollSize = `scroll${capitalizedDimension}`;
|
|
134
|
+
this._queueCallback(complete, this._element, true);
|
|
135
|
+
this._element.style[dimension] = `${this._element[scrollSize]}px`;
|
|
136
|
+
}
|
|
137
|
+
hide() {
|
|
138
|
+
if (this._isTransitioning || !this._isShown()) {
|
|
213
139
|
return;
|
|
214
140
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
$__default['default'](this._element).trigger(startEvent);
|
|
218
|
-
|
|
219
|
-
if (startEvent.isDefaultPrevented()) {
|
|
141
|
+
const startEvent = EventHandler.trigger(this._element, EVENT_HIDE);
|
|
142
|
+
if (startEvent.defaultPrevented) {
|
|
220
143
|
return;
|
|
221
144
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
this._element.
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
for (var i = 0; i < triggerArrayLength; i++) {
|
|
232
|
-
var trigger = this._triggerArray[i];
|
|
233
|
-
var selector = Util__default['default'].getSelectorFromElement(trigger);
|
|
234
|
-
|
|
235
|
-
if (selector !== null) {
|
|
236
|
-
var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));
|
|
237
|
-
|
|
238
|
-
if (!$elem.hasClass(CLASS_NAME_SHOW)) {
|
|
239
|
-
$__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
145
|
+
const dimension = this._getDimension();
|
|
146
|
+
this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
|
|
147
|
+
index_js.reflow(this._element);
|
|
148
|
+
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
149
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
150
|
+
for (const trigger of this._triggerArray) {
|
|
151
|
+
const element = SelectorEngine.getElementFromSelector(trigger);
|
|
152
|
+
if (element && !this._isShown(element)) {
|
|
153
|
+
this._addAriaAndCollapsedClass([trigger], false);
|
|
242
154
|
}
|
|
243
155
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
$__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);
|
|
156
|
+
this._isTransitioning = true;
|
|
157
|
+
const complete = () => {
|
|
158
|
+
this._isTransitioning = false;
|
|
159
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSING);
|
|
160
|
+
this._element.classList.add(CLASS_NAME_COLLAPSE);
|
|
161
|
+
EventHandler.trigger(this._element, EVENT_HIDDEN);
|
|
251
162
|
};
|
|
252
|
-
|
|
253
163
|
this._element.style[dimension] = '';
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
this._isTransitioning = isTransitioning;
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
_proto.dispose = function dispose() {
|
|
263
|
-
$__default['default'].removeData(this._element, DATA_KEY);
|
|
264
|
-
this._config = null;
|
|
265
|
-
this._parent = null;
|
|
266
|
-
this._element = null;
|
|
267
|
-
this._triggerArray = null;
|
|
268
|
-
this._isTransitioning = null;
|
|
269
|
-
} // Private
|
|
270
|
-
;
|
|
164
|
+
this._queueCallback(complete, this._element, true);
|
|
165
|
+
}
|
|
166
|
+
_isShown(element = this._element) {
|
|
167
|
+
return element.classList.contains(CLASS_NAME_SHOW);
|
|
168
|
+
}
|
|
271
169
|
|
|
272
|
-
|
|
273
|
-
|
|
170
|
+
// Private
|
|
171
|
+
_configAfterMerge(config) {
|
|
274
172
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
|
275
|
-
|
|
276
|
-
Util__default['default'].typeCheckConfig(NAME, config, DefaultType);
|
|
173
|
+
config.parent = index_js.getElement(config.parent);
|
|
277
174
|
return config;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
parent = this._config.parent; // It's a jQuery object
|
|
292
|
-
|
|
293
|
-
if (typeof this._config.parent.jquery !== 'undefined') {
|
|
294
|
-
parent = this._config.parent[0];
|
|
175
|
+
}
|
|
176
|
+
_getDimension() {
|
|
177
|
+
return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
|
|
178
|
+
}
|
|
179
|
+
_initializeChildren() {
|
|
180
|
+
if (!this._config.parent) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);
|
|
184
|
+
for (const element of children) {
|
|
185
|
+
const selected = SelectorEngine.getElementFromSelector(element);
|
|
186
|
+
if (selected) {
|
|
187
|
+
this._addAriaAndCollapsedClass([element], this._isShown(selected));
|
|
295
188
|
}
|
|
296
|
-
} else {
|
|
297
|
-
parent = document.querySelector(this._config.parent);
|
|
298
189
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
|
309
|
-
var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW);
|
|
310
|
-
|
|
311
|
-
if (triggerArray.length) {
|
|
312
|
-
$__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
|
190
|
+
}
|
|
191
|
+
_getFirstLevelChildren(selector) {
|
|
192
|
+
const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
|
|
193
|
+
// remove children if greater depth
|
|
194
|
+
return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));
|
|
195
|
+
}
|
|
196
|
+
_addAriaAndCollapsedClass(triggerArray, isOpen) {
|
|
197
|
+
if (!triggerArray.length) {
|
|
198
|
+
return;
|
|
313
199
|
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
return selector ? document.querySelector(selector) : null;
|
|
320
|
-
};
|
|
200
|
+
for (const element of triggerArray) {
|
|
201
|
+
element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
|
|
202
|
+
element.setAttribute('aria-expanded', isOpen);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
321
205
|
|
|
322
|
-
|
|
206
|
+
// Static
|
|
207
|
+
static jQueryInterface(config) {
|
|
208
|
+
const _config = {};
|
|
209
|
+
if (typeof config === 'string' && /show|hide/.test(config)) {
|
|
210
|
+
_config.toggle = false;
|
|
211
|
+
}
|
|
323
212
|
return this.each(function () {
|
|
324
|
-
|
|
325
|
-
var data = $element.data(DATA_KEY);
|
|
326
|
-
|
|
327
|
-
var _config = _extends({}, Default, $element.data(), typeof config === 'object' && config ? config : {});
|
|
328
|
-
|
|
329
|
-
if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
|
|
330
|
-
_config.toggle = false;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
if (!data) {
|
|
334
|
-
data = new Collapse(this, _config);
|
|
335
|
-
$element.data(DATA_KEY, data);
|
|
336
|
-
}
|
|
337
|
-
|
|
213
|
+
const data = Collapse.getOrCreateInstance(this, _config);
|
|
338
214
|
if (typeof config === 'string') {
|
|
339
215
|
if (typeof data[config] === 'undefined') {
|
|
340
|
-
throw new TypeError(
|
|
216
|
+
throw new TypeError(`No method named "${config}"`);
|
|
341
217
|
}
|
|
342
|
-
|
|
343
218
|
data[config]();
|
|
344
219
|
}
|
|
345
220
|
});
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
_createClass(Collapse, null, [{
|
|
349
|
-
key: "VERSION",
|
|
350
|
-
get: function get() {
|
|
351
|
-
return VERSION;
|
|
352
|
-
}
|
|
353
|
-
}, {
|
|
354
|
-
key: "Default",
|
|
355
|
-
get: function get() {
|
|
356
|
-
return Default;
|
|
357
|
-
}
|
|
358
|
-
}]);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
359
223
|
|
|
360
|
-
return Collapse;
|
|
361
|
-
}();
|
|
362
224
|
/**
|
|
363
|
-
*
|
|
364
|
-
* Data Api implementation
|
|
365
|
-
* ------------------------------------------------------------------------
|
|
225
|
+
* Data API implementation
|
|
366
226
|
*/
|
|
367
227
|
|
|
368
|
-
|
|
369
|
-
$__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
228
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
370
229
|
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
|
|
371
|
-
if (event.
|
|
230
|
+
if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
|
|
372
231
|
event.preventDefault();
|
|
373
232
|
}
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
var $target = $__default['default'](this);
|
|
380
|
-
var data = $target.data(DATA_KEY);
|
|
381
|
-
var config = data ? 'toggle' : $trigger.data();
|
|
382
|
-
|
|
383
|
-
Collapse._jQueryInterface.call($target, config);
|
|
384
|
-
});
|
|
233
|
+
for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {
|
|
234
|
+
Collapse.getOrCreateInstance(element, {
|
|
235
|
+
toggle: false
|
|
236
|
+
}).toggle();
|
|
237
|
+
}
|
|
385
238
|
});
|
|
239
|
+
|
|
386
240
|
/**
|
|
387
|
-
* ------------------------------------------------------------------------
|
|
388
241
|
* jQuery
|
|
389
|
-
* ------------------------------------------------------------------------
|
|
390
242
|
*/
|
|
391
243
|
|
|
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
|
-
};
|
|
244
|
+
index_js.defineJQueryPlugin(Collapse);
|
|
399
245
|
|
|
400
246
|
return Collapse;
|
|
401
247
|
|
|
402
|
-
}))
|
|
248
|
+
}));
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap data.js v5.3.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
|
+
*/
|
|
6
|
+
(function (global, factory) {
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Data = factory());
|
|
10
|
+
})(this, (function () { 'use strict';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* --------------------------------------------------------------------------
|
|
14
|
+
* Bootstrap dom/data.js
|
|
15
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
16
|
+
* --------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Constants
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
const elementMap = new Map();
|
|
24
|
+
const data = {
|
|
25
|
+
set(element, key, instance) {
|
|
26
|
+
if (!elementMap.has(element)) {
|
|
27
|
+
elementMap.set(element, new Map());
|
|
28
|
+
}
|
|
29
|
+
const instanceMap = elementMap.get(element);
|
|
30
|
+
|
|
31
|
+
// make it clear we only want one instance per element
|
|
32
|
+
// can be removed later when multiple key/instances are fine to be used
|
|
33
|
+
if (!instanceMap.has(key) && instanceMap.size !== 0) {
|
|
34
|
+
// eslint-disable-next-line no-console
|
|
35
|
+
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
instanceMap.set(key, instance);
|
|
39
|
+
},
|
|
40
|
+
get(element, key) {
|
|
41
|
+
if (elementMap.has(element)) {
|
|
42
|
+
return elementMap.get(element).get(key) || null;
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
},
|
|
46
|
+
remove(element, key) {
|
|
47
|
+
if (!elementMap.has(element)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const instanceMap = elementMap.get(element);
|
|
51
|
+
instanceMap.delete(key);
|
|
52
|
+
|
|
53
|
+
// free up element references if there are no instances left for an element
|
|
54
|
+
if (instanceMap.size === 0) {
|
|
55
|
+
elementMap.delete(element);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
return data;
|
|
61
|
+
|
|
62
|
+
}));
|