bootstrap 4.3.0 → 5.1.0
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 +17 -2
- data/CHANGELOG.md +2 -14
- data/README.md +7 -4
- data/assets/javascripts/bootstrap/alert.js +173 -137
- data/assets/javascripts/bootstrap/base-component.js +182 -0
- data/assets/javascripts/bootstrap/button.js +102 -143
- data/assets/javascripts/bootstrap/carousel.js +481 -410
- data/assets/javascripts/bootstrap/collapse.js +340 -274
- data/assets/javascripts/bootstrap/dom/data.js +68 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +322 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +88 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +127 -0
- data/assets/javascripts/bootstrap/dropdown.js +494 -400
- data/assets/javascripts/bootstrap/modal.js +834 -450
- data/assets/javascripts/bootstrap/offcanvas.js +866 -0
- data/assets/javascripts/bootstrap/popover.js +122 -199
- data/assets/javascripts/bootstrap/scrollspy.js +257 -241
- data/assets/javascripts/bootstrap/tab.js +219 -155
- data/assets/javascripts/bootstrap/toast.js +330 -190
- data/assets/javascripts/bootstrap/tooltip.js +710 -472
- 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 +8 -1
- data/assets/javascripts/bootstrap.js +3547 -2809
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/stylesheets/_bootstrap-grid.scss +54 -18
- data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
- data/assets/stylesheets/_bootstrap.scss +20 -11
- data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
- data/assets/stylesheets/bootstrap/_alert.scss +15 -9
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -18
- data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
- data/assets/stylesheets/bootstrap/_buttons.scss +28 -54
- data/assets/stylesheets/bootstrap/_card.scss +52 -125
- data/assets/stylesheets/bootstrap/_carousel.scss +70 -38
- data/assets/stylesheets/bootstrap/_close.scss +30 -31
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +88 -39
- data/assets/stylesheets/bootstrap/_forms.scss +9 -330
- data/assets/stylesheets/bootstrap/_functions.scss +237 -27
- data/assets/stylesheets/bootstrap/_grid.scss +14 -33
- data/assets/stylesheets/bootstrap/_helpers.scss +9 -0
- data/assets/stylesheets/bootstrap/_images.scss +3 -3
- data/assets/stylesheets/bootstrap/_list-group.scss +61 -36
- data/assets/stylesheets/bootstrap/_mixins.scss +12 -16
- data/assets/stylesheets/bootstrap/_modal.scss +64 -84
- data/assets/stylesheets/bootstrap/_nav.scss +29 -10
- data/assets/stylesheets/bootstrap/_navbar.scss +93 -52
- data/assets/stylesheets/bootstrap/_offcanvas.scss +83 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +13 -22
- data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
- data/assets/stylesheets/bootstrap/_popover.scss +29 -42
- data/assets/stylesheets/bootstrap/_progress.scss +10 -5
- data/assets/stylesheets/bootstrap/_reboot.scss +350 -208
- data/assets/stylesheets/bootstrap/_root.scss +42 -8
- data/assets/stylesheets/bootstrap/_spinners.scss +21 -7
- data/assets/stylesheets/bootstrap/_tables.scss +80 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +21 -14
- data/assets/stylesheets/bootstrap/_tooltip.scss +21 -21
- data/assets/stylesheets/bootstrap/_transitions.scss +8 -1
- data/assets/stylesheets/bootstrap/_type.scss +40 -61
- data/assets/stylesheets/bootstrap/_utilities.scss +630 -17
- data/assets/stylesheets/bootstrap/_variables.scss +993 -487
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +63 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +219 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +70 -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/_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 +3 -5
- data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +37 -22
- 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 +77 -51
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +10 -8
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +67 -115
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +131 -32
- data/assets/stylesheets/bootstrap/mixins/_image.scss +0 -20
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +17 -8
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +89 -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 +274 -132
- data/bootstrap.gemspec +4 -6
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +25 -6
- data/tasks/updater/network.rb +8 -2
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- 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_0.gemfile +7 -0
- data/test/gemfiles/rails_6_1.gemfile +7 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +61 -79
- data/assets/javascripts/bootstrap/util.js +0 -171
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -507
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -193
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -141
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -66
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -33
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -16
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
- data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap base-component.js v5.1.0 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2021 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(require('./dom/data.js'), require('./dom/event-handler.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Base = factory(global.Data, global.EventHandler));
|
|
10
|
+
}(this, (function (Data, EventHandler) { 'use strict';
|
|
11
|
+
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
|
+
|
|
14
|
+
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* --------------------------------------------------------------------------
|
|
19
|
+
* Bootstrap (v5.1.0): util/index.js
|
|
20
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
21
|
+
* --------------------------------------------------------------------------
|
|
22
|
+
*/
|
|
23
|
+
const MILLISECONDS_MULTIPLIER = 1000;
|
|
24
|
+
const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
|
25
|
+
|
|
26
|
+
const getTransitionDurationFromElement = element => {
|
|
27
|
+
if (!element) {
|
|
28
|
+
return 0;
|
|
29
|
+
} // Get transition-duration of the element
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
let {
|
|
33
|
+
transitionDuration,
|
|
34
|
+
transitionDelay
|
|
35
|
+
} = window.getComputedStyle(element);
|
|
36
|
+
const floatTransitionDuration = Number.parseFloat(transitionDuration);
|
|
37
|
+
const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
|
|
38
|
+
|
|
39
|
+
if (!floatTransitionDuration && !floatTransitionDelay) {
|
|
40
|
+
return 0;
|
|
41
|
+
} // If multiple durations are defined, take the first
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
transitionDuration = transitionDuration.split(',')[0];
|
|
45
|
+
transitionDelay = transitionDelay.split(',')[0];
|
|
46
|
+
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const triggerTransitionEnd = element => {
|
|
50
|
+
element.dispatchEvent(new Event(TRANSITION_END));
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const isElement = obj => {
|
|
54
|
+
if (!obj || typeof obj !== 'object') {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (typeof obj.jquery !== 'undefined') {
|
|
59
|
+
obj = obj[0];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return typeof obj.nodeType !== 'undefined';
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const getElement = obj => {
|
|
66
|
+
if (isElement(obj)) {
|
|
67
|
+
// it's a jQuery object or a node element
|
|
68
|
+
return obj.jquery ? obj[0] : obj;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (typeof obj === 'string' && obj.length > 0) {
|
|
72
|
+
return document.querySelector(obj);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return null;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const execute = callback => {
|
|
79
|
+
if (typeof callback === 'function') {
|
|
80
|
+
callback();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
|
|
85
|
+
if (!waitForTransition) {
|
|
86
|
+
execute(callback);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const durationPadding = 5;
|
|
91
|
+
const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
|
|
92
|
+
let called = false;
|
|
93
|
+
|
|
94
|
+
const handler = ({
|
|
95
|
+
target
|
|
96
|
+
}) => {
|
|
97
|
+
if (target !== transitionElement) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
called = true;
|
|
102
|
+
transitionElement.removeEventListener(TRANSITION_END, handler);
|
|
103
|
+
execute(callback);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
transitionElement.addEventListener(TRANSITION_END, handler);
|
|
107
|
+
setTimeout(() => {
|
|
108
|
+
if (!called) {
|
|
109
|
+
triggerTransitionEnd(transitionElement);
|
|
110
|
+
}
|
|
111
|
+
}, emulatedDuration);
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* --------------------------------------------------------------------------
|
|
116
|
+
* Bootstrap (v5.1.0): base-component.js
|
|
117
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
118
|
+
* --------------------------------------------------------------------------
|
|
119
|
+
*/
|
|
120
|
+
/**
|
|
121
|
+
* ------------------------------------------------------------------------
|
|
122
|
+
* Constants
|
|
123
|
+
* ------------------------------------------------------------------------
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
const VERSION = '5.1.0';
|
|
127
|
+
|
|
128
|
+
class BaseComponent {
|
|
129
|
+
constructor(element) {
|
|
130
|
+
element = getElement(element);
|
|
131
|
+
|
|
132
|
+
if (!element) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
this._element = element;
|
|
137
|
+
Data__default['default'].set(this._element, this.constructor.DATA_KEY, this);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
dispose() {
|
|
141
|
+
Data__default['default'].remove(this._element, this.constructor.DATA_KEY);
|
|
142
|
+
EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);
|
|
143
|
+
Object.getOwnPropertyNames(this).forEach(propertyName => {
|
|
144
|
+
this[propertyName] = null;
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
_queueCallback(callback, element, isAnimated = true) {
|
|
149
|
+
executeAfterTransition(callback, element, isAnimated);
|
|
150
|
+
}
|
|
151
|
+
/** Static */
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
static getInstance(element) {
|
|
155
|
+
return Data__default['default'].get(getElement(element), this.DATA_KEY);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
static getOrCreateInstance(element, config = {}) {
|
|
159
|
+
return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
static get VERSION() {
|
|
163
|
+
return VERSION;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
static get NAME() {
|
|
167
|
+
throw new Error('You have to implement the static method "NAME", for each component!');
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
static get DATA_KEY() {
|
|
171
|
+
return `bs.${this.NAME}`;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
static get EVENT_KEY() {
|
|
175
|
+
return `.${this.DATA_KEY}`;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return BaseComponent;
|
|
181
|
+
|
|
182
|
+
})));
|
|
@@ -1,152 +1,123 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap button.js
|
|
3
|
-
* Copyright 2011-
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
2
|
+
* Bootstrap button.js v5.1.0 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['
|
|
9
|
-
(global = global || self, global.Button = factory(global.
|
|
10
|
-
}(this, function (
|
|
11
|
-
|
|
12
|
-
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
|
13
|
-
|
|
14
|
-
function _defineProperties(target, props) {
|
|
15
|
-
for (var i = 0; i < props.length; i++) {
|
|
16
|
-
var descriptor = props[i];
|
|
17
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
18
|
-
descriptor.configurable = true;
|
|
19
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
20
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/event-handler.js'), require('./base-component.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/event-handler', './base-component'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.EventHandler, global.Base));
|
|
10
|
+
}(this, (function (EventHandler, BaseComponent) { 'use strict';
|
|
23
11
|
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
|
+
|
|
14
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
15
|
+
var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
29
16
|
|
|
30
17
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
18
|
+
* --------------------------------------------------------------------------
|
|
19
|
+
* Bootstrap (v5.1.0): util/index.js
|
|
20
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
21
|
+
* --------------------------------------------------------------------------
|
|
34
22
|
*/
|
|
35
23
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
BUTTON: 'btn',
|
|
45
|
-
FOCUS: 'focus'
|
|
46
|
-
};
|
|
47
|
-
var Selector = {
|
|
48
|
-
DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
|
|
49
|
-
DATA_TOGGLE: '[data-toggle="buttons"]',
|
|
50
|
-
INPUT: 'input:not([type="hidden"])',
|
|
51
|
-
ACTIVE: '.active',
|
|
52
|
-
BUTTON: '.btn'
|
|
53
|
-
};
|
|
54
|
-
var Event = {
|
|
55
|
-
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
|
|
56
|
-
FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
|
|
57
|
-
/**
|
|
58
|
-
* ------------------------------------------------------------------------
|
|
59
|
-
* Class Definition
|
|
60
|
-
* ------------------------------------------------------------------------
|
|
61
|
-
*/
|
|
24
|
+
const getjQuery = () => {
|
|
25
|
+
const {
|
|
26
|
+
jQuery
|
|
27
|
+
} = window;
|
|
28
|
+
|
|
29
|
+
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
|
|
30
|
+
return jQuery;
|
|
31
|
+
}
|
|
62
32
|
|
|
33
|
+
return null;
|
|
63
34
|
};
|
|
64
35
|
|
|
65
|
-
|
|
66
|
-
/*#__PURE__*/
|
|
67
|
-
function () {
|
|
68
|
-
function Button(element) {
|
|
69
|
-
this._element = element;
|
|
70
|
-
} // Getters
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
var _proto = Button.prototype;
|
|
74
|
-
|
|
75
|
-
// Public
|
|
76
|
-
_proto.toggle = function toggle() {
|
|
77
|
-
var triggerChangeEvent = true;
|
|
78
|
-
var addAriaPressed = true;
|
|
79
|
-
var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
|
|
80
|
-
|
|
81
|
-
if (rootElement) {
|
|
82
|
-
var input = this._element.querySelector(Selector.INPUT);
|
|
83
|
-
|
|
84
|
-
if (input) {
|
|
85
|
-
if (input.type === 'radio') {
|
|
86
|
-
if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {
|
|
87
|
-
triggerChangeEvent = false;
|
|
88
|
-
} else {
|
|
89
|
-
var activeElement = rootElement.querySelector(Selector.ACTIVE);
|
|
90
|
-
|
|
91
|
-
if (activeElement) {
|
|
92
|
-
$(activeElement).removeClass(ClassName.ACTIVE);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (triggerChangeEvent) {
|
|
98
|
-
if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
input.checked = !this._element.classList.contains(ClassName.ACTIVE);
|
|
103
|
-
$(input).trigger('change');
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
input.focus();
|
|
107
|
-
addAriaPressed = false;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
36
|
+
const DOMContentLoadedCallbacks = [];
|
|
110
37
|
|
|
111
|
-
|
|
112
|
-
|
|
38
|
+
const onDOMContentLoaded = callback => {
|
|
39
|
+
if (document.readyState === 'loading') {
|
|
40
|
+
// add listener on the first call when the document is in loading state
|
|
41
|
+
if (!DOMContentLoadedCallbacks.length) {
|
|
42
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
43
|
+
DOMContentLoadedCallbacks.forEach(callback => callback());
|
|
44
|
+
});
|
|
113
45
|
}
|
|
114
46
|
|
|
115
|
-
|
|
116
|
-
|
|
47
|
+
DOMContentLoadedCallbacks.push(callback);
|
|
48
|
+
} else {
|
|
49
|
+
callback();
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const defineJQueryPlugin = plugin => {
|
|
54
|
+
onDOMContentLoaded(() => {
|
|
55
|
+
const $ = getjQuery();
|
|
56
|
+
/* istanbul ignore if */
|
|
57
|
+
|
|
58
|
+
if ($) {
|
|
59
|
+
const name = plugin.NAME;
|
|
60
|
+
const JQUERY_NO_CONFLICT = $.fn[name];
|
|
61
|
+
$.fn[name] = plugin.jQueryInterface;
|
|
62
|
+
$.fn[name].Constructor = plugin;
|
|
63
|
+
|
|
64
|
+
$.fn[name].noConflict = () => {
|
|
65
|
+
$.fn[name] = JQUERY_NO_CONFLICT;
|
|
66
|
+
return plugin.jQueryInterface;
|
|
67
|
+
};
|
|
117
68
|
}
|
|
118
|
-
};
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* --------------------------------------------------------------------------
|
|
74
|
+
* Bootstrap (v5.1.0): button.js
|
|
75
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
76
|
+
* --------------------------------------------------------------------------
|
|
77
|
+
*/
|
|
78
|
+
/**
|
|
79
|
+
* ------------------------------------------------------------------------
|
|
80
|
+
* Constants
|
|
81
|
+
* ------------------------------------------------------------------------
|
|
82
|
+
*/
|
|
119
83
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
84
|
+
const NAME = 'button';
|
|
85
|
+
const DATA_KEY = 'bs.button';
|
|
86
|
+
const EVENT_KEY = `.${DATA_KEY}`;
|
|
87
|
+
const DATA_API_KEY = '.data-api';
|
|
88
|
+
const CLASS_NAME_ACTIVE = 'active';
|
|
89
|
+
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
|
|
90
|
+
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
|
|
91
|
+
/**
|
|
92
|
+
* ------------------------------------------------------------------------
|
|
93
|
+
* Class Definition
|
|
94
|
+
* ------------------------------------------------------------------------
|
|
95
|
+
*/
|
|
96
|
+
|
|
97
|
+
class Button extends BaseComponent__default['default'] {
|
|
98
|
+
// Getters
|
|
99
|
+
static get NAME() {
|
|
100
|
+
return NAME;
|
|
101
|
+
} // Public
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
toggle() {
|
|
105
|
+
// Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
|
|
106
|
+
this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
|
|
123
107
|
} // Static
|
|
124
|
-
;
|
|
125
108
|
|
|
126
|
-
Button._jQueryInterface = function _jQueryInterface(config) {
|
|
127
|
-
return this.each(function () {
|
|
128
|
-
var data = $(this).data(DATA_KEY);
|
|
129
109
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
110
|
+
static jQueryInterface(config) {
|
|
111
|
+
return this.each(function () {
|
|
112
|
+
const data = Button.getOrCreateInstance(this);
|
|
134
113
|
|
|
135
114
|
if (config === 'toggle') {
|
|
136
115
|
data[config]();
|
|
137
116
|
}
|
|
138
117
|
});
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
_createClass(Button, null, [{
|
|
142
|
-
key: "VERSION",
|
|
143
|
-
get: function get() {
|
|
144
|
-
return VERSION;
|
|
145
|
-
}
|
|
146
|
-
}]);
|
|
118
|
+
}
|
|
147
119
|
|
|
148
|
-
|
|
149
|
-
}();
|
|
120
|
+
}
|
|
150
121
|
/**
|
|
151
122
|
* ------------------------------------------------------------------------
|
|
152
123
|
* Data Api implementation
|
|
@@ -154,33 +125,21 @@
|
|
|
154
125
|
*/
|
|
155
126
|
|
|
156
127
|
|
|
157
|
-
|
|
128
|
+
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
|
|
158
129
|
event.preventDefault();
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
button = $(button).closest(Selector.BUTTON);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
Button._jQueryInterface.call($(button), 'toggle');
|
|
166
|
-
}).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
|
|
167
|
-
var button = $(event.target).closest(Selector.BUTTON)[0];
|
|
168
|
-
$(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
|
|
130
|
+
const button = event.target.closest(SELECTOR_DATA_TOGGLE);
|
|
131
|
+
const data = Button.getOrCreateInstance(button);
|
|
132
|
+
data.toggle();
|
|
169
133
|
});
|
|
170
134
|
/**
|
|
171
135
|
* ------------------------------------------------------------------------
|
|
172
136
|
* jQuery
|
|
173
137
|
* ------------------------------------------------------------------------
|
|
138
|
+
* add .Button to jQuery only if jQuery is present
|
|
174
139
|
*/
|
|
175
140
|
|
|
176
|
-
|
|
177
|
-
$.fn[NAME].Constructor = Button;
|
|
178
|
-
|
|
179
|
-
$.fn[NAME].noConflict = function () {
|
|
180
|
-
$.fn[NAME] = JQUERY_NO_CONFLICT;
|
|
181
|
-
return Button._jQueryInterface;
|
|
182
|
-
};
|
|
141
|
+
defineJQueryPlugin(Button);
|
|
183
142
|
|
|
184
143
|
return Button;
|
|
185
144
|
|
|
186
|
-
}));
|
|
145
|
+
})));
|