{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.ProcessingInstruction
       (getTarget, getSheet, getSheetUnsafe, getSheetUnchecked,
        ProcessingInstruction(..), gTypeProcessingInstruction)
       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/ProcessingInstruction.target Mozilla ProcessingInstruction.target documentation> 
getTarget ::
          (MonadDOM m, FromJSString result) =>
            ProcessingInstruction -> m result
getTarget :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
ProcessingInstruction -> m result
getTarget ProcessingInstruction
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((ProcessingInstruction
self ProcessingInstruction
-> Getting (JSM JSVal) ProcessingInstruction (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter ProcessingInstruction (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"target") 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/ProcessingInstruction.sheet Mozilla ProcessingInstruction.sheet documentation> 
getSheet ::
         (MonadDOM m) => ProcessingInstruction -> m (Maybe StyleSheet)
getSheet :: forall (m :: * -> *).
MonadDOM m =>
ProcessingInstruction -> m (Maybe StyleSheet)
getSheet ProcessingInstruction
self = DOM (Maybe StyleSheet) -> m (Maybe StyleSheet)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((ProcessingInstruction
self ProcessingInstruction
-> Getting (JSM JSVal) ProcessingInstruction (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter ProcessingInstruction (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"sheet") JSM JSVal
-> (JSVal -> DOM (Maybe StyleSheet)) -> DOM (Maybe StyleSheet)
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 StyleSheet)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

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

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