{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.CSSPageRule
       (setSelectorText, getSelectorText, getSelectorTextUnsafe,
        getSelectorTextUnchecked, getStyle, CSSPageRule(..),
        gTypeCSSPageRule)
       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/CSSPageRule.selectorText Mozilla CSSPageRule.selectorText documentation> 
setSelectorText ::
                (MonadDOM m, ToJSString val) => CSSPageRule -> Maybe val -> m ()
setSelectorText :: forall (m :: * -> *) val.
(MonadDOM m, ToJSString val) =>
CSSPageRule -> Maybe val -> m ()
setSelectorText CSSPageRule
self Maybe val
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (CSSPageRule
self CSSPageRule -> Getting (DOM ()) CSSPageRule (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. String
-> 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 String
"selectorText" (Maybe val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe val
val))

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule.selectorText Mozilla CSSPageRule.selectorText documentation> 
getSelectorTextUnsafe ::
                      (MonadDOM m, HasCallStack, FromJSString result) =>
                        CSSPageRule -> m result
getSelectorTextUnsafe :: forall (m :: * -> *) result.
(MonadDOM m, HasCallStack, FromJSString result) =>
CSSPageRule -> m result
getSelectorTextUnsafe CSSPageRule
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((CSSPageRule
self CSSPageRule
-> Getting (JSM JSVal) CSSPageRule (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter CSSPageRule (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"selectorText") JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe 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 -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString) JSM (Maybe result) -> (Maybe result -> 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
>>=
         DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM result
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") result -> DOM result
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)

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