{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.NodeIterator
(nextNode, nextNode_, nextNodeUnsafe, nextNodeUnchecked,
previousNode, previousNode_, previousNodeUnsafe,
previousNodeUnchecked, detach, getRoot, getReferenceNode,
getPointerBeforeReferenceNode, getWhatToShow, NodeIterator(..),
gTypeNodeIterator)
where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums
nextNode :: (MonadDOM m) => NodeIterator -> m (Maybe Node)
nextNode :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m (Maybe Node)
nextNode NodeIterator
self = DOM (Maybe Node) -> m (Maybe Node)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"nextNode" ()) JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Node)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
nextNode_ :: (MonadDOM m) => NodeIterator -> m ()
nextNode_ :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m ()
nextNode_ NodeIterator
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"nextNode" ()))
nextNodeUnsafe ::
(MonadDOM m, HasCallStack) => NodeIterator -> m Node
nextNodeUnsafe :: forall (m :: * -> *).
(MonadDOM m, HasCallStack) =>
NodeIterator -> m Node
nextNodeUnsafe NodeIterator
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"nextNode" ()) JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Node)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe Node) -> (Maybe Node -> DOM Node) -> DOM Node
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
DOM Node -> (Node -> DOM Node) -> Maybe Node -> DOM Node
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM Node
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") Node -> DOM Node
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)
nextNodeUnchecked :: (MonadDOM m) => NodeIterator -> m Node
nextNodeUnchecked :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m Node
nextNodeUnchecked NodeIterator
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"nextNode" ()) JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
previousNode :: (MonadDOM m) => NodeIterator -> m (Maybe Node)
previousNode :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m (Maybe Node)
previousNode NodeIterator
self
= DOM (Maybe Node) -> m (Maybe Node)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"previousNode" ()) JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Node)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
previousNode_ :: (MonadDOM m) => NodeIterator -> m ()
previousNode_ :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m ()
previousNode_ NodeIterator
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"previousNode" ()))
previousNodeUnsafe ::
(MonadDOM m, HasCallStack) => NodeIterator -> m Node
previousNodeUnsafe :: forall (m :: * -> *).
(MonadDOM m, HasCallStack) =>
NodeIterator -> m Node
previousNodeUnsafe NodeIterator
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"previousNode" ()) JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Node)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe Node) -> (Maybe Node -> DOM Node) -> DOM Node
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
DOM Node -> (Node -> DOM Node) -> Maybe Node -> DOM Node
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM Node
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") Node -> DOM Node
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)
previousNodeUnchecked :: (MonadDOM m) => NodeIterator -> m Node
previousNodeUnchecked :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m Node
previousNodeUnchecked NodeIterator
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"previousNode" ()) JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
detach :: (MonadDOM m) => NodeIterator -> m ()
detach :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m ()
detach NodeIterator
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"detach" ()))
getRoot :: (MonadDOM m) => NodeIterator -> m Node
getRoot :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m Node
getRoot NodeIterator
self = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NodeIterator (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"root") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getReferenceNode :: (MonadDOM m) => NodeIterator -> m Node
getReferenceNode :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m Node
getReferenceNode NodeIterator
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NodeIterator (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"referenceNode") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getPointerBeforeReferenceNode ::
(MonadDOM m) => NodeIterator -> m Bool
getPointerBeforeReferenceNode :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m Bool
getPointerBeforeReferenceNode NodeIterator
self
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NodeIterator (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"pointerBeforeReferenceNode") JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)
getWhatToShow :: (MonadDOM m) => NodeIterator -> m Word
getWhatToShow :: forall (m :: * -> *). MonadDOM m => NodeIterator -> m Word
getWhatToShow NodeIterator
self
= DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Word
forall b. Integral b => Double -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word) -> JSM Double -> DOM Word
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((NodeIterator
self NodeIterator
-> Getting (JSM JSVal) NodeIterator (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NodeIterator (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"whatToShow") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))