// Do not edit. This file is generated.
// MoonBit type: KeyframeEffect
// Specifications: web-animations.idl
///|
/// [KeyframeEffect](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect)
#external
pub type KeyframeEffect
///|
pub impl TJsValue for KeyframeEffect with to_js(self : KeyframeEffect) -> JsValue = "%identity"
///|
pub impl FromJsAny for KeyframeEffect with from_js_any(value : JsAny) -> KeyframeEffect = "%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 : TKeyframeEffect] KeyframeEffect::into(self : KeyframeEffect) -> 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 : TKeyframeEffect] KeyframeEffect::unsafe_into(
self : KeyframeEffect,
) -> T = "%identity"
///|
pub impl HasConstructor for KeyframeEffect with constructor_name() {
"KeyframeEffect"
}
///|
/// Checked downcast — returns None if the JS value is not an instance of T.
pub fn[T : TKeyframeEffect + HasConstructor] KeyframeEffect::try_into(
self : KeyframeEffect,
) -> T? {
if js_instanceof(TJsValue::to_js(self), T::constructor_name()) {
Some(self.unsafe_into())
} else {
None
}
}
///|
pub impl TKeyframeEffect for KeyframeEffect
///|
pub impl TAnimationEffect for KeyframeEffect
///|
pub(open) trait TKeyframeEffectNewOptions: TJsValue {}
///|
pub impl TKeyframeEffectNewOptions for Double
///|
pub impl TKeyframeEffectNewOptions for KeyframeEffectOptions
///|
pub fn KeyframeEffect::new(
target : &TElement,
keyframes : JsValue,
options? : &TKeyframeEffectNewOptions,
) -> KeyframeEffect {
keyframe_effect_new_ffi(
TJsValue::to_js(target),
TJsValue::to_js(keyframes),
match options {
Some(v) => v.to_js()
None => JsValue::undefined()
},
)
}
///|
pub fn KeyframeEffect::new_2(source : &TKeyframeEffect) -> KeyframeEffect {
keyframe_effect_new_2_ffi(TJsValue::to_js(source))
}
///|
/// [KeyframeEffect](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect) interface.
pub trait TKeyframeEffect: TAnimationEffect {
target(self : Self) -> Element = _
set_target(self : Self, target : &TElement) -> Unit = _
pseudo_element(self : Self) -> CSSOMString = _
set_pseudo_element(self : Self, pseudo_element : CSSOMString) -> Unit = _
composite(self : Self) -> CompositeOperation = _
set_composite(self : Self, composite : CompositeOperation) -> Unit = _
get_keyframes(self : Self) -> Array[JsValue] = _
set_keyframes(self : Self, keyframes : JsValue) -> Unit = _
}
///|
/// [KeyframeEffect.target](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/target)
impl TKeyframeEffect with target(self : Self) -> Element {
keyframe_effect_target_ffi(TJsValue::to_js(self))
}
///|
/// [KeyframeEffect.target](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/target)
impl TKeyframeEffect with set_target(self : Self, target : &TElement) -> Unit {
keyframe_effect_set_target_ffi(TJsValue::to_js(self), TJsValue::to_js(target))
}
///|
/// [KeyframeEffect.pseudoElement](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/pseudoElement)
impl TKeyframeEffect with pseudo_element(self : Self) -> CSSOMString {
keyframe_effect_pseudo_element_ffi(TJsValue::to_js(self))
}
///|
/// [KeyframeEffect.pseudoElement](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/pseudoElement)
impl TKeyframeEffect with set_pseudo_element(
self : Self,
pseudo_element : CSSOMString,
) -> Unit {
keyframe_effect_set_pseudo_element_ffi(
TJsValue::to_js(self),
TJsValue::to_js(pseudo_element),
)
}
///|
/// [KeyframeEffect.composite](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/composite)
impl TKeyframeEffect with composite(self : Self) -> CompositeOperation {
keyframe_effect_composite_ffi(TJsValue::to_js(self))
}
///|
/// [KeyframeEffect.composite](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/composite)
impl TKeyframeEffect with set_composite(
self : Self,
composite : CompositeOperation,
) -> Unit {
keyframe_effect_set_composite_ffi(
TJsValue::to_js(self),
TJsValue::to_js(composite),
)
}
///|
/// [KeyframeEffect.getKeyframes](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/getKeyframes)
impl TKeyframeEffect with get_keyframes(self : Self) -> Array[JsValue] {
keyframe_effect_get_keyframes_ffi(TJsValue::to_js(self))
}
///|
/// [KeyframeEffect.setKeyframes](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/setKeyframes)
impl TKeyframeEffect with set_keyframes(self : Self, keyframes : JsValue) -> Unit {
keyframe_effect_set_keyframes_ffi(
TJsValue::to_js(self),
TJsValue::to_js(keyframes),
)
}
///|
#cfg(target="js")
extern "js" fn keyframe_effect_new_ffi(
target : JsValue,
keyframes : JsValue,
options : JsValue,
) -> KeyframeEffect = "(target, keyframes, options) => new KeyframeEffect(target, keyframes, options)"
///|
#cfg(target="js")
extern "js" fn keyframe_effect_new_2_ffi(source : JsValue) -> KeyframeEffect = "(source) => new KeyframeEffect(source)"
///|
#cfg(target="js")
extern "js" fn keyframe_effect_target_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.target"
///|
#cfg(target="js")
fn keyframe_effect_target_ffi(obj : JsValue) -> Element {
keyframe_effect_target_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn keyframe_effect_set_target_ffi(
obj : JsValue,
target : JsValue,
) -> Unit = "(obj, target) => { obj.target = target; }"
///|
#cfg(target="js")
extern "js" fn keyframe_effect_pseudo_element_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.pseudoElement"
///|
#cfg(target="js")
fn keyframe_effect_pseudo_element_ffi(obj : JsValue) -> CSSOMString {
keyframe_effect_pseudo_element_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn keyframe_effect_set_pseudo_element_ffi(
obj : JsValue,
pseudo_element : JsValue,
) -> Unit = "(obj, pseudoElement) => { obj.pseudoElement = pseudoElement; }"
///|
#cfg(target="js")
extern "js" fn keyframe_effect_composite_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.composite"
///|
#cfg(target="js")
fn keyframe_effect_composite_ffi(obj : JsValue) -> CompositeOperation {
CompositeOperation::from_unchecked(
keyframe_effect_composite_ffi_js(obj).unsafe_cast(),
)
}
///|
#cfg(target="js")
extern "js" fn keyframe_effect_set_composite_ffi(
obj : JsValue,
composite : JsValue,
) -> Unit = "(obj, composite) => { obj.composite = composite; }"
///|
#cfg(target="js")
extern "js" fn keyframe_effect_get_keyframes_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.getKeyframes()"
///|
#cfg(target="js")
fn keyframe_effect_get_keyframes_ffi(obj : JsValue) -> Array[JsValue] {
keyframe_effect_get_keyframes_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn keyframe_effect_set_keyframes_ffi(
obj : JsValue,
keyframes : JsValue,
) -> Unit = "(obj, keyframes) => obj.setKeyframes(keyframes)"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_new_ffi(
target : JsValue,
keyframes : JsValue,
options : JsValue,
) -> KeyframeEffect = "webapi_KeyframeEffect" "new"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_new_2_ffi(source : JsValue) -> KeyframeEffect = "webapi_KeyframeEffect" "new_2"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_target_ffi(obj : JsValue) -> Element = "webapi_KeyframeEffect" "get_target"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_set_target_ffi(obj : JsValue, target : JsValue) -> Unit = "webapi_KeyframeEffect" "set_target"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_pseudo_element_ffi_wasm(obj : JsValue) -> JsValue = "webapi_KeyframeEffect" "get_pseudoElement"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_pseudo_element_ffi(obj : JsValue) -> CSSOMString {
jsvalue_to_string(keyframe_effect_pseudo_element_ffi_wasm(obj))
}
///|
#cfg(target="wasm-gc")
fn keyframe_effect_set_pseudo_element_ffi(
obj : JsValue,
pseudo_element : JsValue,
) -> Unit = "webapi_KeyframeEffect" "set_pseudoElement"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_composite_ffi_wasm(obj : JsValue) -> JsValue = "webapi_KeyframeEffect" "get_composite"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_composite_ffi(obj : JsValue) -> CompositeOperation {
CompositeOperation::from_unchecked(
jsvalue_to_string(keyframe_effect_composite_ffi_wasm(obj)),
)
}
///|
#cfg(target="wasm-gc")
fn keyframe_effect_set_composite_ffi(
obj : JsValue,
composite : JsValue,
) -> Unit = "webapi_KeyframeEffect" "set_composite"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_get_keyframes_ffi_wasm(obj : JsValue) -> JsArray = "webapi_KeyframeEffect" "getKeyframes"
///|
#cfg(target="wasm-gc")
fn keyframe_effect_get_keyframes_ffi(obj : JsValue) -> Array[JsValue] {
keyframe_effect_get_keyframes_ffi_wasm(obj).to_array()
}
///|
#cfg(target="wasm-gc")
fn keyframe_effect_set_keyframes_ffi(
obj : JsValue,
keyframes : JsValue,
) -> Unit = "webapi_KeyframeEffect" "setKeyframes"