use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern "C" {
#[derive(Debug, Clone, PartialEq)]
pub type SelectionInfo;
#[wasm_bindgen(method, js_name = preventDefault)]
pub fn prevent_default(this: &SelectionInfo);
}
impl SelectionInfo {
#[must_use]
pub fn start(&self) -> Option<web_sys::js_sys::Date> {
web_sys::js_sys::Reflect::get(self, &JsValue::from_str("start"))
.ok()
.and_then(|v| {
v.dyn_into::<web_sys::js_sys::Date>()
.inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
.ok()
})
}
#[must_use]
pub fn end(&self) -> Option<web_sys::js_sys::Date> {
web_sys::js_sys::Reflect::get(self, &JsValue::from_str("end"))
.ok()
.and_then(|v| {
v.dyn_into::<web_sys::js_sys::Date>()
.inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
.ok()
})
}
#[must_use]
pub fn start_str(&self) -> Option<String> {
web_sys::js_sys::Reflect::get(self, &JsValue::from_str("startStr"))
.ok()
.and_then(|v| v.as_string())
}
#[must_use]
pub fn end_str(&self) -> Option<String> {
web_sys::js_sys::Reflect::get(self, &JsValue::from_str("endStr"))
.ok()
.and_then(|v| v.as_string())
}
#[must_use]
pub fn all_day(&self) -> Option<bool> {
web_sys::js_sys::Reflect::get(self, &JsValue::from_str("allDay"))
.ok()
.and_then(|v| v.as_bool())
}
#[must_use]
pub fn js_event(&self) -> Option<web_sys::Event> {
web_sys::js_sys::Reflect::get(self, &JsValue::from_str("jsEvent"))
.ok()
.and_then(|v| {
v.dyn_into::<web_sys::Event>()
.inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
.ok()
})
}
#[must_use]
pub fn view(&self) -> Option<super::CalendarView> {
web_sys::js_sys::Reflect::get(self, &JsValue::from_str("view"))
.ok()
.map(web_sys::wasm_bindgen::JsCast::unchecked_into::<super::CalendarView>)
}
#[must_use]
pub fn resource(&self) -> Option<crate::ResourceObject> {
web_sys::js_sys::Reflect::get(self, &JsValue::from_str("resource"))
.ok()
.map(web_sys::wasm_bindgen::JsCast::unchecked_into::<crate::ResourceObject>)
}
}