@coreui/coreui 4.1.4 → 4.2.0
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/LICENSE +2 -2
- package/README.md +64 -11
- package/dist/css/bootstrap-reboot.css +488 -0
- package/dist/css/bootstrap-reboot.css.map +1 -0
- package/dist/css/bootstrap-reboot.min.css +8 -0
- package/dist/css/bootstrap-reboot.min.css.map +1 -0
- package/dist/css/coreui-grid.css +23 -949
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +3 -3
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +25 -951
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +5 -5
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +35 -42
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +3 -3
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +36 -44
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +5 -5
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +279 -951
- package/dist/css/coreui-utilities.css.map +1 -1
- package/dist/css/coreui-utilities.min.css +3 -3
- package/dist/css/coreui-utilities.min.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.css +275 -953
- package/dist/css/coreui-utilities.rtl.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.min.css +5 -5
- package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
- package/dist/css/coreui.css +2203 -2295
- package/dist/css/coreui.css.map +1 -1
- package/dist/css/coreui.min.css +3 -3
- package/dist/css/coreui.min.css.map +1 -1
- package/dist/css/coreui.rtl.css +2190 -2289
- package/dist/css/coreui.rtl.css.map +1 -1
- package/dist/css/coreui.rtl.min.css +5 -5
- package/dist/css/coreui.rtl.min.css.map +1 -1
- package/dist/js/coreui.bundle.js +2101 -1908
- 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 +2098 -1909
- 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 +2099 -1910
- 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 +10 -148
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +36 -122
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +9 -76
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +212 -507
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +64 -251
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +2 -4
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +82 -133
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +22 -26
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +16 -81
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +99 -338
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +106 -774
- package/js/dist/modal.js.map +1 -1
- package/js/dist/navigation.js +309 -0
- package/js/dist/navigation.js.map +1 -0
- package/js/dist/offcanvas.js +88 -680
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +35 -120
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +178 -264
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/sidebar.js +347 -0
- package/js/dist/sidebar.js.map +1 -0
- package/js/dist/tab.js +226 -216
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +27 -216
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +271 -618
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +166 -0
- package/js/dist/util/backdrop.js.map +1 -0
- package/js/dist/util/component-functions.js +47 -0
- package/js/dist/util/component-functions.js.map +1 -0
- package/js/dist/util/config.js +80 -0
- package/js/dist/util/config.js.map +1 -0
- package/js/dist/util/focustrap.js +130 -0
- package/js/dist/util/focustrap.js.map +1 -0
- package/js/dist/util/index.js +354 -0
- package/js/dist/util/index.js.map +1 -0
- package/js/dist/util/sanitizer.js +126 -0
- package/js/dist/util/sanitizer.js.map +1 -0
- package/js/dist/util/scrollbar.js +139 -0
- package/js/dist/util/scrollbar.js.map +1 -0
- package/js/dist/util/swipe.js +156 -0
- package/js/dist/util/swipe.js.map +1 -0
- package/js/dist/util/template-factory.js +178 -0
- package/js/dist/util/template-factory.js.map +1 -0
- package/js/src/alert.js +3 -15
- package/js/src/base-component.js +28 -18
- package/js/src/button.js +3 -15
- package/js/src/carousel.js +203 -320
- package/js/src/collapse.js +61 -94
- package/js/src/dom/data.js +1 -3
- package/js/src/dom/event-handler.js +74 -107
- package/js/src/dom/manipulator.js +22 -31
- package/js/src/dom/selector-engine.js +10 -19
- package/js/src/dropdown.js +84 -138
- package/js/src/modal.js +94 -158
- package/js/src/navigation.js +12 -13
- package/js/src/offcanvas.js +71 -60
- package/js/src/popover.js +31 -62
- package/js/src/scrollspy.js +166 -171
- package/js/src/sidebar.js +5 -8
- package/js/src/tab.js +201 -110
- package/js/src/toast.js +19 -41
- package/js/src/tooltip.js +264 -374
- package/js/src/util/backdrop.js +55 -36
- package/js/src/util/component-functions.js +1 -1
- package/js/src/util/config.js +66 -0
- package/js/src/util/focustrap.js +38 -28
- package/js/src/util/index.js +41 -57
- package/js/src/util/sanitizer.js +9 -17
- package/js/src/util/scrollbar.js +47 -30
- package/js/src/util/swipe.js +146 -0
- package/js/src/util/template-factory.js +160 -0
- package/package.json +40 -40
- package/scss/_accordion.scss +53 -25
- package/scss/_alert.scss +29 -9
- package/scss/_badge.scss +15 -6
- package/scss/_breadcrumb.scss +23 -11
- package/scss/_button-group.scss +3 -0
- package/scss/_buttons.scss +71 -50
- package/scss/_callout.scss +18 -6
- package/scss/_card.scss +55 -37
- package/scss/_carousel.scss +6 -6
- package/scss/_close.scss +4 -4
- package/scss/_containers.scss +1 -1
- package/scss/_dropdown.scss +86 -64
- package/scss/_footer.scss +15 -5
- package/scss/_functions.scss +11 -24
- package/scss/_grid.scss +3 -3
- package/scss/_header.scss +59 -34
- package/scss/_helpers.scss +1 -0
- package/scss/_images.scss +3 -3
- package/scss/_list-group.scss +47 -29
- package/scss/_maps.scss +54 -0
- package/scss/_modal.scss +70 -43
- package/scss/_nav.scss +53 -20
- package/scss/_navbar.scss +84 -94
- package/scss/_offcanvas.scss +120 -60
- package/scss/_pagination.scss +66 -21
- package/scss/_popover.scss +90 -52
- package/scss/_progress.scss +20 -9
- package/scss/_reboot.scss +31 -58
- package/scss/_root.scss +41 -21
- package/scss/_spinners.scss +37 -21
- package/scss/_subheader.scss +9 -9
- package/scss/_tables.scss +34 -36
- package/scss/_toasts.scss +35 -19
- package/scss/_tooltip.scss +61 -56
- package/scss/_utilities.scss +42 -27
- package/scss/_variables.scss +169 -148
- package/scss/bootstrap-reboot.scss +14 -0
- package/scss/coreui-grid.rtl.scss +2 -2
- package/scss/coreui-grid.scss +3 -2
- package/scss/coreui-reboot.rtl.scss +2 -2
- package/scss/coreui-reboot.scss +2 -2
- package/scss/coreui-utilities.rtl.scss +2 -2
- package/scss/coreui-utilities.scss +3 -2
- package/scss/coreui.rtl.scss +2 -2
- package/scss/coreui.scss +3 -2
- package/scss/forms/_floating-labels.scss +14 -3
- package/scss/forms/_form-check.scss +42 -19
- package/scss/forms/_form-control.scss +25 -50
- package/scss/forms/_form-range.scss +8 -8
- package/scss/forms/_form-select.scss +8 -8
- package/scss/forms/_form-text.scss +1 -1
- package/scss/forms/_input-group.scss +3 -3
- package/scss/forms/_labels.scss +2 -2
- package/scss/helpers/_color-bg.scss +10 -0
- package/scss/helpers/_colored-links.scss +2 -2
- package/scss/helpers/_position.scss +7 -1
- package/scss/helpers/_ratio.scss +2 -2
- package/scss/helpers/_vr.scss +1 -0
- package/scss/mixins/_alert.scss +10 -10
- package/scss/mixins/_breakpoints.scss +8 -8
- package/scss/mixins/_buttons.scss +45 -47
- package/scss/mixins/_container.scss +4 -2
- package/scss/mixins/_css-vars.scss +47 -47
- package/scss/mixins/_forms.scss +10 -2
- package/scss/mixins/_gradients.scss +1 -1
- package/scss/mixins/_grid.scss +11 -11
- package/scss/mixins/_list-group.scss +7 -9
- package/scss/mixins/_pagination.scss +4 -25
- package/scss/mixins/_table-variants.scss +20 -12
- package/scss/mixins/_utilities.scss +8 -3
- package/scss/sidebar/_sidebar-narrow.scss +10 -10
- package/scss/sidebar/_sidebar-nav.scss +33 -32
- package/scss/sidebar/_sidebar.scss +110 -56
|
@@ -1,39 +1,17 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI event-handler.js v4.
|
|
2
|
+
* CoreUI event-handler.js v4.2.0 (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() :
|
|
8
|
-
typeof define === 'function' && define.amd ? define(factory) :
|
|
9
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory());
|
|
10
|
-
})(this, (function () { 'use strict';
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../util/index')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['../util/index'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory(global.Index));
|
|
10
|
+
})(this, (function (index) { 'use strict';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* --------------------------------------------------------------------------
|
|
14
|
-
* CoreUI (v4.
|
|
15
|
-
* Licensed under MIT (https://coreui.io/license)
|
|
16
|
-
*
|
|
17
|
-
* This component is a modified version of the Bootstrap's util/index.js
|
|
18
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
19
|
-
* --------------------------------------------------------------------------
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
const getjQuery = () => {
|
|
23
|
-
const {
|
|
24
|
-
jQuery
|
|
25
|
-
} = window;
|
|
26
|
-
|
|
27
|
-
if (jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {
|
|
28
|
-
return jQuery;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return null;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* --------------------------------------------------------------------------
|
|
36
|
-
* CoreUI (v4.1.4): dom/event-handler.js
|
|
14
|
+
* CoreUI (v4.2.0): dom/event-handler.js
|
|
37
15
|
* Licensed under MIT (https://coreui.io/license)
|
|
38
16
|
*
|
|
39
17
|
* This component is a modified version of the Bootstrap's dom/event-handler.js
|
|
@@ -41,9 +19,7 @@
|
|
|
41
19
|
* --------------------------------------------------------------------------
|
|
42
20
|
*/
|
|
43
21
|
/**
|
|
44
|
-
* ------------------------------------------------------------------------
|
|
45
22
|
* Constants
|
|
46
|
-
* ------------------------------------------------------------------------
|
|
47
23
|
*/
|
|
48
24
|
|
|
49
25
|
const namespaceRegex = /[^.]*(?=\..*)\.|.*/;
|
|
@@ -56,20 +32,17 @@
|
|
|
56
32
|
mouseenter: 'mouseover',
|
|
57
33
|
mouseleave: 'mouseout'
|
|
58
34
|
};
|
|
59
|
-
const customEventsRegex = /^(mouseenter|mouseleave)/i;
|
|
60
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']);
|
|
61
36
|
/**
|
|
62
|
-
* ------------------------------------------------------------------------
|
|
63
37
|
* Private methods
|
|
64
|
-
* ------------------------------------------------------------------------
|
|
65
38
|
*/
|
|
66
39
|
|
|
67
|
-
function
|
|
40
|
+
function makeEventUid(element, uid) {
|
|
68
41
|
return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
|
|
69
42
|
}
|
|
70
43
|
|
|
71
|
-
function
|
|
72
|
-
const uid =
|
|
44
|
+
function getElementEvents(element) {
|
|
45
|
+
const uid = makeEventUid(element);
|
|
73
46
|
element.uidEvent = uid;
|
|
74
47
|
eventRegistry[uid] = eventRegistry[uid] || {};
|
|
75
48
|
return eventRegistry[uid];
|
|
@@ -94,65 +67,50 @@
|
|
|
94
67
|
for (let {
|
|
95
68
|
target
|
|
96
69
|
} = event; target && target !== this; target = target.parentNode) {
|
|
97
|
-
for (
|
|
98
|
-
if (
|
|
99
|
-
|
|
70
|
+
for (const domElement of domElements) {
|
|
71
|
+
if (domElement !== target) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
100
74
|
|
|
101
|
-
|
|
102
|
-
EventHandler.off(element, event.type, selector, fn);
|
|
103
|
-
}
|
|
75
|
+
event.delegateTarget = target;
|
|
104
76
|
|
|
105
|
-
|
|
77
|
+
if (handler.oneOff) {
|
|
78
|
+
EventHandler.off(element, event.type, selector, fn);
|
|
106
79
|
}
|
|
107
|
-
}
|
|
108
|
-
} // To please ESLint
|
|
109
|
-
|
|
110
80
|
|
|
111
|
-
|
|
81
|
+
return fn.apply(target, [event]);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
112
84
|
};
|
|
113
85
|
}
|
|
114
86
|
|
|
115
|
-
function findHandler(events,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
for (let i = 0, len = uidEventList.length; i < len; i++) {
|
|
119
|
-
const event = events[uidEventList[i]];
|
|
120
|
-
|
|
121
|
-
if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {
|
|
122
|
-
return event;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return null;
|
|
87
|
+
function findHandler(events, callable, delegationSelector = null) {
|
|
88
|
+
return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);
|
|
127
89
|
}
|
|
128
90
|
|
|
129
|
-
function
|
|
130
|
-
const
|
|
131
|
-
|
|
91
|
+
function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
|
|
92
|
+
const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check
|
|
93
|
+
|
|
94
|
+
const callable = isDelegated ? delegationFunction : handler || delegationFunction;
|
|
132
95
|
let typeEvent = getTypeEvent(originalTypeEvent);
|
|
133
|
-
const isNative = nativeEvents.has(typeEvent);
|
|
134
96
|
|
|
135
|
-
if (!
|
|
97
|
+
if (!nativeEvents.has(typeEvent)) {
|
|
136
98
|
typeEvent = originalTypeEvent;
|
|
137
99
|
}
|
|
138
100
|
|
|
139
|
-
return [
|
|
101
|
+
return [isDelegated, callable, typeEvent];
|
|
140
102
|
}
|
|
141
103
|
|
|
142
|
-
function addHandler(element, originalTypeEvent, handler,
|
|
104
|
+
function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
|
|
143
105
|
if (typeof originalTypeEvent !== 'string' || !element) {
|
|
144
106
|
return;
|
|
145
107
|
}
|
|
146
108
|
|
|
147
|
-
|
|
148
|
-
handler = delegationFn;
|
|
149
|
-
delegationFn = null;
|
|
150
|
-
} // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
|
|
109
|
+
let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
|
|
151
110
|
// this prevents the handler from being dispatched the same way as mouseover or mouseout does
|
|
152
111
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
const wrapFn = fn => {
|
|
112
|
+
if (originalTypeEvent in customEvents) {
|
|
113
|
+
const wrapFunction = fn => {
|
|
156
114
|
return function (event) {
|
|
157
115
|
if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
|
|
158
116
|
return fn.call(this, event);
|
|
@@ -160,31 +118,26 @@
|
|
|
160
118
|
};
|
|
161
119
|
};
|
|
162
120
|
|
|
163
|
-
|
|
164
|
-
delegationFn = wrapFn(delegationFn);
|
|
165
|
-
} else {
|
|
166
|
-
handler = wrapFn(handler);
|
|
167
|
-
}
|
|
121
|
+
callable = wrapFunction(callable);
|
|
168
122
|
}
|
|
169
123
|
|
|
170
|
-
const
|
|
171
|
-
const events = getEvent(element);
|
|
124
|
+
const events = getElementEvents(element);
|
|
172
125
|
const handlers = events[typeEvent] || (events[typeEvent] = {});
|
|
173
|
-
const
|
|
126
|
+
const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
|
|
174
127
|
|
|
175
|
-
if (
|
|
176
|
-
|
|
128
|
+
if (previousFunction) {
|
|
129
|
+
previousFunction.oneOff = previousFunction.oneOff && oneOff;
|
|
177
130
|
return;
|
|
178
131
|
}
|
|
179
132
|
|
|
180
|
-
const uid =
|
|
181
|
-
const fn =
|
|
182
|
-
fn.delegationSelector =
|
|
183
|
-
fn.
|
|
133
|
+
const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));
|
|
134
|
+
const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
|
|
135
|
+
fn.delegationSelector = isDelegated ? handler : null;
|
|
136
|
+
fn.callable = callable;
|
|
184
137
|
fn.oneOff = oneOff;
|
|
185
138
|
fn.uidEvent = uid;
|
|
186
139
|
handlers[uid] = fn;
|
|
187
|
-
element.addEventListener(typeEvent, fn,
|
|
140
|
+
element.addEventListener(typeEvent, fn, isDelegated);
|
|
188
141
|
}
|
|
189
142
|
|
|
190
143
|
function removeHandler(element, events, typeEvent, handler, delegationSelector) {
|
|
@@ -200,12 +153,13 @@
|
|
|
200
153
|
|
|
201
154
|
function removeNamespacedHandlers(element, events, typeEvent, namespace) {
|
|
202
155
|
const storeElementEvent = events[typeEvent] || {};
|
|
203
|
-
|
|
156
|
+
|
|
157
|
+
for (const handlerKey of Object.keys(storeElementEvent)) {
|
|
204
158
|
if (handlerKey.includes(namespace)) {
|
|
205
159
|
const event = storeElementEvent[handlerKey];
|
|
206
|
-
removeHandler(element, events, typeEvent, event.
|
|
160
|
+
removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
|
|
207
161
|
}
|
|
208
|
-
}
|
|
162
|
+
}
|
|
209
163
|
}
|
|
210
164
|
|
|
211
165
|
function getTypeEvent(event) {
|
|
@@ -215,49 +169,49 @@
|
|
|
215
169
|
}
|
|
216
170
|
|
|
217
171
|
const EventHandler = {
|
|
218
|
-
on(element, event, handler,
|
|
219
|
-
addHandler(element, event, handler,
|
|
172
|
+
on(element, event, handler, delegationFunction) {
|
|
173
|
+
addHandler(element, event, handler, delegationFunction, false);
|
|
220
174
|
},
|
|
221
175
|
|
|
222
|
-
one(element, event, handler,
|
|
223
|
-
addHandler(element, event, handler,
|
|
176
|
+
one(element, event, handler, delegationFunction) {
|
|
177
|
+
addHandler(element, event, handler, delegationFunction, true);
|
|
224
178
|
},
|
|
225
179
|
|
|
226
|
-
off(element, originalTypeEvent, handler,
|
|
180
|
+
off(element, originalTypeEvent, handler, delegationFunction) {
|
|
227
181
|
if (typeof originalTypeEvent !== 'string' || !element) {
|
|
228
182
|
return;
|
|
229
183
|
}
|
|
230
184
|
|
|
231
|
-
const [
|
|
185
|
+
const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
|
|
232
186
|
const inNamespace = typeEvent !== originalTypeEvent;
|
|
233
|
-
const events =
|
|
187
|
+
const events = getElementEvents(element);
|
|
188
|
+
const storeElementEvent = events[typeEvent] || {};
|
|
234
189
|
const isNamespace = originalTypeEvent.startsWith('.');
|
|
235
190
|
|
|
236
|
-
if (typeof
|
|
191
|
+
if (typeof callable !== 'undefined') {
|
|
237
192
|
// Simplest case: handler is passed, remove that listener ONLY.
|
|
238
|
-
if (!
|
|
193
|
+
if (!Object.keys(storeElementEvent).length) {
|
|
239
194
|
return;
|
|
240
195
|
}
|
|
241
196
|
|
|
242
|
-
removeHandler(element, events, typeEvent,
|
|
197
|
+
removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
|
|
243
198
|
return;
|
|
244
199
|
}
|
|
245
200
|
|
|
246
201
|
if (isNamespace) {
|
|
247
|
-
Object.keys(events)
|
|
202
|
+
for (const elementEvent of Object.keys(events)) {
|
|
248
203
|
removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
|
|
249
|
-
}
|
|
204
|
+
}
|
|
250
205
|
}
|
|
251
206
|
|
|
252
|
-
const
|
|
253
|
-
Object.keys(storeElementEvent).forEach(keyHandlers => {
|
|
207
|
+
for (const keyHandlers of Object.keys(storeElementEvent)) {
|
|
254
208
|
const handlerKey = keyHandlers.replace(stripUidRegex, '');
|
|
255
209
|
|
|
256
210
|
if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
|
|
257
211
|
const event = storeElementEvent[keyHandlers];
|
|
258
|
-
removeHandler(element, events, typeEvent, event.
|
|
212
|
+
removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
|
|
259
213
|
}
|
|
260
|
-
}
|
|
214
|
+
}
|
|
261
215
|
},
|
|
262
216
|
|
|
263
217
|
trigger(element, event, args) {
|
|
@@ -265,15 +219,13 @@
|
|
|
265
219
|
return null;
|
|
266
220
|
}
|
|
267
221
|
|
|
268
|
-
const $ = getjQuery();
|
|
222
|
+
const $ = index.getjQuery();
|
|
269
223
|
const typeEvent = getTypeEvent(event);
|
|
270
224
|
const inNamespace = event !== typeEvent;
|
|
271
|
-
|
|
272
|
-
let jQueryEvent;
|
|
225
|
+
let jQueryEvent = null;
|
|
273
226
|
let bubbles = true;
|
|
274
227
|
let nativeDispatch = true;
|
|
275
228
|
let defaultPrevented = false;
|
|
276
|
-
let evt = null;
|
|
277
229
|
|
|
278
230
|
if (inNamespace && $) {
|
|
279
231
|
jQueryEvent = $.Event(event, args);
|
|
@@ -283,27 +235,11 @@
|
|
|
283
235
|
defaultPrevented = jQueryEvent.isDefaultPrevented();
|
|
284
236
|
}
|
|
285
237
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
bubbles,
|
|
292
|
-
cancelable: true
|
|
293
|
-
});
|
|
294
|
-
} // merge custom information in our event
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
if (typeof args !== 'undefined') {
|
|
298
|
-
Object.keys(args).forEach(key => {
|
|
299
|
-
Object.defineProperty(evt, key, {
|
|
300
|
-
get() {
|
|
301
|
-
return args[key];
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
}
|
|
238
|
+
let evt = new Event(event, {
|
|
239
|
+
bubbles,
|
|
240
|
+
cancelable: true
|
|
241
|
+
});
|
|
242
|
+
evt = hydrateObj(evt, args);
|
|
307
243
|
|
|
308
244
|
if (defaultPrevented) {
|
|
309
245
|
evt.preventDefault();
|
|
@@ -313,7 +249,7 @@
|
|
|
313
249
|
element.dispatchEvent(evt);
|
|
314
250
|
}
|
|
315
251
|
|
|
316
|
-
if (evt.defaultPrevented &&
|
|
252
|
+
if (evt.defaultPrevented && jQueryEvent) {
|
|
317
253
|
jQueryEvent.preventDefault();
|
|
318
254
|
}
|
|
319
255
|
|
|
@@ -322,6 +258,19 @@
|
|
|
322
258
|
|
|
323
259
|
};
|
|
324
260
|
|
|
261
|
+
function hydrateObj(obj, meta) {
|
|
262
|
+
for (const [key, value] of Object.entries(meta || {})) {
|
|
263
|
+
Object.defineProperty(obj, key, {
|
|
264
|
+
get() {
|
|
265
|
+
return value;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return obj;
|
|
272
|
+
}
|
|
273
|
+
|
|
325
274
|
return EventHandler;
|
|
326
275
|
|
|
327
276
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.js","sources":["../../src/util/index.js","../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.1.4): alert.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-coreui-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n if (isElement(obj)) { // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight\n}\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback())\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n getElement,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n getNextActiveElement,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin,\n execute,\n executeAfterTransition\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.1.4): 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 * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\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}\nconst customEventsRegex = /^(mouseenter|mouseleave)/i\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 * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(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 (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\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 // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n let typeEvent = getTypeEvent(originalTypeEvent)\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\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 (customEventsRegex.test(originalTypeEvent)) {\n const wrapFn = 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 if (delegationFn) {\n delegationFn = wrapFn(delegationFn)\n } else {\n handler = wrapFn(handler)\n }\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\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 Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, 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 const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\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 if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n"],"names":["getjQuery","jQuery","window","document","body","hasAttribute","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","Set","getUidEvent","element","uid","getEvent","bootstrapHandler","fn","handler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","i","length","findHandler","events","delegationSelector","uidEventList","Object","keys","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","isNative","has","addHandler","test","wrapFn","relatedTarget","contains","call","handlers","previousFn","replace","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","forEach","handlerKey","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","trigger","args","$","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","key","defineProperty","get","preventDefault","dispatchEvent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-handler.js","sources":["../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.0): 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,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI manipulator.js v4.
|
|
2
|
+
* CoreUI manipulator.js v4.2.0 (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,31 +11,39 @@
|
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* --------------------------------------------------------------------------
|
|
14
|
-
* CoreUI (v4.
|
|
14
|
+
* CoreUI (v4.2.0): dom/manipulator.js
|
|
15
15
|
* Licensed under MIT (https://coreui.io/license)
|
|
16
16
|
*
|
|
17
17
|
* This component 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
|
-
function normalizeData(
|
|
22
|
-
if (
|
|
21
|
+
function normalizeData(value) {
|
|
22
|
+
if (value === 'true') {
|
|
23
23
|
return true;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
if (
|
|
26
|
+
if (value === 'false') {
|
|
27
27
|
return false;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
if (
|
|
31
|
-
return Number(
|
|
30
|
+
if (value === Number(value).toString()) {
|
|
31
|
+
return Number(value);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
if (
|
|
34
|
+
if (value === '' || value === 'null') {
|
|
35
35
|
return null;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
if (typeof value !== 'string') {
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
return JSON.parse(decodeURIComponent(value));
|
|
44
|
+
} catch (_unused) {
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
39
47
|
}
|
|
40
48
|
|
|
41
49
|
function normalizeDataKey(key) {
|
|
@@ -57,31 +65,19 @@
|
|
|
57
65
|
}
|
|
58
66
|
|
|
59
67
|
const attributes = {};
|
|
60
|
-
Object.keys(element.dataset).filter(key => key.startsWith('coreui')
|
|
68
|
+
const coreuiKeys = Object.keys(element.dataset).filter(key => key.startsWith('coreui') && !key.startsWith('coreuiConfig'));
|
|
69
|
+
|
|
70
|
+
for (const key of coreuiKeys) {
|
|
61
71
|
let pureKey = key.replace(/^coreui/, '');
|
|
62
72
|
pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
|
|
63
73
|
attributes[pureKey] = normalizeData(element.dataset[key]);
|
|
64
|
-
}
|
|
74
|
+
}
|
|
75
|
+
|
|
65
76
|
return attributes;
|
|
66
77
|
},
|
|
67
78
|
|
|
68
79
|
getDataAttribute(element, key) {
|
|
69
80
|
return normalizeData(element.getAttribute(`data-coreui-${normalizeDataKey(key)}`));
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
offset(element) {
|
|
73
|
-
const rect = element.getBoundingClientRect();
|
|
74
|
-
return {
|
|
75
|
-
top: rect.top + window.pageYOffset,
|
|
76
|
-
left: rect.left + window.pageXOffset
|
|
77
|
-
};
|
|
78
|
-
},
|
|
79
|
-
|
|
80
|
-
position(element) {
|
|
81
|
-
return {
|
|
82
|
-
top: element.offsetTop,
|
|
83
|
-
left: element.offsetLeft
|
|
84
|
-
};
|
|
85
81
|
}
|
|
86
82
|
|
|
87
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.
|
|
1
|
+
{"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.0): dom/manipulator.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component 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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"}
|