{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.DOMException
       (newDOMException, toString, toString_, pattern INDEX_SIZE_ERR,
        pattern DOMSTRING_SIZE_ERR, pattern HIERARCHY_REQUEST_ERR,
        pattern WRONG_DOCUMENT_ERR, pattern INVALID_CHARACTER_ERR,
        pattern NO_DATA_ALLOWED_ERR, pattern NO_MODIFICATION_ALLOWED_ERR,
        pattern NOT_FOUND_ERR, pattern NOT_SUPPORTED_ERR,
        pattern INUSE_ATTRIBUTE_ERR, pattern INVALID_STATE_ERR,
        pattern SYNTAX_ERR, pattern INVALID_MODIFICATION_ERR,
        pattern NAMESPACE_ERR, pattern INVALID_ACCESS_ERR,
        pattern VALIDATION_ERR, pattern TYPE_MISMATCH_ERR,
        pattern SECURITY_ERR, pattern NETWORK_ERR, pattern ABORT_ERR,
        pattern URL_MISMATCH_ERR, pattern QUOTA_EXCEEDED_ERR,
        pattern TIMEOUT_ERR, pattern INVALID_NODE_TYPE_ERR,
        pattern DATA_CLONE_ERR, getCode, getName, getMessage,
        DOMException(..), gTypeDOMException)
       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/DOMException Mozilla DOMException documentation> 
newDOMException ::
                (MonadDOM m, ToJSString message, ToJSString name) =>
                  Maybe message -> Maybe name -> m DOMException
newDOMException :: forall (m :: * -> *) message name.
(MonadDOM m, ToJSString message, ToJSString name) =>
Maybe message -> Maybe name -> m DOMException
newDOMException Maybe message
message Maybe name
name
  = DOM DOMException -> m DOMException
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSVal -> DOMException
DOMException (JSVal -> DOMException) -> JSM JSVal -> DOM DOMException
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
         JSM JSVal -> [JSM JSVal] -> JSM JSVal
forall constructor args.
(MakeObject constructor, MakeArgs args) =>
constructor -> args -> JSM JSVal
new (String -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg String
"DOMException") [Maybe message -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe message
message, Maybe name -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe name
name])

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.toString Mozilla DOMException.toString documentation> 
toString ::
         (MonadDOM m, FromJSString result) => DOMException -> m result
toString :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
DOMException -> m result
toString DOMException
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((DOMException
self DOMException
-> Getting (JSM JSVal) DOMException (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
"toString" ()) JSM JSVal -> (JSVal -> DOM result) -> DOM result
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 result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.toString Mozilla DOMException.toString documentation> 
toString_ :: (MonadDOM m) => DOMException -> m ()
toString_ :: forall (m :: * -> *). MonadDOM m => DOMException -> m ()
toString_ DOMException
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 (DOMException
self DOMException
-> Getting (JSM JSVal) DOMException (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
"toString" ()))
pattern $mINDEX_SIZE_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bINDEX_SIZE_ERR :: forall {a}. (Eq a, Num a) => a
INDEX_SIZE_ERR = 1
pattern $mDOMSTRING_SIZE_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bDOMSTRING_SIZE_ERR :: forall {a}. (Eq a, Num a) => a
DOMSTRING_SIZE_ERR = 2
pattern $mHIERARCHY_REQUEST_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bHIERARCHY_REQUEST_ERR :: forall {a}. (Eq a, Num a) => a
HIERARCHY_REQUEST_ERR = 3
pattern $mWRONG_DOCUMENT_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bWRONG_DOCUMENT_ERR :: forall {a}. (Eq a, Num a) => a
WRONG_DOCUMENT_ERR = 4
pattern $mINVALID_CHARACTER_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bINVALID_CHARACTER_ERR :: forall {a}. (Eq a, Num a) => a
INVALID_CHARACTER_ERR = 5
pattern $mNO_DATA_ALLOWED_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNO_DATA_ALLOWED_ERR :: forall {a}. (Eq a, Num a) => a
NO_DATA_ALLOWED_ERR = 6
pattern $mNO_MODIFICATION_ALLOWED_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNO_MODIFICATION_ALLOWED_ERR :: forall {a}. (Eq a, Num a) => a
NO_MODIFICATION_ALLOWED_ERR = 7
pattern $mNOT_FOUND_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNOT_FOUND_ERR :: forall {a}. (Eq a, Num a) => a
NOT_FOUND_ERR = 8
pattern $mNOT_SUPPORTED_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNOT_SUPPORTED_ERR :: forall {a}. (Eq a, Num a) => a
NOT_SUPPORTED_ERR = 9
pattern $mINUSE_ATTRIBUTE_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bINUSE_ATTRIBUTE_ERR :: forall {a}. (Eq a, Num a) => a
INUSE_ATTRIBUTE_ERR = 10
pattern $mINVALID_STATE_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bINVALID_STATE_ERR :: forall {a}. (Eq a, Num a) => a
INVALID_STATE_ERR = 11
pattern $mSYNTAX_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bSYNTAX_ERR :: forall {a}. (Eq a, Num a) => a
SYNTAX_ERR = 12
pattern $mINVALID_MODIFICATION_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bINVALID_MODIFICATION_ERR :: forall {a}. (Eq a, Num a) => a
INVALID_MODIFICATION_ERR = 13
pattern $mNAMESPACE_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNAMESPACE_ERR :: forall {a}. (Eq a, Num a) => a
NAMESPACE_ERR = 14
pattern $mINVALID_ACCESS_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bINVALID_ACCESS_ERR :: forall {a}. (Eq a, Num a) => a
INVALID_ACCESS_ERR = 15
pattern $mVALIDATION_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bVALIDATION_ERR :: forall {a}. (Eq a, Num a) => a
VALIDATION_ERR = 16
pattern $mTYPE_MISMATCH_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bTYPE_MISMATCH_ERR :: forall {a}. (Eq a, Num a) => a
TYPE_MISMATCH_ERR = 17
pattern $mSECURITY_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bSECURITY_ERR :: forall {a}. (Eq a, Num a) => a
SECURITY_ERR = 18
pattern $mNETWORK_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNETWORK_ERR :: forall {a}. (Eq a, Num a) => a
NETWORK_ERR = 19
pattern $mABORT_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bABORT_ERR :: forall {a}. (Eq a, Num a) => a
ABORT_ERR = 20
pattern $mURL_MISMATCH_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bURL_MISMATCH_ERR :: forall {a}. (Eq a, Num a) => a
URL_MISMATCH_ERR = 21
pattern $mQUOTA_EXCEEDED_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bQUOTA_EXCEEDED_ERR :: forall {a}. (Eq a, Num a) => a
QUOTA_EXCEEDED_ERR = 22
pattern $mTIMEOUT_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bTIMEOUT_ERR :: forall {a}. (Eq a, Num a) => a
TIMEOUT_ERR = 23
pattern $mINVALID_NODE_TYPE_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bINVALID_NODE_TYPE_ERR :: forall {a}. (Eq a, Num a) => a
INVALID_NODE_TYPE_ERR = 24
pattern $mDATA_CLONE_ERR :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bDATA_CLONE_ERR :: forall {a}. (Eq a, Num a) => a
DATA_CLONE_ERR = 25

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.code Mozilla DOMException.code documentation> 
getCode :: (MonadDOM m) => DOMException -> m Word
getCode :: forall (m :: * -> *). MonadDOM m => DOMException -> m Word
getCode DOMException
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
<$> ((DOMException
self DOMException
-> Getting (JSM JSVal) DOMException (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter DOMException (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"code") 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))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.name Mozilla DOMException.name documentation> 
getName ::
        (MonadDOM m, FromJSString result) => DOMException -> m result
getName :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
DOMException -> m result
getName DOMException
self = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((DOMException
self DOMException
-> Getting (JSM JSVal) DOMException (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter DOMException (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"name") JSM JSVal -> (JSVal -> DOM result) -> DOM result
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 result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.message Mozilla DOMException.message documentation> 
getMessage ::
           (MonadDOM m, FromJSString result) => DOMException -> m result
getMessage :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
DOMException -> m result
getMessage DOMException
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((DOMException
self DOMException
-> Getting (JSM JSVal) DOMException (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter DOMException (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"message") JSM JSVal -> (JSVal -> DOM result) -> DOM result
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 result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)