{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.DOMParser
       (newDOMParser, parseFromString, parseFromString_, DOMParser(..),
        gTypeDOMParser)
       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/DOMParser Mozilla DOMParser documentation> 
newDOMParser :: (MonadDOM m) => m DOMParser
newDOMParser :: m DOMParser
newDOMParser = DOM DOMParser -> m DOMParser
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSVal -> DOMParser
DOMParser (JSVal -> DOMParser) -> JSM JSVal -> DOM DOMParser
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> JSM JSVal -> () -> JSM JSVal
forall constructor args.
(MakeObject constructor, MakeArgs args) =>
constructor -> args -> JSM JSVal
new ([Char] -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg [Char]
"DOMParser") ())

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMParser.parseFromString Mozilla DOMParser.parseFromString documentation> 
parseFromString ::
                (MonadDOM m, ToJSString string, ToJSString contentType) =>
                  DOMParser -> string -> contentType -> m Document
parseFromString :: DOMParser -> string -> contentType -> m Document
parseFromString DOMParser
self string
string contentType
contentType
  = DOM Document -> m Document
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((DOMParser
self DOMParser -> Getting (JSM JSVal) DOMParser (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]
"parseFromString"
          [string -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal string
string, contentType -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal contentType
contentType])
         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/DOMParser.parseFromString Mozilla DOMParser.parseFromString documentation> 
parseFromString_ ::
                 (MonadDOM m, ToJSString string, ToJSString contentType) =>
                   DOMParser -> string -> contentType -> m ()
parseFromString_ :: DOMParser -> string -> contentType -> m ()
parseFromString_ DOMParser
self string
string contentType
contentType
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (DOMParser
self DOMParser -> Getting (JSM JSVal) DOMParser (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]
"parseFromString"
            [string -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal string
string, contentType -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal contentType
contentType]))