// Do not edit. This file is generated.
// MoonBit type: CustomElementRegistry
// Specifications: html.idl
///|
/// [CustomElementRegistry](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry)
#external
pub type CustomElementRegistry
///|
pub impl TJsValue for CustomElementRegistry with to_js(
self : CustomElementRegistry,
) -> JsValue = "%identity"
///|
pub impl FromJsAny for CustomElementRegistry with from_js_any(value : JsAny) -> CustomElementRegistry = "%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 : TCustomElementRegistry] CustomElementRegistry::into(
self : CustomElementRegistry,
) -> 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 : TCustomElementRegistry] CustomElementRegistry::unsafe_into(
self : CustomElementRegistry,
) -> T = "%identity"
///|
pub impl HasConstructor for CustomElementRegistry with constructor_name() {
"CustomElementRegistry"
}
///|
/// Checked downcast — returns None if the JS value is not an instance of T.
pub fn[T : TCustomElementRegistry + HasConstructor] CustomElementRegistry::try_into(
self : CustomElementRegistry,
) -> T? {
if js_instanceof(TJsValue::to_js(self), T::constructor_name()) {
Some(self.unsafe_into())
} else {
None
}
}
///|
pub impl TCustomElementRegistry for CustomElementRegistry
///|
pub fn CustomElementRegistry::new() -> CustomElementRegistry {
custom_element_registry_new_ffi()
}
///|
#external
pub type CustomElementRegistryGet
///|
pub impl TJsValue for CustomElementRegistryGet with to_js(
self : CustomElementRegistryGet,
) -> JsValue = "%identity"
///|
pub impl FromJsAny for CustomElementRegistryGet with from_js_any(value : JsAny) -> CustomElementRegistryGet = "%identity"
///|
#deprecated("Use unsafe_into or try_into instead")
pub fn[T : TCustomElementRegistryGet + FromJsAny] CustomElementRegistryGet::into(
self : CustomElementRegistryGet,
) -> T {
FromJsAny::from_js_any(jsvalue_to_jsany(TJsValue::to_js(self)))
}
///|
pub fn[T : TCustomElementRegistryGet + FromJsAny] CustomElementRegistryGet::unsafe_into(
self : CustomElementRegistryGet,
) -> T {
FromJsAny::from_js_any(jsvalue_to_jsany(TJsValue::to_js(self)))
}
///|
pub fn[T : TCustomElementRegistryGet] CustomElementRegistryGet::from(
value : T,
) -> CustomElementRegistryGet = "%identity"
///|
pub fn CustomElementRegistryGet::is_undefined(
self : CustomElementRegistryGet,
) -> Bool {
custom_element_registry_get_is_undefined_ffi(self)
}
///|
pub impl TCustomElementRegistryGet for CustomElementRegistryGet
///|
pub(open) trait TCustomElementRegistryGet: TJsValue {}
///|
pub impl TCustomElementRegistryGet for CustomElementConstructor
///|
pub impl TCustomElementRegistryGet for JsUndefined
///|
/// [CustomElementRegistry](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry) interface.
pub trait TCustomElementRegistry: TJsValue {
define_(
self : Self,
name : String,
constructor_ : () -> HTMLElement,
options? : ElementDefinitionOptions,
) -> Unit = _
get(self : Self, name : String) -> CustomElementRegistryGet = _
get_name(self : Self, constructor_ : () -> HTMLElement) -> String? = _
when_defined(self : Self, name : String) -> JsPromise[
CustomElementConstructor,
] = _
upgrade(self : Self, root : &TNode) -> Unit = _
initialize(self : Self, root : &TNode) -> Unit = _
}
///|
/// [CustomElementRegistry.define](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define)
impl TCustomElementRegistry with define_(
self : Self,
name : String,
constructor_ : () -> HTMLElement,
options? : ElementDefinitionOptions,
) -> Unit {
custom_element_registry_define_ffi(
TJsValue::to_js(self),
TJsValue::to_js(name),
TJsValue::to_js(custom_element_constructor_ffi(constructor_)),
opt_to_js(options),
)
}
///|
/// [CustomElementRegistry.get](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/get)
impl TCustomElementRegistry with get(self : Self, name : String) -> CustomElementRegistryGet {
custom_element_registry_get_ffi(TJsValue::to_js(self), TJsValue::to_js(name))
}
///|
/// [CustomElementRegistry.getName](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/getName)
impl TCustomElementRegistry with get_name(
self : Self,
constructor_ : () -> HTMLElement,
) -> String? {
custom_element_registry_get_name_ffi(
TJsValue::to_js(self),
TJsValue::to_js(custom_element_constructor_ffi(constructor_)),
).to_option_prim()
}
///|
/// [CustomElementRegistry.whenDefined](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/whenDefined)
impl TCustomElementRegistry with when_defined(self : Self, name : String) -> JsPromise[
CustomElementConstructor,
] {
custom_element_registry_when_defined_ffi(
TJsValue::to_js(self),
TJsValue::to_js(name),
)
}
///|
/// [CustomElementRegistry.upgrade](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/upgrade)
impl TCustomElementRegistry with upgrade(self : Self, root : &TNode) -> Unit {
custom_element_registry_upgrade_ffi(
TJsValue::to_js(self),
TJsValue::to_js(root),
)
}
///|
/// [CustomElementRegistry.initialize](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/initialize)
impl TCustomElementRegistry with initialize(self : Self, root : &TNode) -> Unit {
custom_element_registry_initialize_ffi(
TJsValue::to_js(self),
TJsValue::to_js(root),
)
}
///|
#cfg(target="js")
extern "js" fn custom_element_registry_new_ffi() -> CustomElementRegistry = "() => new CustomElementRegistry()"
///|
#cfg(target="js")
extern "js" fn custom_element_registry_get_is_undefined_ffi(
obj : CustomElementRegistryGet,
) -> Bool = "(obj) => obj === undefined"
///|
#cfg(target="js")
extern "js" fn custom_element_registry_define_ffi(
obj : JsValue,
name : JsValue,
constructor_ : JsValue,
options : JsValue,
) -> Unit = "(obj, name, constructor_, options) => obj.define(name, constructor_, options)"
///|
#cfg(target="js")
extern "js" fn custom_element_registry_get_ffi_js(
obj : JsValue,
name : JsValue,
) -> JsValue = "(obj, name) => obj.get(name)"
///|
#cfg(target="js")
fn custom_element_registry_get_ffi(
obj : JsValue,
name : JsValue,
) -> CustomElementRegistryGet {
custom_element_registry_get_ffi_js(obj, name).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn custom_element_registry_get_name_ffi(
obj : JsValue,
constructor_ : JsValue,
) -> JsValue = "(obj, constructor_) => obj.getName(constructor_)"
///|
#cfg(target="js")
extern "js" fn custom_element_registry_when_defined_ffi_js(
obj : JsValue,
name : JsValue,
) -> JsValue = "(obj, name) => obj.whenDefined(name)"
///|
#cfg(target="js")
fn custom_element_registry_when_defined_ffi(
obj : JsValue,
name : JsValue,
) -> JsPromise[CustomElementConstructor] {
custom_element_registry_when_defined_ffi_js(obj, name).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn custom_element_registry_upgrade_ffi(
obj : JsValue,
root : JsValue,
) -> Unit = "(obj, root) => obj.upgrade(root)"
///|
#cfg(target="js")
extern "js" fn custom_element_registry_initialize_ffi(
obj : JsValue,
root : JsValue,
) -> Unit = "(obj, root) => obj.initialize(root)"
///|
#cfg(target="wasm-gc")
fn custom_element_registry_new_ffi() -> CustomElementRegistry = "webapi_CustomElementRegistry" "new"
///|
#cfg(target="wasm-gc")
fn custom_element_registry_get_is_undefined_ffi(
obj : CustomElementRegistryGet,
) -> Bool = "JsValue" "isUndefined"
///|
#cfg(target="wasm-gc")
fn custom_element_registry_define_ffi(
obj : JsValue,
name : JsValue,
constructor_ : JsValue,
options : JsValue,
) -> Unit = "webapi_CustomElementRegistry" "define"
///|
#cfg(target="wasm-gc")
fn custom_element_registry_get_ffi_wasm(
obj : JsValue,
name : JsValue,
) -> JsValue = "webapi_CustomElementRegistry" "get"
///|
#cfg(target="wasm-gc")
fn custom_element_registry_get_ffi(
obj : JsValue,
name : JsValue,
) -> CustomElementRegistryGet {
custom_element_registry_get_ffi_wasm(obj, name).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn custom_element_registry_get_name_ffi(
obj : JsValue,
constructor_ : JsValue,
) -> JsValue = "webapi_CustomElementRegistry" "getName"
///|
#cfg(target="wasm-gc")
fn custom_element_registry_when_defined_ffi_wasm(
obj : JsValue,
name : JsValue,
) -> JsValue = "webapi_CustomElementRegistry" "whenDefined"
///|
#cfg(target="wasm-gc")
fn custom_element_registry_when_defined_ffi(
obj : JsValue,
name : JsValue,
) -> JsPromise[CustomElementConstructor] {
custom_element_registry_when_defined_ffi_wasm(obj, name).unsafe_cast()
}
///|
#cfg(target="wasm-gc")
fn custom_element_registry_upgrade_ffi(obj : JsValue, root : JsValue) -> Unit = "webapi_CustomElementRegistry" "upgrade"
///|
#cfg(target="wasm-gc")
fn custom_element_registry_initialize_ffi(
obj : JsValue,
root : JsValue,
) -> Unit = "webapi_CustomElementRegistry" "initialize"