bootstrap 5.0.0.beta2 → 5.0.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/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
|
|