// Do not edit. This file is generated.
// MoonBit type: SVGGradientElement
// Specifications: SVG.idl
///|
/// [SVGGradientElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement)
#external
pub type SVGGradientElement
///|
pub impl TJsValue for SVGGradientElement with to_js(self : SVGGradientElement) -> JsValue = "%identity"
///|
pub impl FromJsAny for SVGGradientElement with from_js_any(value : JsAny) -> SVGGradientElement = "%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 : TSVGGradientElement] SVGGradientElement::into(
self : SVGGradientElement,
) -> 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 : TSVGGradientElement] SVGGradientElement::unsafe_into(
self : SVGGradientElement,
) -> T = "%identity"
///|
pub impl HasConstructor for SVGGradientElement with constructor_name() {
"SVGGradientElement"
}
///|
/// Checked downcast — returns None if the JS value is not an instance of T.
pub fn[T : TSVGGradientElement + HasConstructor] SVGGradientElement::try_into(
self : SVGGradientElement,
) -> T? {
if js_instanceof(TJsValue::to_js(self), T::constructor_name()) {
Some(self.unsafe_into())
} else {
None
}
}
///|
pub impl TSVGGradientElement for SVGGradientElement
///|
pub impl TSVGElement for SVGGradientElement
///|
pub impl TElement for SVGGradientElement
///|
pub impl TNode for SVGGradientElement
///|
pub impl TEventTarget for SVGGradientElement
///|
pub const SVG_GRADIENT_ELEMENT_SVG_SPREADMETHOD_UNKNOWN : UInt = 0
///|
pub const SVG_GRADIENT_ELEMENT_SVG_SPREADMETHOD_PAD : UInt = 1
///|
pub const SVG_GRADIENT_ELEMENT_SVG_SPREADMETHOD_REFLECT : UInt = 2
///|
pub const SVG_GRADIENT_ELEMENT_SVG_SPREADMETHOD_REPEAT : UInt = 3
///|
/// [SVGGradientElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement) interface.
pub trait TSVGGradientElement: TSVGElement {
gradient_units(self : Self) -> SVGAnimatedEnumeration = _
gradient_transform(self : Self) -> SVGAnimatedTransformList = _
spread_method(self : Self) -> SVGAnimatedEnumeration = _
href(self : Self) -> SVGAnimatedString = _
}
///|
/// [SVGGradientElement.gradientUnits](https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement/gradientUnits)
impl TSVGGradientElement with gradient_units(self : Self) -> SVGAnimatedEnumeration {
svg_gradient_element_gradient_units_ffi(TJsValue::to_js(self))
}
///|
/// [SVGGradientElement.gradientTransform](https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement/gradientTransform)
impl TSVGGradientElement with gradient_transform(self : Self) -> SVGAnimatedTransformList {
svg_gradient_element_gradient_transform_ffi(TJsValue::to_js(self))
}
///|
/// [SVGGradientElement.spreadMethod](https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement/spreadMethod)
impl TSVGGradientElement with spread_method(self : Self) -> SVGAnimatedEnumeration {
svg_gradient_element_spread_method_ffi(TJsValue::to_js(self))
}
///|
/// [SVGGradientElement.href](https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement/href)
impl TSVGGradientElement with href(self : Self) -> SVGAnimatedString {
svg_gradient_element_href_ffi(TJsValue::to_js(self))
}
///|
#cfg(target="js")
extern "js" fn svg_gradient_element_gradient_units_ffi_js(
obj : JsValue,
) -> JsValue = "(obj) => obj.gradientUnits"
///|
#cfg(target="js")
fn svg_gradient_element_gradient_units_ffi(
obj : JsValue,
) -> SVGAnimatedEnumeration {
svg_gradient_element_gradient_units_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn svg_gradient_element_gradient_transform_ffi_js(
obj : JsValue,
) -> JsValue = "(obj) => obj.gradientTransform"
///|
#cfg(target="js")
fn svg_gradient_element_gradient_transform_ffi(
obj : JsValue,
) -> SVGAnimatedTransformList {
svg_gradient_element_gradient_transform_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn svg_gradient_element_spread_method_ffi_js(
obj : JsValue,
) -> JsValue = "(obj) => obj.spreadMethod"
///|
#cfg(target="js")
fn svg_gradient_element_spread_method_ffi(
obj : JsValue,
) -> SVGAnimatedEnumeration {
svg_gradient_element_spread_method_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn svg_gradient_element_href_ffi_js(obj : JsValue) -> JsValue = "(obj) => obj.href"
///|
#cfg(target="js")
fn svg_gradient_element_href_ffi(obj : JsValue) -> SVGAnimatedString {
svg_gradient_element_href_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn svg_gradient_element_gradient_units_ffi(
obj : JsValue,
) -> SVGAnimatedEnumeration = "webapi_SVGGradientElement" "get_gradientUnits"
///|
#cfg(target="wasm-gc")
fn svg_gradient_element_gradient_transform_ffi(
obj : JsValue,
) -> SVGAnimatedTransformList = "webapi_SVGGradientElement" "get_gradientTransform"
///|
#cfg(target="wasm-gc")
fn svg_gradient_element_spread_method_ffi(
obj : JsValue,
) -> SVGAnimatedEnumeration = "webapi_SVGGradientElement" "get_spreadMethod"
///|
#cfg(target="wasm-gc")
fn svg_gradient_element_href_ffi(obj : JsValue) -> SVGAnimatedString = "webapi_SVGGradientElement" "get_href"