-
Notifications
You must be signed in to change notification settings - Fork 7.4k
Expand file tree
/
Copy pathSerializedEventData.ts
More file actions
108 lines (95 loc) · 2.14 KB
/
Copy pathSerializedEventData.ts
File metadata and controls
108 lines (95 loc) · 2.14 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
export type SerializedFileData = {
name: string;
size: number;
type: string;
lastModified: number;
};
export type SerializedEventData = {
type: string;
altKey?: boolean;
ctrlKey?: boolean;
metaKey?: boolean;
shiftKey?: boolean;
clientX?: number;
clientY?: number;
pageX?: number;
pageY?: number;
screenX?: number;
screenY?: number;
offsetX?: number;
offsetY?: number;
movementX?: number;
movementY?: number;
button?: number;
buttons?: number;
pointerId?: number;
pointerType?: string;
pressure?: number;
tangentialPressure?: number;
tiltX?: number;
tiltY?: number;
twist?: number;
width?: number;
height?: number;
isPrimary?: boolean;
key?: string;
code?: string;
repeat?: boolean;
value?: string;
checked?: boolean;
scrollTop?: number;
scrollLeft?: number;
deltaX?: number;
deltaY?: number;
deltaZ?: number;
deltaMode?: number;
currentTime?: number;
duration?: number;
paused?: boolean;
ended?: boolean;
volume?: number;
muted?: boolean;
playbackRate?: number;
files?: SerializedFileData[];
};
export const applySerializedEventTargetProperties = (
element: Record<string, unknown>,
eventData: SerializedEventData,
): void => {
if ('value' in eventData) {
element.value = eventData.value;
}
if ('checked' in eventData) {
element.checked = eventData.checked;
}
if ('files' in eventData) {
element.files = eventData.files;
}
if ('scrollTop' in eventData) {
element.scrollTop = eventData.scrollTop;
}
if ('scrollLeft' in eventData) {
element.scrollLeft = eventData.scrollLeft;
}
if ('currentTime' in eventData) {
element.currentTime = eventData.currentTime;
}
if ('duration' in eventData) {
element.duration = eventData.duration;
}
if ('paused' in eventData) {
element.paused = eventData.paused;
}
if ('ended' in eventData) {
element.ended = eventData.ended;
}
if ('volume' in eventData) {
element.volume = eventData.volume;
}
if ('muted' in eventData) {
element.muted = eventData.muted;
}
if ('playbackRate' in eventData) {
element.playbackRate = eventData.playbackRate;
}
};