@coreui/coreui 4.2.1 → 4.2.3
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.
- package/README.md +1 -1
- package/dist/css/coreui-grid.css +61 -61
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +1 -1
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +62 -62
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +2 -2
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +1 -1
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +1 -1
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +2 -2
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +2 -2
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +72 -2
- package/dist/css/coreui-utilities.css.map +1 -1
- package/dist/css/coreui-utilities.min.css +2 -2
- package/dist/css/coreui-utilities.min.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.css +73 -3
- package/dist/css/coreui-utilities.rtl.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.min.css +3 -3
- package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
- package/dist/css/coreui.css +195 -208
- package/dist/css/coreui.css.map +1 -1
- package/dist/css/coreui.min.css +2 -2
- package/dist/css/coreui.min.css.map +1 -1
- package/dist/css/coreui.rtl.css +196 -169
- package/dist/css/coreui.rtl.css.map +1 -1
- package/dist/css/coreui.rtl.min.css +3 -3
- package/dist/css/coreui.rtl.min.css.map +1 -1
- package/dist/js/coreui.bundle.js +704 -1534
- package/dist/js/coreui.bundle.js.map +1 -1
- package/dist/js/coreui.bundle.min.js +2 -2
- package/dist/js/coreui.bundle.min.js.map +1 -1
- package/dist/js/coreui.esm.js +641 -1482
- package/dist/js/coreui.esm.js.map +1 -1
- package/dist/js/coreui.esm.min.js +2 -2
- package/dist/js/coreui.esm.min.js.map +1 -1
- package/dist/js/coreui.js +642 -1483
- package/dist/js/coreui.js.map +1 -1
- package/dist/js/coreui.min.js +2 -2
- package/dist/js/coreui.min.js.map +1 -1
- package/js/dist/alert.js +15 -21
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +14 -25
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +13 -12
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +27 -103
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +27 -84
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +8 -12
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +32 -69
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +4 -17
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +41 -24
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +55 -118
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +42 -109
- package/js/dist/modal.js.map +1 -1
- package/js/dist/navigation.js +27 -59
- package/js/dist/navigation.js.map +1 -1
- package/js/dist/offcanvas.js +26 -70
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +18 -21
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +43 -71
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/sidebar.js +21 -65
- package/js/dist/sidebar.js.map +1 -1
- package/js/dist/tab.js +41 -105
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +26 -60
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +88 -201
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +24 -43
- package/js/dist/util/backdrop.js.map +1 -1
- package/js/dist/util/component-functions.js +14 -12
- package/js/dist/util/component-functions.js.map +1 -1
- package/js/dist/util/config.js +14 -20
- package/js/dist/util/config.js.map +1 -1
- package/js/dist/util/focustrap.js +15 -23
- package/js/dist/util/focustrap.js.map +1 -1
- package/js/dist/util/index.js +41 -110
- package/js/dist/util/index.js.map +1 -1
- package/js/dist/util/sanitizer.js +10 -20
- package/js/dist/util/sanitizer.js.map +1 -1
- package/js/dist/util/scrollbar.js +20 -39
- package/js/dist/util/scrollbar.js.map +1 -1
- package/js/dist/util/swipe.js +19 -33
- package/js/dist/util/swipe.js.map +1 -1
- package/js/dist/util/template-factory.js +22 -42
- package/js/dist/util/template-factory.js.map +1 -1
- package/js/src/alert.js +5 -5
- package/js/src/base-component.js +6 -6
- package/js/src/button.js +4 -6
- package/js/src/carousel.js +8 -9
- package/js/src/collapse.js +9 -14
- package/js/src/dom/data.js +2 -2
- package/js/src/dom/event-handler.js +19 -16
- package/js/src/dom/manipulator.js +2 -2
- package/js/src/dom/selector-engine.js +49 -6
- package/js/src/dropdown.js +19 -9
- package/js/src/modal.js +26 -22
- package/js/src/navigation.js +7 -7
- package/js/src/offcanvas.js +11 -12
- package/js/src/popover.js +3 -3
- package/js/src/scrollspy.js +14 -10
- package/js/src/sidebar.js +7 -7
- package/js/src/tab.js +13 -23
- package/js/src/toast.js +13 -8
- package/js/src/tooltip.js +53 -75
- package/js/src/util/backdrop.js +7 -4
- package/js/src/util/component-functions.js +8 -4
- package/js/src/util/config.js +7 -5
- package/js/src/util/focustrap.js +7 -4
- package/js/src/util/index.js +21 -51
- package/js/src/util/sanitizer.js +4 -4
- package/js/src/util/scrollbar.js +7 -4
- package/js/src/util/swipe.js +7 -4
- package/js/src/util/template-factory.js +9 -6
- package/package.json +31 -30
- package/scss/_accordion.scss +7 -3
- package/scss/_button-group.scss +1 -1
- package/scss/_buttons.scss +31 -6
- package/scss/_carousel.scss +0 -3
- package/scss/_dropdown.scss +2 -1
- package/scss/_functions.scss +2 -2
- package/scss/_icon.scss +1 -1
- package/scss/_list-group.scss +6 -5
- package/scss/_modal.scss +1 -1
- package/scss/_nav.scss +2 -2
- package/scss/_navbar.scss +3 -1
- package/scss/_offcanvas.scss +5 -4
- package/scss/_pagination.scss +1 -1
- package/scss/_placeholders.scss +1 -1
- package/scss/_popover.scss +5 -5
- package/scss/_spinners.scss +2 -2
- package/scss/_toasts.scss +5 -2
- package/scss/_variables.scss +18 -16
- package/scss/coreui-grid.rtl.scss +1 -1
- package/scss/coreui-grid.scss +1 -1
- package/scss/coreui-reboot.rtl.scss +1 -1
- package/scss/coreui-reboot.scss +1 -1
- package/scss/coreui-utilities.rtl.scss +1 -1
- package/scss/coreui-utilities.scss +4 -1
- package/scss/coreui.rtl.scss +1 -1
- package/scss/coreui.scss +1 -1
- package/scss/forms/_floating-labels.scss +1 -0
- package/scss/forms/_input-group.scss +19 -8
- package/scss/helpers/_vr.scss +1 -1
- package/scss/mixins/_forms.scss +10 -11
- package/scss/mixins/_table-variants.scss +2 -2
- package/scss/mixins/_utilities.scss +1 -1
- package/scss/sidebar/_sidebar-nav.scss +5 -1
package/js/dist/tab.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI tab.js v4.2.
|
|
2
|
+
* CoreUI tab.js v4.2.3 (https://coreui.io)
|
|
3
3
|
* Copyright 2022 The CoreUI Team (https://github.com/orgs/coreui/people)
|
|
4
4
|
* Licensed under MIT (https://coreui.io)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/selector-engine'), require('./base-component')) :
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
|
|
8
8
|
typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/selector-engine', './base-component'], factory) :
|
|
9
9
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Index, global.EventHandler, global.SelectorEngine, global.BaseComponent));
|
|
10
|
-
})(this, (function (
|
|
10
|
+
})(this, (function (index_js, EventHandler, SelectorEngine, BaseComponent) { 'use strict';
|
|
11
11
|
|
|
12
12
|
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
13
13
|
|
|
@@ -17,13 +17,14 @@
|
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* --------------------------------------------------------------------------
|
|
20
|
-
* CoreUI (v4.2.
|
|
20
|
+
* CoreUI (v4.2.3): tab.js
|
|
21
21
|
* Licensed under MIT (https://coreui.io/license)
|
|
22
22
|
*
|
|
23
23
|
* This component is a modified version of the Bootstrap's tab.js
|
|
24
24
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
25
25
|
* --------------------------------------------------------------------------
|
|
26
26
|
*/
|
|
27
|
+
|
|
27
28
|
/**
|
|
28
29
|
* Constants
|
|
29
30
|
*/
|
|
@@ -48,15 +49,14 @@
|
|
|
48
49
|
const CLASS_DROPDOWN = 'dropdown';
|
|
49
50
|
const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
|
|
50
51
|
const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
|
|
51
|
-
const SELECTOR_DROPDOWN_ITEM = '.dropdown-item';
|
|
52
52
|
const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';
|
|
53
53
|
const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
|
|
54
54
|
const SELECTOR_OUTER = '.nav-item, .list-group-item';
|
|
55
55
|
const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
|
|
56
56
|
const SELECTOR_DATA_TOGGLE = '[data-coreui-toggle="tab"], [data-coreui-toggle="pill"], [data-coreui-toggle="list"]'; // todo:v6: could be only `tab`
|
|
57
|
-
|
|
58
57
|
const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
|
|
59
58
|
const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-coreui-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-coreui-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-coreui-toggle="list"]`;
|
|
59
|
+
|
|
60
60
|
/**
|
|
61
61
|
* Class definition
|
|
62
62
|
*/
|
|
@@ -65,273 +65,209 @@
|
|
|
65
65
|
constructor(element) {
|
|
66
66
|
super(element);
|
|
67
67
|
this._parent = this._element.closest(SELECTOR_TAB_PANEL);
|
|
68
|
-
|
|
69
68
|
if (!this._parent) {
|
|
70
|
-
return;
|
|
69
|
+
return;
|
|
70
|
+
// todo: should Throw exception on v6
|
|
71
71
|
// throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)
|
|
72
|
-
}
|
|
73
|
-
|
|
72
|
+
}
|
|
74
73
|
|
|
74
|
+
// Set up initial aria attributes
|
|
75
75
|
this._setInitialAttributes(this._parent, this._getChildren());
|
|
76
|
-
|
|
77
76
|
EventHandler__default.default.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
|
|
78
|
-
}
|
|
79
|
-
|
|
77
|
+
}
|
|
80
78
|
|
|
79
|
+
// Getters
|
|
81
80
|
static get NAME() {
|
|
82
81
|
return NAME;
|
|
83
|
-
}
|
|
84
|
-
|
|
82
|
+
}
|
|
85
83
|
|
|
84
|
+
// Public
|
|
86
85
|
show() {
|
|
87
86
|
// Shows this elem and deactivate the active sibling if exists
|
|
88
87
|
const innerElem = this._element;
|
|
89
|
-
|
|
90
88
|
if (this._elemIsActive(innerElem)) {
|
|
91
89
|
return;
|
|
92
|
-
}
|
|
93
|
-
|
|
90
|
+
}
|
|
94
91
|
|
|
92
|
+
// Search for active tab on same parent to deactivate it
|
|
95
93
|
const active = this._getActiveElem();
|
|
96
|
-
|
|
97
94
|
const hideEvent = active ? EventHandler__default.default.trigger(active, EVENT_HIDE, {
|
|
98
95
|
relatedTarget: innerElem
|
|
99
96
|
}) : null;
|
|
100
97
|
const showEvent = EventHandler__default.default.trigger(innerElem, EVENT_SHOW, {
|
|
101
98
|
relatedTarget: active
|
|
102
99
|
});
|
|
103
|
-
|
|
104
100
|
if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
|
|
105
101
|
return;
|
|
106
102
|
}
|
|
107
|
-
|
|
108
103
|
this._deactivate(active, innerElem);
|
|
109
|
-
|
|
110
104
|
this._activate(innerElem, active);
|
|
111
|
-
}
|
|
112
|
-
|
|
105
|
+
}
|
|
113
106
|
|
|
107
|
+
// Private
|
|
114
108
|
_activate(element, relatedElem) {
|
|
115
109
|
if (!element) {
|
|
116
110
|
return;
|
|
117
111
|
}
|
|
118
|
-
|
|
119
112
|
element.classList.add(CLASS_NAME_ACTIVE);
|
|
120
|
-
|
|
121
|
-
this._activate(index.getElementFromSelector(element)); // Search and activate/show the proper section
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const isAnimated = element.classList.contains(CLASS_NAME_FADE);
|
|
113
|
+
this._activate(SelectorEngine__default.default.getElementFromSelector(element)); // Search and activate/show the proper section
|
|
125
114
|
|
|
126
115
|
const complete = () => {
|
|
127
|
-
if (isAnimated) {
|
|
128
|
-
// todo: maybe is redundant
|
|
129
|
-
element.classList.add(CLASS_NAME_SHOW);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
116
|
if (element.getAttribute('role') !== 'tab') {
|
|
117
|
+
element.classList.add(CLASS_NAME_SHOW);
|
|
133
118
|
return;
|
|
134
119
|
}
|
|
135
|
-
|
|
136
|
-
element.focus();
|
|
137
120
|
element.removeAttribute('tabindex');
|
|
138
121
|
element.setAttribute('aria-selected', true);
|
|
139
|
-
|
|
140
122
|
this._toggleDropDown(element, true);
|
|
141
|
-
|
|
142
123
|
EventHandler__default.default.trigger(element, EVENT_SHOWN, {
|
|
143
124
|
relatedTarget: relatedElem
|
|
144
125
|
});
|
|
145
126
|
};
|
|
146
|
-
|
|
147
|
-
this._queueCallback(complete, element, isAnimated);
|
|
127
|
+
this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));
|
|
148
128
|
}
|
|
149
|
-
|
|
150
129
|
_deactivate(element, relatedElem) {
|
|
151
130
|
if (!element) {
|
|
152
131
|
return;
|
|
153
132
|
}
|
|
154
|
-
|
|
155
133
|
element.classList.remove(CLASS_NAME_ACTIVE);
|
|
156
134
|
element.blur();
|
|
157
|
-
|
|
158
|
-
this._deactivate(index.getElementFromSelector(element)); // Search and deactivate the shown section too
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
const isAnimated = element.classList.contains(CLASS_NAME_FADE);
|
|
135
|
+
this._deactivate(SelectorEngine__default.default.getElementFromSelector(element)); // Search and deactivate the shown section too
|
|
162
136
|
|
|
163
137
|
const complete = () => {
|
|
164
|
-
if (isAnimated) {
|
|
165
|
-
// todo maybe is redundant
|
|
166
|
-
element.classList.remove(CLASS_NAME_SHOW);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
138
|
if (element.getAttribute('role') !== 'tab') {
|
|
139
|
+
element.classList.remove(CLASS_NAME_SHOW);
|
|
170
140
|
return;
|
|
171
141
|
}
|
|
172
|
-
|
|
173
142
|
element.setAttribute('aria-selected', false);
|
|
174
143
|
element.setAttribute('tabindex', '-1');
|
|
175
|
-
|
|
176
144
|
this._toggleDropDown(element, false);
|
|
177
|
-
|
|
178
145
|
EventHandler__default.default.trigger(element, EVENT_HIDDEN, {
|
|
179
146
|
relatedTarget: relatedElem
|
|
180
147
|
});
|
|
181
148
|
};
|
|
182
|
-
|
|
183
|
-
this._queueCallback(complete, element, isAnimated);
|
|
149
|
+
this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));
|
|
184
150
|
}
|
|
185
|
-
|
|
186
151
|
_keydown(event) {
|
|
187
152
|
if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {
|
|
188
153
|
return;
|
|
189
154
|
}
|
|
190
|
-
|
|
191
155
|
event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
|
|
192
|
-
|
|
193
156
|
event.preventDefault();
|
|
194
157
|
const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
|
|
195
|
-
const nextActiveElement =
|
|
196
|
-
|
|
158
|
+
const nextActiveElement = index_js.getNextActiveElement(this._getChildren().filter(element => !index_js.isDisabled(element)), event.target, isNext, true);
|
|
197
159
|
if (nextActiveElement) {
|
|
160
|
+
nextActiveElement.focus({
|
|
161
|
+
preventScroll: true
|
|
162
|
+
});
|
|
198
163
|
Tab.getOrCreateInstance(nextActiveElement).show();
|
|
199
164
|
}
|
|
200
165
|
}
|
|
201
|
-
|
|
202
166
|
_getChildren() {
|
|
203
167
|
// collection of inner elements
|
|
204
168
|
return SelectorEngine__default.default.find(SELECTOR_INNER_ELEM, this._parent);
|
|
205
169
|
}
|
|
206
|
-
|
|
207
170
|
_getActiveElem() {
|
|
208
171
|
return this._getChildren().find(child => this._elemIsActive(child)) || null;
|
|
209
172
|
}
|
|
210
|
-
|
|
211
173
|
_setInitialAttributes(parent, children) {
|
|
212
174
|
this._setAttributeIfNotExists(parent, 'role', 'tablist');
|
|
213
|
-
|
|
214
175
|
for (const child of children) {
|
|
215
176
|
this._setInitialAttributesOnChild(child);
|
|
216
177
|
}
|
|
217
178
|
}
|
|
218
|
-
|
|
219
179
|
_setInitialAttributesOnChild(child) {
|
|
220
180
|
child = this._getInnerElement(child);
|
|
221
|
-
|
|
222
181
|
const isActive = this._elemIsActive(child);
|
|
223
|
-
|
|
224
182
|
const outerElem = this._getOuterElement(child);
|
|
225
|
-
|
|
226
183
|
child.setAttribute('aria-selected', isActive);
|
|
227
|
-
|
|
228
184
|
if (outerElem !== child) {
|
|
229
185
|
this._setAttributeIfNotExists(outerElem, 'role', 'presentation');
|
|
230
186
|
}
|
|
231
|
-
|
|
232
187
|
if (!isActive) {
|
|
233
188
|
child.setAttribute('tabindex', '-1');
|
|
234
189
|
}
|
|
190
|
+
this._setAttributeIfNotExists(child, 'role', 'tab');
|
|
235
191
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
192
|
+
// set attributes to the related panel too
|
|
239
193
|
this._setInitialAttributesOnTargetPanel(child);
|
|
240
194
|
}
|
|
241
|
-
|
|
242
195
|
_setInitialAttributesOnTargetPanel(child) {
|
|
243
|
-
const target =
|
|
244
|
-
|
|
196
|
+
const target = SelectorEngine__default.default.getElementFromSelector(child);
|
|
245
197
|
if (!target) {
|
|
246
198
|
return;
|
|
247
199
|
}
|
|
248
|
-
|
|
249
200
|
this._setAttributeIfNotExists(target, 'role', 'tabpanel');
|
|
250
|
-
|
|
251
201
|
if (child.id) {
|
|
252
202
|
this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`);
|
|
253
203
|
}
|
|
254
204
|
}
|
|
255
|
-
|
|
256
205
|
_toggleDropDown(element, open) {
|
|
257
206
|
const outerElem = this._getOuterElement(element);
|
|
258
|
-
|
|
259
207
|
if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
|
|
260
208
|
return;
|
|
261
209
|
}
|
|
262
|
-
|
|
263
210
|
const toggle = (selector, className) => {
|
|
264
211
|
const element = SelectorEngine__default.default.findOne(selector, outerElem);
|
|
265
|
-
|
|
266
212
|
if (element) {
|
|
267
213
|
element.classList.toggle(className, open);
|
|
268
214
|
}
|
|
269
215
|
};
|
|
270
|
-
|
|
271
216
|
toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
|
|
272
217
|
toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW);
|
|
273
|
-
toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE);
|
|
274
218
|
outerElem.setAttribute('aria-expanded', open);
|
|
275
219
|
}
|
|
276
|
-
|
|
277
220
|
_setAttributeIfNotExists(element, attribute, value) {
|
|
278
221
|
if (!element.hasAttribute(attribute)) {
|
|
279
222
|
element.setAttribute(attribute, value);
|
|
280
223
|
}
|
|
281
224
|
}
|
|
282
|
-
|
|
283
225
|
_elemIsActive(elem) {
|
|
284
226
|
return elem.classList.contains(CLASS_NAME_ACTIVE);
|
|
285
|
-
}
|
|
286
|
-
|
|
227
|
+
}
|
|
287
228
|
|
|
229
|
+
// Try to get the inner element (usually the .nav-link)
|
|
288
230
|
_getInnerElement(elem) {
|
|
289
231
|
return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine__default.default.findOne(SELECTOR_INNER_ELEM, elem);
|
|
290
|
-
}
|
|
291
|
-
|
|
232
|
+
}
|
|
292
233
|
|
|
234
|
+
// Try to get the outer element (usually the .nav-item)
|
|
293
235
|
_getOuterElement(elem) {
|
|
294
236
|
return elem.closest(SELECTOR_OUTER) || elem;
|
|
295
|
-
}
|
|
296
|
-
|
|
237
|
+
}
|
|
297
238
|
|
|
239
|
+
// Static
|
|
298
240
|
static jQueryInterface(config) {
|
|
299
241
|
return this.each(function () {
|
|
300
242
|
const data = Tab.getOrCreateInstance(this);
|
|
301
|
-
|
|
302
243
|
if (typeof config !== 'string') {
|
|
303
244
|
return;
|
|
304
245
|
}
|
|
305
|
-
|
|
306
246
|
if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
|
|
307
247
|
throw new TypeError(`No method named "${config}"`);
|
|
308
248
|
}
|
|
309
|
-
|
|
310
249
|
data[config]();
|
|
311
250
|
});
|
|
312
251
|
}
|
|
313
|
-
|
|
314
252
|
}
|
|
253
|
+
|
|
315
254
|
/**
|
|
316
255
|
* Data API implementation
|
|
317
256
|
*/
|
|
318
257
|
|
|
319
|
-
|
|
320
258
|
EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
321
259
|
if (['A', 'AREA'].includes(this.tagName)) {
|
|
322
260
|
event.preventDefault();
|
|
323
261
|
}
|
|
324
|
-
|
|
325
|
-
if (index.isDisabled(this)) {
|
|
262
|
+
if (index_js.isDisabled(this)) {
|
|
326
263
|
return;
|
|
327
264
|
}
|
|
328
|
-
|
|
329
265
|
Tab.getOrCreateInstance(this).show();
|
|
330
266
|
});
|
|
267
|
+
|
|
331
268
|
/**
|
|
332
269
|
* Initialize on focus
|
|
333
270
|
*/
|
|
334
|
-
|
|
335
271
|
EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
|
|
336
272
|
for (const element of SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
|
|
337
273
|
Tab.getOrCreateInstance(element);
|
|
@@ -341,7 +277,7 @@
|
|
|
341
277
|
* jQuery
|
|
342
278
|
*/
|
|
343
279
|
|
|
344
|
-
|
|
280
|
+
index_js.defineJQueryPlugin(Tab);
|
|
345
281
|
|
|
346
282
|
return Tab;
|
|
347
283
|
|
package/js/dist/tab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.js","sources":["../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.1): tab.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElementFromSelector, getNextActiveElement, isDisabled } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'coreui.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_DROPDOWN = 'dropdown'\n\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst SELECTOR_DROPDOWN_ITEM = '.dropdown-item'\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-coreui-toggle=\"tab\"], [data-coreui-toggle=\"pill\"], [data-coreui-toggle=\"list\"]' // todo:v6: could be only `tab`\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-coreui-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-coreui-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-coreui-toggle=\"list\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // todo: should Throw exception on v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(getElementFromSelector(element)) // Search and activate/show the proper section\n\n const isAnimated = element.classList.contains(CLASS_NAME_FADE)\n const complete = () => {\n if (isAnimated) { // todo: maybe is redundant\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.getAttribute('role') !== 'tab') {\n return\n }\n\n element.focus()\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleDropDown(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, isAnimated)\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const isAnimated = element.classList.contains(CLASS_NAME_FADE)\n const complete = () => {\n if (isAnimated) { // todo maybe is redundant\n element.classList.remove(CLASS_NAME_SHOW)\n }\n\n if (element.getAttribute('role') !== 'tab') {\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleDropDown(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, isAnimated)\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true)\n\n if (nextActiveElement) {\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`)\n }\n }\n\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element)\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return\n }\n\n const toggle = (selector, className) => {\n const element = SelectorEngine.findOne(selector, outerElem)\n if (element) {\n element.classList.toggle(className, open)\n }\n }\n\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\n toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE)\n outerElem.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n"],"names":["NAME","DATA_KEY","EVENT_KEY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_MENU","SELECTOR_DROPDOWN_ITEM","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","BaseComponent","constructor","element","_parent","_element","closest","_setInitialAttributes","_getChildren","EventHandler","on","event","_keydown","show","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","trigger","relatedTarget","showEvent","defaultPrevented","_deactivate","_activate","relatedElem","classList","add","getElementFromSelector","isAnimated","contains","complete","getAttribute","focus","removeAttribute","setAttribute","_toggleDropDown","_queueCallback","remove","blur","includes","key","stopPropagation","preventDefault","isNext","nextActiveElement","getNextActiveElement","filter","isDisabled","target","getOrCreateInstance","SelectorEngine","find","child","parent","children","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","id","open","toggle","selector","className","findOne","attribute","value","hasAttribute","elem","matches","jQueryInterface","config","each","data","undefined","startsWith","TypeError","document","tagName","window","defineJQueryPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tab.js","sources":["../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.3): tab.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getNextActiveElement, isDisabled } from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport BaseComponent from './base-component.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'coreui.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_DROPDOWN = 'dropdown'\n\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-coreui-toggle=\"tab\"], [data-coreui-toggle=\"pill\"], [data-coreui-toggle=\"list\"]' // todo:v6: could be only `tab`\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-coreui-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-coreui-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-coreui-toggle=\"list\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // todo: should Throw exception on v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleDropDown(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleDropDown(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true)\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`)\n }\n }\n\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element)\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return\n }\n\n const toggle = (selector, className) => {\n const element = SelectorEngine.findOne(selector, outerElem)\n if (element) {\n element.classList.toggle(className, open)\n }\n }\n\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\n outerElem.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n"],"names":["NAME","DATA_KEY","EVENT_KEY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_MENU","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","BaseComponent","constructor","element","_parent","_element","closest","_setInitialAttributes","_getChildren","EventHandler","on","event","_keydown","show","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","trigger","relatedTarget","showEvent","defaultPrevented","_deactivate","_activate","relatedElem","classList","add","SelectorEngine","getElementFromSelector","complete","getAttribute","removeAttribute","setAttribute","_toggleDropDown","_queueCallback","contains","remove","blur","includes","key","stopPropagation","preventDefault","isNext","nextActiveElement","getNextActiveElement","filter","isDisabled","target","focus","preventScroll","getOrCreateInstance","find","child","parent","children","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","id","open","toggle","selector","className","findOne","attribute","value","hasAttribute","elem","matches","jQueryInterface","config","each","data","undefined","startsWith","TypeError","document","tagName","window","defineJQueryPlugin"],"mappings":"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"}
|