jsaddle-dom-0.9.2.0: DOM library that uses jsaddle to support both GHCJS and GHC

Safe HaskellNone
LanguageHaskell2010

JSDOM.Types

Contents

Synopsis

JavaScript Context and Monad

data JSContextRef :: * #

Identifies a JavaScript execution context. When using GHCJS this is just '()' since their is only one context. When using GHC it includes the functions JSaddle needs to communicate with the JavaScript context.

data JSM a :: * -> * #

The JSM monad keeps track of the JavaScript execution context.

When using GHCJS it is IO.

Given a JSM function and a JSContextRef you can run the function like this...

runJSM jsmFunction javaScriptContext

Instances

Monad JSM 

Methods

(>>=) :: JSM a -> (a -> JSM b) -> JSM b #

(>>) :: JSM a -> JSM b -> JSM b #

return :: a -> JSM a #

fail :: String -> JSM a #

Functor JSM 

Methods

fmap :: (a -> b) -> JSM a -> JSM b #

(<$) :: a -> JSM b -> JSM a #

MonadFix JSM 

Methods

mfix :: (a -> JSM a) -> JSM a #

Applicative JSM 

Methods

pure :: a -> JSM a #

(<*>) :: JSM (a -> b) -> JSM a -> JSM b #

(*>) :: JSM a -> JSM b -> JSM b #

(<*) :: JSM a -> JSM b -> JSM a #

MonadIO JSM 

Methods

liftIO :: IO a -> JSM a #

MonadJSM JSM 

Methods

liftJSM' :: JSM a -> JSM a #

MonadRef JSM 

Associated Types

type Ref (JSM :: * -> *) :: * -> * #

Methods

newRef :: a -> JSM (Ref JSM a) #

readRef :: Ref JSM a -> JSM a #

writeRef :: Ref JSM a -> a -> JSM () #

modifyRef :: Ref JSM a -> (a -> a) -> JSM () #

modifyRef' :: Ref JSM a -> (a -> a) -> JSM () #

MonadAtomicRef JSM 

Methods

atomicModifyRef :: Ref JSM a -> (a -> (a, b)) -> JSM b #

atomicModifyRef' :: Ref JSM a -> (a -> (a, b)) -> JSM b #

MakeArgs arg => MakeArgs (JSM arg) 

Methods

makeArgs :: JSM arg -> JSM [JSVal] #

type Ref JSM 
type Ref JSM = Ref IO

askJSM :: MonadJSM m => m JSContextRef #

Gets the JavaScript context from the monad

runJSM :: MonadIO m => JSM a -> JSContextRef -> m a #

Runs a JSM JavaScript function in a given JavaScript context.

class (Applicative m, MonadIO m) => MonadJSM m where #

The MonadJSM is to JSM what MonadIO is to IO. When using GHCJS it is MonadIO.

Methods

liftJSM' :: JSM a -> m a #

Instances

MonadJSM JSM 

Methods

liftJSM' :: JSM a -> JSM a #

MonadJSM m => MonadJSM (ListT m) 

Methods

liftJSM' :: JSM a -> ListT m a #

MonadJSM m => MonadJSM (MaybeT m) 

Methods

liftJSM' :: JSM a -> MaybeT m a #

MonadJSM m => MonadJSM (IdentityT * m) 

Methods

liftJSM' :: JSM a -> IdentityT * m a #

(Error e, MonadJSM m) => MonadJSM (ErrorT e m) 

Methods

liftJSM' :: JSM a -> ErrorT e m a #

MonadJSM m => MonadJSM (ExceptT e m) 

Methods

liftJSM' :: JSM a -> ExceptT e m a #

MonadJSM m => MonadJSM (StateT s m) 

Methods

liftJSM' :: JSM a -> StateT s m a #

MonadJSM m => MonadJSM (StateT s m) 

Methods

liftJSM' :: JSM a -> StateT s m a #

(Monoid w, MonadJSM m) => MonadJSM (WriterT w m) 

Methods

liftJSM' :: JSM a -> WriterT w m a #

(Monoid w, MonadJSM m) => MonadJSM (WriterT w m) 

Methods

liftJSM' :: JSM a -> WriterT w m a #

MonadJSM m => MonadJSM (ContT * r m) 

Methods

liftJSM' :: JSM a -> ContT * r m a #

MonadJSM m => MonadJSM (ReaderT * r m) 

Methods

liftJSM' :: JSM a -> ReaderT * r m a #

(Monoid w, MonadJSM m) => MonadJSM (RWST r w s m) 

Methods

liftJSM' :: JSM a -> RWST r w s m a #

(Monoid w, MonadJSM m) => MonadJSM (RWST r w s m) 

Methods

liftJSM' :: JSM a -> RWST r w s m a #

liftJSM :: MonadJSM m => JSM a -> m a #

The liftJSM is to JSM what liftIO is to IO. When using GHCJS it is liftIO.

DOM Context and Monad

type DOMContext = JSContextRef Source #

This is the same as JSContextRef except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)

type DOM = JSM Source #

This is the same as JSM except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)

askDOM :: MonadDOM m => m DOMContext Source #

This is the same as askJSM except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)

runDOM :: MonadIO m => DOM a -> DOMContext -> m a Source #

This is the same as runJSM except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)

type MonadDOM = MonadJSM Source #

This is the same as MonadJSM except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)

liftDOM :: MonadDOM m => DOM a -> m a Source #

This is the same as liftJSM except when using ghcjs-dom-webkit with GHC (instead of ghcjs-dom-jsaddle)

JavaScript Value

data JSVal :: * #

Instances

class ToJSVal a where #

Methods

toJSVal :: a -> JSM JSVal #

toJSValListOf :: [a] -> JSM JSVal #

Instances

ToJSVal Function 
ToJSVal JSNull

Makes a null JavaScript value

ToJSVal JSValue

Makes a JavaScript value from a JSValue ADT.

ToJSVal XSLTProcessor # 
ToJSVal XPathResult # 
ToJSVal XPathNSResolver # 
ToJSVal XPathExpression # 
ToJSVal XPathException # 
ToJSVal XPathEvaluator # 
ToJSVal XMLSerializer # 
ToJSVal XMLHttpRequestUpload # 
ToJSVal XMLHttpRequestProgressEvent # 
ToJSVal XMLHttpRequestEventTarget # 
ToJSVal XMLHttpRequest # 
ToJSVal XMLDocument # 
ToJSVal WritableStream # 
ToJSVal WorkerNavigator # 
ToJSVal WorkerLocation # 
ToJSVal WorkerGlobalScope # 
ToJSVal Worker # 
ToJSVal WindowOrWorkerGlobalScope # 
ToJSVal WindowEventHandlers # 
ToJSVal Window # 
ToJSVal WheelEventInit # 
ToJSVal WheelEvent # 
ToJSVal WebSocket # 
ToJSVal WebKitTransitionEventInit # 
ToJSVal WebKitTransitionEvent # 
ToJSVal WebKitSubtleCrypto # 
ToJSVal WebKitPoint # 
ToJSVal WebKitPlaybackTargetAvailabilityEventInit # 
ToJSVal WebKitPlaybackTargetAvailabilityEvent # 
ToJSVal WebKitNamespace # 
ToJSVal WebKitNamedFlow # 
ToJSVal WebKitMediaKeys # 
ToJSVal WebKitMediaKeySession # 
ToJSVal WebKitMediaKeyNeededEventInit # 
ToJSVal WebKitMediaKeyNeededEvent # 
ToJSVal WebKitMediaKeyMessageEventInit # 
ToJSVal WebKitMediaKeyMessageEvent # 
ToJSVal WebKitMediaKeyError # 
ToJSVal WebKitCSSViewportRule # 
ToJSVal WebKitCSSRegionRule # 
ToJSVal WebKitCSSMatrix # 
ToJSVal WebKitAnimationEventInit # 
ToJSVal WebKitAnimationEvent # 
ToJSVal WebGPUTextureDescriptor # 
ToJSVal WebGPUTexture # 
ToJSVal WebGPUSize # 
ToJSVal WebGPURenderingContext # 
ToJSVal WebGPURenderPipelineState # 
ToJSVal WebGPURenderPipelineDescriptor # 
ToJSVal WebGPURenderPipelineColorAttachmentDescriptor # 
ToJSVal WebGPURenderPassDescriptor # 
ToJSVal WebGPURenderPassDepthAttachmentDescriptor # 
ToJSVal WebGPURenderPassColorAttachmentDescriptor # 
ToJSVal WebGPURenderPassAttachmentDescriptor # 
ToJSVal WebGPURenderCommandEncoder # 
ToJSVal WebGPULibrary # 
ToJSVal WebGPUFunction # 
ToJSVal WebGPUDrawable # 
ToJSVal WebGPUDepthStencilState # 
ToJSVal WebGPUDepthStencilDescriptor # 
ToJSVal WebGPUComputePipelineState # 
ToJSVal WebGPUComputeCommandEncoder # 
ToJSVal WebGPUCommandQueue # 
ToJSVal WebGPUCommandBuffer # 
ToJSVal WebGPUBuffer # 
ToJSVal WebGLVertexArrayObjectOES # 
ToJSVal WebGLVertexArrayObject # 
ToJSVal WebGLUniformLocation # 
ToJSVal WebGLTransformFeedback # 
ToJSVal WebGLTexture # 
ToJSVal WebGLSync # 
ToJSVal WebGLShaderPrecisionFormat # 
ToJSVal WebGLShader # 
ToJSVal WebGLSampler # 
ToJSVal WebGLRenderingContextBase # 
ToJSVal WebGLRenderingContext # 
ToJSVal WebGLRenderbuffer # 
ToJSVal WebGLQuery # 
ToJSVal WebGLProgram # 
ToJSVal WebGLLoseContext # 
ToJSVal WebGLFramebuffer # 
ToJSVal WebGLDrawBuffers # 
ToJSVal WebGLDepthTexture # 
ToJSVal WebGLDebugShaders # 
ToJSVal WebGLDebugRendererInfo # 
ToJSVal WebGLContextEventInit # 
ToJSVal WebGLContextEvent # 
ToJSVal WebGLContextAttributes # 
ToJSVal WebGLCompressedTextureS3TC # 
ToJSVal WebGLCompressedTexturePVRTC # 
ToJSVal WebGLCompressedTextureATC # 
ToJSVal WebGLBuffer # 
ToJSVal WebGLActiveInfo # 
ToJSVal WebGL2RenderingContext # 
ToJSVal WaveShaperNode # 
ToJSVal VideoTrackList # 
ToJSVal VideoTrack # 
ToJSVal VideoPlaybackQuality # 
ToJSVal ValidityState # 
ToJSVal VTTRegionList # 
ToJSVal VTTRegion # 
ToJSVal VTTCue # 
ToJSVal UserMessageHandlersNamespace # 
ToJSVal UserMessageHandler # 
ToJSVal URLSearchParams # 
ToJSVal URL # 
ToJSVal UIEventInit # 
ToJSVal UIEvent # 
ToJSVal TreeWalker # 
ToJSVal TransitionEventInit # 
ToJSVal TransitionEvent # 
ToJSVal TrackEventInit # 
ToJSVal TrackEvent # 
ToJSVal TouchList # 
ToJSVal TouchEventInit # 
ToJSVal TouchEvent # 
ToJSVal Touch # 
ToJSVal TimeRanges # 
ToJSVal TextTrackList # 
ToJSVal TextTrackCueList # 
ToJSVal TextTrackCue # 
ToJSVal TextTrack # 
ToJSVal TextMetrics # 
ToJSVal TextEvent # 
ToJSVal TextEncoder # 
ToJSVal TextDecoderOptions # 
ToJSVal TextDecoder # 
ToJSVal TextDecodeOptions # 
ToJSVal Text # 
ToJSVal SubtleCrypto # 
ToJSVal StyleSheetList # 
ToJSVal StyleSheet # 
ToJSVal StyleMedia # 
ToJSVal StorageQuota # 
ToJSVal StorageInfo # 
ToJSVal StorageEventInit # 
ToJSVal StorageEvent # 
ToJSVal Storage # 
ToJSVal StaticRange # 
ToJSVal SpeechSynthesisVoice # 
ToJSVal SpeechSynthesisUtterance # 
ToJSVal SpeechSynthesisEvent # 
ToJSVal SpeechSynthesis # 
ToJSVal SourceBufferList # 
ToJSVal SourceBuffer # 
ToJSVal Slotable # 
ToJSVal SiteBoundCredentialData # 
ToJSVal SiteBoundCredential # 
ToJSVal ShadowRootInit # 
ToJSVal ShadowRoot # 
ToJSVal Selection # 
ToJSVal SecurityPolicyViolationEventInit # 
ToJSVal SecurityPolicyViolationEvent # 
ToJSVal ScrollToOptions # 
ToJSVal ScriptProcessorNode # 
ToJSVal Screen # 
ToJSVal SVGZoomEvent # 
ToJSVal SVGZoomAndPan # 
ToJSVal SVGViewSpec # 
ToJSVal SVGViewElement # 
ToJSVal SVGVKernElement # 
ToJSVal SVGUseElement # 
ToJSVal SVGUnitTypes # 
ToJSVal SVGURIReference # 
ToJSVal SVGTransformList # 
ToJSVal SVGTransform # 
ToJSVal SVGTitleElement # 
ToJSVal SVGTextPositioningElement # 
ToJSVal SVGTextPathElement # 
ToJSVal SVGTextElement # 
ToJSVal SVGTextContentElement # 
ToJSVal SVGTests # 
ToJSVal SVGTSpanElement # 
ToJSVal SVGTRefElement # 
ToJSVal SVGSymbolElement # 
ToJSVal SVGSwitchElement # 
ToJSVal SVGStyleElement # 
ToJSVal SVGStringList # 
ToJSVal SVGStopElement # 
ToJSVal SVGSetElement # 
ToJSVal SVGScriptElement # 
ToJSVal SVGSVGElement # 
ToJSVal SVGRenderingIntent # 
ToJSVal SVGRectElement # 
ToJSVal SVGRect # 
ToJSVal SVGRadialGradientElement # 
ToJSVal SVGPreserveAspectRatio # 
ToJSVal SVGPolylineElement # 
ToJSVal SVGPolygonElement # 
ToJSVal SVGPointList # 
ToJSVal SVGPoint # 
ToJSVal SVGPatternElement # 
ToJSVal SVGPathSegMovetoRel # 
ToJSVal SVGPathSegMovetoAbs # 
ToJSVal SVGPathSegList # 
ToJSVal SVGPathSegLinetoVerticalRel # 
ToJSVal SVGPathSegLinetoVerticalAbs # 
ToJSVal SVGPathSegLinetoRel # 
ToJSVal SVGPathSegLinetoHorizontalRel # 
ToJSVal SVGPathSegLinetoHorizontalAbs # 
ToJSVal SVGPathSegLinetoAbs # 
ToJSVal SVGPathSegCurvetoQuadraticSmoothRel # 
ToJSVal SVGPathSegCurvetoQuadraticSmoothAbs # 
ToJSVal SVGPathSegCurvetoQuadraticRel # 
ToJSVal SVGPathSegCurvetoQuadraticAbs # 
ToJSVal SVGPathSegCurvetoCubicSmoothRel # 
ToJSVal SVGPathSegCurvetoCubicSmoothAbs # 
ToJSVal SVGPathSegCurvetoCubicRel # 
ToJSVal SVGPathSegCurvetoCubicAbs # 
ToJSVal SVGPathSegClosePath # 
ToJSVal SVGPathSegArcRel # 
ToJSVal SVGPathSegArcAbs # 
ToJSVal SVGPathSeg # 
ToJSVal SVGPathElement # 
ToJSVal SVGNumberList # 
ToJSVal SVGNumber # 
ToJSVal SVGMissingGlyphElement # 
ToJSVal SVGMetadataElement # 
ToJSVal SVGMatrix # 
ToJSVal SVGMaskElement # 
ToJSVal SVGMarkerElement # 
ToJSVal SVGMPathElement # 
ToJSVal SVGLinearGradientElement # 
ToJSVal SVGLineElement # 
ToJSVal SVGLengthList # 
ToJSVal SVGLength # 
ToJSVal SVGImageElement # 
ToJSVal SVGHKernElement # 
ToJSVal SVGGraphicsElement # 
ToJSVal SVGGradientElement # 
ToJSVal SVGGlyphRefElement # 
ToJSVal SVGGlyphElement # 
ToJSVal SVGGElement # 
ToJSVal SVGForeignObjectElement # 
ToJSVal SVGFontFaceUriElement # 
ToJSVal SVGFontFaceSrcElement # 
ToJSVal SVGFontFaceNameElement # 
ToJSVal SVGFontFaceFormatElement # 
ToJSVal SVGFontFaceElement # 
ToJSVal SVGFontElement # 
ToJSVal SVGFitToViewBox # 
ToJSVal SVGFilterPrimitiveStandardAttributes # 
ToJSVal SVGFilterElement # 
ToJSVal SVGFETurbulenceElement # 
ToJSVal SVGFETileElement # 
ToJSVal SVGFESpotLightElement # 
ToJSVal SVGFESpecularLightingElement # 
ToJSVal SVGFEPointLightElement # 
ToJSVal SVGFEOffsetElement # 
ToJSVal SVGFEMorphologyElement # 
ToJSVal SVGFEMergeNodeElement # 
ToJSVal SVGFEMergeElement # 
ToJSVal SVGFEImageElement # 
ToJSVal SVGFEGaussianBlurElement # 
ToJSVal SVGFEFuncRElement # 
ToJSVal SVGFEFuncGElement # 
ToJSVal SVGFEFuncBElement # 
ToJSVal SVGFEFuncAElement # 
ToJSVal SVGFEFloodElement # 
ToJSVal SVGFEDropShadowElement # 
ToJSVal SVGFEDistantLightElement # 
ToJSVal SVGFEDisplacementMapElement # 
ToJSVal SVGFEDiffuseLightingElement # 
ToJSVal SVGFEConvolveMatrixElement # 
ToJSVal SVGFECompositeElement # 
ToJSVal SVGFEComponentTransferElement # 
ToJSVal SVGFEColorMatrixElement # 
ToJSVal SVGFEBlendElement # 
ToJSVal SVGExternalResourcesRequired # 
ToJSVal SVGException # 
ToJSVal SVGEllipseElement # 
ToJSVal SVGElement # 
ToJSVal SVGDescElement # 
ToJSVal SVGDefsElement # 
ToJSVal SVGCursorElement # 
ToJSVal SVGComponentTransferFunctionElement # 
ToJSVal SVGClipPathElement # 
ToJSVal SVGCircleElement # 
ToJSVal SVGAnimationElement # 
ToJSVal SVGAnimatedTransformList # 
ToJSVal SVGAnimatedString # 
ToJSVal SVGAnimatedRect # 
ToJSVal SVGAnimatedPreserveAspectRatio # 
ToJSVal SVGAnimatedNumberList # 
ToJSVal SVGAnimatedNumber # 
ToJSVal SVGAnimatedLengthList # 
ToJSVal SVGAnimatedLength # 
ToJSVal SVGAnimatedInteger # 
ToJSVal SVGAnimatedEnumeration # 
ToJSVal SVGAnimatedBoolean # 
ToJSVal SVGAnimatedAngle #