{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.FontFace
       (newFontFace, load, load_, setFamily, getFamily, setStyle,
        getStyle, setWeight, getWeight, setStretch, getStretch,
        setUnicodeRange, getUnicodeRange, setVariant, getVariant,
        setFeatureSettings, getFeatureSettings, getStatus, getLoaded,
        FontFace(..), gTypeFontFace)
       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/FontFace Mozilla FontFace documentation> 
newFontFace ::
            (MonadDOM m, ToJSString family', IsStringOrBinaryData source) =>
              family' -> source -> Maybe FontFaceDescriptors -> m FontFace
newFontFace :: forall (m :: * -> *) family' source.
(MonadDOM m, ToJSString family', IsStringOrBinaryData source) =>
family' -> source -> Maybe FontFaceDescriptors -> m FontFace
newFontFace family'
family' source
source Maybe FontFaceDescriptors
descriptors
  = DOM FontFace -> m FontFace
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSVal -> FontFace
FontFace (JSVal -> FontFace) -> JSM JSVal -> DOM FontFace
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
"FontFace")
           [family' -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal family'
family', source -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal source
source, Maybe FontFaceDescriptors -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe FontFaceDescriptors
descriptors])

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.load Mozilla FontFace.load documentation> 
load_ :: (MonadDOM m) => FontFace -> m ()
load_ :: forall (m :: * -> *). MonadDOM m => FontFace -> m ()
load_ FontFace
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 (FontFace
self FontFace -> Getting (JSM JSVal) FontFace (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
"load" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.family Mozilla FontFace.family documentation> 
setFamily ::
          (MonadDOM m, ToJSString val) => FontFace -> val -> m ()
setFamily :: forall (m :: * -> *) val.
(MonadDOM m, ToJSString val) =>
FontFace -> val -> m ()
setFamily FontFace
self val
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (FontFace
self FontFace -> Getting (DOM ()) FontFace (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
"family" (val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal val
val))

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

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

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

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

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

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

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

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