bootstrap 4.6.0 → 5.0.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 +2 -1
- data/README.md +7 -4
- data/assets/javascripts/bootstrap/alert.js +181 -109
- data/assets/javascripts/bootstrap/base-component.js +63 -0
- data/assets/javascripts/bootstrap/button.js +85 -173
- data/assets/javascripts/bootstrap/carousel.js +458 -355
- data/assets/javascripts/bootstrap/collapse.js +366 -218
- 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 +85 -0
- data/assets/javascripts/bootstrap/dropdown.js +459 -351
- data/assets/javascripts/bootstrap/modal.js +597 -429
- data/assets/javascripts/bootstrap/offcanvas.js +671 -0
- data/assets/javascripts/bootstrap/popover.js +130 -154
- data/assets/javascripts/bootstrap/scrollspy.js +238 -188
- data/assets/javascripts/bootstrap/tab.js +235 -137
- data/assets/javascripts/bootstrap/toast.js +210 -148
- data/assets/javascripts/bootstrap/tooltip.js +627 -466
- 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 +15 -8
- data/assets/javascripts/bootstrap.js +3174 -2563
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/stylesheets/_bootstrap-grid.scss +51 -16
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
- data/assets/stylesheets/_bootstrap.scss +16 -8
- data/assets/stylesheets/bootstrap/_accordion.scss +118 -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 +29 -60
- data/assets/stylesheets/bootstrap/_card.scss +20 -91
- 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 +84 -36
- 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 +28 -8
- data/assets/stylesheets/bootstrap/_mixins.scss +8 -13
- data/assets/stylesheets/bootstrap/_modal.scss +43 -55
- data/assets/stylesheets/bootstrap/_nav.scss +23 -4
- data/assets/stylesheets/bootstrap/_navbar.scss +45 -71
- data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
- data/assets/stylesheets/bootstrap/_popover.scss +15 -27
- data/assets/stylesheets/bootstrap/_progress.scss +5 -4
- data/assets/stylesheets/bootstrap/_reboot.scss +316 -179
- data/assets/stylesheets/bootstrap/_root.scss +5 -8
- data/assets/stylesheets/bootstrap/_spinners.scss +11 -7
- 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 +2 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +594 -18
- data/assets/stylesheets/bootstrap/_variables.scss +800 -482
- 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 +219 -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/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 +3 -5
- 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 +14 -10
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +71 -48
- 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 +38 -86
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +89 -33
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +17 -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/tasks/updater/network.rb +7 -1
- 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 +45 -73
- 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,156 +1,118 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap button.js
|
|
2
|
+
* Bootstrap button.js v5.0.0 (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.Button = 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('./base-component.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler, global.Base));
|
|
10
|
+
}(this, (function (Data, EventHandler, 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
|
|
14
|
+
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
+
var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
/**
|
|
19
|
+
* --------------------------------------------------------------------------
|
|
20
|
+
* Bootstrap (v5.0.0): util/index.js
|
|
21
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
22
|
+
* --------------------------------------------------------------------------
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
const getjQuery = () => {
|
|
26
|
+
const {
|
|
27
|
+
jQuery
|
|
28
|
+
} = window;
|
|
29
|
+
|
|
30
|
+
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
|
|
31
|
+
return jQuery;
|
|
23
32
|
}
|
|
24
|
-
}
|
|
25
33
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
return null;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const onDOMContentLoaded = callback => {
|
|
38
|
+
if (document.readyState === 'loading') {
|
|
39
|
+
document.addEventListener('DOMContentLoaded', callback);
|
|
40
|
+
} else {
|
|
41
|
+
callback();
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const defineJQueryPlugin = (name, plugin) => {
|
|
46
|
+
onDOMContentLoaded(() => {
|
|
47
|
+
const $ = getjQuery();
|
|
48
|
+
/* istanbul ignore if */
|
|
31
49
|
|
|
50
|
+
if ($) {
|
|
51
|
+
const JQUERY_NO_CONFLICT = $.fn[name];
|
|
52
|
+
$.fn[name] = plugin.jQueryInterface;
|
|
53
|
+
$.fn[name].Constructor = plugin;
|
|
54
|
+
|
|
55
|
+
$.fn[name].noConflict = () => {
|
|
56
|
+
$.fn[name] = JQUERY_NO_CONFLICT;
|
|
57
|
+
return plugin.jQueryInterface;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* --------------------------------------------------------------------------
|
|
65
|
+
* Bootstrap (v5.0.0): button.js
|
|
66
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
67
|
+
* --------------------------------------------------------------------------
|
|
68
|
+
*/
|
|
32
69
|
/**
|
|
33
70
|
* ------------------------------------------------------------------------
|
|
34
71
|
* Constants
|
|
35
72
|
* ------------------------------------------------------------------------
|
|
36
73
|
*/
|
|
37
74
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
var CLASS_NAME_BUTTON = 'btn';
|
|
46
|
-
var CLASS_NAME_FOCUS = 'focus';
|
|
47
|
-
var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
|
|
48
|
-
var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';
|
|
49
|
-
var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
|
|
50
|
-
var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';
|
|
51
|
-
var SELECTOR_INPUT = 'input:not([type="hidden"])';
|
|
52
|
-
var SELECTOR_ACTIVE = '.active';
|
|
53
|
-
var SELECTOR_BUTTON = '.btn';
|
|
54
|
-
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
55
|
-
var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY);
|
|
56
|
-
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
|
|
75
|
+
const NAME = 'button';
|
|
76
|
+
const DATA_KEY = 'bs.button';
|
|
77
|
+
const EVENT_KEY = `.${DATA_KEY}`;
|
|
78
|
+
const DATA_API_KEY = '.data-api';
|
|
79
|
+
const CLASS_NAME_ACTIVE = 'active';
|
|
80
|
+
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
|
|
81
|
+
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
|
|
57
82
|
/**
|
|
58
83
|
* ------------------------------------------------------------------------
|
|
59
84
|
* Class Definition
|
|
60
85
|
* ------------------------------------------------------------------------
|
|
61
86
|
*/
|
|
62
87
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
} //
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
var _proto = Button.prototype;
|
|
71
|
-
|
|
72
|
-
// Public
|
|
73
|
-
_proto.toggle = function toggle() {
|
|
74
|
-
var triggerChangeEvent = true;
|
|
75
|
-
var addAriaPressed = true;
|
|
76
|
-
var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];
|
|
77
|
-
|
|
78
|
-
if (rootElement) {
|
|
79
|
-
var input = this._element.querySelector(SELECTOR_INPUT);
|
|
80
|
-
|
|
81
|
-
if (input) {
|
|
82
|
-
if (input.type === 'radio') {
|
|
83
|
-
if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
|
|
84
|
-
triggerChangeEvent = false;
|
|
85
|
-
} else {
|
|
86
|
-
var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);
|
|
87
|
-
|
|
88
|
-
if (activeElement) {
|
|
89
|
-
$__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if (triggerChangeEvent) {
|
|
95
|
-
// if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input
|
|
96
|
-
if (input.type === 'checkbox' || input.type === 'radio') {
|
|
97
|
-
input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
if (!this.shouldAvoidTriggerChange) {
|
|
101
|
-
$__default['default'](input).trigger('change');
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
input.focus();
|
|
106
|
-
addAriaPressed = false;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {
|
|
111
|
-
if (addAriaPressed) {
|
|
112
|
-
this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));
|
|
113
|
-
}
|
|
88
|
+
class Button extends BaseComponent__default['default'] {
|
|
89
|
+
// Getters
|
|
90
|
+
static get DATA_KEY() {
|
|
91
|
+
return DATA_KEY;
|
|
92
|
+
} // Public
|
|
114
93
|
|
|
115
|
-
if (triggerChangeEvent) {
|
|
116
|
-
$__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
94
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
this._element
|
|
95
|
+
toggle() {
|
|
96
|
+
// Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
|
|
97
|
+
this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
|
|
124
98
|
} // Static
|
|
125
|
-
;
|
|
126
99
|
|
|
127
|
-
|
|
100
|
+
|
|
101
|
+
static jQueryInterface(config) {
|
|
128
102
|
return this.each(function () {
|
|
129
|
-
|
|
130
|
-
var data = $element.data(DATA_KEY);
|
|
103
|
+
let data = Data__default['default'].get(this, DATA_KEY);
|
|
131
104
|
|
|
132
105
|
if (!data) {
|
|
133
106
|
data = new Button(this);
|
|
134
|
-
$element.data(DATA_KEY, data);
|
|
135
107
|
}
|
|
136
108
|
|
|
137
|
-
data.shouldAvoidTriggerChange = avoidTriggerChange;
|
|
138
|
-
|
|
139
109
|
if (config === 'toggle') {
|
|
140
110
|
data[config]();
|
|
141
111
|
}
|
|
142
112
|
});
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
_createClass(Button, null, [{
|
|
146
|
-
key: "VERSION",
|
|
147
|
-
get: function get() {
|
|
148
|
-
return VERSION;
|
|
149
|
-
}
|
|
150
|
-
}]);
|
|
113
|
+
}
|
|
151
114
|
|
|
152
|
-
|
|
153
|
-
}();
|
|
115
|
+
}
|
|
154
116
|
/**
|
|
155
117
|
* ------------------------------------------------------------------------
|
|
156
118
|
* Data Api implementation
|
|
@@ -158,75 +120,25 @@
|
|
|
158
120
|
*/
|
|
159
121
|
|
|
160
122
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
123
|
+
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
|
|
124
|
+
event.preventDefault();
|
|
125
|
+
const button = event.target.closest(SELECTOR_DATA_TOGGLE);
|
|
126
|
+
let data = Data__default['default'].get(button, DATA_KEY);
|
|
164
127
|
|
|
165
|
-
if (
|
|
166
|
-
|
|
128
|
+
if (!data) {
|
|
129
|
+
data = new Button(button);
|
|
167
130
|
}
|
|
168
131
|
|
|
169
|
-
|
|
170
|
-
event.preventDefault(); // work around Firefox bug #1540995
|
|
171
|
-
} else {
|
|
172
|
-
var inputBtn = button.querySelector(SELECTOR_INPUT);
|
|
173
|
-
|
|
174
|
-
if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {
|
|
175
|
-
event.preventDefault(); // work around Firefox bug #1540995
|
|
176
|
-
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {
|
|
181
|
-
Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
|
|
185
|
-
var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];
|
|
186
|
-
$__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));
|
|
187
|
-
});
|
|
188
|
-
$__default['default'](window).on(EVENT_LOAD_DATA_API, function () {
|
|
189
|
-
// ensure correct active class is set to match the controls' actual values/states
|
|
190
|
-
// find all checkboxes/readio buttons inside data-toggle groups
|
|
191
|
-
var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));
|
|
192
|
-
|
|
193
|
-
for (var i = 0, len = buttons.length; i < len; i++) {
|
|
194
|
-
var button = buttons[i];
|
|
195
|
-
var input = button.querySelector(SELECTOR_INPUT);
|
|
196
|
-
|
|
197
|
-
if (input.checked || input.hasAttribute('checked')) {
|
|
198
|
-
button.classList.add(CLASS_NAME_ACTIVE);
|
|
199
|
-
} else {
|
|
200
|
-
button.classList.remove(CLASS_NAME_ACTIVE);
|
|
201
|
-
}
|
|
202
|
-
} // find all button toggles
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
|
|
206
|
-
|
|
207
|
-
for (var _i = 0, _len = buttons.length; _i < _len; _i++) {
|
|
208
|
-
var _button = buttons[_i];
|
|
209
|
-
|
|
210
|
-
if (_button.getAttribute('aria-pressed') === 'true') {
|
|
211
|
-
_button.classList.add(CLASS_NAME_ACTIVE);
|
|
212
|
-
} else {
|
|
213
|
-
_button.classList.remove(CLASS_NAME_ACTIVE);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
132
|
+
data.toggle();
|
|
216
133
|
});
|
|
217
134
|
/**
|
|
218
135
|
* ------------------------------------------------------------------------
|
|
219
136
|
* jQuery
|
|
220
137
|
* ------------------------------------------------------------------------
|
|
138
|
+
* add .Button to jQuery only if jQuery is present
|
|
221
139
|
*/
|
|
222
140
|
|
|
223
|
-
|
|
224
|
-
$__default['default'].fn[NAME].Constructor = Button;
|
|
225
|
-
|
|
226
|
-
$__default['default'].fn[NAME].noConflict = function () {
|
|
227
|
-
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
228
|
-
return Button._jQueryInterface;
|
|
229
|
-
};
|
|
141
|
+
defineJQueryPlugin(NAME, Button);
|
|
230
142
|
|
|
231
143
|
return Button;
|
|
232
144
|
|