bootstrap 4.1.2 → 4.1.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bootstrap might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +5 -5
- data/assets/javascripts/bootstrap.js +23 -23
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +159 -133
- data/assets/javascripts/bootstrap/button.js +149 -124
- data/assets/javascripts/bootstrap/carousel.js +463 -407
- data/assets/javascripts/bootstrap/collapse.js +338 -282
- data/assets/javascripts/bootstrap/dropdown.js +439 -382
- data/assets/javascripts/bootstrap/modal.js +502 -446
- data/assets/javascripts/bootstrap/popover.js +223 -163
- data/assets/javascripts/bootstrap/scrollspy.js +307 -251
- data/assets/javascripts/bootstrap/tab.js +217 -191
- data/assets/javascripts/bootstrap/tooltip.js +582 -525
- data/assets/javascripts/bootstrap/util.js +129 -116
- data/assets/stylesheets/_bootstrap-grid.scss +1 -1
- data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
- data/assets/stylesheets/_bootstrap.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +0 -1
- data/assets/stylesheets/bootstrap/_custom-forms.scss +13 -19
- data/assets/stylesheets/bootstrap/_forms.scss +13 -15
- data/assets/stylesheets/bootstrap/_input-group.scss +15 -2
- data/assets/stylesheets/bootstrap/_modal.scss +18 -6
- data/assets/stylesheets/bootstrap/_reboot.scss +4 -2
- data/assets/stylesheets/bootstrap/_tables.scss +0 -1
- data/assets/stylesheets/bootstrap/_variables.scss +10 -9
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +7 -7
- data/lib/bootstrap/version.rb +2 -2
- metadata +2 -2
@@ -1,251 +1,277 @@
|
|
1
|
-
function
|
1
|
+
(function (global, factory) {
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
3
|
+
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
4
|
+
(global.Tab = factory(global.jQuery,global.Util));
|
5
|
+
}(this, (function ($,Util) { 'use strict';
|
6
|
+
|
7
|
+
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
8
|
+
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
|
9
|
+
|
10
|
+
function _defineProperties(target, props) {
|
11
|
+
for (var i = 0; i < props.length; i++) {
|
12
|
+
var descriptor = props[i];
|
13
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
14
|
+
descriptor.configurable = true;
|
15
|
+
if ("value" in descriptor) descriptor.writable = true;
|
16
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
21
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
22
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
23
|
+
return Constructor;
|
24
|
+
}
|
2
25
|
|
3
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
4
|
-
|
5
|
-
/**
|
6
|
-
* --------------------------------------------------------------------------
|
7
|
-
* Bootstrap (v4.1.2): tab.js
|
8
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
9
|
-
* --------------------------------------------------------------------------
|
10
|
-
*/
|
11
|
-
var Tab = function ($) {
|
12
26
|
/**
|
13
|
-
*
|
14
|
-
*
|
15
|
-
*
|
27
|
+
* --------------------------------------------------------------------------
|
28
|
+
* Bootstrap (v4.1.3): tab.js
|
29
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
30
|
+
* --------------------------------------------------------------------------
|
16
31
|
*/
|
17
|
-
|
18
|
-
var
|
19
|
-
var DATA_KEY = 'bs.tab';
|
20
|
-
var EVENT_KEY = "." + DATA_KEY;
|
21
|
-
var DATA_API_KEY = '.data-api';
|
22
|
-
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
23
|
-
var Event = {
|
24
|
-
HIDE: "hide" + EVENT_KEY,
|
25
|
-
HIDDEN: "hidden" + EVENT_KEY,
|
26
|
-
SHOW: "show" + EVENT_KEY,
|
27
|
-
SHOWN: "shown" + EVENT_KEY,
|
28
|
-
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
|
29
|
-
};
|
30
|
-
var ClassName = {
|
31
|
-
DROPDOWN_MENU: 'dropdown-menu',
|
32
|
-
ACTIVE: 'active',
|
33
|
-
DISABLED: 'disabled',
|
34
|
-
FADE: 'fade',
|
35
|
-
SHOW: 'show'
|
36
|
-
};
|
37
|
-
var Selector = {
|
38
|
-
DROPDOWN: '.dropdown',
|
39
|
-
NAV_LIST_GROUP: '.nav, .list-group',
|
40
|
-
ACTIVE: '.active',
|
41
|
-
ACTIVE_UL: '> li > .active',
|
42
|
-
DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
|
43
|
-
DROPDOWN_TOGGLE: '.dropdown-toggle',
|
44
|
-
DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
|
32
|
+
|
33
|
+
var Tab = function ($$$1) {
|
45
34
|
/**
|
46
35
|
* ------------------------------------------------------------------------
|
47
|
-
*
|
36
|
+
* Constants
|
48
37
|
* ------------------------------------------------------------------------
|
49
38
|
*/
|
39
|
+
var NAME = 'tab';
|
40
|
+
var VERSION = '4.1.3';
|
41
|
+
var DATA_KEY = 'bs.tab';
|
42
|
+
var EVENT_KEY = "." + DATA_KEY;
|
43
|
+
var DATA_API_KEY = '.data-api';
|
44
|
+
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
45
|
+
var Event = {
|
46
|
+
HIDE: "hide" + EVENT_KEY,
|
47
|
+
HIDDEN: "hidden" + EVENT_KEY,
|
48
|
+
SHOW: "show" + EVENT_KEY,
|
49
|
+
SHOWN: "shown" + EVENT_KEY,
|
50
|
+
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
|
51
|
+
};
|
52
|
+
var ClassName = {
|
53
|
+
DROPDOWN_MENU: 'dropdown-menu',
|
54
|
+
ACTIVE: 'active',
|
55
|
+
DISABLED: 'disabled',
|
56
|
+
FADE: 'fade',
|
57
|
+
SHOW: 'show'
|
58
|
+
};
|
59
|
+
var Selector = {
|
60
|
+
DROPDOWN: '.dropdown',
|
61
|
+
NAV_LIST_GROUP: '.nav, .list-group',
|
62
|
+
ACTIVE: '.active',
|
63
|
+
ACTIVE_UL: '> li > .active',
|
64
|
+
DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
|
65
|
+
DROPDOWN_TOGGLE: '.dropdown-toggle',
|
66
|
+
DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
|
67
|
+
/**
|
68
|
+
* ------------------------------------------------------------------------
|
69
|
+
* Class Definition
|
70
|
+
* ------------------------------------------------------------------------
|
71
|
+
*/
|
50
72
|
|
51
|
-
|
52
|
-
|
53
|
-
var Tab =
|
54
|
-
/*#__PURE__*/
|
55
|
-
function () {
|
56
|
-
function Tab(element) {
|
57
|
-
this._element = element;
|
58
|
-
} // Getters
|
73
|
+
};
|
59
74
|
|
75
|
+
var Tab =
|
76
|
+
/*#__PURE__*/
|
77
|
+
function () {
|
78
|
+
function Tab(element) {
|
79
|
+
this._element = element;
|
80
|
+
} // Getters
|
60
81
|
|
61
|
-
var _proto = Tab.prototype;
|
62
82
|
|
63
|
-
|
64
|
-
_proto.show = function show() {
|
65
|
-
var _this = this;
|
83
|
+
var _proto = Tab.prototype;
|
66
84
|
|
67
|
-
|
68
|
-
|
69
|
-
|
85
|
+
// Public
|
86
|
+
_proto.show = function show() {
|
87
|
+
var _this = this;
|
70
88
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
var selector = Util.getSelectorFromElement(this._element);
|
89
|
+
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
|
90
|
+
return;
|
91
|
+
}
|
75
92
|
|
76
|
-
|
77
|
-
var
|
78
|
-
|
79
|
-
|
80
|
-
}
|
93
|
+
var target;
|
94
|
+
var previous;
|
95
|
+
var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
|
96
|
+
var selector = Util.getSelectorFromElement(this._element);
|
81
97
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
});
|
98
|
+
if (listElement) {
|
99
|
+
var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
|
100
|
+
previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
|
101
|
+
previous = previous[previous.length - 1];
|
102
|
+
}
|
88
103
|
|
89
|
-
|
90
|
-
|
91
|
-
|
104
|
+
var hideEvent = $$$1.Event(Event.HIDE, {
|
105
|
+
relatedTarget: this._element
|
106
|
+
});
|
107
|
+
var showEvent = $$$1.Event(Event.SHOW, {
|
108
|
+
relatedTarget: previous
|
109
|
+
});
|
92
110
|
|
93
|
-
|
111
|
+
if (previous) {
|
112
|
+
$$$1(previous).trigger(hideEvent);
|
113
|
+
}
|
94
114
|
|
95
|
-
|
96
|
-
return;
|
97
|
-
}
|
115
|
+
$$$1(this._element).trigger(showEvent);
|
98
116
|
|
99
|
-
|
100
|
-
|
101
|
-
|
117
|
+
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
|
118
|
+
return;
|
119
|
+
}
|
102
120
|
|
103
|
-
|
121
|
+
if (selector) {
|
122
|
+
target = document.querySelector(selector);
|
123
|
+
}
|
104
124
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
125
|
+
this._activate(this._element, listElement);
|
126
|
+
|
127
|
+
var complete = function complete() {
|
128
|
+
var hiddenEvent = $$$1.Event(Event.HIDDEN, {
|
129
|
+
relatedTarget: _this._element
|
130
|
+
});
|
131
|
+
var shownEvent = $$$1.Event(Event.SHOWN, {
|
132
|
+
relatedTarget: previous
|
133
|
+
});
|
134
|
+
$$$1(previous).trigger(hiddenEvent);
|
135
|
+
$$$1(_this._element).trigger(shownEvent);
|
136
|
+
};
|
137
|
+
|
138
|
+
if (target) {
|
139
|
+
this._activate(target, target.parentNode, complete);
|
140
|
+
} else {
|
141
|
+
complete();
|
142
|
+
}
|
114
143
|
};
|
115
144
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
}
|
121
|
-
};
|
145
|
+
_proto.dispose = function dispose() {
|
146
|
+
$$$1.removeData(this._element, DATA_KEY);
|
147
|
+
this._element = null;
|
148
|
+
}; // Private
|
122
149
|
|
123
|
-
_proto.dispose = function dispose() {
|
124
|
-
$.removeData(this._element, DATA_KEY);
|
125
|
-
this._element = null;
|
126
|
-
}; // Private
|
127
150
|
|
151
|
+
_proto._activate = function _activate(element, container, callback) {
|
152
|
+
var _this2 = this;
|
128
153
|
|
129
|
-
|
130
|
-
var _this2 = this;
|
154
|
+
var activeElements;
|
131
155
|
|
132
|
-
|
156
|
+
if (container.nodeName === 'UL') {
|
157
|
+
activeElements = $$$1(container).find(Selector.ACTIVE_UL);
|
158
|
+
} else {
|
159
|
+
activeElements = $$$1(container).children(Selector.ACTIVE);
|
160
|
+
}
|
133
161
|
|
134
|
-
|
135
|
-
|
136
|
-
} else {
|
137
|
-
activeElements = $(container).children(Selector.ACTIVE);
|
138
|
-
}
|
162
|
+
var active = activeElements[0];
|
163
|
+
var isTransitioning = callback && active && $$$1(active).hasClass(ClassName.FADE);
|
139
164
|
|
140
|
-
|
141
|
-
|
165
|
+
var complete = function complete() {
|
166
|
+
return _this2._transitionComplete(element, active, callback);
|
167
|
+
};
|
142
168
|
|
143
|
-
|
144
|
-
|
169
|
+
if (active && isTransitioning) {
|
170
|
+
var transitionDuration = Util.getTransitionDurationFromElement(active);
|
171
|
+
$$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
172
|
+
} else {
|
173
|
+
complete();
|
174
|
+
}
|
145
175
|
};
|
146
176
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
complete();
|
152
|
-
}
|
153
|
-
};
|
177
|
+
_proto._transitionComplete = function _transitionComplete(element, active, callback) {
|
178
|
+
if (active) {
|
179
|
+
$$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
|
180
|
+
var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
|
154
181
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
|
182
|
+
if (dropdownChild) {
|
183
|
+
$$$1(dropdownChild).removeClass(ClassName.ACTIVE);
|
184
|
+
}
|
159
185
|
|
160
|
-
|
161
|
-
|
186
|
+
if (active.getAttribute('role') === 'tab') {
|
187
|
+
active.setAttribute('aria-selected', false);
|
188
|
+
}
|
162
189
|
}
|
163
190
|
|
164
|
-
|
165
|
-
active.setAttribute('aria-selected', false);
|
166
|
-
}
|
167
|
-
}
|
191
|
+
$$$1(element).addClass(ClassName.ACTIVE);
|
168
192
|
|
169
|
-
|
193
|
+
if (element.getAttribute('role') === 'tab') {
|
194
|
+
element.setAttribute('aria-selected', true);
|
195
|
+
}
|
170
196
|
|
171
|
-
|
172
|
-
element.
|
173
|
-
}
|
197
|
+
Util.reflow(element);
|
198
|
+
$$$1(element).addClass(ClassName.SHOW);
|
174
199
|
|
175
|
-
|
176
|
-
|
200
|
+
if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
|
201
|
+
var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
|
177
202
|
|
178
|
-
|
179
|
-
|
203
|
+
if (dropdownElement) {
|
204
|
+
var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
|
205
|
+
$$$1(dropdownToggleList).addClass(ClassName.ACTIVE);
|
206
|
+
}
|
180
207
|
|
181
|
-
|
182
|
-
var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
|
183
|
-
$(dropdownToggleList).addClass(ClassName.ACTIVE);
|
208
|
+
element.setAttribute('aria-expanded', true);
|
184
209
|
}
|
185
210
|
|
186
|
-
|
187
|
-
|
211
|
+
if (callback) {
|
212
|
+
callback();
|
213
|
+
}
|
214
|
+
}; // Static
|
188
215
|
|
189
|
-
if (callback) {
|
190
|
-
callback();
|
191
|
-
}
|
192
|
-
}; // Static
|
193
216
|
|
217
|
+
Tab._jQueryInterface = function _jQueryInterface(config) {
|
218
|
+
return this.each(function () {
|
219
|
+
var $this = $$$1(this);
|
220
|
+
var data = $this.data(DATA_KEY);
|
194
221
|
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
222
|
+
if (!data) {
|
223
|
+
data = new Tab(this);
|
224
|
+
$this.data(DATA_KEY, data);
|
225
|
+
}
|
199
226
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
227
|
+
if (typeof config === 'string') {
|
228
|
+
if (typeof data[config] === 'undefined') {
|
229
|
+
throw new TypeError("No method named \"" + config + "\"");
|
230
|
+
}
|
204
231
|
|
205
|
-
|
206
|
-
if (typeof data[config] === 'undefined') {
|
207
|
-
throw new TypeError("No method named \"" + config + "\"");
|
232
|
+
data[config]();
|
208
233
|
}
|
234
|
+
});
|
235
|
+
};
|
209
236
|
|
210
|
-
|
237
|
+
_createClass(Tab, null, [{
|
238
|
+
key: "VERSION",
|
239
|
+
get: function get() {
|
240
|
+
return VERSION;
|
211
241
|
}
|
212
|
-
});
|
213
|
-
};
|
242
|
+
}]);
|
214
243
|
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
244
|
+
return Tab;
|
245
|
+
}();
|
246
|
+
/**
|
247
|
+
* ------------------------------------------------------------------------
|
248
|
+
* Data Api implementation
|
249
|
+
* ------------------------------------------------------------------------
|
250
|
+
*/
|
221
251
|
|
222
|
-
return Tab;
|
223
|
-
}();
|
224
|
-
/**
|
225
|
-
* ------------------------------------------------------------------------
|
226
|
-
* Data Api implementation
|
227
|
-
* ------------------------------------------------------------------------
|
228
|
-
*/
|
229
252
|
|
253
|
+
$$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
|
254
|
+
event.preventDefault();
|
230
255
|
|
231
|
-
|
232
|
-
|
256
|
+
Tab._jQueryInterface.call($$$1(this), 'show');
|
257
|
+
});
|
258
|
+
/**
|
259
|
+
* ------------------------------------------------------------------------
|
260
|
+
* jQuery
|
261
|
+
* ------------------------------------------------------------------------
|
262
|
+
*/
|
233
263
|
|
234
|
-
Tab._jQueryInterface
|
235
|
-
|
236
|
-
/**
|
237
|
-
* ------------------------------------------------------------------------
|
238
|
-
* jQuery
|
239
|
-
* ------------------------------------------------------------------------
|
240
|
-
*/
|
264
|
+
$$$1.fn[NAME] = Tab._jQueryInterface;
|
265
|
+
$$$1.fn[NAME].Constructor = Tab;
|
241
266
|
|
242
|
-
|
243
|
-
|
267
|
+
$$$1.fn[NAME].noConflict = function () {
|
268
|
+
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
|
269
|
+
return Tab._jQueryInterface;
|
270
|
+
};
|
244
271
|
|
245
|
-
|
246
|
-
|
247
|
-
return Tab._jQueryInterface;
|
248
|
-
};
|
272
|
+
return Tab;
|
273
|
+
}($);
|
249
274
|
|
250
275
|
return Tab;
|
251
|
-
|
276
|
+
|
277
|
+
})));
|