///|
/// https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver
#cfg(target="js")
#external
type IntersectionObserver
///|
/// https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry
#cfg(target="js")
#external
type IntersectionObserverEntry
///|
/// https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver
#cfg(target="js")
pub fn IntersectionObserver::new(
callback : (Array[IntersectionObserverEntry], IntersectionObserver) -> Unit,
threshold? : Array[Double],
) -> Self {
if threshold is Some(threshold) {
ffi_intersection_observer_new_with_threshold(callback, threshold)
} else {
ffi_intersection_observer_new(callback)
}
}
///|
/// https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/observe
#cfg(target="js")
pub extern "js" fn IntersectionObserver::observe(
self : Self,
target : Element,
) -> Unit = "(self, target) => self.observe(target)"
///|
/// https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/unobserve
#cfg(target="js")
pub extern "js" fn IntersectionObserver::unobserve(
self : Self,
target : Element,
) -> Unit = "(self, target) => self.unobserve(target)"
///|
/// https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/disconnect
#cfg(target="js")
pub extern "js" fn IntersectionObserver::disconnect(self : Self) -> Unit = "(self) => self.disconnect()"
///|
#cfg(target="js")
extern "js" fn ffi_intersection_observer_new(
callback : (Array[IntersectionObserverEntry], IntersectionObserver) -> Unit,
) -> IntersectionObserver = "(callback) => new IntersectionObserver(callback)"
///|
#cfg(target="js")
extern "js" fn ffi_intersection_observer_new_with_threshold(
callback : (Array[IntersectionObserverEntry], IntersectionObserver) -> Unit,
threshold : Array[Double],
) -> IntersectionObserver = "(callback, threshold) => new IntersectionObserver(callback, { threshold })"