// Do not edit. This file is generated.
// MoonBit type: VisualViewport
// Specifications: cssom-view.idl
///|
/// [VisualViewport](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport)
#external
pub type VisualViewport
///|
pub impl TJsValue for VisualViewport with to_js(self : VisualViewport) -> JsValue = "%identity"
///|
pub impl FromJsAny for VisualViewport with from_js_any(value : JsAny) -> VisualViewport = "%identity"
///|
/// Unchecked downcast — no runtime type check is performed.
/// Prefer `try_into()` for checked downcasts.
#deprecated("Use unsafe_into or try_into instead")
pub fn[T : TVisualViewport] VisualViewport::into(self : VisualViewport) -> T = "%identity"
///|
/// Unchecked downcast — no runtime type check is performed.
/// WARNING: If the underlying JS value is not of type T, this will silently
/// produce a value with incorrect type, leading to undefined behavior.
pub fn[T : TVisualViewport] VisualViewport::unsafe_into(
self : VisualViewport,
) -> T = "%identity"
///|
pub impl HasConstructor for VisualViewport with constructor_name() {
"VisualViewport"
}
///|
/// Checked downcast — returns None if the JS value is not an instance of T.
pub fn[T : TVisualViewport + HasConstructor] VisualViewport::try_into(
self : VisualViewport,
) -> T? {
if js_instanceof(TJsValue::to_js(self), T::constructor_name()) {
Some(self.unsafe_into())
} else {
None
}
}
///|
pub impl TVisualViewport for VisualViewport
///|
pub impl TEventTarget for VisualViewport
///|
/// [VisualViewport](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport) interface.
pub trait TVisualViewport: TEventTarget {
offset_left(self : Self) -> Double = _
offset_top(self : Self) -> Double = _
page_left(self : Self) -> Double = _
page_top(self : Self) -> Double = _
width(self : Self) -> Double = _
height(self : Self) -> Double = _
scale(self : Self) -> Double = _
onresize(self : Self) -> EventHandler = _
set_onresize(self : Self, onresize : (Event) -> JsValue) -> Unit = _
onscroll(self : Self) -> EventHandler = _
set_onscroll(self : Self, onscroll : (Event) -> JsValue) -> Unit = _
onscrollend(self : Self) -> EventHandler = _
set_onscrollend(self : Self, onscrollend : (Event) -> JsValue) -> Unit = _
}
///|
/// [VisualViewport.offsetLeft](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/offsetLeft)
impl TVisualViewport with offset_left(self : Self) -> Double {
visual_viewport_offset_left_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.offsetTop](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/offsetTop)
impl TVisualViewport with offset_top(self : Self) -> Double {
visual_viewport_offset_top_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.pageLeft](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/pageLeft)
impl TVisualViewport with page_left(self : Self) -> Double {
visual_viewport_page_left_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.pageTop](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/pageTop)
impl TVisualViewport with page_top(self : Self) -> Double {
visual_viewport_page_top_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.width](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/width)
impl TVisualViewport with width(self : Self) -> Double {
visual_viewport_width_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.height](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/height)
impl TVisualViewport with height(self : Self) -> Double {
visual_viewport_height_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.scale](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/scale)
impl TVisualViewport with scale(self : Self) -> Double {
visual_viewport_scale_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.onresize](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/onresize)
impl TVisualViewport with onresize(self : Self) -> EventHandler {
visual_viewport_onresize_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.onresize](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/onresize)
impl TVisualViewport with set_onresize(
self : Self,
onresize : (Event) -> JsValue,
) -> Unit {
visual_viewport_set_onresize_ffi(
TJsValue::to_js(self),
TJsValue::to_js(event_handler_non_null_ffi(onresize)),
)
}
///|
/// [VisualViewport.onscroll](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/onscroll)
impl TVisualViewport with onscroll(self : Self) -> EventHandler {
visual_viewport_onscroll_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.onscroll](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/onscroll)
impl TVisualViewport with set_onscroll(
self : Self,
onscroll : (Event) -> JsValue,
) -> Unit {
visual_viewport_set_onscroll_ffi(
TJsValue::to_js(self),
TJsValue::to_js(event_handler_non_null_ffi(onscroll)),
)
}
///|
/// [VisualViewport.onscrollend](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/onscrollend)
impl TVisualViewport with onscrollend(self : Self) -> EventHandler {
visual_viewport_onscrollend_ffi(TJsValue::to_js(self))
}
///|
/// [VisualViewport.onscrollend](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport/onscrollend)
impl TVisualViewport with set_onscrollend(
self : Self,
onscrollend : (Event) -> JsValue,
) -> Unit {
visual_viewport_set_onscrollend_ffi(
TJsValue::to_js(self),
TJsValue::to_js(event_handler_non_null_ffi(onscrollend)),
)
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_offset_left_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.offsetLeft"
///|
#cfg(target="js")
fn visual_viewport_offset_left_ffi(obj : JsValue) -> Double {
visual_viewport_offset_left_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_offset_top_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.offsetTop"
///|
#cfg(target="js")
fn visual_viewport_offset_top_ffi(obj : JsValue) -> Double {
visual_viewport_offset_top_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_page_left_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.pageLeft"
///|
#cfg(target="js")
fn visual_viewport_page_left_ffi(obj : JsValue) -> Double {
visual_viewport_page_left_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_page_top_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.pageTop"
///|
#cfg(target="js")
fn visual_viewport_page_top_ffi(obj : JsValue) -> Double {
visual_viewport_page_top_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_width_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.width"
///|
#cfg(target="js")
fn visual_viewport_width_ffi(obj : JsValue) -> Double {
visual_viewport_width_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_height_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.height"
///|
#cfg(target="js")
fn visual_viewport_height_ffi(obj : JsValue) -> Double {
visual_viewport_height_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_scale_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.scale"
///|
#cfg(target="js")
fn visual_viewport_scale_ffi(obj : JsValue) -> Double {
visual_viewport_scale_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_onresize_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.onresize"
///|
#cfg(target="js")
fn visual_viewport_onresize_ffi(obj : JsValue) -> EventHandler {
visual_viewport_onresize_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_set_onresize_ffi(
obj : JsValue,
onresize : JsValue,
) -> Unit = "(obj, onresize) => { obj.onresize = onresize; }"
///|
#cfg(target="js")
extern "js" fn visual_viewport_onscroll_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.onscroll"
///|
#cfg(target="js")
fn visual_viewport_onscroll_ffi(obj : JsValue) -> EventHandler {
visual_viewport_onscroll_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_set_onscroll_ffi(
obj : JsValue,
onscroll : JsValue,
) -> Unit = "(obj, onscroll) => { obj.onscroll = onscroll; }"
///|
#cfg(target="js")
extern "js" fn visual_viewport_onscrollend_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.onscrollend"
///|
#cfg(target="js")
fn visual_viewport_onscrollend_ffi(obj : JsValue) -> EventHandler {
visual_viewport_onscrollend_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn visual_viewport_set_onscrollend_ffi(
obj : JsValue,
onscrollend : JsValue,
) -> Unit = "(obj, onscrollend) => { obj.onscrollend = onscrollend; }"
///|
#cfg(target="wasm-gc")
fn visual_viewport_offset_left_ffi(obj : JsValue) -> Double = "webapi_VisualViewport" "get_offsetLeft"
///|
#cfg(target="wasm-gc")
fn visual_viewport_offset_top_ffi(obj : JsValue) -> Double = "webapi_VisualViewport" "get_offsetTop"
///|
#cfg(target="wasm-gc")
fn visual_viewport_page_left_ffi(obj : JsValue) -> Double = "webapi_VisualViewport" "get_pageLeft"
///|
#cfg(target="wasm-gc")
fn visual_viewport_page_top_ffi(obj : JsValue) -> Double = "webapi_VisualViewport" "get_pageTop"
///|
#cfg(target="wasm-gc")
fn visual_viewport_width_ffi(obj : JsValue) -> Double = "webapi_VisualViewport" "get_width"
///|
#cfg(target="wasm-gc")
fn visual_viewport_height_ffi(obj : JsValue) -> Double = "webapi_VisualViewport" "get_height"
///|
#cfg(target="wasm-gc")
fn visual_viewport_scale_ffi(obj : JsValue) -> Double = "webapi_VisualViewport" "get_scale"
///|
#cfg(target="wasm-gc")
fn visual_viewport_onresize_ffi_wasm(obj : JsValue) -> JsValue = "webapi_VisualViewport" "get_onresize"
///|
#cfg(target="wasm-gc")
fn visual_viewport_onresize_ffi(obj : JsValue) -> EventHandler {
visual_viewport_onresize_ffi_wasm(obj).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn visual_viewport_set_onresize_ffi(obj : JsValue, onresize : JsValue) -> Unit = "webapi_VisualViewport" "set_onresize"
///|
#cfg(target="wasm-gc")
fn visual_viewport_onscroll_ffi_wasm(obj : JsValue) -> JsValue = "webapi_VisualViewport" "get_onscroll"
///|
#cfg(target="wasm-gc")
fn visual_viewport_onscroll_ffi(obj : JsValue) -> EventHandler {
visual_viewport_onscroll_ffi_wasm(obj).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn visual_viewport_set_onscroll_ffi(obj : JsValue, onscroll : JsValue) -> Unit = "webapi_VisualViewport" "set_onscroll"
///|
#cfg(target="wasm-gc")
fn visual_viewport_onscrollend_ffi_wasm(obj : JsValue) -> JsValue = "webapi_VisualViewport" "get_onscrollend"
///|
#cfg(target="wasm-gc")
fn visual_viewport_onscrollend_ffi(obj : JsValue) -> EventHandler {
visual_viewport_onscrollend_ffi_wasm(obj).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn visual_viewport_set_onscrollend_ffi(
obj : JsValue,
onscrollend : JsValue,
) -> Unit = "webapi_VisualViewport" "set_onscrollend"