packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/IntersectionObserver.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from intersection-observer (webref). Do not edit.
module JSDOM.Generated.IntersectionObserver
       (newIntersectionObserver, disconnect, observe, takeRecords, takeRecords_, unobserve, getRoot, getRootUnsafe, getRootUnchecked, getRootMargin, getScrollMargin, getThresholds, IntersectionObserver(..), gTypeIntersectionObserver)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/IntersectionObserver MDN IntersectionObserver. documentation>
newIntersectionObserver :: (MonadDOM m) => IntersectionObserverCallback -> Maybe IntersectionObserverInit -> m IntersectionObserver
newIntersectionObserver callback' options = liftDOM (((new (jsg "IntersectionObserver") [toJSVal callback', P.maybe (P.return jsUndefined) toJSVal options]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/disconnect MDN IntersectionObserver.disconnect documentation>
disconnect :: (MonadDOM m) => IntersectionObserver -> m ()
disconnect self = liftDOM (void (self ^. jsf "disconnect" ()))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/observe MDN IntersectionObserver.observe documentation>
observe :: (MonadDOM m, IsElement target) => IntersectionObserver -> target -> m ()
observe self target = liftDOM (void (self ^. jsf "observe" [toJSVal target]))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/takeRecords MDN IntersectionObserver.takeRecords documentation>
takeRecords :: (MonadDOM m) => IntersectionObserver -> m [IntersectionObserverEntry]
takeRecords self = liftDOM (((self ^. jsf "takeRecords" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/takeRecords MDN IntersectionObserver.takeRecords documentation>
takeRecords_ :: (MonadDOM m) => IntersectionObserver -> m ()
takeRecords_ self = liftDOM (void (self ^. jsf "takeRecords" ()))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/unobserve MDN IntersectionObserver.unobserve documentation>
unobserve :: (MonadDOM m, IsElement target) => IntersectionObserver -> target -> m ()
unobserve self target = liftDOM (void (self ^. jsf "unobserve" [toJSVal target]))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/root MDN IntersectionObserver.root documentation>
getRoot :: (MonadDOM m) => IntersectionObserver -> m (Maybe ElementOrDocument)
getRoot self = liftDOM (((self ^. js "root") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/root MDN IntersectionObserver.root documentation>
getRootUnsafe :: (MonadDOM m, HasCallStack) => IntersectionObserver -> m ElementOrDocument
getRootUnsafe self = liftDOM ((((self ^. js "root") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/root MDN IntersectionObserver.root documentation>
getRootUnchecked :: (MonadDOM m) => IntersectionObserver -> m ElementOrDocument
getRootUnchecked self = liftDOM (((self ^. js "root") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/rootMargin MDN IntersectionObserver.rootMargin documentation>
getRootMargin :: (MonadDOM m, FromJSString result) => IntersectionObserver -> m result
getRootMargin self = liftDOM (((self ^. js "rootMargin") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/scrollMargin MDN IntersectionObserver.scrollMargin documentation>
getScrollMargin :: (MonadDOM m, FromJSString result) => IntersectionObserver -> m result
getScrollMargin self = liftDOM (((self ^. js "scrollMargin") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/IntersectionObserver/thresholds MDN IntersectionObserver.thresholds documentation>
getThresholds :: (MonadDOM m) => IntersectionObserver -> m [Double]
getThresholds self = liftDOM (((self ^. js "thresholds") >>= fromJSValUnchecked))