jsaddle-dom-0.10.0.0: src/JSDOM/Generated/IntersectionObserverInit.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.IntersectionObserverInit
(newIntersectionObserverInit, setRoot, getRoot, getRootUnsafe, getRootUnchecked, setRootMargin, getRootMargin, getRootMarginUnsafe, getRootMarginUnchecked, setScrollMargin, getScrollMargin, getScrollMarginUnsafe, getScrollMarginUnchecked, setThreshold, getThreshold, getThresholdUnsafe, getThresholdUnchecked, setDelay, getDelay, getDelayUnsafe, getDelayUnchecked, setTrackVisibility, getTrackVisibility, getTrackVisibilityUnsafe, getTrackVisibilityUnchecked, IntersectionObserverInit(..), gTypeIntersectionObserverInit)
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://w3c.github.io/IntersectionObserver/#dictdef-intersectionobserverinit IntersectionObserverInit specification>
newIntersectionObserverInit :: (MonadDOM m) => m IntersectionObserverInit
newIntersectionObserverInit = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-root IntersectionObserverInit.root specification>
setRoot :: (MonadDOM m, IsElementOrDocument val) => IntersectionObserverInit -> Maybe val -> m ()
setRoot self val = liftDOM (void (self ^. jss "root" (toJSVal val)))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-root IntersectionObserverInit.root specification>
getRoot :: (MonadDOM m) => IntersectionObserverInit -> m (Maybe ElementOrDocument)
getRoot self = liftDOM (((self ^. js "root") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-root IntersectionObserverInit.root specification>
getRootUnsafe :: (MonadDOM m, HasCallStack) => IntersectionObserverInit -> m ElementOrDocument
getRootUnsafe self = liftDOM ((((self ^. js "root") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-root IntersectionObserverInit.root specification>
getRootUnchecked :: (MonadDOM m) => IntersectionObserverInit -> m ElementOrDocument
getRootUnchecked self = liftDOM (((self ^. js "root") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-rootmargin IntersectionObserverInit.rootMargin specification>
setRootMargin :: (MonadDOM m, ToJSString val) => IntersectionObserverInit -> val -> m ()
setRootMargin self val = liftDOM (void (self ^. jss "rootMargin" (toJSVal val)))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-rootmargin IntersectionObserverInit.rootMargin specification>
getRootMargin :: (MonadDOM m, FromJSString result) => IntersectionObserverInit -> m (Maybe result)
getRootMargin self = liftDOM (((self ^. js "rootMargin") >>= fromMaybeJSString))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-rootmargin IntersectionObserverInit.rootMargin specification>
getRootMarginUnsafe :: (MonadDOM m, HasCallStack, FromJSString result) => IntersectionObserverInit -> m result
getRootMarginUnsafe self = liftDOM ((((self ^. js "rootMargin") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-rootmargin IntersectionObserverInit.rootMargin specification>
getRootMarginUnchecked :: (MonadDOM m, FromJSString result) => IntersectionObserverInit -> m result
getRootMarginUnchecked self = liftDOM (((self ^. js "rootMargin") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-scrollmargin IntersectionObserverInit.scrollMargin specification>
setScrollMargin :: (MonadDOM m, ToJSString val) => IntersectionObserverInit -> val -> m ()
setScrollMargin self val = liftDOM (void (self ^. jss "scrollMargin" (toJSVal val)))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-scrollmargin IntersectionObserverInit.scrollMargin specification>
getScrollMargin :: (MonadDOM m, FromJSString result) => IntersectionObserverInit -> m (Maybe result)
getScrollMargin self = liftDOM (((self ^. js "scrollMargin") >>= fromMaybeJSString))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-scrollmargin IntersectionObserverInit.scrollMargin specification>
getScrollMarginUnsafe :: (MonadDOM m, HasCallStack, FromJSString result) => IntersectionObserverInit -> m result
getScrollMarginUnsafe self = liftDOM ((((self ^. js "scrollMargin") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-scrollmargin IntersectionObserverInit.scrollMargin specification>
getScrollMarginUnchecked :: (MonadDOM m, FromJSString result) => IntersectionObserverInit -> m result
getScrollMarginUnchecked self = liftDOM (((self ^. js "scrollMargin") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-threshold IntersectionObserverInit.threshold specification>
setThreshold :: (MonadDOM m, IsDoubleOrSequenceDouble val) => IntersectionObserverInit -> val -> m ()
setThreshold self val = liftDOM (void (self ^. jss "threshold" (toJSVal val)))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-threshold IntersectionObserverInit.threshold specification>
getThreshold :: (MonadDOM m) => IntersectionObserverInit -> m (Maybe DoubleOrSequenceDouble)
getThreshold self = liftDOM (((self ^. js "threshold") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-threshold IntersectionObserverInit.threshold specification>
getThresholdUnsafe :: (MonadDOM m, HasCallStack) => IntersectionObserverInit -> m DoubleOrSequenceDouble
getThresholdUnsafe self = liftDOM ((((self ^. js "threshold") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-threshold IntersectionObserverInit.threshold specification>
getThresholdUnchecked :: (MonadDOM m) => IntersectionObserverInit -> m DoubleOrSequenceDouble
getThresholdUnchecked self = liftDOM (((self ^. js "threshold") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-delay IntersectionObserverInit.delay specification>
setDelay :: (MonadDOM m) => IntersectionObserverInit -> Int -> m ()
setDelay self val = liftDOM (void (self ^. jss "delay" (toJSVal val)))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-delay IntersectionObserverInit.delay specification>
getDelay :: (MonadDOM m) => IntersectionObserverInit -> m (Maybe Int)
getDelay self = liftDOM (((self ^. js "delay") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-delay IntersectionObserverInit.delay specification>
getDelayUnsafe :: (MonadDOM m, HasCallStack) => IntersectionObserverInit -> m Int
getDelayUnsafe self = liftDOM ((((self ^. js "delay") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-delay IntersectionObserverInit.delay specification>
getDelayUnchecked :: (MonadDOM m) => IntersectionObserverInit -> m Int
getDelayUnchecked self = liftDOM ((P.round <$> ((self ^. js "delay") >>= valToNumber)))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-trackvisibility IntersectionObserverInit.trackVisibility specification>
setTrackVisibility :: (MonadDOM m) => IntersectionObserverInit -> Bool -> m ()
setTrackVisibility self val = liftDOM (void (self ^. jss "trackVisibility" (toJSVal val)))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-trackvisibility IntersectionObserverInit.trackVisibility specification>
getTrackVisibility :: (MonadDOM m) => IntersectionObserverInit -> m (Maybe Bool)
getTrackVisibility self = liftDOM (((self ^. js "trackVisibility") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-trackvisibility IntersectionObserverInit.trackVisibility specification>
getTrackVisibilityUnsafe :: (MonadDOM m, HasCallStack) => IntersectionObserverInit -> m Bool
getTrackVisibilityUnsafe self = liftDOM ((((self ^. js "trackVisibility") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverinit-trackvisibility IntersectionObserverInit.trackVisibility specification>
getTrackVisibilityUnchecked :: (MonadDOM m) => IntersectionObserverInit -> m Bool
getTrackVisibilityUnchecked self = liftDOM (((self ^. js "trackVisibility") >>= valToBool))