feat: desktop functioning well
This commit is contained in:
1 parent
7a03c1d2b4
commit
5502429626
6 files changed
+384
-35
No files matched your search
@@ -159,10 +159,12 @@ class Interpreter {
|
||||
|
||||
console.log(`parsed event with scope_id ${scope_id} and real_id ${real_id}`);
|
||||
|
||||
let contents = serialize_event(event);
|
||||
rpc.call('user_event', {
|
||||
event: event_name,
|
||||
scope: scope_id,
|
||||
mounted_dom_id: real_id,
|
||||
contents: contents,
|
||||
}).then((reply) => {
|
||||
console.log(reply);
|
||||
this.stack.push(this.root);
|
||||
@@ -213,4 +215,244 @@ function apply_edits(edits, interpreter) {
|
||||
console.log("stack completed: ", interpreter.stack);
|
||||
}
|
||||
|
||||
function serialize_event(event) {
|
||||
let serializer = SerializeMap[event.type];
|
||||
if (serializer === undefined) {
|
||||
return {};
|
||||
} else {
|
||||
return serializer(event);
|
||||
}
|
||||
}
|
||||
|
||||
const SerializeMap = {
|
||||
"copy": serialize_clipboard,
|
||||
"cut": serialize_clipboard,
|
||||
"paste": serialize_clipboard,
|
||||
|
||||
"compositionend": serialize_composition,
|
||||
"compositionstart": serialize_composition,
|
||||
"compositionupdate": serialize_composition,
|
||||
|
||||
"keydown": serialize_keyboard,
|
||||
"keypress": serialize_keyboard,
|
||||
"keyup": serialize_keyboard,
|
||||
|
||||
"focus": serialize_focus,
|
||||
"blur": serialize_focus,
|
||||
|
||||
"change": serialize_change,
|
||||
|
||||
"input": serialize_form,
|
||||
"invalid": serialize_form,
|
||||
"reset": serialize_form,
|
||||
"submit": serialize_form,
|
||||
|
||||
"click": serialize_mouse,
|
||||
"contextmenu": serialize_mouse,
|
||||
"doubleclick": serialize_mouse,
|
||||
"drag": serialize_mouse,
|
||||
"dragend": serialize_mouse,
|
||||
"dragenter": serialize_mouse,
|
||||
"dragexit": serialize_mouse,
|
||||
"dragleave": serialize_mouse,
|
||||
"dragover": serialize_mouse,
|
||||
"dragstart": serialize_mouse,
|
||||
"drop": serialize_mouse,
|
||||
"mousedown": serialize_mouse,
|
||||
"mouseenter": serialize_mouse,
|
||||
"mouseleave": serialize_mouse,
|
||||
"mousemove": serialize_mouse,
|
||||
"mouseout": serialize_mouse,
|
||||
"mouseover": serialize_mouse,
|
||||
"mouseup": serialize_mouse,
|
||||
|
||||
"pointerdown": serialize_pointer,
|
||||
"pointermove": serialize_pointer,
|
||||
"pointerup": serialize_pointer,
|
||||
"pointercancel": serialize_pointer,
|
||||
"gotpointercapture": serialize_pointer,
|
||||
"lostpointercapture": serialize_pointer,
|
||||
"pointerenter": serialize_pointer,
|
||||
"pointerleave": serialize_pointer,
|
||||
"pointerover": serialize_pointer,
|
||||
"pointerout": serialize_pointer,
|
||||
|
||||
"select": serialize_selection,
|
||||
|
||||
"touchcancel": serialize_touch,
|
||||
"touchend": serialize_touch,
|
||||
"touchmove": serialize_touch,
|
||||
"touchstart": serialize_touch,
|
||||
|
||||
"scroll": serialize_scroll,
|
||||
|
||||
"wheel": serialize_wheel,
|
||||
|
||||
"animationstart": serialize_animation,
|
||||
"animationend": serialize_animation,
|
||||
"animationiteration": serialize_animation,
|
||||
|
||||
"transitionend": serialize_transition,
|
||||
|
||||
"abort": serialize_media,
|
||||
"canplay": serialize_media,
|
||||
"canplaythrough": serialize_media,
|
||||
"durationchange": serialize_media,
|
||||
"emptied": serialize_media,
|
||||
"encrypted": serialize_media,
|
||||
"ended": serialize_media,
|
||||
"error": serialize_media,
|
||||
"loadeddata": serialize_media,
|
||||
"loadedmetadata": serialize_media,
|
||||
"loadstart": serialize_media,
|
||||
"pause": serialize_media,
|
||||
"play": serialize_media,
|
||||
"playing": serialize_media,
|
||||
"progress": serialize_media,
|
||||
"ratechange": serialize_media,
|
||||
"seeked": serialize_media,
|
||||
"seeking": serialize_media,
|
||||
"stalled": serialize_media,
|
||||
"suspend": serialize_media,
|
||||
"timeupdate": serialize_media,
|
||||
"volumechange": serialize_media,
|
||||
"waiting": serialize_media,
|
||||
|
||||
"toggle": serialize_toggle
|
||||
}
|
||||
|
||||
function serialize_clipboard(_event) {
|
||||
return {};
|
||||
}
|
||||
function serialize_composition(event) {
|
||||
return {
|
||||
data: event.data
|
||||
}
|
||||
}
|
||||
function serialize_keyboard(event) {
|
||||
return {
|
||||
alt_key: event.altKey,
|
||||
char_code: event.charCode,
|
||||
key: event.key,
|
||||
key_code: event.keyCode,
|
||||
ctrl_key: event.ctrlKey,
|
||||
locale: event.locale,
|
||||
location: event.location,
|
||||
meta_key: event.metaKey,
|
||||
repeat: event.repeat,
|
||||
shift_key: event.shiftKey,
|
||||
which: event.which,
|
||||
}
|
||||
}
|
||||
function serialize_focus(_event) {
|
||||
return {}
|
||||
}
|
||||
function serialize_change(_event) {
|
||||
return {}
|
||||
}
|
||||
function serialize_form(event) {
|
||||
let target = event.target;
|
||||
let value = target.value ?? target.textContent;
|
||||
return {
|
||||
value: value
|
||||
}
|
||||
}
|
||||
function serialize_mouse(event) {
|
||||
return {
|
||||
alt_key: event.altKey,
|
||||
button: event.button,
|
||||
buttons: event.buttons,
|
||||
client_x: event.clientX,
|
||||
client_y: event.clientY,
|
||||
ctrl_key: event.ctrlKey,
|
||||
meta_key: event.metaKey,
|
||||
page_x: event.pageX,
|
||||
page_y: event.pageY,
|
||||
screen_x: event.screenX,
|
||||
screen_y: event.screenY,
|
||||
shift_key: event.shiftKey,
|
||||
}
|
||||
}
|
||||
|
||||
function serialize_pointer(event) {
|
||||
return {
|
||||
alt_key: event.altKey,
|
||||
button: event.button,
|
||||
buttons: event.buttons,
|
||||
client_x: event.clientX,
|
||||
client_y: event.clientY,
|
||||
ctrl_key: event.ctrlKey,
|
||||
meta_key: event.metaKey,
|
||||
page_x: event.pageX,
|
||||
page_y: event.pageY,
|
||||
screen_x: event.screenX,
|
||||
screen_y: event.screenY,
|
||||
shift_key: event.shiftKey,
|
||||
pointer_id: event.pointerId,
|
||||
width: event.width,
|
||||
height: event.height,
|
||||
pressure: event.pressure,
|
||||
tangential_pressure: event.tangentialPressure,
|
||||
tilt_x: event.tiltX,
|
||||
tilt_y: event.tiltY,
|
||||
twist: event.twist,
|
||||
pointer_type: event.pointerType,
|
||||
is_primary: event.isPrimary,
|
||||
}
|
||||
}
|
||||
|
||||
function serialize_selection(event) {
|
||||
return {}
|
||||
}
|
||||
|
||||
function serialize_touch(event) {
|
||||
return {
|
||||
alt_key: event.altKey,
|
||||
ctrl_key: event.ctrlKey,
|
||||
meta_key: event.metaKey,
|
||||
shift_key: event.shiftKey,
|
||||
|
||||
// changed_touches: event.changedTouches,
|
||||
// target_touches: event.targetTouches,
|
||||
// touches: event.touches,
|
||||
}
|
||||
}
|
||||
function serialize_scroll(event) {
|
||||
return {}
|
||||
}
|
||||
|
||||
function serialize_wheel(event) {
|
||||
return {
|
||||
delta_x: event.deltaX,
|
||||
delta_y: event.deltaY,
|
||||
delta_z: event.deltaZ,
|
||||
delta_mode: event.deltaMode,
|
||||
}
|
||||
}
|
||||
|
||||
function serialize_animation(event) {
|
||||
return {
|
||||
animation_name: event.animationName,
|
||||
elapsed_time: event.elapsedTime,
|
||||
pseudo_element: event.pseudoElement,
|
||||
}
|
||||
}
|
||||
|
||||
function serialize_transition(event) {
|
||||
return {
|
||||
property_name: event.propertyName,
|
||||
elapsed_time: event.elapsedTime,
|
||||
pseudo_element: event.pseudoElement,
|
||||
}
|
||||
}
|
||||
|
||||
function serialize_media(event) {
|
||||
return {}
|
||||
}
|
||||
|
||||
function serialize_toggle(event) {
|
||||
return {}
|
||||
}
|
||||
|
||||
|
||||
initialize();
|
||||
Reference in new issue
Block a user