-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
import { type ElementSetup, map, on, type ReactiveOrStatic } from "../../ef.js";
export function onInput<T extends HTMLElement & { value: string }>(
listener: ReactiveOrStatic<(value: string) => void>,
): ElementSetup<T> {
return on<T, InputEvent>(
"input",
map(listener, (f) => (ev) => {
if (
ev.currentTarget instanceof HTMLElement &&
"value" in ev.currentTarget &&
typeof ev.currentTarget.value === "string"
) {
ev.stopPropagation();
f(ev.currentTarget.value);
}
}),
);
}