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
use std::convert::TryFrom;

use wasm_bindgen::JsCast;

use crate::event::{
    OnAfterPrint, OnBeforePrint, OnBeforeUnload, OnHashChange, OnMessage, OnMessageError,
    OnOffline, OnOnline, OnPageHide, OnPageShow, OnPopState, OnRejectionHandled, OnStorage,
    OnUnhandledRejection, OnUnload,
};
use crate::html::{GenericHtmlElement, HtmlElement};
use crate::{Element, GenericElement, GenericNode, GlobalEventHandlers, InvalidCast, Node};

#[derive(Clone)]
pub struct HtmlBodyElement {
    inner: web_sys::HtmlBodyElement,
}

impl HtmlBodyElement {
    pub fn on_after_print(&self) -> OnAfterPrint {
        OnAfterPrint::new(self.inner.clone().into())
    }

    pub fn on_before_print(&self) -> OnBeforePrint {
        OnBeforePrint::new(self.inner.clone().into())
    }

    pub fn on_before_unload(&self) -> OnBeforeUnload {
        OnBeforeUnload::new(self.inner.clone().into())
    }

    pub fn on_unload(&self) -> OnUnload {
        OnUnload::new(self.inner.clone().into())
    }

    pub fn on_hash_change(&self) -> OnHashChange {
        OnHashChange::new(self.inner.clone().into())
    }

    pub fn on_message(&self) -> OnMessage {
        OnMessage::new(self.inner.clone().into())
    }

    pub fn on_message_error(&self) -> OnMessageError {
        OnMessageError::new(self.inner.clone().into())
    }

    pub fn on_offline(&self) -> OnOffline {
        OnOffline::new(self.inner.clone().into())
    }

    pub fn on_online(&self) -> OnOnline {
        OnOnline::new(self.inner.clone().into())
    }

    pub fn on_page_hide(&self) -> OnPageHide {
        OnPageHide::new(self.inner.clone().into())
    }

    pub fn on_page_show(&self) -> OnPageShow {
        OnPageShow::new(self.inner.clone().into())
    }

    pub fn on_pop_state(&self) -> OnPopState {
        OnPopState::new(self.inner.clone().into())
    }

    pub fn on_rejection_handled(&self) -> OnRejectionHandled {
        OnRejectionHandled::new(self.inner.clone().into())
    }

    pub fn on_unhandled_rejection(&self) -> OnUnhandledRejection {
        OnUnhandledRejection::new(self.inner.clone().into())
    }

    pub fn on_storage(&self) -> OnStorage {
        OnStorage::new(self.inner.clone().into())
    }
}

impl_html_common_traits!(HtmlBodyElement);