{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.NavigatorID
       (getAppCodeName, getAppName, getAppVersion, getPlatform,
        getProduct, getProductSub, getUserAgent, getVendor, getVendorSub,
        NavigatorID(..), gTypeNavigatorID, IsNavigatorID, toNavigatorID)
       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/NavigatorID.appCodeName Mozilla NavigatorID.appCodeName documentation> 
getAppCodeName ::
               (MonadDOM m, IsNavigatorID self, FromJSString result) =>
                 self -> m result
getAppCodeName :: forall (m :: * -> *) self result.
(MonadDOM m, IsNavigatorID self, FromJSString result) =>
self -> m result
getAppCodeName self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> NavigatorID
forall o. IsNavigatorID o => o -> NavigatorID
toNavigatorID self
self) NavigatorID
-> Getting (JSM JSVal) NavigatorID (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NavigatorID (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"appCodeName") 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/NavigatorID.appName Mozilla NavigatorID.appName documentation> 
getAppName ::
           (MonadDOM m, IsNavigatorID self, FromJSString result) =>
             self -> m result
getAppName :: forall (m :: * -> *) self result.
(MonadDOM m, IsNavigatorID self, FromJSString result) =>
self -> m result
getAppName self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> NavigatorID
forall o. IsNavigatorID o => o -> NavigatorID
toNavigatorID self
self) NavigatorID
-> Getting (JSM JSVal) NavigatorID (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NavigatorID (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"appName") 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/NavigatorID.appVersion Mozilla NavigatorID.appVersion documentation> 
getAppVersion ::
              (MonadDOM m, IsNavigatorID self, FromJSString result) =>
                self -> m result
getAppVersion :: forall (m :: * -> *) self result.
(MonadDOM m, IsNavigatorID self, FromJSString result) =>
self -> m result
getAppVersion self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> NavigatorID
forall o. IsNavigatorID o => o -> NavigatorID
toNavigatorID self
self) NavigatorID
-> Getting (JSM JSVal) NavigatorID (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NavigatorID (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"appVersion") 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/NavigatorID.platform Mozilla NavigatorID.platform documentation> 
getPlatform ::
            (MonadDOM m, IsNavigatorID self, FromJSString result) =>
              self -> m result
getPlatform :: forall (m :: * -> *) self result.
(MonadDOM m, IsNavigatorID self, FromJSString result) =>
self -> m result
getPlatform self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> NavigatorID
forall o. IsNavigatorID o => o -> NavigatorID
toNavigatorID self
self) NavigatorID
-> Getting (JSM JSVal) NavigatorID (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NavigatorID (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"platform") 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/NavigatorID.product Mozilla NavigatorID.product documentation> 
getProduct ::
           (MonadDOM m, IsNavigatorID self, FromJSString result) =>
             self -> m result
getProduct :: forall (m :: * -> *) self result.
(MonadDOM m, IsNavigatorID self, FromJSString result) =>
self -> m result
getProduct self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> NavigatorID
forall o. IsNavigatorID o => o -> NavigatorID
toNavigatorID self
self) NavigatorID
-> Getting (JSM JSVal) NavigatorID (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NavigatorID (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"product") 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/NavigatorID.productSub Mozilla NavigatorID.productSub documentation> 
getProductSub ::
              (MonadDOM m, IsNavigatorID self, FromJSString result) =>
                self -> m result
getProductSub :: forall (m :: * -> *) self result.
(MonadDOM m, IsNavigatorID self, FromJSString result) =>
self -> m result
getProductSub self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> NavigatorID
forall o. IsNavigatorID o => o -> NavigatorID
toNavigatorID self
self) NavigatorID
-> Getting (JSM JSVal) NavigatorID (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NavigatorID (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"productSub") 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/NavigatorID.userAgent Mozilla NavigatorID.userAgent documentation> 
getUserAgent ::
             (MonadDOM m, IsNavigatorID self, FromJSString result) =>
               self -> m result
getUserAgent :: forall (m :: * -> *) self result.
(MonadDOM m, IsNavigatorID self, FromJSString result) =>
self -> m result
getUserAgent self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> NavigatorID
forall o. IsNavigatorID o => o -> NavigatorID
toNavigatorID self
self) NavigatorID
-> Getting (JSM JSVal) NavigatorID (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NavigatorID (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"userAgent") 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/NavigatorID.vendor Mozilla NavigatorID.vendor documentation> 
getVendor ::
          (MonadDOM m, IsNavigatorID self, FromJSString result) =>
            self -> m result
getVendor :: forall (m :: * -> *) self result.
(MonadDOM m, IsNavigatorID self, FromJSString result) =>
self -> m result
getVendor self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> NavigatorID
forall o. IsNavigatorID o => o -> NavigatorID
toNavigatorID self
self) NavigatorID
-> Getting (JSM JSVal) NavigatorID (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NavigatorID (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"vendor") 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/NavigatorID.vendorSub Mozilla NavigatorID.vendorSub documentation> 
getVendorSub ::
             (MonadDOM m, IsNavigatorID self, FromJSString result) =>
               self -> m result
getVendorSub :: forall (m :: * -> *) self result.
(MonadDOM m, IsNavigatorID self, FromJSString result) =>
self -> m result
getVendorSub self
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> NavigatorID
forall o. IsNavigatorID o => o -> NavigatorID
toNavigatorID self
self) NavigatorID
-> Getting (JSM JSVal) NavigatorID (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter NavigatorID (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"vendorSub") 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)