@coreui/coreui 4.2.2 → 4.2.4
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 +193 -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 +194 -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 +3 -2
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI event-handler.js v4.2.
|
|
2
|
+
* CoreUI event-handler.js v4.2.4 (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')) :
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../util/index.js')) :
|
|
8
8
|
typeof define === 'function' && define.amd ? define(['../util/index'], factory) :
|
|
9
9
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory(global.Index));
|
|
10
|
-
})(this, (function (
|
|
10
|
+
})(this, (function (index_js) { 'use strict';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* --------------------------------------------------------------------------
|
|
14
|
-
* CoreUI (v4.2.
|
|
14
|
+
* CoreUI (v4.2.4): dom/selector-engine.js
|
|
15
15
|
* Licensed under MIT (https://coreui.io/license)
|
|
16
16
|
*
|
|
17
|
-
* This
|
|
17
|
+
* This is a modified version of the Bootstrap's dom/event-handler.js
|
|
18
18
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
19
19
|
* --------------------------------------------------------------------------
|
|
20
20
|
*/
|
|
21
|
+
|
|
21
22
|
/**
|
|
22
23
|
* Constants
|
|
23
24
|
*/
|
|
@@ -26,13 +27,13 @@
|
|
|
26
27
|
const stripNameRegex = /\..*/;
|
|
27
28
|
const stripUidRegex = /::\d+$/;
|
|
28
29
|
const eventRegistry = {}; // Events storage
|
|
29
|
-
|
|
30
30
|
let uidEvent = 1;
|
|
31
31
|
const customEvents = {
|
|
32
32
|
mouseenter: 'mouseover',
|
|
33
33
|
mouseleave: 'mouseout'
|
|
34
34
|
};
|
|
35
35
|
const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);
|
|
36
|
+
|
|
36
37
|
/**
|
|
37
38
|
* Private methods
|
|
38
39
|
*/
|
|
@@ -40,30 +41,26 @@
|
|
|
40
41
|
function makeEventUid(element, uid) {
|
|
41
42
|
return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
|
|
42
43
|
}
|
|
43
|
-
|
|
44
44
|
function getElementEvents(element) {
|
|
45
45
|
const uid = makeEventUid(element);
|
|
46
46
|
element.uidEvent = uid;
|
|
47
47
|
eventRegistry[uid] = eventRegistry[uid] || {};
|
|
48
48
|
return eventRegistry[uid];
|
|
49
49
|
}
|
|
50
|
-
|
|
51
50
|
function bootstrapHandler(element, fn) {
|
|
52
51
|
return function handler(event) {
|
|
53
|
-
event
|
|
54
|
-
|
|
52
|
+
hydrateObj(event, {
|
|
53
|
+
delegateTarget: element
|
|
54
|
+
});
|
|
55
55
|
if (handler.oneOff) {
|
|
56
56
|
EventHandler.off(element, event.type, fn);
|
|
57
57
|
}
|
|
58
|
-
|
|
59
58
|
return fn.apply(element, [event]);
|
|
60
59
|
};
|
|
61
60
|
}
|
|
62
|
-
|
|
63
61
|
function bootstrapDelegationHandler(element, selector, fn) {
|
|
64
62
|
return function handler(event) {
|
|
65
63
|
const domElements = element.querySelectorAll(selector);
|
|
66
|
-
|
|
67
64
|
for (let {
|
|
68
65
|
target
|
|
69
66
|
} = event; target && target !== this; target = target.parentNode) {
|
|
@@ -71,44 +68,38 @@
|
|
|
71
68
|
if (domElement !== target) {
|
|
72
69
|
continue;
|
|
73
70
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
hydrateObj(event, {
|
|
72
|
+
delegateTarget: target
|
|
73
|
+
});
|
|
77
74
|
if (handler.oneOff) {
|
|
78
75
|
EventHandler.off(element, event.type, selector, fn);
|
|
79
76
|
}
|
|
80
|
-
|
|
81
77
|
return fn.apply(target, [event]);
|
|
82
78
|
}
|
|
83
79
|
}
|
|
84
80
|
};
|
|
85
81
|
}
|
|
86
|
-
|
|
87
82
|
function findHandler(events, callable, delegationSelector = null) {
|
|
88
83
|
return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);
|
|
89
84
|
}
|
|
90
|
-
|
|
91
85
|
function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
|
|
92
|
-
const isDelegated = typeof handler === 'string';
|
|
93
|
-
|
|
86
|
+
const isDelegated = typeof handler === 'string';
|
|
87
|
+
// todo: tooltip passes `false` instead of selector, so we need to check
|
|
94
88
|
const callable = isDelegated ? delegationFunction : handler || delegationFunction;
|
|
95
89
|
let typeEvent = getTypeEvent(originalTypeEvent);
|
|
96
|
-
|
|
97
90
|
if (!nativeEvents.has(typeEvent)) {
|
|
98
91
|
typeEvent = originalTypeEvent;
|
|
99
92
|
}
|
|
100
|
-
|
|
101
93
|
return [isDelegated, callable, typeEvent];
|
|
102
94
|
}
|
|
103
|
-
|
|
104
95
|
function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
|
|
105
96
|
if (typeof originalTypeEvent !== 'string' || !element) {
|
|
106
97
|
return;
|
|
107
98
|
}
|
|
99
|
+
let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
|
|
108
100
|
|
|
109
|
-
|
|
101
|
+
// in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
|
|
110
102
|
// this prevents the handler from being dispatched the same way as mouseover or mouseout does
|
|
111
|
-
|
|
112
103
|
if (originalTypeEvent in customEvents) {
|
|
113
104
|
const wrapFunction = fn => {
|
|
114
105
|
return function (event) {
|
|
@@ -117,19 +108,15 @@
|
|
|
117
108
|
}
|
|
118
109
|
};
|
|
119
110
|
};
|
|
120
|
-
|
|
121
111
|
callable = wrapFunction(callable);
|
|
122
112
|
}
|
|
123
|
-
|
|
124
113
|
const events = getElementEvents(element);
|
|
125
114
|
const handlers = events[typeEvent] || (events[typeEvent] = {});
|
|
126
115
|
const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
|
|
127
|
-
|
|
128
116
|
if (previousFunction) {
|
|
129
117
|
previousFunction.oneOff = previousFunction.oneOff && oneOff;
|
|
130
118
|
return;
|
|
131
119
|
}
|
|
132
|
-
|
|
133
120
|
const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));
|
|
134
121
|
const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
|
|
135
122
|
fn.delegationSelector = isDelegated ? handler : null;
|
|
@@ -139,94 +126,74 @@
|
|
|
139
126
|
handlers[uid] = fn;
|
|
140
127
|
element.addEventListener(typeEvent, fn, isDelegated);
|
|
141
128
|
}
|
|
142
|
-
|
|
143
129
|
function removeHandler(element, events, typeEvent, handler, delegationSelector) {
|
|
144
130
|
const fn = findHandler(events[typeEvent], handler, delegationSelector);
|
|
145
|
-
|
|
146
131
|
if (!fn) {
|
|
147
132
|
return;
|
|
148
133
|
}
|
|
149
|
-
|
|
150
134
|
element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
|
|
151
135
|
delete events[typeEvent][fn.uidEvent];
|
|
152
136
|
}
|
|
153
|
-
|
|
154
137
|
function removeNamespacedHandlers(element, events, typeEvent, namespace) {
|
|
155
138
|
const storeElementEvent = events[typeEvent] || {};
|
|
156
|
-
|
|
157
|
-
for (const handlerKey of Object.keys(storeElementEvent)) {
|
|
139
|
+
for (const [handlerKey, event] of Object.entries(storeElementEvent)) {
|
|
158
140
|
if (handlerKey.includes(namespace)) {
|
|
159
|
-
const event = storeElementEvent[handlerKey];
|
|
160
141
|
removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
|
|
161
142
|
}
|
|
162
143
|
}
|
|
163
144
|
}
|
|
164
|
-
|
|
165
145
|
function getTypeEvent(event) {
|
|
166
146
|
// allow to get the native events from namespaced events ('click.coreui.button' --> 'click')
|
|
167
147
|
event = event.replace(stripNameRegex, '');
|
|
168
148
|
return customEvents[event] || event;
|
|
169
149
|
}
|
|
170
|
-
|
|
171
150
|
const EventHandler = {
|
|
172
151
|
on(element, event, handler, delegationFunction) {
|
|
173
152
|
addHandler(element, event, handler, delegationFunction, false);
|
|
174
153
|
},
|
|
175
|
-
|
|
176
154
|
one(element, event, handler, delegationFunction) {
|
|
177
155
|
addHandler(element, event, handler, delegationFunction, true);
|
|
178
156
|
},
|
|
179
|
-
|
|
180
157
|
off(element, originalTypeEvent, handler, delegationFunction) {
|
|
181
158
|
if (typeof originalTypeEvent !== 'string' || !element) {
|
|
182
159
|
return;
|
|
183
160
|
}
|
|
184
|
-
|
|
185
161
|
const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
|
|
186
162
|
const inNamespace = typeEvent !== originalTypeEvent;
|
|
187
163
|
const events = getElementEvents(element);
|
|
188
164
|
const storeElementEvent = events[typeEvent] || {};
|
|
189
165
|
const isNamespace = originalTypeEvent.startsWith('.');
|
|
190
|
-
|
|
191
166
|
if (typeof callable !== 'undefined') {
|
|
192
167
|
// Simplest case: handler is passed, remove that listener ONLY.
|
|
193
168
|
if (!Object.keys(storeElementEvent).length) {
|
|
194
169
|
return;
|
|
195
170
|
}
|
|
196
|
-
|
|
197
171
|
removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
|
|
198
172
|
return;
|
|
199
173
|
}
|
|
200
|
-
|
|
201
174
|
if (isNamespace) {
|
|
202
175
|
for (const elementEvent of Object.keys(events)) {
|
|
203
176
|
removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
|
|
204
177
|
}
|
|
205
178
|
}
|
|
206
|
-
|
|
207
|
-
for (const keyHandlers of Object.keys(storeElementEvent)) {
|
|
179
|
+
for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {
|
|
208
180
|
const handlerKey = keyHandlers.replace(stripUidRegex, '');
|
|
209
|
-
|
|
210
181
|
if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
|
|
211
|
-
const event = storeElementEvent[keyHandlers];
|
|
212
182
|
removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
|
|
213
183
|
}
|
|
214
184
|
}
|
|
215
185
|
},
|
|
216
|
-
|
|
217
186
|
trigger(element, event, args) {
|
|
218
187
|
if (typeof event !== 'string' || !element) {
|
|
219
188
|
return null;
|
|
220
189
|
}
|
|
221
|
-
|
|
222
|
-
const $ = index.getjQuery();
|
|
190
|
+
const $ = index_js.getjQuery();
|
|
223
191
|
const typeEvent = getTypeEvent(event);
|
|
224
192
|
const inNamespace = event !== typeEvent;
|
|
225
193
|
let jQueryEvent = null;
|
|
226
194
|
let bubbles = true;
|
|
227
195
|
let nativeDispatch = true;
|
|
228
196
|
let defaultPrevented = false;
|
|
229
|
-
|
|
230
197
|
if (inNamespace && $) {
|
|
231
198
|
jQueryEvent = $.Event(event, args);
|
|
232
199
|
$(element).trigger(jQueryEvent);
|
|
@@ -234,40 +201,36 @@
|
|
|
234
201
|
nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
|
|
235
202
|
defaultPrevented = jQueryEvent.isDefaultPrevented();
|
|
236
203
|
}
|
|
237
|
-
|
|
238
204
|
let evt = new Event(event, {
|
|
239
205
|
bubbles,
|
|
240
206
|
cancelable: true
|
|
241
207
|
});
|
|
242
208
|
evt = hydrateObj(evt, args);
|
|
243
|
-
|
|
244
209
|
if (defaultPrevented) {
|
|
245
210
|
evt.preventDefault();
|
|
246
211
|
}
|
|
247
|
-
|
|
248
212
|
if (nativeDispatch) {
|
|
249
213
|
element.dispatchEvent(evt);
|
|
250
214
|
}
|
|
251
|
-
|
|
252
215
|
if (evt.defaultPrevented && jQueryEvent) {
|
|
253
216
|
jQueryEvent.preventDefault();
|
|
254
217
|
}
|
|
255
|
-
|
|
256
218
|
return evt;
|
|
257
219
|
}
|
|
258
|
-
|
|
259
220
|
};
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
221
|
+
function hydrateObj(obj, meta = {}) {
|
|
222
|
+
for (const [key, value] of Object.entries(meta)) {
|
|
223
|
+
try {
|
|
224
|
+
obj[key] = value;
|
|
225
|
+
} catch (_unused) {
|
|
226
|
+
Object.defineProperty(obj, key, {
|
|
227
|
+
configurable: true,
|
|
228
|
+
get() {
|
|
229
|
+
return value;
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
}
|
|
269
233
|
}
|
|
270
|
-
|
|
271
234
|
return obj;
|
|
272
235
|
}
|
|
273
236
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.js","sources":["../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.2): dom/event-handler.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // todo: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const handlerKey of Object.keys(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.coreui.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const keyHandlers of Object.keys(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n let evt = new Event(event, { bubbles, cancelable: true })\n evt = hydrateObj(evt, args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta) {\n for (const [key, value] of Object.entries(meta || {})) {\n Object.defineProperty(obj, key, {\n get() {\n return value\n }\n })\n }\n\n return obj\n}\n\nexport default EventHandler\n"],"names":["namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","element","uid","getElementEvents","bootstrapHandler","fn","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","values","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","has","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","keys","includes","on","one","inNamespace","isNamespace","startsWith","length","elementEvent","slice","keyHandlers","trigger","args","$","getjQuery","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","evt","cancelable","hydrateObj","preventDefault","dispatchEvent","obj","meta","key","value","entries","defineProperty","get"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-handler.js","sources":["../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.4): dom/selector-engine.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This is a modified version of the Bootstrap's dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // todo: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.coreui.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n let evt = new Event(event, { bubbles, cancelable: true })\n evt = hydrateObj(evt, args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n"],"names":["namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","element","uid","getElementEvents","bootstrapHandler","fn","handler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","domElement","findHandler","events","callable","delegationSelector","Object","values","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","has","addHandler","wrapFunction","relatedTarget","contains","call","handlers","previousFunction","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","keys","length","elementEvent","slice","keyHandlers","trigger","args","$","getjQuery","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","evt","cancelable","preventDefault","dispatchEvent","obj","meta","key","value","defineProperty","configurable","get"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI manipulator.js v4.2.
|
|
2
|
+
* CoreUI manipulator.js v4.2.4 (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
|
*/
|
|
@@ -11,75 +11,62 @@
|
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* --------------------------------------------------------------------------
|
|
14
|
-
* CoreUI (v4.2.
|
|
14
|
+
* CoreUI (v4.2.4): dom/selector-engine.js
|
|
15
15
|
* Licensed under MIT (https://coreui.io/license)
|
|
16
16
|
*
|
|
17
|
-
* This
|
|
17
|
+
* This is a modified version of the Bootstrap's dom/manipulator.js
|
|
18
18
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
19
19
|
* --------------------------------------------------------------------------
|
|
20
20
|
*/
|
|
21
|
+
|
|
21
22
|
function normalizeData(value) {
|
|
22
23
|
if (value === 'true') {
|
|
23
24
|
return true;
|
|
24
25
|
}
|
|
25
|
-
|
|
26
26
|
if (value === 'false') {
|
|
27
27
|
return false;
|
|
28
28
|
}
|
|
29
|
-
|
|
30
29
|
if (value === Number(value).toString()) {
|
|
31
30
|
return Number(value);
|
|
32
31
|
}
|
|
33
|
-
|
|
34
32
|
if (value === '' || value === 'null') {
|
|
35
33
|
return null;
|
|
36
34
|
}
|
|
37
|
-
|
|
38
35
|
if (typeof value !== 'string') {
|
|
39
36
|
return value;
|
|
40
37
|
}
|
|
41
|
-
|
|
42
38
|
try {
|
|
43
39
|
return JSON.parse(decodeURIComponent(value));
|
|
44
40
|
} catch (_unused) {
|
|
45
41
|
return value;
|
|
46
42
|
}
|
|
47
43
|
}
|
|
48
|
-
|
|
49
44
|
function normalizeDataKey(key) {
|
|
50
45
|
return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);
|
|
51
46
|
}
|
|
52
|
-
|
|
53
47
|
const Manipulator = {
|
|
54
48
|
setDataAttribute(element, key, value) {
|
|
55
49
|
element.setAttribute(`data-coreui-${normalizeDataKey(key)}`, value);
|
|
56
50
|
},
|
|
57
|
-
|
|
58
51
|
removeDataAttribute(element, key) {
|
|
59
52
|
element.removeAttribute(`data-coreui-${normalizeDataKey(key)}`);
|
|
60
53
|
},
|
|
61
|
-
|
|
62
54
|
getDataAttributes(element) {
|
|
63
55
|
if (!element) {
|
|
64
56
|
return {};
|
|
65
57
|
}
|
|
66
|
-
|
|
67
58
|
const attributes = {};
|
|
68
59
|
const coreuiKeys = Object.keys(element.dataset).filter(key => key.startsWith('coreui') && !key.startsWith('coreuiConfig'));
|
|
69
|
-
|
|
70
60
|
for (const key of coreuiKeys) {
|
|
71
61
|
let pureKey = key.replace(/^coreui/, '');
|
|
72
62
|
pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
|
|
73
63
|
attributes[pureKey] = normalizeData(element.dataset[key]);
|
|
74
64
|
}
|
|
75
|
-
|
|
76
65
|
return attributes;
|
|
77
66
|
},
|
|
78
|
-
|
|
79
67
|
getDataAttribute(element, key) {
|
|
80
68
|
return normalizeData(element.getAttribute(`data-coreui-${normalizeDataKey(key)}`));
|
|
81
69
|
}
|
|
82
|
-
|
|
83
70
|
};
|
|
84
71
|
|
|
85
72
|
return Manipulator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.
|
|
1
|
+
{"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.4): dom/selector-engine.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This is a modified version of the Bootstrap's dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-coreui-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-coreui-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const coreuiKeys = Object.keys(element.dataset).filter(key => key.startsWith('coreui') && !key.startsWith('coreuiConfig'))\n\n for (const key of coreuiKeys) {\n let pureKey = key.replace(/^coreui/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-coreui-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n"],"names":["normalizeData","value","Number","toString","JSON","parse","decodeURIComponent","normalizeDataKey","key","replace","chr","toLowerCase","Manipulator","setDataAttribute","element","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","coreuiKeys","Object","keys","dataset","filter","startsWith","pureKey","charAt","slice","length","getDataAttribute","getAttribute"],"mappings":"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"}
|
|
@@ -1,86 +1,103 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI selector-engine.js v4.2.
|
|
2
|
+
* CoreUI selector-engine.js v4.2.4 (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')) :
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../util/index.js')) :
|
|
8
8
|
typeof define === 'function' && define.amd ? define(['../util/index'], factory) :
|
|
9
9
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SelectorEngine = factory(global.Index));
|
|
10
|
-
})(this, (function (
|
|
10
|
+
})(this, (function (index_js) { 'use strict';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* --------------------------------------------------------------------------
|
|
14
|
-
* CoreUI (v4.2.
|
|
14
|
+
* CoreUI (v4.2.4): dom/selector-engine.js
|
|
15
15
|
* Licensed under MIT (https://coreui.io/license)
|
|
16
16
|
*
|
|
17
|
-
* This
|
|
17
|
+
* This is a modified version of the Bootstrap's dom/selector-engine.js
|
|
18
18
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
19
19
|
* --------------------------------------------------------------------------
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const getSelector = element => {
|
|
22
|
+
let selector = element.getAttribute('data-coreui-target');
|
|
23
|
+
if (!selector || selector === '#') {
|
|
24
|
+
let hrefAttribute = element.getAttribute('href');
|
|
25
|
+
|
|
26
|
+
// The only valid content that could double as a selector are IDs or classes,
|
|
27
|
+
// so everything starting with `#` or `.`. If a "real" URL is used as the selector,
|
|
28
|
+
// `document.querySelector` will rightfully complain it is invalid.
|
|
29
|
+
// See https://github.com/twbs/bootstrap/issues/32273
|
|
30
|
+
if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
24
33
|
|
|
34
|
+
// Just in case some CMS puts out a full URL with the anchor appended
|
|
35
|
+
if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {
|
|
36
|
+
hrefAttribute = `#${hrefAttribute.split('#')[1]}`;
|
|
37
|
+
}
|
|
38
|
+
selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;
|
|
39
|
+
}
|
|
40
|
+
return index_js.parseSelector(selector);
|
|
41
|
+
};
|
|
25
42
|
const SelectorEngine = {
|
|
26
43
|
find(selector, element = document.documentElement) {
|
|
27
44
|
return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
|
|
28
45
|
},
|
|
29
|
-
|
|
30
46
|
findOne(selector, element = document.documentElement) {
|
|
31
47
|
return Element.prototype.querySelector.call(element, selector);
|
|
32
48
|
},
|
|
33
|
-
|
|
34
49
|
children(element, selector) {
|
|
35
50
|
return [].concat(...element.children).filter(child => child.matches(selector));
|
|
36
51
|
},
|
|
37
|
-
|
|
38
52
|
parents(element, selector) {
|
|
39
53
|
const parents = [];
|
|
40
54
|
let ancestor = element.parentNode.closest(selector);
|
|
41
|
-
|
|
42
55
|
while (ancestor) {
|
|
43
56
|
parents.push(ancestor);
|
|
44
57
|
ancestor = ancestor.parentNode.closest(selector);
|
|
45
58
|
}
|
|
46
|
-
|
|
47
59
|
return parents;
|
|
48
60
|
},
|
|
49
|
-
|
|
50
61
|
prev(element, selector) {
|
|
51
62
|
let previous = element.previousElementSibling;
|
|
52
|
-
|
|
53
63
|
while (previous) {
|
|
54
64
|
if (previous.matches(selector)) {
|
|
55
65
|
return [previous];
|
|
56
66
|
}
|
|
57
|
-
|
|
58
67
|
previous = previous.previousElementSibling;
|
|
59
68
|
}
|
|
60
|
-
|
|
61
69
|
return [];
|
|
62
70
|
},
|
|
63
|
-
|
|
64
71
|
// TODO: this is now unused; remove later along with prev()
|
|
65
72
|
next(element, selector) {
|
|
66
73
|
let next = element.nextElementSibling;
|
|
67
|
-
|
|
68
74
|
while (next) {
|
|
69
75
|
if (next.matches(selector)) {
|
|
70
76
|
return [next];
|
|
71
77
|
}
|
|
72
|
-
|
|
73
78
|
next = next.nextElementSibling;
|
|
74
79
|
}
|
|
75
|
-
|
|
76
80
|
return [];
|
|
77
81
|
},
|
|
78
|
-
|
|
79
82
|
focusableChildren(element) {
|
|
80
83
|
const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(',');
|
|
81
|
-
return this.find(focusables, element).filter(el => !
|
|
84
|
+
return this.find(focusables, element).filter(el => !index_js.isDisabled(el) && index_js.isVisible(el));
|
|
85
|
+
},
|
|
86
|
+
getSelectorFromElement(element) {
|
|
87
|
+
const selector = getSelector(element);
|
|
88
|
+
if (selector) {
|
|
89
|
+
return SelectorEngine.findOne(selector) ? selector : null;
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
},
|
|
93
|
+
getElementFromSelector(element) {
|
|
94
|
+
const selector = getSelector(element);
|
|
95
|
+
return selector ? SelectorEngine.findOne(selector) : null;
|
|
96
|
+
},
|
|
97
|
+
getMultipleElementsFromSelector(element) {
|
|
98
|
+
const selector = getSelector(element);
|
|
99
|
+
return selector ? SelectorEngine.find(selector) : [];
|
|
82
100
|
}
|
|
83
|
-
|
|
84
101
|
};
|
|
85
102
|
|
|
86
103
|
return SelectorEngine;
|