-
Notifications
You must be signed in to change notification settings - Fork 429
/
Copy pathevent.js
43 lines (34 loc) · 969 Bytes
/
event.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved */
/* Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
const EventUtil = {
trapEvent: (event) => {
if (!event) return;
event.preventDefault();
event.stopPropagation();
if (event.nativeEvent && event.nativeEvent.preventDefault) {
event.nativeEvent.preventDefault();
}
if (event.nativeEvent && event.nativeEvent.stopPropagation) {
event.nativeEvent.stopPropagation();
}
},
trap: (event) => EventUtil.trapEvent(event),
trapImmediate: (event) => {
if (event.stopImmediatePropagation) {
event.stopImmediatePropagation();
}
if (event.nativeEvent && event.nativeEvent.stopImmediatePropagation) {
event.nativeEvent.stopImmediatePropagation();
}
EventUtil.trap(event);
},
trappedHandler: (handler) => {
return (event) => {
EventUtil.trap(event);
if (handler) {
handler(event);
}
};
},
};
export default EventUtil;