yew_full_calendar/bindings/
date_click.rs1use wasm_bindgen::prelude::*;
2
3#[wasm_bindgen]
26extern "C" {
27 #[derive(Debug, Clone, PartialEq)]
28 pub type DateClickInfo;
29 #[wasm_bindgen(method, js_name = preventDefault)]
30 pub fn prevent_default(this: &DateClickInfo);
31}
32
33impl DateClickInfo {
34 #[must_use]
35 pub fn date(&self) -> Option<web_sys::js_sys::Date> {
36 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("date"))
37 .ok()
38 .and_then(|v| {
39 v.dyn_into::<web_sys::js_sys::Date>()
40 .inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
41 .ok()
42 })
43 }
44 #[must_use]
45 pub fn date_str(&self) -> Option<String> {
46 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("dateStr"))
47 .ok()
48 .and_then(|v| v.as_string())
49 }
50 #[must_use]
51 pub fn all_day(&self) -> Option<bool> {
52 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("allDay"))
53 .ok()
54 .and_then(|v| v.as_bool())
55 }
56 #[must_use]
57 pub fn day_el(&self) -> Option<web_sys::Element> {
58 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("dayEl"))
59 .ok()
60 .and_then(|v| {
61 v.dyn_into::<web_sys::Element>()
62 .inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
63 .ok()
64 })
65 }
66 #[must_use]
67 pub fn js_event(&self) -> Option<web_sys::Event> {
68 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("jsEvent"))
69 .ok()
70 .and_then(|v| {
71 v.dyn_into::<web_sys::Event>()
72 .inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
73 .ok()
74 })
75 }
76 #[must_use]
77 pub fn view(&self) -> Option<super::CalendarView> {
78 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("view"))
79 .ok()
80 .map(web_sys::wasm_bindgen::JsCast::unchecked_into::<super::CalendarView>)
81 }
82 #[must_use]
83 pub fn resource(&self) -> Option<crate::ResourceObject> {
84 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("resource"))
85 .ok()
86 .map(web_sys::wasm_bindgen::JsCast::unchecked_into::<crate::ResourceObject>)
87 }
88}
89
90#[wasm_bindgen]
91extern "C" {
92 #[derive(Debug, Clone, PartialEq)]
93 pub type ResourceObject;
94 #[wasm_bindgen(method, js_name = preventDefault)]
95 pub fn prevent_default(this: &ResourceObject);
96}
97
98impl ResourceObject {
99 #[must_use]
100 pub fn id(&self) -> Option<String> {
101 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("id"))
102 .ok()
103 .and_then(|v| v.as_string())
104 }
105 #[must_use]
106 pub fn all_day(&self) -> Option<bool> {
107 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("allDay"))
108 .ok()
109 .and_then(|v| v.as_bool())
110 }
111 #[must_use]
112 pub fn start(&self) -> Option<web_sys::js_sys::Date> {
113 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("start"))
114 .ok()
115 .and_then(|v| {
116 v.dyn_into::<web_sys::js_sys::Date>()
117 .inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
118 .ok()
119 })
120 }
121 #[must_use]
122 pub fn end(&self) -> Option<web_sys::js_sys::Date> {
123 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("end"))
124 .ok()
125 .and_then(|v| {
126 v.dyn_into::<web_sys::js_sys::Date>()
127 .inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
128 .ok()
129 })
130 }
131 #[must_use]
132 pub fn start_str(&self) -> Option<String> {
133 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("startStr"))
134 .ok()
135 .and_then(|v| v.as_string())
136 }
137 #[must_use]
138 pub fn end_str(&self) -> Option<String> {
139 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("endStr"))
140 .ok()
141 .and_then(|v| v.as_string())
142 }
143 #[must_use]
144 pub fn title(&self) -> Option<String> {
145 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("title"))
146 .ok()
147 .and_then(|v| v.as_string())
148 }
149 #[must_use]
150 pub fn url(&self) -> Option<String> {
151 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("url"))
152 .ok()
153 .and_then(|v| v.as_string())
154 }
155 #[must_use]
156 pub fn class_names(&self) -> Option<web_sys::js_sys::Array> {
157 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("classNames"))
158 .ok()
159 .and_then(|v| {
160 v.dyn_into::<web_sys::js_sys::Array>()
161 .inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
162 .ok()
163 })
164 }
165 #[must_use]
166 pub fn editable(&self) -> Option<bool> {
167 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("editable"))
168 .ok()
169 .and_then(|v| v.as_bool())
170 }
171 #[must_use]
172 pub fn start_editable(&self) -> Option<bool> {
173 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("startEditable"))
174 .ok()
175 .and_then(|v| v.as_bool())
176 }
177 #[must_use]
178 pub fn duration_editable(&self) -> Option<bool> {
179 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("durationEditable"))
180 .ok()
181 .and_then(|v| v.as_bool())
182 }
183 #[must_use]
184 pub fn resource_editable(&self) -> Option<bool> {
185 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("resourceEditable"))
186 .ok()
187 .and_then(|v| v.as_bool())
188 }
189 #[must_use]
190 pub fn display(&self) -> Option<crate::EventDisplay> {
191 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("display"))
192 .ok()
193 .and_then(|v| v.as_string())
194 .and_then(|s| s.as_str().parse().ok())
195 }
196 #[must_use]
197 pub fn overlap(&self) -> Option<bool> {
198 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("overlap"))
199 .ok()
200 .and_then(|v| v.as_bool())
201 }
202 #[must_use]
211 pub fn background_color(&self) -> Option<String> {
212 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("backgroundColor"))
213 .ok()
214 .and_then(|v| v.as_string())
215 }
216 #[must_use]
217 pub fn border_color(&self) -> Option<String> {
218 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("borderColor"))
219 .ok()
220 .and_then(|v| v.as_string())
221 }
222 #[must_use]
223 pub fn text_color(&self) -> Option<String> {
224 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("textColor"))
225 .ok()
226 .and_then(|v| v.as_string())
227 }
228 #[must_use]
229 pub fn extended_props(&self) -> Option<web_sys::js_sys::Object> {
230 web_sys::js_sys::Reflect::get(self, &JsValue::from_str("extendedProps"))
231 .ok()
232 .and_then(|v| {
233 v.dyn_into::<web_sys::js_sys::Object>()
234 .inspect_err(|e| web_sys::console::error_1(&format!("{e:#?}").into()))
235 .ok()
236 })
237 }
238}