bootstrap 5.0.0.beta2 → 5.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/assets/javascripts/bootstrap-sprockets.js +8 -7
- data/assets/javascripts/bootstrap.js +2525 -2460
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +77 -179
- data/assets/javascripts/bootstrap/base-component.js +140 -38
- data/assets/javascripts/bootstrap/button.js +54 -100
- data/assets/javascripts/bootstrap/carousel.js +335 -451
- data/assets/javascripts/bootstrap/collapse.js +195 -303
- data/assets/javascripts/bootstrap/dom/data.js +34 -47
- data/assets/javascripts/bootstrap/dom/event-handler.js +95 -90
- data/assets/javascripts/bootstrap/dom/manipulator.js +23 -21
- data/assets/javascripts/bootstrap/dom/selector-engine.js +20 -28
- data/assets/javascripts/bootstrap/dropdown.js +323 -358
- data/assets/javascripts/bootstrap/modal.js +537 -489
- data/assets/javascripts/bootstrap/offcanvas.js +720 -0
- data/assets/javascripts/bootstrap/popover.js +112 -180
- data/assets/javascripts/bootstrap/scrollspy.js +167 -235
- data/assets/javascripts/bootstrap/tab.js +121 -188
- data/assets/javascripts/bootstrap/toast.js +166 -243
- data/assets/javascripts/bootstrap/tooltip.js +333 -495
- data/assets/stylesheets/_bootstrap-grid.scss +1 -1
- data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
- data/assets/stylesheets/_bootstrap.scss +2 -1
- data/assets/stylesheets/bootstrap/_accordion.scss +24 -32
- data/assets/stylesheets/bootstrap/_buttons.scss +2 -0
- data/assets/stylesheets/bootstrap/_card.scss +6 -6
- data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
- data/assets/stylesheets/bootstrap/_dropdown.scss +14 -23
- data/assets/stylesheets/bootstrap/_functions.scss +61 -3
- data/assets/stylesheets/bootstrap/_images.scss +1 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +16 -5
- data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
- data/assets/stylesheets/bootstrap/_modal.scss +8 -24
- data/assets/stylesheets/bootstrap/_nav.scss +7 -0
- data/assets/stylesheets/bootstrap/_navbar.scss +2 -0
- data/assets/stylesheets/bootstrap/_offcanvas.scss +79 -0
- data/assets/stylesheets/bootstrap/_popover.scss +10 -10
- data/assets/stylesheets/bootstrap/_progress.scss +3 -0
- data/assets/stylesheets/bootstrap/_reboot.scss +7 -21
- data/assets/stylesheets/bootstrap/_spinners.scss +6 -2
- data/assets/stylesheets/bootstrap/_tables.scss +1 -0
- data/assets/stylesheets/bootstrap/_toasts.scss +1 -1
- data/assets/stylesheets/bootstrap/_tooltip.scss +4 -4
- data/assets/stylesheets/bootstrap/_transitions.scss +2 -0
- data/assets/stylesheets/bootstrap/_utilities.scss +65 -37
- data/assets/stylesheets/bootstrap/_variables.scss +162 -50
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +3 -1
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +1 -1
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +0 -4
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +1 -1
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +3 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +7 -2
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +25 -5
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +23 -11
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +2 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +55 -13
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +1 -1
- data/tasks/updater/network.rb +7 -1
- metadata +9 -6
@@ -1,67 +1,25 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap tab.js v5.0.
|
2
|
+
* Bootstrap tab.js v5.0.2 (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('./dom/
|
8
|
-
typeof define === 'function' && define.amd ? define(['./dom/
|
9
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.
|
10
|
-
}(this, (function (
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/event-handler', './base-component'], factory) :
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.SelectorEngine, global.EventHandler, global.Base));
|
10
|
+
}(this, (function (SelectorEngine, 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 Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
15
|
-
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
16
14
|
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
15
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
17
16
|
var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
var descriptor = props[i];
|
22
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
23
|
-
descriptor.configurable = true;
|
24
|
-
if ("value" in descriptor) descriptor.writable = true;
|
25
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
26
|
-
}
|
27
|
-
}
|
28
|
-
|
29
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
30
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
31
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
32
|
-
return Constructor;
|
33
|
-
}
|
34
|
-
|
35
|
-
function _inheritsLoose(subClass, superClass) {
|
36
|
-
subClass.prototype = Object.create(superClass.prototype);
|
37
|
-
subClass.prototype.constructor = subClass;
|
38
|
-
|
39
|
-
_setPrototypeOf(subClass, superClass);
|
40
|
-
}
|
41
|
-
|
42
|
-
function _setPrototypeOf(o, p) {
|
43
|
-
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
44
|
-
o.__proto__ = p;
|
45
|
-
return o;
|
46
|
-
};
|
47
|
-
|
48
|
-
return _setPrototypeOf(o, p);
|
49
|
-
}
|
50
|
-
|
51
|
-
/**
|
52
|
-
* --------------------------------------------------------------------------
|
53
|
-
* Bootstrap (v5.0.0-beta2): util/index.js
|
54
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
55
|
-
* --------------------------------------------------------------------------
|
56
|
-
*/
|
57
|
-
var MILLISECONDS_MULTIPLIER = 1000;
|
58
|
-
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
59
|
-
|
60
|
-
var getSelector = function getSelector(element) {
|
61
|
-
var selector = element.getAttribute('data-bs-target');
|
18
|
+
const getSelector = element => {
|
19
|
+
let selector = element.getAttribute('data-bs-target');
|
62
20
|
|
63
21
|
if (!selector || selector === '#') {
|
64
|
-
|
22
|
+
let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
|
65
23
|
// so everything starting with `#` or `.`. If a "real" URL is used as the selector,
|
66
24
|
// `document.querySelector` will rightfully complain it is invalid.
|
67
25
|
// See https://github.com/twbs/bootstrap/issues/32273
|
@@ -72,7 +30,7 @@
|
|
72
30
|
|
73
31
|
|
74
32
|
if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
|
75
|
-
hrefAttr =
|
33
|
+
hrefAttr = `#${hrefAttr.split('#')[1]}`;
|
76
34
|
}
|
77
35
|
|
78
36
|
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
@@ -81,63 +39,33 @@
|
|
81
39
|
return selector;
|
82
40
|
};
|
83
41
|
|
84
|
-
|
85
|
-
|
42
|
+
const getElementFromSelector = element => {
|
43
|
+
const selector = getSelector(element);
|
86
44
|
return selector ? document.querySelector(selector) : null;
|
87
45
|
};
|
88
46
|
|
89
|
-
|
90
|
-
if (!element) {
|
91
|
-
return
|
92
|
-
}
|
93
|
-
|
94
|
-
|
95
|
-
var _window$getComputedSt = window.getComputedStyle(element),
|
96
|
-
transitionDuration = _window$getComputedSt.transitionDuration,
|
97
|
-
transitionDelay = _window$getComputedSt.transitionDelay;
|
98
|
-
|
99
|
-
var floatTransitionDuration = Number.parseFloat(transitionDuration);
|
100
|
-
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
|
101
|
-
|
102
|
-
if (!floatTransitionDuration && !floatTransitionDelay) {
|
103
|
-
return 0;
|
104
|
-
} // If multiple durations are defined, take the first
|
105
|
-
|
106
|
-
|
107
|
-
transitionDuration = transitionDuration.split(',')[0];
|
108
|
-
transitionDelay = transitionDelay.split(',')[0];
|
109
|
-
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
|
110
|
-
};
|
111
|
-
|
112
|
-
var triggerTransitionEnd = function triggerTransitionEnd(element) {
|
113
|
-
element.dispatchEvent(new Event(TRANSITION_END));
|
114
|
-
};
|
47
|
+
const isDisabled = element => {
|
48
|
+
if (!element || element.nodeType !== Node.ELEMENT_NODE) {
|
49
|
+
return true;
|
50
|
+
}
|
115
51
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
var emulatedDuration = duration + durationPadding;
|
52
|
+
if (element.classList.contains('disabled')) {
|
53
|
+
return true;
|
54
|
+
}
|
120
55
|
|
121
|
-
|
122
|
-
|
123
|
-
element.removeEventListener(TRANSITION_END, listener);
|
56
|
+
if (typeof element.disabled !== 'undefined') {
|
57
|
+
return element.disabled;
|
124
58
|
}
|
125
59
|
|
126
|
-
element.
|
127
|
-
setTimeout(function () {
|
128
|
-
if (!called) {
|
129
|
-
triggerTransitionEnd(element);
|
130
|
-
}
|
131
|
-
}, emulatedDuration);
|
60
|
+
return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';
|
132
61
|
};
|
133
62
|
|
134
|
-
|
135
|
-
return element.offsetHeight;
|
136
|
-
};
|
63
|
+
const reflow = element => element.offsetHeight;
|
137
64
|
|
138
|
-
|
139
|
-
|
140
|
-
|
65
|
+
const getjQuery = () => {
|
66
|
+
const {
|
67
|
+
jQuery
|
68
|
+
} = window;
|
141
69
|
|
142
70
|
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
|
143
71
|
return jQuery;
|
@@ -146,27 +74,35 @@
|
|
146
74
|
return null;
|
147
75
|
};
|
148
76
|
|
149
|
-
|
77
|
+
const DOMContentLoadedCallbacks = [];
|
78
|
+
|
79
|
+
const onDOMContentLoaded = callback => {
|
150
80
|
if (document.readyState === 'loading') {
|
151
|
-
document
|
81
|
+
// add listener on the first call when the document is in loading state
|
82
|
+
if (!DOMContentLoadedCallbacks.length) {
|
83
|
+
document.addEventListener('DOMContentLoaded', () => {
|
84
|
+
DOMContentLoadedCallbacks.forEach(callback => callback());
|
85
|
+
});
|
86
|
+
}
|
87
|
+
|
88
|
+
DOMContentLoadedCallbacks.push(callback);
|
152
89
|
} else {
|
153
90
|
callback();
|
154
91
|
}
|
155
92
|
};
|
156
93
|
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
onDOMContentLoaded(function () {
|
161
|
-
var $ = getjQuery();
|
94
|
+
const defineJQueryPlugin = plugin => {
|
95
|
+
onDOMContentLoaded(() => {
|
96
|
+
const $ = getjQuery();
|
162
97
|
/* istanbul ignore if */
|
163
98
|
|
164
99
|
if ($) {
|
165
|
-
|
100
|
+
const name = plugin.NAME;
|
101
|
+
const JQUERY_NO_CONFLICT = $.fn[name];
|
166
102
|
$.fn[name] = plugin.jQueryInterface;
|
167
103
|
$.fn[name].Constructor = plugin;
|
168
104
|
|
169
|
-
$.fn[name].noConflict =
|
105
|
+
$.fn[name].noConflict = () => {
|
170
106
|
$.fn[name] = JQUERY_NO_CONFLICT;
|
171
107
|
return plugin.jQueryInterface;
|
172
108
|
};
|
@@ -174,71 +110,71 @@
|
|
174
110
|
});
|
175
111
|
};
|
176
112
|
|
113
|
+
/**
|
114
|
+
* --------------------------------------------------------------------------
|
115
|
+
* Bootstrap (v5.0.2): tab.js
|
116
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
117
|
+
* --------------------------------------------------------------------------
|
118
|
+
*/
|
177
119
|
/**
|
178
120
|
* ------------------------------------------------------------------------
|
179
121
|
* Constants
|
180
122
|
* ------------------------------------------------------------------------
|
181
123
|
*/
|
182
124
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
|
125
|
+
const NAME = 'tab';
|
126
|
+
const DATA_KEY = 'bs.tab';
|
127
|
+
const EVENT_KEY = `.${DATA_KEY}`;
|
128
|
+
const DATA_API_KEY = '.data-api';
|
129
|
+
const EVENT_HIDE = `hide${EVENT_KEY}`;
|
130
|
+
const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
|
131
|
+
const EVENT_SHOW = `show${EVENT_KEY}`;
|
132
|
+
const EVENT_SHOWN = `shown${EVENT_KEY}`;
|
133
|
+
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
|
134
|
+
const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
|
135
|
+
const CLASS_NAME_ACTIVE = 'active';
|
136
|
+
const CLASS_NAME_FADE = 'fade';
|
137
|
+
const CLASS_NAME_SHOW = 'show';
|
138
|
+
const SELECTOR_DROPDOWN = '.dropdown';
|
139
|
+
const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
|
140
|
+
const SELECTOR_ACTIVE = '.active';
|
141
|
+
const SELECTOR_ACTIVE_UL = ':scope > li > .active';
|
142
|
+
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
|
143
|
+
const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
|
144
|
+
const SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
|
204
145
|
/**
|
205
146
|
* ------------------------------------------------------------------------
|
206
147
|
* Class Definition
|
207
148
|
* ------------------------------------------------------------------------
|
208
149
|
*/
|
209
150
|
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
}
|
216
|
-
|
217
|
-
var _proto = Tab.prototype;
|
151
|
+
class Tab extends BaseComponent__default['default'] {
|
152
|
+
// Getters
|
153
|
+
static get NAME() {
|
154
|
+
return NAME;
|
155
|
+
} // Public
|
218
156
|
|
219
|
-
// Public
|
220
|
-
_proto.show = function show() {
|
221
|
-
var _this = this;
|
222
157
|
|
223
|
-
|
158
|
+
show() {
|
159
|
+
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
|
224
160
|
return;
|
225
161
|
}
|
226
162
|
|
227
|
-
|
228
|
-
|
163
|
+
let previous;
|
164
|
+
const target = getElementFromSelector(this._element);
|
229
165
|
|
230
|
-
|
166
|
+
const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);
|
231
167
|
|
232
168
|
if (listElement) {
|
233
|
-
|
169
|
+
const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
|
234
170
|
previous = SelectorEngine__default['default'].find(itemSelector, listElement);
|
235
171
|
previous = previous[previous.length - 1];
|
236
172
|
}
|
237
173
|
|
238
|
-
|
174
|
+
const hideEvent = previous ? EventHandler__default['default'].trigger(previous, EVENT_HIDE, {
|
239
175
|
relatedTarget: this._element
|
240
176
|
}) : null;
|
241
|
-
|
177
|
+
const showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
|
242
178
|
relatedTarget: previous
|
243
179
|
});
|
244
180
|
|
@@ -248,11 +184,11 @@
|
|
248
184
|
|
249
185
|
this._activate(this._element, listElement);
|
250
186
|
|
251
|
-
|
187
|
+
const complete = () => {
|
252
188
|
EventHandler__default['default'].trigger(previous, EVENT_HIDDEN, {
|
253
|
-
relatedTarget:
|
189
|
+
relatedTarget: this._element
|
254
190
|
});
|
255
|
-
EventHandler__default['default'].trigger(
|
191
|
+
EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, {
|
256
192
|
relatedTarget: previous
|
257
193
|
});
|
258
194
|
};
|
@@ -263,33 +199,28 @@
|
|
263
199
|
complete();
|
264
200
|
}
|
265
201
|
} // Private
|
266
|
-
;
|
267
202
|
|
268
|
-
_proto._activate = function _activate(element, container, callback) {
|
269
|
-
var _this2 = this;
|
270
203
|
|
271
|
-
|
272
|
-
|
273
|
-
|
204
|
+
_activate(element, container, callback) {
|
205
|
+
const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine__default['default'].find(SELECTOR_ACTIVE_UL, container) : SelectorEngine__default['default'].children(container, SELECTOR_ACTIVE);
|
206
|
+
const active = activeElements[0];
|
207
|
+
const isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE);
|
274
208
|
|
275
|
-
|
276
|
-
return _this2._transitionComplete(element, active, callback);
|
277
|
-
};
|
209
|
+
const complete = () => this._transitionComplete(element, active, callback);
|
278
210
|
|
279
211
|
if (active && isTransitioning) {
|
280
|
-
var transitionDuration = getTransitionDurationFromElement(active);
|
281
212
|
active.classList.remove(CLASS_NAME_SHOW);
|
282
|
-
|
283
|
-
|
213
|
+
|
214
|
+
this._queueCallback(complete, element, true);
|
284
215
|
} else {
|
285
216
|
complete();
|
286
217
|
}
|
287
|
-
}
|
218
|
+
}
|
288
219
|
|
289
|
-
|
220
|
+
_transitionComplete(element, active, callback) {
|
290
221
|
if (active) {
|
291
222
|
active.classList.remove(CLASS_NAME_ACTIVE);
|
292
|
-
|
223
|
+
const dropdownChild = SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);
|
293
224
|
|
294
225
|
if (dropdownChild) {
|
295
226
|
dropdownChild.classList.remove(CLASS_NAME_ACTIVE);
|
@@ -312,13 +243,17 @@
|
|
312
243
|
element.classList.add(CLASS_NAME_SHOW);
|
313
244
|
}
|
314
245
|
|
315
|
-
|
316
|
-
|
246
|
+
let parent = element.parentNode;
|
247
|
+
|
248
|
+
if (parent && parent.nodeName === 'LI') {
|
249
|
+
parent = parent.parentNode;
|
250
|
+
}
|
251
|
+
|
252
|
+
if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
|
253
|
+
const dropdownElement = element.closest(SELECTOR_DROPDOWN);
|
317
254
|
|
318
255
|
if (dropdownElement) {
|
319
|
-
SelectorEngine__default['default'].find(SELECTOR_DROPDOWN_TOGGLE).forEach(
|
320
|
-
return dropdown.classList.add(CLASS_NAME_ACTIVE);
|
321
|
-
});
|
256
|
+
SelectorEngine__default['default'].find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE));
|
322
257
|
}
|
323
258
|
|
324
259
|
element.setAttribute('aria-expanded', true);
|
@@ -328,32 +263,23 @@
|
|
328
263
|
callback();
|
329
264
|
}
|
330
265
|
} // Static
|
331
|
-
;
|
332
266
|
|
333
|
-
|
267
|
+
|
268
|
+
static jQueryInterface(config) {
|
334
269
|
return this.each(function () {
|
335
|
-
|
270
|
+
const data = Tab.getOrCreateInstance(this);
|
336
271
|
|
337
272
|
if (typeof config === 'string') {
|
338
273
|
if (typeof data[config] === 'undefined') {
|
339
|
-
throw new TypeError(
|
274
|
+
throw new TypeError(`No method named "${config}"`);
|
340
275
|
}
|
341
276
|
|
342
277
|
data[config]();
|
343
278
|
}
|
344
279
|
});
|
345
|
-
}
|
346
|
-
|
347
|
-
_createClass(Tab, null, [{
|
348
|
-
key: "DATA_KEY",
|
349
|
-
get: // Getters
|
350
|
-
function get() {
|
351
|
-
return DATA_KEY;
|
352
|
-
}
|
353
|
-
}]);
|
280
|
+
}
|
354
281
|
|
355
|
-
|
356
|
-
}(BaseComponent__default['default']);
|
282
|
+
}
|
357
283
|
/**
|
358
284
|
* ------------------------------------------------------------------------
|
359
285
|
* Data Api implementation
|
@@ -362,8 +288,15 @@
|
|
362
288
|
|
363
289
|
|
364
290
|
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
365
|
-
|
366
|
-
|
291
|
+
if (['A', 'AREA'].includes(this.tagName)) {
|
292
|
+
event.preventDefault();
|
293
|
+
}
|
294
|
+
|
295
|
+
if (isDisabled(this)) {
|
296
|
+
return;
|
297
|
+
}
|
298
|
+
|
299
|
+
const data = Tab.getOrCreateInstance(this);
|
367
300
|
data.show();
|
368
301
|
});
|
369
302
|
/**
|
@@ -373,7 +306,7 @@
|
|
373
306
|
* add .Tab to jQuery only if jQuery is present
|
374
307
|
*/
|
375
308
|
|
376
|
-
defineJQueryPlugin(
|
309
|
+
defineJQueryPlugin(Tab);
|
377
310
|
|
378
311
|
return Tab;
|
379
312
|
|