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
use wasm_bindgen::JsValue;

pub fn is_svg_tag(tag: &str) -> bool {
    match tag.to_lowercase().as_str() {
        "animate" => true,
        "animatemotion" => true,
        "animatetransform" => true,
        "circle" => true,
        "clippath" => true,
        "defs" => true,
        "desc" => true,
        "discard" => true,
        "ellipse" => true,
        "feblend" => true,
        "fecolormatrix" => true,
        "fecomponenttransfer" => true,
        "fecomposite" => true,
        "feconvolvematrix" => true,
        "fediffuselighting" => true,
        "fedisplacementmap" => true,
        "fedistantlight" => true,
        "fedropshadow" => true,
        "feflood" => true,
        "fefunca" => true,
        "fefuncb" => true,
        "fefuncg" => true,
        "fefuncr" => true,
        "fegaussianblur" => true,
        "feimage" => true,
        "femerge" => true,
        "femergenode" => true,
        "femorphology" => true,
        "feoffset" => true,
        "fepointlight" => true,
        "fespecularlighting" => true,
        "fespotlight" => true,
        "fetile" => true,
        "feturbulence" => true,
        "filter" => true,
        "foreignobject" => true,
        "g" => true,
        "line" => true,
        "lineargradient" => true,
        "marker" => true,
        "mask" => true,
        "metadata" => true,
        "mpath" => true,
        "path" => true,
        "pattern" => true,
        "polygon" => true,
        "polyline" => true,
        "radialgradient" => true,
        "rect" => true,
        "set" => true,
        "stop" => true,
        "svg" => true,
        "switch" => true,
        "symbol" => true,
        "text" => true,
        "textpath" => true,
        "title" => true,
        "tspan" => true,
        "unknown" => true,
        "use" => true,
        "view" => true,
        _ => false,
    }
}


pub fn get_oninput_value(event: &JsValue) -> String {
    let event: web_sys::Event = From::from(event.clone());
    let target: web_sys::EventTarget = event
        .target()
        .expect("target failed");
    let target: JsValue = From::from(target);
    let target: web_sys::HtmlInputElement = From::from(target);
    let value = target.value();
    value
}