1use hirola_core::effect::EffectAttribute;
2use strum::{Display, EnumString};
3
4use crate::effects::attr_on::OnEffect;
5
6#[derive(Debug, EnumString, Display)]
7#[strum(serialize_all = "lowercase")]
8pub enum DomEvent {
9 Abort,
10 Autocomplete,
11 AutocompleteError,
12 Blur,
13 Cancel,
14 CanPlay,
15 CanPlayThrough,
16 Change,
17 Click,
18 Close,
19 ContextMenu,
20 CueChange,
21 DblClick,
22 Drag,
23 DragEnd,
24 DragEnter,
25 DragExit,
26 DragLeave,
27 DragOver,
28 DragStart,
29 Drop,
30 DurationChange,
31 Emptied,
32 Ended,
33 Error,
34 Focus,
35 Input,
36 Invalid,
37 KeyDown,
38 KeyPress,
39 KeyUp,
40 Load,
41 LoadedData,
42 LoadedMetadata,
43 LoadStart,
44 MouseDown,
45 MouseEnter,
46 MouseLeave,
47 MouseMove,
48 MouseOut,
49 MouseOver,
50 MouseUp,
51 MouseWheel,
52 Pause,
53 Play,
54 Playing,
55 Progress,
56 RateChange,
57 Reset,
58 Resize,
59 Scroll,
60 Seeked,
61 Seeking,
62 Select,
63 Show,
64 Sort,
65 Stalled,
66 Submit,
67 Suspend,
68 TimeUpdate,
69 Toggle,
70 VolumeChange,
71 Waiting,
72}
73
74impl EffectAttribute for DomEvent {
75 type Handler = OnEffect;
76 fn read_as_attr(&self) -> String {
77 self.to_string().to_lowercase()
78 }
79}