ziex 0.1.0-dev.1050 → 0.1.0-dev.1068
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 +7 -0
- package/build.zig.zon +1 -1
- package/cloudflare/index.js +85 -45
- package/index.js +59 -0
- package/package.json +2 -2
- package/wasi.d.ts +18 -0
- package/wasm/index.js +26 -45
- package/wasm/init.js +26 -45
package/README.md
CHANGED
|
@@ -168,6 +168,13 @@ You can view our current progress and planned features here:
|
|
|
168
168
|
|
|
169
169
|
**[Check out the Ziex Issue Tracker →](https://github.com/ziex-dev/ziex/issues)**
|
|
170
170
|
|
|
171
|
+
## Versions
|
|
172
|
+
| Zig | Ziex | Branch | Status |
|
|
173
|
+
|-------------|-------------------|-------------------|----------------|
|
|
174
|
+
| `0.16.0` | `0.1.0-dev.1050+` | `main` | Unstable (dev) |
|
|
175
|
+
| `0.15.2` | `0.1.0-dev-1050` | `zig-0.15` | Stable (dev) |
|
|
176
|
+
|
|
177
|
+
|
|
171
178
|
## Editor Support
|
|
172
179
|
|
|
173
180
|
* [VSCode](https://marketplace.visualstudio.com/items?itemName=ziex.ziex)/[VSCode Forks](https://open-vsx.org/extension/ziex/ziex) Extension
|
package/build.zig.zon
CHANGED
package/cloudflare/index.js
CHANGED
|
@@ -84,6 +84,8 @@ class ZigJS {
|
|
|
84
84
|
const bytes = encoder.encode(val);
|
|
85
85
|
if (bytes.byteLength > max)
|
|
86
86
|
return;
|
|
87
|
+
if (bytes.length === 0)
|
|
88
|
+
return;
|
|
87
89
|
new Uint8Array(this.memory.buffer, ptr, bytes.length).set(bytes);
|
|
88
90
|
}
|
|
89
91
|
valueNew(out, id, argsAddr, argsLen) {
|
|
@@ -1129,69 +1131,48 @@ var TAG_NAMES = [
|
|
|
1129
1131
|
"view"
|
|
1130
1132
|
];
|
|
1131
1133
|
var DELEGATED_EVENTS = [
|
|
1132
|
-
"click",
|
|
1133
|
-
"dblclick",
|
|
1134
|
-
"input",
|
|
1135
|
-
"change",
|
|
1136
|
-
"submit",
|
|
1137
|
-
"
|
|
1138
|
-
"
|
|
1139
|
-
"keydown",
|
|
1140
|
-
"keyup",
|
|
1141
|
-
"keypress",
|
|
1142
|
-
"mouseenter",
|
|
1143
|
-
"mouseleave",
|
|
1144
|
-
"mousedown",
|
|
1145
|
-
"mouseup",
|
|
1146
|
-
"mousemove",
|
|
1147
|
-
"touchstart",
|
|
1148
|
-
"touchend",
|
|
1149
|
-
"touchmove",
|
|
1150
|
-
"scroll"
|
|
1134
|
+
{ domType: "click", eventTypeId: 0 },
|
|
1135
|
+
{ domType: "dblclick", eventTypeId: 1 },
|
|
1136
|
+
{ domType: "input", eventTypeId: 2 },
|
|
1137
|
+
{ domType: "change", eventTypeId: 3 },
|
|
1138
|
+
{ domType: "submit", eventTypeId: 4 },
|
|
1139
|
+
{ domType: "focusin", eventTypeId: 5 },
|
|
1140
|
+
{ domType: "focusout", eventTypeId: 6 },
|
|
1141
|
+
{ domType: "keydown", eventTypeId: 7 },
|
|
1142
|
+
{ domType: "keyup", eventTypeId: 8 },
|
|
1143
|
+
{ domType: "keypress", eventTypeId: 9 },
|
|
1144
|
+
{ domType: "mouseenter", eventTypeId: 10 },
|
|
1145
|
+
{ domType: "mouseleave", eventTypeId: 11 },
|
|
1146
|
+
{ domType: "mousedown", eventTypeId: 12 },
|
|
1147
|
+
{ domType: "mouseup", eventTypeId: 13 },
|
|
1148
|
+
{ domType: "mousemove", eventTypeId: 14 },
|
|
1149
|
+
{ domType: "touchstart", eventTypeId: 15 },
|
|
1150
|
+
{ domType: "touchend", eventTypeId: 16 },
|
|
1151
|
+
{ domType: "touchmove", eventTypeId: 17 },
|
|
1152
|
+
{ domType: "scroll", eventTypeId: 18 }
|
|
1151
1153
|
];
|
|
1152
|
-
var EVENT_TYPE_MAP = {
|
|
1153
|
-
click: 0,
|
|
1154
|
-
dblclick: 1,
|
|
1155
|
-
input: 2,
|
|
1156
|
-
change: 3,
|
|
1157
|
-
submit: 4,
|
|
1158
|
-
focus: 5,
|
|
1159
|
-
blur: 6,
|
|
1160
|
-
keydown: 7,
|
|
1161
|
-
keyup: 8,
|
|
1162
|
-
keypress: 9,
|
|
1163
|
-
mouseenter: 10,
|
|
1164
|
-
mouseleave: 11,
|
|
1165
|
-
mousedown: 12,
|
|
1166
|
-
mouseup: 13,
|
|
1167
|
-
mousemove: 14,
|
|
1168
|
-
touchstart: 15,
|
|
1169
|
-
touchend: 16,
|
|
1170
|
-
touchmove: 17,
|
|
1171
|
-
scroll: 18
|
|
1172
|
-
};
|
|
1173
1154
|
var eventHandlerModes = new Map;
|
|
1174
1155
|
function initEventDelegation(bridge, rootSelector = "body") {
|
|
1175
1156
|
const root = document.querySelector(rootSelector);
|
|
1176
1157
|
if (!root)
|
|
1177
1158
|
return () => {};
|
|
1178
1159
|
const removers = [];
|
|
1179
|
-
for (const
|
|
1160
|
+
for (const delegatedEvent of DELEGATED_EVENTS) {
|
|
1180
1161
|
const listener = (event) => {
|
|
1181
1162
|
let target = event.target;
|
|
1182
1163
|
while (target && target !== document.body) {
|
|
1183
1164
|
const zxRef = target.__zx_ref;
|
|
1184
1165
|
if (zxRef !== undefined) {
|
|
1185
|
-
bridge.eventbridge(BigInt(zxRef),
|
|
1166
|
+
bridge.eventbridge(BigInt(zxRef), delegatedEvent.eventTypeId, event);
|
|
1186
1167
|
if (event.cancelBubble)
|
|
1187
1168
|
break;
|
|
1188
1169
|
}
|
|
1189
1170
|
target = target.parentElement;
|
|
1190
1171
|
}
|
|
1191
1172
|
};
|
|
1192
|
-
const options = { passive:
|
|
1193
|
-
root.addEventListener(
|
|
1194
|
-
removers.push(() => root.removeEventListener(
|
|
1173
|
+
const options = { passive: delegatedEvent.domType.startsWith("touch") || delegatedEvent.domType === "scroll" };
|
|
1174
|
+
root.addEventListener(delegatedEvent.domType, listener, options);
|
|
1175
|
+
removers.push(() => root.removeEventListener(delegatedEvent.domType, listener, options));
|
|
1195
1176
|
}
|
|
1196
1177
|
return () => {
|
|
1197
1178
|
for (const remove of removers)
|
|
@@ -1707,6 +1688,61 @@ function createWasiImports({
|
|
|
1707
1688
|
dv.setBigUint64(filestat_ptr + 56, 0n, true);
|
|
1708
1689
|
return 0;
|
|
1709
1690
|
},
|
|
1691
|
+
fd_filestat_set_size(_fd, _size) {
|
|
1692
|
+
return 76;
|
|
1693
|
+
},
|
|
1694
|
+
fd_filestat_set_times(_fd, _atim, _mtim, _fst_flags) {
|
|
1695
|
+
return 76;
|
|
1696
|
+
},
|
|
1697
|
+
fd_fdstat_set_flags(_fd, _flags) {
|
|
1698
|
+
return 0;
|
|
1699
|
+
},
|
|
1700
|
+
fd_fdstat_set_rights(_fd, _rights_base, _rights_inheriting) {
|
|
1701
|
+
return 0;
|
|
1702
|
+
},
|
|
1703
|
+
fd_sync(_fd) {
|
|
1704
|
+
return 0;
|
|
1705
|
+
},
|
|
1706
|
+
fd_datasync(_fd) {
|
|
1707
|
+
return 0;
|
|
1708
|
+
},
|
|
1709
|
+
fd_advise(_fd, _offset, _len, _advice) {
|
|
1710
|
+
return 0;
|
|
1711
|
+
},
|
|
1712
|
+
fd_allocate(_fd, _offset, _len) {
|
|
1713
|
+
return 76;
|
|
1714
|
+
},
|
|
1715
|
+
fd_tell(_fd, offset_ptr) {
|
|
1716
|
+
v().setBigUint64(offset_ptr, 0n, true);
|
|
1717
|
+
return 0;
|
|
1718
|
+
},
|
|
1719
|
+
fd_renumber(_from, _to) {
|
|
1720
|
+
return 0;
|
|
1721
|
+
},
|
|
1722
|
+
path_filestat_set_times(_fd, _flags, _path, _path_len, _atim, _mtim, _fst_flags) {
|
|
1723
|
+
return 76;
|
|
1724
|
+
},
|
|
1725
|
+
path_link(_old_fd, _old_flags, _old_path, _old_path_len, _new_fd, _new_path, _new_path_len) {
|
|
1726
|
+
return 76;
|
|
1727
|
+
},
|
|
1728
|
+
path_symlink(_old_path, _old_path_len, _fd, _new_path, _new_path_len) {
|
|
1729
|
+
return 76;
|
|
1730
|
+
},
|
|
1731
|
+
proc_raise(_sig) {
|
|
1732
|
+
return 0;
|
|
1733
|
+
},
|
|
1734
|
+
sock_recv(_fd, _ri_data, _ri_data_len, _ri_flags, ro_datalen_ptr, ro_flags_ptr) {
|
|
1735
|
+
v().setUint32(ro_datalen_ptr, 0, true);
|
|
1736
|
+
v().setUint32(ro_flags_ptr, 0, true);
|
|
1737
|
+
return 76;
|
|
1738
|
+
},
|
|
1739
|
+
sock_send(_fd, _si_data, _si_data_len, _si_flags, so_datalen_ptr) {
|
|
1740
|
+
v().setUint32(so_datalen_ptr, 0, true);
|
|
1741
|
+
return 76;
|
|
1742
|
+
},
|
|
1743
|
+
sock_shutdown(_fd, _how) {
|
|
1744
|
+
return 76;
|
|
1745
|
+
},
|
|
1710
1746
|
fd_seek(_fd, _offset, _whence, newoffset_ptr) {
|
|
1711
1747
|
v().setBigInt64(newoffset_ptr, 0n, true);
|
|
1712
1748
|
return 0;
|
|
@@ -1721,6 +1757,10 @@ function createWasiImports({
|
|
|
1721
1757
|
v().setBigUint64(time_ptr, BigInt(Date.now()) * 1000000n, true);
|
|
1722
1758
|
return 0;
|
|
1723
1759
|
},
|
|
1760
|
+
clock_res_get(_id, res_ptr) {
|
|
1761
|
+
v().setBigUint64(res_ptr, 1000000n, true);
|
|
1762
|
+
return 0;
|
|
1763
|
+
},
|
|
1724
1764
|
random_get(buf_ptr, buf_len) {
|
|
1725
1765
|
crypto.getRandomValues(new Uint8Array(wasmMemory.buffer, buf_ptr, buf_len));
|
|
1726
1766
|
return 0;
|
package/index.js
CHANGED
|
@@ -570,6 +570,61 @@ function createWasiImports({
|
|
|
570
570
|
dv.setBigUint64(filestat_ptr + 56, 0n, true);
|
|
571
571
|
return 0;
|
|
572
572
|
},
|
|
573
|
+
fd_filestat_set_size(_fd, _size) {
|
|
574
|
+
return 76;
|
|
575
|
+
},
|
|
576
|
+
fd_filestat_set_times(_fd, _atim, _mtim, _fst_flags) {
|
|
577
|
+
return 76;
|
|
578
|
+
},
|
|
579
|
+
fd_fdstat_set_flags(_fd, _flags) {
|
|
580
|
+
return 0;
|
|
581
|
+
},
|
|
582
|
+
fd_fdstat_set_rights(_fd, _rights_base, _rights_inheriting) {
|
|
583
|
+
return 0;
|
|
584
|
+
},
|
|
585
|
+
fd_sync(_fd) {
|
|
586
|
+
return 0;
|
|
587
|
+
},
|
|
588
|
+
fd_datasync(_fd) {
|
|
589
|
+
return 0;
|
|
590
|
+
},
|
|
591
|
+
fd_advise(_fd, _offset, _len, _advice) {
|
|
592
|
+
return 0;
|
|
593
|
+
},
|
|
594
|
+
fd_allocate(_fd, _offset, _len) {
|
|
595
|
+
return 76;
|
|
596
|
+
},
|
|
597
|
+
fd_tell(_fd, offset_ptr) {
|
|
598
|
+
v().setBigUint64(offset_ptr, 0n, true);
|
|
599
|
+
return 0;
|
|
600
|
+
},
|
|
601
|
+
fd_renumber(_from, _to) {
|
|
602
|
+
return 0;
|
|
603
|
+
},
|
|
604
|
+
path_filestat_set_times(_fd, _flags, _path, _path_len, _atim, _mtim, _fst_flags) {
|
|
605
|
+
return 76;
|
|
606
|
+
},
|
|
607
|
+
path_link(_old_fd, _old_flags, _old_path, _old_path_len, _new_fd, _new_path, _new_path_len) {
|
|
608
|
+
return 76;
|
|
609
|
+
},
|
|
610
|
+
path_symlink(_old_path, _old_path_len, _fd, _new_path, _new_path_len) {
|
|
611
|
+
return 76;
|
|
612
|
+
},
|
|
613
|
+
proc_raise(_sig) {
|
|
614
|
+
return 0;
|
|
615
|
+
},
|
|
616
|
+
sock_recv(_fd, _ri_data, _ri_data_len, _ri_flags, ro_datalen_ptr, ro_flags_ptr) {
|
|
617
|
+
v().setUint32(ro_datalen_ptr, 0, true);
|
|
618
|
+
v().setUint32(ro_flags_ptr, 0, true);
|
|
619
|
+
return 76;
|
|
620
|
+
},
|
|
621
|
+
sock_send(_fd, _si_data, _si_data_len, _si_flags, so_datalen_ptr) {
|
|
622
|
+
v().setUint32(so_datalen_ptr, 0, true);
|
|
623
|
+
return 76;
|
|
624
|
+
},
|
|
625
|
+
sock_shutdown(_fd, _how) {
|
|
626
|
+
return 76;
|
|
627
|
+
},
|
|
573
628
|
fd_seek(_fd, _offset, _whence, newoffset_ptr) {
|
|
574
629
|
v().setBigInt64(newoffset_ptr, 0n, true);
|
|
575
630
|
return 0;
|
|
@@ -584,6 +639,10 @@ function createWasiImports({
|
|
|
584
639
|
v().setBigUint64(time_ptr, BigInt(Date.now()) * 1000000n, true);
|
|
585
640
|
return 0;
|
|
586
641
|
},
|
|
642
|
+
clock_res_get(_id, res_ptr) {
|
|
643
|
+
v().setBigUint64(res_ptr, 1000000n, true);
|
|
644
|
+
return 0;
|
|
645
|
+
},
|
|
587
646
|
random_get(buf_ptr, buf_len) {
|
|
588
647
|
crypto.getRandomValues(new Uint8Array(wasmMemory.buffer, buf_ptr, buf_len));
|
|
589
648
|
return 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ziex",
|
|
3
|
-
"version": "0.1.0-dev.
|
|
3
|
+
"version": "0.1.0-dev.1068",
|
|
4
4
|
"description": "ZX is a framework for building web applications with Zig.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"license": "MIT",
|
|
38
38
|
"scripts": {},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@ziex/cli": "0.1.0-dev.
|
|
40
|
+
"@ziex/cli": "0.1.0-dev.1068"
|
|
41
41
|
},
|
|
42
42
|
"peerDependenciesMeta": {
|
|
43
43
|
"react": {
|
package/wasi.d.ts
CHANGED
|
@@ -37,10 +37,28 @@ export declare function createWasiImports({ request, stdinData, onStdout, }: {
|
|
|
37
37
|
fd_pread(_fd: number, _iovs: number, _iovs_len: number, _offset: bigint, nread_ptr: number): number;
|
|
38
38
|
fd_pwrite(_fd: number, _iovs: number, _iovs_len: number, _offset: bigint, nwritten_ptr: number): number;
|
|
39
39
|
fd_filestat_get(_fd: number, filestat_ptr: number): number;
|
|
40
|
+
fd_filestat_set_size(_fd: number, _size: bigint): number;
|
|
41
|
+
fd_filestat_set_times(_fd: number, _atim: bigint, _mtim: bigint, _fst_flags: number): number;
|
|
42
|
+
fd_fdstat_set_flags(_fd: number, _flags: number): number;
|
|
43
|
+
fd_fdstat_set_rights(_fd: number, _rights_base: bigint, _rights_inheriting: bigint): number;
|
|
44
|
+
fd_sync(_fd: number): number;
|
|
45
|
+
fd_datasync(_fd: number): number;
|
|
46
|
+
fd_advise(_fd: number, _offset: bigint, _len: bigint, _advice: number): number;
|
|
47
|
+
fd_allocate(_fd: number, _offset: bigint, _len: bigint): number;
|
|
48
|
+
fd_tell(_fd: number, offset_ptr: number): number;
|
|
49
|
+
fd_renumber(_from: number, _to: number): number;
|
|
50
|
+
path_filestat_set_times(_fd: number, _flags: number, _path: number, _path_len: number, _atim: bigint, _mtim: bigint, _fst_flags: number): number;
|
|
51
|
+
path_link(_old_fd: number, _old_flags: number, _old_path: number, _old_path_len: number, _new_fd: number, _new_path: number, _new_path_len: number): number;
|
|
52
|
+
path_symlink(_old_path: number, _old_path_len: number, _fd: number, _new_path: number, _new_path_len: number): number;
|
|
53
|
+
proc_raise(_sig: number): number;
|
|
54
|
+
sock_recv(_fd: number, _ri_data: number, _ri_data_len: number, _ri_flags: number, ro_datalen_ptr: number, ro_flags_ptr: number): number;
|
|
55
|
+
sock_send(_fd: number, _si_data: number, _si_data_len: number, _si_flags: number, so_datalen_ptr: number): number;
|
|
56
|
+
sock_shutdown(_fd: number, _how: number): number;
|
|
40
57
|
fd_seek(_fd: number, _offset: bigint, _whence: number, newoffset_ptr: number): number;
|
|
41
58
|
proc_exit(code: number): never;
|
|
42
59
|
sched_yield(): number;
|
|
43
60
|
clock_time_get(_id: number, _precision: bigint, time_ptr: number): number;
|
|
61
|
+
clock_res_get(_id: number, res_ptr: number): number;
|
|
44
62
|
random_get(buf_ptr: number, buf_len: number): number;
|
|
45
63
|
path_open(_fd: number, _dirflags: number, _path: number, _path_len: number, _oflags: number, _rights_base: bigint, _rights_inheriting: bigint, _fdflags: number, opened_fd_ptr: number): number;
|
|
46
64
|
path_create_directory(_fd: number, _path: number, _path_len: number): number;
|
package/wasm/index.js
CHANGED
|
@@ -84,6 +84,8 @@ class ZigJS {
|
|
|
84
84
|
const bytes = encoder.encode(val);
|
|
85
85
|
if (bytes.byteLength > max)
|
|
86
86
|
return;
|
|
87
|
+
if (bytes.length === 0)
|
|
88
|
+
return;
|
|
87
89
|
new Uint8Array(this.memory.buffer, ptr, bytes.length).set(bytes);
|
|
88
90
|
}
|
|
89
91
|
valueNew(out, id, argsAddr, argsLen) {
|
|
@@ -1129,69 +1131,48 @@ var TAG_NAMES = [
|
|
|
1129
1131
|
"view"
|
|
1130
1132
|
];
|
|
1131
1133
|
var DELEGATED_EVENTS = [
|
|
1132
|
-
"click",
|
|
1133
|
-
"dblclick",
|
|
1134
|
-
"input",
|
|
1135
|
-
"change",
|
|
1136
|
-
"submit",
|
|
1137
|
-
"
|
|
1138
|
-
"
|
|
1139
|
-
"keydown",
|
|
1140
|
-
"keyup",
|
|
1141
|
-
"keypress",
|
|
1142
|
-
"mouseenter",
|
|
1143
|
-
"mouseleave",
|
|
1144
|
-
"mousedown",
|
|
1145
|
-
"mouseup",
|
|
1146
|
-
"mousemove",
|
|
1147
|
-
"touchstart",
|
|
1148
|
-
"touchend",
|
|
1149
|
-
"touchmove",
|
|
1150
|
-
"scroll"
|
|
1134
|
+
{ domType: "click", eventTypeId: 0 },
|
|
1135
|
+
{ domType: "dblclick", eventTypeId: 1 },
|
|
1136
|
+
{ domType: "input", eventTypeId: 2 },
|
|
1137
|
+
{ domType: "change", eventTypeId: 3 },
|
|
1138
|
+
{ domType: "submit", eventTypeId: 4 },
|
|
1139
|
+
{ domType: "focusin", eventTypeId: 5 },
|
|
1140
|
+
{ domType: "focusout", eventTypeId: 6 },
|
|
1141
|
+
{ domType: "keydown", eventTypeId: 7 },
|
|
1142
|
+
{ domType: "keyup", eventTypeId: 8 },
|
|
1143
|
+
{ domType: "keypress", eventTypeId: 9 },
|
|
1144
|
+
{ domType: "mouseenter", eventTypeId: 10 },
|
|
1145
|
+
{ domType: "mouseleave", eventTypeId: 11 },
|
|
1146
|
+
{ domType: "mousedown", eventTypeId: 12 },
|
|
1147
|
+
{ domType: "mouseup", eventTypeId: 13 },
|
|
1148
|
+
{ domType: "mousemove", eventTypeId: 14 },
|
|
1149
|
+
{ domType: "touchstart", eventTypeId: 15 },
|
|
1150
|
+
{ domType: "touchend", eventTypeId: 16 },
|
|
1151
|
+
{ domType: "touchmove", eventTypeId: 17 },
|
|
1152
|
+
{ domType: "scroll", eventTypeId: 18 }
|
|
1151
1153
|
];
|
|
1152
|
-
var EVENT_TYPE_MAP = {
|
|
1153
|
-
click: 0,
|
|
1154
|
-
dblclick: 1,
|
|
1155
|
-
input: 2,
|
|
1156
|
-
change: 3,
|
|
1157
|
-
submit: 4,
|
|
1158
|
-
focus: 5,
|
|
1159
|
-
blur: 6,
|
|
1160
|
-
keydown: 7,
|
|
1161
|
-
keyup: 8,
|
|
1162
|
-
keypress: 9,
|
|
1163
|
-
mouseenter: 10,
|
|
1164
|
-
mouseleave: 11,
|
|
1165
|
-
mousedown: 12,
|
|
1166
|
-
mouseup: 13,
|
|
1167
|
-
mousemove: 14,
|
|
1168
|
-
touchstart: 15,
|
|
1169
|
-
touchend: 16,
|
|
1170
|
-
touchmove: 17,
|
|
1171
|
-
scroll: 18
|
|
1172
|
-
};
|
|
1173
1154
|
var eventHandlerModes = new Map;
|
|
1174
1155
|
function initEventDelegation(bridge, rootSelector = "body") {
|
|
1175
1156
|
const root = document.querySelector(rootSelector);
|
|
1176
1157
|
if (!root)
|
|
1177
1158
|
return () => {};
|
|
1178
1159
|
const removers = [];
|
|
1179
|
-
for (const
|
|
1160
|
+
for (const delegatedEvent of DELEGATED_EVENTS) {
|
|
1180
1161
|
const listener = (event) => {
|
|
1181
1162
|
let target = event.target;
|
|
1182
1163
|
while (target && target !== document.body) {
|
|
1183
1164
|
const zxRef = target.__zx_ref;
|
|
1184
1165
|
if (zxRef !== undefined) {
|
|
1185
|
-
bridge.eventbridge(BigInt(zxRef),
|
|
1166
|
+
bridge.eventbridge(BigInt(zxRef), delegatedEvent.eventTypeId, event);
|
|
1186
1167
|
if (event.cancelBubble)
|
|
1187
1168
|
break;
|
|
1188
1169
|
}
|
|
1189
1170
|
target = target.parentElement;
|
|
1190
1171
|
}
|
|
1191
1172
|
};
|
|
1192
|
-
const options = { passive:
|
|
1193
|
-
root.addEventListener(
|
|
1194
|
-
removers.push(() => root.removeEventListener(
|
|
1173
|
+
const options = { passive: delegatedEvent.domType.startsWith("touch") || delegatedEvent.domType === "scroll" };
|
|
1174
|
+
root.addEventListener(delegatedEvent.domType, listener, options);
|
|
1175
|
+
removers.push(() => root.removeEventListener(delegatedEvent.domType, listener, options));
|
|
1195
1176
|
}
|
|
1196
1177
|
return () => {
|
|
1197
1178
|
for (const remove of removers)
|
package/wasm/init.js
CHANGED
|
@@ -69,6 +69,8 @@ class ZigJS {
|
|
|
69
69
|
const bytes = encoder.encode(val);
|
|
70
70
|
if (bytes.byteLength > max)
|
|
71
71
|
return;
|
|
72
|
+
if (bytes.length === 0)
|
|
73
|
+
return;
|
|
72
74
|
new Uint8Array(this.memory.buffer, ptr, bytes.length).set(bytes);
|
|
73
75
|
}
|
|
74
76
|
valueNew(out, id, argsAddr, argsLen) {
|
|
@@ -1091,69 +1093,48 @@ var TAG_NAMES = [
|
|
|
1091
1093
|
"view"
|
|
1092
1094
|
];
|
|
1093
1095
|
var DELEGATED_EVENTS = [
|
|
1094
|
-
"click",
|
|
1095
|
-
"dblclick",
|
|
1096
|
-
"input",
|
|
1097
|
-
"change",
|
|
1098
|
-
"submit",
|
|
1099
|
-
"
|
|
1100
|
-
"
|
|
1101
|
-
"keydown",
|
|
1102
|
-
"keyup",
|
|
1103
|
-
"keypress",
|
|
1104
|
-
"mouseenter",
|
|
1105
|
-
"mouseleave",
|
|
1106
|
-
"mousedown",
|
|
1107
|
-
"mouseup",
|
|
1108
|
-
"mousemove",
|
|
1109
|
-
"touchstart",
|
|
1110
|
-
"touchend",
|
|
1111
|
-
"touchmove",
|
|
1112
|
-
"scroll"
|
|
1096
|
+
{ domType: "click", eventTypeId: 0 },
|
|
1097
|
+
{ domType: "dblclick", eventTypeId: 1 },
|
|
1098
|
+
{ domType: "input", eventTypeId: 2 },
|
|
1099
|
+
{ domType: "change", eventTypeId: 3 },
|
|
1100
|
+
{ domType: "submit", eventTypeId: 4 },
|
|
1101
|
+
{ domType: "focusin", eventTypeId: 5 },
|
|
1102
|
+
{ domType: "focusout", eventTypeId: 6 },
|
|
1103
|
+
{ domType: "keydown", eventTypeId: 7 },
|
|
1104
|
+
{ domType: "keyup", eventTypeId: 8 },
|
|
1105
|
+
{ domType: "keypress", eventTypeId: 9 },
|
|
1106
|
+
{ domType: "mouseenter", eventTypeId: 10 },
|
|
1107
|
+
{ domType: "mouseleave", eventTypeId: 11 },
|
|
1108
|
+
{ domType: "mousedown", eventTypeId: 12 },
|
|
1109
|
+
{ domType: "mouseup", eventTypeId: 13 },
|
|
1110
|
+
{ domType: "mousemove", eventTypeId: 14 },
|
|
1111
|
+
{ domType: "touchstart", eventTypeId: 15 },
|
|
1112
|
+
{ domType: "touchend", eventTypeId: 16 },
|
|
1113
|
+
{ domType: "touchmove", eventTypeId: 17 },
|
|
1114
|
+
{ domType: "scroll", eventTypeId: 18 }
|
|
1113
1115
|
];
|
|
1114
|
-
var EVENT_TYPE_MAP = {
|
|
1115
|
-
click: 0,
|
|
1116
|
-
dblclick: 1,
|
|
1117
|
-
input: 2,
|
|
1118
|
-
change: 3,
|
|
1119
|
-
submit: 4,
|
|
1120
|
-
focus: 5,
|
|
1121
|
-
blur: 6,
|
|
1122
|
-
keydown: 7,
|
|
1123
|
-
keyup: 8,
|
|
1124
|
-
keypress: 9,
|
|
1125
|
-
mouseenter: 10,
|
|
1126
|
-
mouseleave: 11,
|
|
1127
|
-
mousedown: 12,
|
|
1128
|
-
mouseup: 13,
|
|
1129
|
-
mousemove: 14,
|
|
1130
|
-
touchstart: 15,
|
|
1131
|
-
touchend: 16,
|
|
1132
|
-
touchmove: 17,
|
|
1133
|
-
scroll: 18
|
|
1134
|
-
};
|
|
1135
1116
|
var eventHandlerModes = new Map;
|
|
1136
1117
|
function initEventDelegation(bridge, rootSelector = "body") {
|
|
1137
1118
|
const root = document.querySelector(rootSelector);
|
|
1138
1119
|
if (!root)
|
|
1139
1120
|
return () => {};
|
|
1140
1121
|
const removers = [];
|
|
1141
|
-
for (const
|
|
1122
|
+
for (const delegatedEvent of DELEGATED_EVENTS) {
|
|
1142
1123
|
const listener = (event) => {
|
|
1143
1124
|
let target = event.target;
|
|
1144
1125
|
while (target && target !== document.body) {
|
|
1145
1126
|
const zxRef = target.__zx_ref;
|
|
1146
1127
|
if (zxRef !== undefined) {
|
|
1147
|
-
bridge.eventbridge(BigInt(zxRef),
|
|
1128
|
+
bridge.eventbridge(BigInt(zxRef), delegatedEvent.eventTypeId, event);
|
|
1148
1129
|
if (event.cancelBubble)
|
|
1149
1130
|
break;
|
|
1150
1131
|
}
|
|
1151
1132
|
target = target.parentElement;
|
|
1152
1133
|
}
|
|
1153
1134
|
};
|
|
1154
|
-
const options = { passive:
|
|
1155
|
-
root.addEventListener(
|
|
1156
|
-
removers.push(() => root.removeEventListener(
|
|
1135
|
+
const options = { passive: delegatedEvent.domType.startsWith("touch") || delegatedEvent.domType === "scroll" };
|
|
1136
|
+
root.addEventListener(delegatedEvent.domType, listener, options);
|
|
1137
|
+
removers.push(() => root.removeEventListener(delegatedEvent.domType, listener, options));
|
|
1157
1138
|
}
|
|
1158
1139
|
return () => {
|
|
1159
1140
|
for (const remove of removers)
|