{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.Node
       (getRootNode, getRootNode_, hasChildNodes, hasChildNodes_,
        normalize, cloneNode, cloneNode_, isEqualNode, isEqualNode_,
        isSameNode, isSameNode_, compareDocumentPosition,
        compareDocumentPosition_, contains, contains_, lookupPrefix,
        lookupPrefix_, lookupPrefixUnsafe, lookupPrefixUnchecked,
        lookupNamespaceURI, lookupNamespaceURI_, lookupNamespaceURIUnsafe,
        lookupNamespaceURIUnchecked, isDefaultNamespace,
        isDefaultNamespace_, insertBefore, insertBefore_, appendChild,
        appendChild_, replaceChild, replaceChild_, removeChild,
        removeChild_, pattern ELEMENT_NODE, pattern ATTRIBUTE_NODE,
        pattern TEXT_NODE, pattern CDATA_SECTION_NODE,
        pattern ENTITY_REFERENCE_NODE, pattern ENTITY_NODE,
        pattern PROCESSING_INSTRUCTION_NODE, pattern COMMENT_NODE,
        pattern DOCUMENT_NODE, pattern DOCUMENT_TYPE_NODE,
        pattern DOCUMENT_FRAGMENT_NODE, pattern NOTATION_NODE,
        pattern DOCUMENT_POSITION_DISCONNECTED,
        pattern DOCUMENT_POSITION_PRECEDING,
        pattern DOCUMENT_POSITION_FOLLOWING,
        pattern DOCUMENT_POSITION_CONTAINS,
        pattern DOCUMENT_POSITION_CONTAINED_BY,
        pattern DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, getNodeType,
        getNodeName, getBaseURI, getIsConnected, getOwnerDocument,
        getOwnerDocumentUnsafe, getOwnerDocumentUnchecked, getParentNode,
        getParentNodeUnsafe, getParentNodeUnchecked, getParentElement,
        getParentElementUnsafe, getParentElementUnchecked, getChildNodes,
        getFirstChild, getFirstChildUnsafe, getFirstChildUnchecked,
        getLastChild, getLastChildUnsafe, getLastChildUnchecked,
        getPreviousSibling, getPreviousSiblingUnsafe,
        getPreviousSiblingUnchecked, getNextSibling, getNextSiblingUnsafe,
        getNextSiblingUnchecked, setNodeValue, getNodeValue,
        getNodeValueUnsafe, getNodeValueUnchecked, setTextContent,
        getTextContent, getTextContentUnsafe, getTextContentUnchecked,
        Node(..), gTypeNode, IsNode, toNode)
       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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.getRootNode Mozilla Node.getRootNode documentation> 
getRootNode ::
            (MonadDOM m, IsNode self) =>
              self -> Maybe GetRootNodeOptions -> m Node
getRootNode :: self -> Maybe GetRootNodeOptions -> m Node
getRootNode self
self Maybe GetRootNodeOptions
options
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"getRootNode" [Maybe GetRootNodeOptions -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe GetRootNodeOptions
options]) JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.getRootNode Mozilla Node.getRootNode documentation> 
getRootNode_ ::
             (MonadDOM m, IsNode self) =>
               self -> Maybe GetRootNodeOptions -> m ()
getRootNode_ :: self -> Maybe GetRootNodeOptions -> m ()
getRootNode_ self
self Maybe GetRootNodeOptions
options
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"getRootNode" [Maybe GetRootNodeOptions -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe GetRootNodeOptions
options]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.hasChildNodes Mozilla Node.hasChildNodes documentation> 
hasChildNodes :: (MonadDOM m, IsNode self) => self -> m Bool
hasChildNodes :: self -> m Bool
hasChildNodes self
self
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"hasChildNodes" ()) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.hasChildNodes Mozilla Node.hasChildNodes documentation> 
hasChildNodes_ :: (MonadDOM m, IsNode self) => self -> m ()
hasChildNodes_ :: self -> m ()
hasChildNodes_ self
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 ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"hasChildNodes" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.normalize Mozilla Node.normalize documentation> 
normalize :: (MonadDOM m, IsNode self) => self -> m ()
normalize :: self -> m ()
normalize self
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 ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"normalize" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode Mozilla Node.cloneNode documentation> 
cloneNode :: (MonadDOM m, IsNode self) => self -> Bool -> m Node
cloneNode :: self -> Bool -> m Node
cloneNode self
self Bool
deep
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"cloneNode" [Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
deep]) JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode Mozilla Node.cloneNode documentation> 
cloneNode_ :: (MonadDOM m, IsNode self) => self -> Bool -> m ()
cloneNode_ :: self -> Bool -> m ()
cloneNode_ self
self Bool
deep
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"cloneNode" [Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
deep]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isEqualNode Mozilla Node.isEqualNode documentation> 
isEqualNode ::
            (MonadDOM m, IsNode self, IsNode other) =>
              self -> Maybe other -> m Bool
isEqualNode :: self -> Maybe other -> m Bool
isEqualNode self
self Maybe other
other
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"isEqualNode" [Maybe other -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe other
other]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isEqualNode Mozilla Node.isEqualNode documentation> 
isEqualNode_ ::
             (MonadDOM m, IsNode self, IsNode other) =>
               self -> Maybe other -> m ()
isEqualNode_ :: self -> Maybe other -> m ()
isEqualNode_ self
self Maybe other
other
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"isEqualNode" [Maybe other -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe other
other]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isSameNode Mozilla Node.isSameNode documentation> 
isSameNode ::
           (MonadDOM m, IsNode self, IsNode other) =>
             self -> Maybe other -> m Bool
isSameNode :: self -> Maybe other -> m Bool
isSameNode self
self Maybe other
other
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"isSameNode" [Maybe other -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe other
other]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isSameNode Mozilla Node.isSameNode documentation> 
isSameNode_ ::
            (MonadDOM m, IsNode self, IsNode other) =>
              self -> Maybe other -> m ()
isSameNode_ :: self -> Maybe other -> m ()
isSameNode_ self
self Maybe other
other
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"isSameNode" [Maybe other -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe other
other]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.compareDocumentPosition Mozilla Node.compareDocumentPosition documentation> 
compareDocumentPosition ::
                        (MonadDOM m, IsNode self, IsNode other) => self -> other -> m Word
compareDocumentPosition :: self -> other -> m Word
compareDocumentPosition self
self other
other
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (Double -> Word
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
<$>
         (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"compareDocumentPosition" [other -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal other
other])
            JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.compareDocumentPosition Mozilla Node.compareDocumentPosition documentation> 
compareDocumentPosition_ ::
                         (MonadDOM m, IsNode self, IsNode other) => self -> other -> m ()
compareDocumentPosition_ :: self -> other -> m ()
compareDocumentPosition_ self
self other
other
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"compareDocumentPosition" [other -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal other
other]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.contains Mozilla Node.contains documentation> 
contains ::
         (MonadDOM m, IsNode self, IsNode other) =>
           self -> Maybe other -> m Bool
contains :: self -> Maybe other -> m Bool
contains self
self Maybe other
other
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"contains" [Maybe other -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe other
other]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.contains Mozilla Node.contains documentation> 
contains_ ::
          (MonadDOM m, IsNode self, IsNode other) =>
            self -> Maybe other -> m ()
contains_ :: self -> Maybe other -> m ()
contains_ self
self Maybe other
other
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"contains" [Maybe other -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe other
other]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupPrefix Mozilla Node.lookupPrefix documentation> 
lookupPrefix ::
             (MonadDOM m, IsNode self, ToJSString namespaceURI,
              FromJSString result) =>
               self -> Maybe namespaceURI -> m (Maybe result)
lookupPrefix :: self -> Maybe namespaceURI -> m (Maybe result)
lookupPrefix self
self Maybe namespaceURI
namespaceURI
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"lookupPrefix" [Maybe namespaceURI -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe namespaceURI
namespaceURI]) JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupPrefix Mozilla Node.lookupPrefix documentation> 
lookupPrefix_ ::
              (MonadDOM m, IsNode self, ToJSString namespaceURI) =>
                self -> Maybe namespaceURI -> m ()
lookupPrefix_ :: self -> Maybe namespaceURI -> m ()
lookupPrefix_ self
self Maybe namespaceURI
namespaceURI
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"lookupPrefix" [Maybe namespaceURI -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe namespaceURI
namespaceURI]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupPrefix Mozilla Node.lookupPrefix documentation> 
lookupPrefixUnsafe ::
                   (MonadDOM m, IsNode self, ToJSString namespaceURI, HasCallStack,
                    FromJSString result) =>
                     self -> Maybe namespaceURI -> m result
lookupPrefixUnsafe :: self -> Maybe namespaceURI -> m result
lookupPrefixUnsafe self
self Maybe namespaceURI
namespaceURI
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"lookupPrefix" [Maybe namespaceURI -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe namespaceURI
namespaceURI]) JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
          JSVal -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)
         JSM (Maybe result) -> (Maybe result -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM result
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") result -> DOM result
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupPrefix Mozilla Node.lookupPrefix documentation> 
lookupPrefixUnchecked ::
                      (MonadDOM m, IsNode self, ToJSString namespaceURI,
                       FromJSString result) =>
                        self -> Maybe namespaceURI -> m result
lookupPrefixUnchecked :: self -> Maybe namespaceURI -> m result
lookupPrefixUnchecked self
self Maybe namespaceURI
namespaceURI
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"lookupPrefix" [Maybe namespaceURI -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe namespaceURI
namespaceURI]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupNamespaceURI Mozilla Node.lookupNamespaceURI documentation> 
lookupNamespaceURI ::
                   (MonadDOM m, IsNode self, ToJSString prefix,
                    FromJSString result) =>
                     self -> Maybe prefix -> m (Maybe result)
lookupNamespaceURI :: self -> Maybe prefix -> m (Maybe result)
lookupNamespaceURI self
self Maybe prefix
prefix
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"lookupNamespaceURI" [Maybe prefix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe prefix
prefix]) JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupNamespaceURI Mozilla Node.lookupNamespaceURI documentation> 
lookupNamespaceURI_ ::
                    (MonadDOM m, IsNode self, ToJSString prefix) =>
                      self -> Maybe prefix -> m ()
lookupNamespaceURI_ :: self -> Maybe prefix -> m ()
lookupNamespaceURI_ self
self Maybe prefix
prefix
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"lookupNamespaceURI" [Maybe prefix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe prefix
prefix]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupNamespaceURI Mozilla Node.lookupNamespaceURI documentation> 
lookupNamespaceURIUnsafe ::
                         (MonadDOM m, IsNode self, ToJSString prefix, HasCallStack,
                          FromJSString result) =>
                           self -> Maybe prefix -> m result
lookupNamespaceURIUnsafe :: self -> Maybe prefix -> m result
lookupNamespaceURIUnsafe self
self Maybe prefix
prefix
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"lookupNamespaceURI" [Maybe prefix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe prefix
prefix]) JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
          JSVal -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)
         JSM (Maybe result) -> (Maybe result -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM result
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") result -> DOM result
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupNamespaceURI Mozilla Node.lookupNamespaceURI documentation> 
lookupNamespaceURIUnchecked ::
                            (MonadDOM m, IsNode self, ToJSString prefix,
                             FromJSString result) =>
                              self -> Maybe prefix -> m result
lookupNamespaceURIUnchecked :: self -> Maybe prefix -> m result
lookupNamespaceURIUnchecked self
self Maybe prefix
prefix
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"lookupNamespaceURI" [Maybe prefix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe prefix
prefix]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isDefaultNamespace Mozilla Node.isDefaultNamespace documentation> 
isDefaultNamespace ::
                   (MonadDOM m, IsNode self, ToJSString namespaceURI) =>
                     self -> Maybe namespaceURI -> m Bool
isDefaultNamespace :: self -> Maybe namespaceURI -> m Bool
isDefaultNamespace self
self Maybe namespaceURI
namespaceURI
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"isDefaultNamespace" [Maybe namespaceURI -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe namespaceURI
namespaceURI])
         JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isDefaultNamespace Mozilla Node.isDefaultNamespace documentation> 
isDefaultNamespace_ ::
                    (MonadDOM m, IsNode self, ToJSString namespaceURI) =>
                      self -> Maybe namespaceURI -> m ()
isDefaultNamespace_ :: self -> Maybe namespaceURI -> m ()
isDefaultNamespace_ self
self Maybe namespaceURI
namespaceURI
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"isDefaultNamespace" [Maybe namespaceURI -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe namespaceURI
namespaceURI]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore Mozilla Node.insertBefore documentation> 
insertBefore ::
             (MonadDOM m, IsNode self, IsNode node, IsNode child) =>
               self -> node -> Maybe child -> m Node
insertBefore :: self -> node -> Maybe child -> m Node
insertBefore self
self node
node Maybe child
child
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"insertBefore"
          [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, Maybe child -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe child
child])
         JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore Mozilla Node.insertBefore documentation> 
insertBefore_ ::
              (MonadDOM m, IsNode self, IsNode node, IsNode child) =>
                self -> node -> Maybe child -> m ()
insertBefore_ :: self -> node -> Maybe child -> m ()
insertBefore_ self
self node
node Maybe child
child
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"insertBefore"
            [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, Maybe child -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe child
child]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild Mozilla Node.appendChild documentation> 
appendChild ::
            (MonadDOM m, IsNode self, IsNode node) => self -> node -> m Node
appendChild :: self -> node -> m Node
appendChild self
self node
node
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"appendChild" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]) JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild Mozilla Node.appendChild documentation> 
appendChild_ ::
             (MonadDOM m, IsNode self, IsNode node) => self -> node -> m ()
appendChild_ :: self -> node -> m ()
appendChild_ self
self node
node
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"appendChild" [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.replaceChild Mozilla Node.replaceChild documentation> 
replaceChild ::
             (MonadDOM m, IsNode self, IsNode node, IsNode child) =>
               self -> node -> child -> m Node
replaceChild :: self -> node -> child -> m Node
replaceChild self
self node
node child
child
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"replaceChild"
          [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, child -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal child
child])
         JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.replaceChild Mozilla Node.replaceChild documentation> 
replaceChild_ ::
              (MonadDOM m, IsNode self, IsNode node, IsNode child) =>
                self -> node -> child -> m ()
replaceChild_ :: self -> node -> child -> m ()
replaceChild_ self
self node
node child
child
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"replaceChild"
            [node -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal node
node, child -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal child
child]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.removeChild Mozilla Node.removeChild documentation> 
removeChild ::
            (MonadDOM m, IsNode self, IsNode child) => self -> child -> m Node
removeChild :: self -> child -> m Node
removeChild self
self child
child
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"removeChild" [child -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal child
child]) JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.removeChild Mozilla Node.removeChild documentation> 
removeChild_ ::
             (MonadDOM m, IsNode self, IsNode child) => self -> child -> m ()
removeChild_ :: self -> child -> m ()
removeChild_ self
self child
child
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"removeChild" [child -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal child
child]))
pattern $bELEMENT_NODE :: a
$mELEMENT_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
ELEMENT_NODE = 1
pattern $bATTRIBUTE_NODE :: a
$mATTRIBUTE_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
ATTRIBUTE_NODE = 2
pattern $bTEXT_NODE :: a
$mTEXT_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
TEXT_NODE = 3
pattern $bCDATA_SECTION_NODE :: a
$mCDATA_SECTION_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
CDATA_SECTION_NODE = 4
pattern $bENTITY_REFERENCE_NODE :: a
$mENTITY_REFERENCE_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
ENTITY_REFERENCE_NODE = 5
pattern $bENTITY_NODE :: a
$mENTITY_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
ENTITY_NODE = 6
pattern $bPROCESSING_INSTRUCTION_NODE :: a
$mPROCESSING_INSTRUCTION_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
PROCESSING_INSTRUCTION_NODE = 7
pattern $bCOMMENT_NODE :: a
$mCOMMENT_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
COMMENT_NODE = 8
pattern $bDOCUMENT_NODE :: a
$mDOCUMENT_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DOCUMENT_NODE = 9
pattern $bDOCUMENT_TYPE_NODE :: a
$mDOCUMENT_TYPE_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DOCUMENT_TYPE_NODE = 10
pattern $bDOCUMENT_FRAGMENT_NODE :: a
$mDOCUMENT_FRAGMENT_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DOCUMENT_FRAGMENT_NODE = 11
pattern $bNOTATION_NODE :: a
$mNOTATION_NODE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
NOTATION_NODE = 12
pattern $bDOCUMENT_POSITION_DISCONNECTED :: a
$mDOCUMENT_POSITION_DISCONNECTED :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DOCUMENT_POSITION_DISCONNECTED = 1
pattern $bDOCUMENT_POSITION_PRECEDING :: a
$mDOCUMENT_POSITION_PRECEDING :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DOCUMENT_POSITION_PRECEDING = 2
pattern $bDOCUMENT_POSITION_FOLLOWING :: a
$mDOCUMENT_POSITION_FOLLOWING :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DOCUMENT_POSITION_FOLLOWING = 4
pattern $bDOCUMENT_POSITION_CONTAINS :: a
$mDOCUMENT_POSITION_CONTAINS :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DOCUMENT_POSITION_CONTAINS = 8
pattern $bDOCUMENT_POSITION_CONTAINED_BY :: a
$mDOCUMENT_POSITION_CONTAINED_BY :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DOCUMENT_POSITION_CONTAINED_BY = 16
pattern $bDOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC :: a
$mDOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType Mozilla Node.nodeType documentation> 
getNodeType :: (MonadDOM m, IsNode self) => self -> m Word
getNodeType :: self -> m Word
getNodeType self
self
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (Double -> Word
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
<$> (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"nodeType") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeName Mozilla Node.nodeName documentation> 
getNodeName ::
            (MonadDOM m, IsNode self, FromJSString result) => self -> m result
getNodeName :: self -> m result
getNodeName self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"nodeName") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.baseURI Mozilla Node.baseURI documentation> 
getBaseURI ::
           (MonadDOM m, IsNode self, FromJSString result) => self -> m result
getBaseURI :: self -> m result
getBaseURI self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"baseURI") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isConnected Mozilla Node.isConnected documentation> 
getIsConnected :: (MonadDOM m, IsNode self) => self -> m Bool
getIsConnected :: self -> m Bool
getIsConnected self
self
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"isConnected") JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.ownerDocument Mozilla Node.ownerDocument documentation> 
getOwnerDocument ::
                 (MonadDOM m, IsNode self) => self -> m (Maybe Document)
getOwnerDocument :: self -> m (Maybe Document)
getOwnerDocument self
self
  = DOM (Maybe Document) -> m (Maybe Document)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"ownerDocument") JSM JSVal
-> (JSVal -> DOM (Maybe Document)) -> DOM (Maybe Document)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Document)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.ownerDocument Mozilla Node.ownerDocument documentation> 
getOwnerDocumentUnsafe ::
                       (MonadDOM m, IsNode self, HasCallStack) => self -> m Document
getOwnerDocumentUnsafe :: self -> m Document
getOwnerDocumentUnsafe self
self
  = DOM Document -> m Document
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"ownerDocument") JSM JSVal
-> (JSVal -> DOM (Maybe Document)) -> DOM (Maybe Document)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Document)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe Document)
-> (Maybe Document -> DOM Document) -> DOM Document
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM Document
-> (Document -> DOM Document) -> Maybe Document -> DOM Document
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM Document
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Document -> DOM Document
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.ownerDocument Mozilla Node.ownerDocument documentation> 
getOwnerDocumentUnchecked ::
                          (MonadDOM m, IsNode self) => self -> m Document
getOwnerDocumentUnchecked :: self -> m Document
getOwnerDocumentUnchecked self
self
  = DOM Document -> m Document
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"ownerDocument") JSM JSVal -> (JSVal -> DOM Document) -> DOM Document
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Document
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.parentNode Mozilla Node.parentNode documentation> 
getParentNode ::
              (MonadDOM m, IsNode self) => self -> m (Maybe Node)
getParentNode :: self -> m (Maybe Node)
getParentNode self
self
  = DOM (Maybe Node) -> m (Maybe Node)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"parentNode") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.parentNode Mozilla Node.parentNode documentation> 
getParentNodeUnsafe ::
                    (MonadDOM m, IsNode self, HasCallStack) => self -> m Node
getParentNodeUnsafe :: self -> m Node
getParentNodeUnsafe self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"parentNode") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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 (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 ([Char] -> DOM Node
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Node -> DOM Node
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.parentNode Mozilla Node.parentNode documentation> 
getParentNodeUnchecked ::
                       (MonadDOM m, IsNode self) => self -> m Node
getParentNodeUnchecked :: self -> m Node
getParentNodeUnchecked self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"parentNode") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.parentElement Mozilla Node.parentElement documentation> 
getParentElement ::
                 (MonadDOM m, IsNode self) => self -> m (Maybe Element)
getParentElement :: self -> m (Maybe Element)
getParentElement self
self
  = DOM (Maybe Element) -> m (Maybe Element)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"parentElement") JSM JSVal -> (JSVal -> DOM (Maybe Element)) -> DOM (Maybe Element)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Element)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.parentElement Mozilla Node.parentElement documentation> 
getParentElementUnsafe ::
                       (MonadDOM m, IsNode self, HasCallStack) => self -> m Element
getParentElementUnsafe :: self -> m Element
getParentElementUnsafe self
self
  = DOM Element -> m Element
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"parentElement") JSM JSVal -> (JSVal -> DOM (Maybe Element)) -> DOM (Maybe Element)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Element)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe Element)
-> (Maybe Element -> DOM Element) -> DOM Element
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM Element
-> (Element -> DOM Element) -> Maybe Element -> DOM Element
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM Element
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Element -> DOM Element
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.parentElement Mozilla Node.parentElement documentation> 
getParentElementUnchecked ::
                          (MonadDOM m, IsNode self) => self -> m Element
getParentElementUnchecked :: self -> m Element
getParentElementUnchecked self
self
  = DOM Element -> m Element
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"parentElement") JSM JSVal -> (JSVal -> DOM Element) -> DOM Element
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Element
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes Mozilla Node.childNodes documentation> 
getChildNodes :: (MonadDOM m, IsNode self) => self -> m NodeList
getChildNodes :: self -> m NodeList
getChildNodes self
self
  = DOM NodeList -> m NodeList
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"childNodes") JSM JSVal -> (JSVal -> DOM NodeList) -> DOM NodeList
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM NodeList
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.firstChild Mozilla Node.firstChild documentation> 
getFirstChild ::
              (MonadDOM m, IsNode self) => self -> m (Maybe Node)
getFirstChild :: self -> m (Maybe Node)
getFirstChild self
self
  = DOM (Maybe Node) -> m (Maybe Node)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"firstChild") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.firstChild Mozilla Node.firstChild documentation> 
getFirstChildUnsafe ::
                    (MonadDOM m, IsNode self, HasCallStack) => self -> m Node
getFirstChildUnsafe :: self -> m Node
getFirstChildUnsafe self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"firstChild") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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 (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 ([Char] -> DOM Node
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Node -> DOM Node
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.firstChild Mozilla Node.firstChild documentation> 
getFirstChildUnchecked ::
                       (MonadDOM m, IsNode self) => self -> m Node
getFirstChildUnchecked :: self -> m Node
getFirstChildUnchecked self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"firstChild") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lastChild Mozilla Node.lastChild documentation> 
getLastChild :: (MonadDOM m, IsNode self) => self -> m (Maybe Node)
getLastChild :: self -> m (Maybe Node)
getLastChild self
self
  = DOM (Maybe Node) -> m (Maybe Node)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"lastChild") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lastChild Mozilla Node.lastChild documentation> 
getLastChildUnsafe ::
                   (MonadDOM m, IsNode self, HasCallStack) => self -> m Node
getLastChildUnsafe :: self -> m Node
getLastChildUnsafe self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"lastChild") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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 (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 ([Char] -> DOM Node
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Node -> DOM Node
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lastChild Mozilla Node.lastChild documentation> 
getLastChildUnchecked ::
                      (MonadDOM m, IsNode self) => self -> m Node
getLastChildUnchecked :: self -> m Node
getLastChildUnchecked self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"lastChild") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.previousSibling Mozilla Node.previousSibling documentation> 
getPreviousSibling ::
                   (MonadDOM m, IsNode self) => self -> m (Maybe Node)
getPreviousSibling :: self -> m (Maybe Node)
getPreviousSibling self
self
  = DOM (Maybe Node) -> m (Maybe Node)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"previousSibling") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.previousSibling Mozilla Node.previousSibling documentation> 
getPreviousSiblingUnsafe ::
                         (MonadDOM m, IsNode self, HasCallStack) => self -> m Node
getPreviousSiblingUnsafe :: self -> m Node
getPreviousSiblingUnsafe self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"previousSibling") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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 (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 ([Char] -> DOM Node
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Node -> DOM Node
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.previousSibling Mozilla Node.previousSibling documentation> 
getPreviousSiblingUnchecked ::
                            (MonadDOM m, IsNode self) => self -> m Node
getPreviousSiblingUnchecked :: self -> m Node
getPreviousSiblingUnchecked self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"previousSibling") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nextSibling Mozilla Node.nextSibling documentation> 
getNextSibling ::
               (MonadDOM m, IsNode self) => self -> m (Maybe Node)
getNextSibling :: self -> m (Maybe Node)
getNextSibling self
self
  = DOM (Maybe Node) -> m (Maybe Node)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"nextSibling") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nextSibling Mozilla Node.nextSibling documentation> 
getNextSiblingUnsafe ::
                     (MonadDOM m, IsNode self, HasCallStack) => self -> m Node
getNextSiblingUnsafe :: self -> m Node
getNextSiblingUnsafe self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"nextSibling") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
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 (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 ([Char] -> DOM Node
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Node -> DOM Node
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nextSibling Mozilla Node.nextSibling documentation> 
getNextSiblingUnchecked ::
                        (MonadDOM m, IsNode self) => self -> m Node
getNextSiblingUnchecked :: self -> m Node
getNextSiblingUnchecked self
self
  = DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"nextSibling") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeValue Mozilla Node.nodeValue documentation> 
setNodeValue ::
             (MonadDOM m, IsNode self, ToJSString val) =>
               self -> Maybe val -> m ()
setNodeValue :: self -> Maybe val -> m ()
setNodeValue self
self Maybe val
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (DOM ()) Node (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"nodeValue" (Maybe val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe val
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeValue Mozilla Node.nodeValue documentation> 
getNodeValue ::
             (MonadDOM m, IsNode self, FromJSString result) =>
               self -> m (Maybe result)
getNodeValue :: self -> m (Maybe result)
getNodeValue self
self
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"nodeValue") JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeValue Mozilla Node.nodeValue documentation> 
getNodeValueUnsafe ::
                   (MonadDOM m, IsNode self, HasCallStack, FromJSString result) =>
                     self -> m result
getNodeValueUnsafe :: self -> m result
getNodeValueUnsafe self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"nodeValue") JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString) JSM (Maybe result) -> (Maybe result -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM result
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") result -> DOM result
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeValue Mozilla Node.nodeValue documentation> 
getNodeValueUnchecked ::
                      (MonadDOM m, IsNode self, FromJSString result) => self -> m result
getNodeValueUnchecked :: self -> m result
getNodeValueUnchecked self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"nodeValue") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent Mozilla Node.textContent documentation> 
setTextContent ::
               (MonadDOM m, IsNode self, ToJSString val) =>
                 self -> Maybe val -> m ()
setTextContent :: self -> Maybe val -> m ()
setTextContent self
self Maybe val
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (DOM ()) Node (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"textContent" (Maybe val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe val
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent Mozilla Node.textContent documentation> 
getTextContent ::
               (MonadDOM m, IsNode self, FromJSString result) =>
                 self -> m (Maybe result)
getTextContent :: self -> m (Maybe result)
getTextContent self
self
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"textContent") JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent Mozilla Node.textContent documentation> 
getTextContentUnsafe ::
                     (MonadDOM m, IsNode self, HasCallStack, FromJSString result) =>
                       self -> m result
getTextContentUnsafe :: self -> m result
getTextContentUnsafe self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"textContent") JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString) JSM (Maybe result) -> (Maybe result -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM result
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") result -> DOM result
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent Mozilla Node.textContent documentation> 
getTextContentUnchecked ::
                        (MonadDOM m, IsNode self, FromJSString result) => self -> m result
getTextContentUnchecked :: self -> m result
getTextContentUnchecked self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> Node
forall o. IsNode o => o -> Node
toNode self
self) Node -> Getting (JSM JSVal) Node (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter Node (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"textContent") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)