// Do not edit. This file is generated.
// MoonBit type: Event
// Specifications: dom.idl
///|
/// [Event](https://developer.mozilla.org/en-US/docs/Web/API/Event)
#external
pub type Event
///|
pub impl TJsValue for Event with to_js(self : Event) -> JsValue = "%identity"
///|
pub impl FromJsAny for Event with from_js_any(value : JsAny) -> Event = "%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 : TEvent] Event::into(self : Event) -> 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 : TEvent] Event::unsafe_into(self : Event) -> T = "%identity"
///|
pub impl HasConstructor for Event with constructor_name() {
"Event"
}
///|
/// Checked downcast — returns None if the JS value is not an instance of T.
pub fn[T : TEvent + HasConstructor] Event::try_into(self : Event) -> T? {
if js_instanceof(TJsValue::to_js(self), T::constructor_name()) {
Some(self.unsafe_into())
} else {
None
}
}
///|
pub impl TEvent for Event
///|
pub fn Event::new(type_ : String, event_init_dict? : EventInit) -> Event {
event_new_ffi(TJsValue::to_js(type_), opt_to_js(event_init_dict))
}
///|
pub const EVENT_NONE : UInt = 0
///|
pub const EVENT_CAPTURING_PHASE : UInt = 1
///|
pub const EVENT_AT_TARGET : UInt = 2
///|
pub const EVENT_BUBBLING_PHASE : UInt = 3
///|
/// [Event](https://developer.mozilla.org/en-US/docs/Web/API/Event) interface.
pub trait TEvent: TJsValue {
type_(self : Self) -> String = _
target(self : Self) -> EventTarget = _
src_element(self : Self) -> EventTarget = _
current_target(self : Self) -> EventTarget = _
composed_path(self : Self) -> Array[EventTarget] = _
event_phase(self : Self) -> UInt = _
stop_propagation(self : Self) -> Unit = _
cancel_bubble(self : Self) -> Bool = _
set_cancel_bubble(self : Self, cancel_bubble : Bool) -> Unit = _
stop_immediate_propagation(self : Self) -> Unit = _
bubbles(self : Self) -> Bool = _
cancelable(self : Self) -> Bool = _
return_value(self : Self) -> Bool = _
set_return_value(self : Self, return_value : Bool) -> Unit = _
prevent_default(self : Self) -> Unit = _
default_prevented(self : Self) -> Bool = _
composed(self : Self) -> Bool = _
is_trusted(self : Self) -> Bool = _
time_stamp(self : Self) -> DOMHighResTimeStamp = _
init_event(self : Self, type_ : String, bubbles? : Bool, cancelable? : Bool) -> Unit = _
}
///|
/// [Event.type](https://developer.mozilla.org/en-US/docs/Web/API/Event/type)
impl TEvent with type_(self : Self) -> String {
event_type_ffi(TJsValue::to_js(self))
}
///|
/// [Event.target](https://developer.mozilla.org/en-US/docs/Web/API/Event/target)
impl TEvent with target(self : Self) -> EventTarget {
event_target_ffi(TJsValue::to_js(self))
}
///|
/// [Event.srcElement](https://developer.mozilla.org/en-US/docs/Web/API/Event/srcElement)
impl TEvent with src_element(self : Self) -> EventTarget {
event_src_element_ffi(TJsValue::to_js(self))
}
///|
/// [Event.currentTarget](https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget)
impl TEvent with current_target(self : Self) -> EventTarget {
event_current_target_ffi(TJsValue::to_js(self))
}
///|
/// [Event.composedPath](https://developer.mozilla.org/en-US/docs/Web/API/Event/composedPath)
impl TEvent with composed_path(self : Self) -> Array[EventTarget] {
event_composed_path_ffi(TJsValue::to_js(self))
}
///|
/// [Event.eventPhase](https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase)
impl TEvent with event_phase(self : Self) -> UInt {
event_event_phase_ffi(TJsValue::to_js(self))
}
///|
/// [Event.stopPropagation](https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation)
impl TEvent with stop_propagation(self : Self) -> Unit {
event_stop_propagation_ffi(TJsValue::to_js(self))
}
///|
/// [Event.cancelBubble](https://developer.mozilla.org/en-US/docs/Web/API/Event/cancelBubble)
impl TEvent with cancel_bubble(self : Self) -> Bool {
event_cancel_bubble_ffi(TJsValue::to_js(self))
}
///|
/// [Event.cancelBubble](https://developer.mozilla.org/en-US/docs/Web/API/Event/cancelBubble)
impl TEvent with set_cancel_bubble(self : Self, cancel_bubble : Bool) -> Unit {
event_set_cancel_bubble_ffi(
TJsValue::to_js(self),
TJsValue::to_js(cancel_bubble),
)
}
///|
/// [Event.stopImmediatePropagation](https://developer.mozilla.org/en-US/docs/Web/API/Event/stopImmediatePropagation)
impl TEvent with stop_immediate_propagation(self : Self) -> Unit {
event_stop_immediate_propagation_ffi(TJsValue::to_js(self))
}
///|
/// [Event.bubbles](https://developer.mozilla.org/en-US/docs/Web/API/Event/bubbles)
impl TEvent with bubbles(self : Self) -> Bool {
event_bubbles_ffi(TJsValue::to_js(self))
}
///|
/// [Event.cancelable](https://developer.mozilla.org/en-US/docs/Web/API/Event/cancelable)
impl TEvent with cancelable(self : Self) -> Bool {
event_cancelable_ffi(TJsValue::to_js(self))
}
///|
/// [Event.returnValue](https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue)
impl TEvent with return_value(self : Self) -> Bool {
event_return_value_ffi(TJsValue::to_js(self))
}
///|
/// [Event.returnValue](https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue)
impl TEvent with set_return_value(self : Self, return_value : Bool) -> Unit {
event_set_return_value_ffi(
TJsValue::to_js(self),
TJsValue::to_js(return_value),
)
}
///|
/// [Event.preventDefault](https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)
impl TEvent with prevent_default(self : Self) -> Unit {
event_prevent_default_ffi(TJsValue::to_js(self))
}
///|
/// [Event.defaultPrevented](https://developer.mozilla.org/en-US/docs/Web/API/Event/defaultPrevented)
impl TEvent with default_prevented(self : Self) -> Bool {
event_default_prevented_ffi(TJsValue::to_js(self))
}
///|
/// [Event.composed](https://developer.mozilla.org/en-US/docs/Web/API/Event/composed)
impl TEvent with composed(self : Self) -> Bool {
event_composed_ffi(TJsValue::to_js(self))
}
///|
/// [Event.isTrusted](https://developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted)
impl TEvent with is_trusted(self : Self) -> Bool {
event_is_trusted_ffi(TJsValue::to_js(self))
}
///|
/// [Event.timeStamp](https://developer.mozilla.org/en-US/docs/Web/API/Event/timeStamp)
impl TEvent with time_stamp(self : Self) -> DOMHighResTimeStamp {
event_time_stamp_ffi(TJsValue::to_js(self))
}
///|
/// [Event.initEvent](https://developer.mozilla.org/en-US/docs/Web/API/Event/initEvent)
impl TEvent with init_event(
self : Self,
type_ : String,
bubbles? : Bool,
cancelable? : Bool,
) -> Unit {
event_init_event_ffi(
TJsValue::to_js(self),
TJsValue::to_js(type_),
opt_to_js(bubbles),
opt_to_js(cancelable),
)
}
///|
#cfg(target="js")
extern "js" fn event_new_ffi(
type_ : JsValue,
event_init_dict : JsValue,
) -> Event = "(type_, event_init_dict) => new Event(type_, event_init_dict)"
///|
#cfg(target="js")
extern "js" fn event_type_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.type"
///|
#cfg(target="js")
fn event_type_ffi(obj : JsValue) -> String {
event_type_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_target_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.target"
///|
#cfg(target="js")
fn event_target_ffi(obj : JsValue) -> EventTarget {
event_target_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_src_element_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.srcElement"
///|
#cfg(target="js")
fn event_src_element_ffi(obj : JsValue) -> EventTarget {
event_src_element_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_current_target_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.currentTarget"
///|
#cfg(target="js")
fn event_current_target_ffi(obj : JsValue) -> EventTarget {
event_current_target_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_composed_path_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.composedPath()"
///|
#cfg(target="js")
fn event_composed_path_ffi(obj : JsValue) -> Array[EventTarget] {
event_composed_path_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_event_phase_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.eventPhase"
///|
#cfg(target="js")
fn event_event_phase_ffi(obj : JsValue) -> UInt {
event_event_phase_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_stop_propagation_ffi(obj : JsValue) -> Unit = "(obj) => obj.stopPropagation()"
///|
#cfg(target="js")
extern "js" fn event_cancel_bubble_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.cancelBubble"
///|
#cfg(target="js")
fn event_cancel_bubble_ffi(obj : JsValue) -> Bool {
event_cancel_bubble_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_set_cancel_bubble_ffi(
obj : JsValue,
cancel_bubble : JsValue,
) -> Unit = "(obj, cancelBubble) => { obj.cancelBubble = cancelBubble; }"
///|
#cfg(target="js")
extern "js" fn event_stop_immediate_propagation_ffi(obj : JsValue) -> Unit = "(obj) => obj.stopImmediatePropagation()"
///|
#cfg(target="js")
extern "js" fn event_bubbles_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.bubbles"
///|
#cfg(target="js")
fn event_bubbles_ffi(obj : JsValue) -> Bool {
event_bubbles_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_cancelable_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.cancelable"
///|
#cfg(target="js")
fn event_cancelable_ffi(obj : JsValue) -> Bool {
event_cancelable_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_return_value_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.returnValue"
///|
#cfg(target="js")
fn event_return_value_ffi(obj : JsValue) -> Bool {
event_return_value_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_set_return_value_ffi(
obj : JsValue,
return_value : JsValue,
) -> Unit = "(obj, returnValue) => { obj.returnValue = returnValue; }"
///|
#cfg(target="js")
extern "js" fn event_prevent_default_ffi(obj : JsValue) -> Unit = "(obj) => obj.preventDefault()"
///|
#cfg(target="js")
extern "js" fn event_default_prevented_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.defaultPrevented"
///|
#cfg(target="js")
fn event_default_prevented_ffi(obj : JsValue) -> Bool {
event_default_prevented_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_composed_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.composed"
///|
#cfg(target="js")
fn event_composed_ffi(obj : JsValue) -> Bool {
event_composed_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_is_trusted_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.isTrusted"
///|
#cfg(target="js")
fn event_is_trusted_ffi(obj : JsValue) -> Bool {
event_is_trusted_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_time_stamp_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.timeStamp"
///|
#cfg(target="js")
fn event_time_stamp_ffi(obj : JsValue) -> DOMHighResTimeStamp {
event_time_stamp_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn event_init_event_ffi(
obj : JsValue,
type_ : JsValue,
bubbles : JsValue,
cancelable : JsValue,
) -> Unit = "(obj, type_, bubbles, cancelable) => obj.initEvent(type_, bubbles, cancelable)"
///|
#cfg(target="wasm-gc")
fn event_new_ffi(type_ : JsValue, event_init_dict : JsValue) -> Event = "webapi_Event" "new"
///|
#cfg(target="wasm-gc")
fn event_type_ffi_wasm(obj : JsValue) -> JsValue = "webapi_Event" "get_type"
///|
#cfg(target="wasm-gc")
fn event_type_ffi(obj : JsValue) -> String {
jsvalue_to_string(event_type_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn event_target_ffi(obj : JsValue) -> EventTarget = "webapi_Event" "get_target"
///|
#cfg(target="wasm-gc")
fn event_src_element_ffi(obj : JsValue) -> EventTarget = "webapi_Event" "get_srcElement"
///|
#cfg(target="wasm-gc")
fn event_current_target_ffi(obj : JsValue) -> EventTarget = "webapi_Event" "get_currentTarget"
///|
#cfg(target="wasm-gc")
fn event_composed_path_ffi_wasm(obj : JsValue) -> JsArray = "webapi_Event" "composedPath"
///|
#cfg(target="wasm-gc")
fn event_composed_path_ffi(obj : JsValue) -> Array[EventTarget] {
event_composed_path_ffi_wasm(obj).to_array()
}
///|
#cfg(target="wasm-gc")
fn event_event_phase_ffi(obj : JsValue) -> UInt = "webapi_Event" "get_eventPhase"
///|
#cfg(target="wasm-gc")
fn event_stop_propagation_ffi(obj : JsValue) -> Unit = "webapi_Event" "stopPropagation"
///|
#cfg(target="wasm-gc")
fn event_cancel_bubble_ffi(obj : JsValue) -> Bool = "webapi_Event" "get_cancelBubble"
///|
#cfg(target="wasm-gc")
fn event_set_cancel_bubble_ffi(obj : JsValue, cancel_bubble : JsValue) -> Unit = "webapi_Event" "set_cancelBubble"
///|
#cfg(target="wasm-gc")
fn event_stop_immediate_propagation_ffi(obj : JsValue) -> Unit = "webapi_Event" "stopImmediatePropagation"
///|
#cfg(target="wasm-gc")
fn event_bubbles_ffi(obj : JsValue) -> Bool = "webapi_Event" "get_bubbles"
///|
#cfg(target="wasm-gc")
fn event_cancelable_ffi(obj : JsValue) -> Bool = "webapi_Event" "get_cancelable"
///|
#cfg(target="wasm-gc")
fn event_return_value_ffi(obj : JsValue) -> Bool = "webapi_Event" "get_returnValue"
///|
#cfg(target="wasm-gc")
fn event_set_return_value_ffi(obj : JsValue, return_value : JsValue) -> Unit = "webapi_Event" "set_returnValue"
///|
#cfg(target="wasm-gc")
fn event_prevent_default_ffi(obj : JsValue) -> Unit = "webapi_Event" "preventDefault"
///|
#cfg(target="wasm-gc")
fn event_default_prevented_ffi(obj : JsValue) -> Bool = "webapi_Event" "get_defaultPrevented"
///|
#cfg(target="wasm-gc")
fn event_composed_ffi(obj : JsValue) -> Bool = "webapi_Event" "get_composed"
///|
#cfg(target="wasm-gc")
fn event_is_trusted_ffi(obj : JsValue) -> Bool = "webapi_Event" "get_isTrusted"
///|
#cfg(target="wasm-gc")
fn event_time_stamp_ffi(obj : JsValue) -> DOMHighResTimeStamp = "webapi_Event" "get_timeStamp"
///|
#cfg(target="wasm-gc")
fn event_init_event_ffi(
obj : JsValue,
type_ : JsValue,
bubbles : JsValue,
cancelable : JsValue,
) -> Unit = "webapi_Event" "initEvent"