-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | HJScript is a Haskell EDSL for writing JavaScript programs.
--
-- HJScript is a DSL built on top of HJavaScript, for writing client-side
-- dynamic web pages. The programming model is fairly low-level,
-- resembling the actual JavaScript code quite a lot, but should be easy
-- to extend with higher-level functionality. Notable is that HJScript
-- supports the use of literal XML syntax, as defined by the hsx package,
-- for creating DOM ElementNodes. Also notable is that HJScript supports
-- Ajax functionality.
@package HJScript
@version 0.4.7
module HJScript.Events
-- | Events
data Event
OnAbort :: Event
OnBlur :: Event
OnChange :: Event
OnClick :: Event
OnDblclick :: Event
OnError :: Event
OnFocus :: Event
OnKeyDown :: Event
OnKeyPress :: Event
OnKeyUp :: Event
OnLoad :: Event
OnMouseDown :: Event
OnMouseMove :: Event
OnMouseOut :: Event
OnMouseOver :: Event
OnMouseUp :: Event
OnReset :: Event
OnResize :: Event
OnSelect :: Event
OnSubmit :: Event
OnUnload :: Event
showEvent :: Event -> String
instance [overlap ok] Show Event
module HJScript.Lang
-- | Incrementing or decrementing numbers.
preinc :: (Num t) => Var t -> HJScript ()
postinc :: (Num t) => Var t -> HJScript ()
predec :: (Num t) => Var t -> HJScript ()
postdec :: (Num t) => Var t -> HJScript ()
(.+.) :: (PlusOpType a) => HJSJBinOperator a a
(.-.) :: (Num a) => HJSJBinOperator a a
(.*.) :: (Num a) => HJSJBinOperator a a
(./.) :: (Num a) => HJSJBinOperator a a
(.&&.) :: HJSJBinOperator Bool Bool
(.||.) :: HJSJBinOperator Bool Bool
(.==.) :: HJSJBinOperator a Bool
(.!=.) :: HJSJBinOperator a Bool
(.>.) :: (Num a) => HJSJBinOperator a Bool
(.<.) :: (Num a) => HJSJBinOperator a Bool
(.>=.) :: (Num a) => HJSJBinOperator a Bool
(.<=.) :: (Num a) => HJSJBinOperator a Bool
-- | Assignment
(.=.) :: Var t -> Exp t -> HJScript ()
-- | Plus with
(.+=.) :: (Num t) => Var t -> Exp t -> HJScript ()
-- | Alternative if-else syntax: isTrue ? (doA,doB)
(?) :: JBool -> (HJScript t1, HJScript t2) -> HJScript ()
-- | Providing a way of writing if-else expression as in: isTrue ? doA
-- | doB
(<|>) :: a -> a -> (a, a)
this :: (IsClass c) => Exp c
callMethod :: (IsDeref d, Args e t1) => String -> e -> d -> Exp t2
callVoidMethod :: (Args e t1, IsDeref a) => String -> e -> a -> HJScript ()
callProc :: (Args e t) => Exp (t -> t1) -> e -> HJScript ()
-- | Anonymous function, returning an expression
function :: (FormalParams a t, VarsToExps a e) => (e -> HJScript (Exp r)) -> HJScript (Exp (t -> r))
-- | Anonymous void function.
procedure :: (FormalParams a t, VarsToExps a e) => (e -> HJScript ()) -> HJScript (Exp (t -> ()))
-- | Function declaration
functionDecl :: (FormalParams a t, VarsToExps a e) => String -> (e -> HJScript (Exp r)) -> HJScript ()
-- | Procedure declaration.
procedureDecl :: (FormalParams a t, VarsToExps a e) => String -> (e -> HJScript ()) -> HJScript ()
-- | for
for :: JInt -> JInt -> (JInt -> HJScript t) -> HJScript ()
-- | while
while :: JBool -> HJScript t -> HJScript ()
-- | doWhile
doWhile :: HJScript t -> JBool -> HJScript ()
-- | doIf
doIf :: JBool -> HJScript t -> HJScript (Elses ()) -> HJScript ()
-- | doElse
doElse :: HJScript () -> HJScript (Elses ())
-- | doIfElse
doIfElse :: JBool -> (HJScript t1, HJScript t2) -> HJScript ()
-- | Only an if branch
doIfNoElse :: Exp Bool -> HJScript () -> HJScript ()
-- | No else branch.
noElse :: HJScript (Elses ())
var :: HJScript (Var t)
varWith :: Exp t -> HJScript (Var t)
inVar :: Exp t -> HJScript (Exp t)
new :: (HasConstructor o e t, Args e t) => o -> e -> HJScript (Exp o)
-- | Dereferencing operator, similar to the dot operator in
-- JavaScript. E.g. document.forms => document # forms, same as forms
-- document
(#) :: a -> (a -> b) -> b
(#.) :: (a -> b) -> (b -> c) -> (a -> c)
rec :: Exp a -> Exp b -> Exp (Rec a b)
first :: Exp (Rec a b) -> Exp a
second :: Exp (Rec a b) -> Exp b
x :: Exp (Rec a b) -> Exp a
y :: Exp (Rec a b) -> Exp b
-- | Accessing arrays.
(#!) :: JArray t -> JInt -> Var t
-- | Null value
jnull :: (IsNullable t) => Exp t
-- | Converts to JString expression.
jShow :: (JShow t) => Exp t -> JString
-- | Casting an JObject
castObject :: (IsClass c1, IsClass c2) => JObject c1 -> JObject c2
-- | Checks if an object is supported by browser
hasFeature :: (IsFeature f, IsClass c) => JObject c -> f -> JBool
break :: HJScript ()
continue :: HJScript ()
true :: JBool
ifOp :: JBool -> Exp t -> Exp t -> Exp t
false :: JBool
int :: Int -> JInt
float :: Float -> JFloat
bool :: Bool -> JBool
string :: String -> JString
type HJScript = XMLGenT HJScript'
-- | IsHJscript class with function toHJScript for converting instances to
-- HJScript ()
class IsHJScript a
toHJScript :: (IsHJScript a) => a -> HJScript ()
-- | Adds a block
outputBlock :: Block () -> HJScript ()
-- | Adds a statement
outputStmt :: Stmt () -> HJScript ()
evaluateHJScript :: HJScript (Exp t) -> Block t
-- | Evaluate a script returning a tuple of the produced value and a block
-- of code.
evalHJScript :: HJScript t -> (t, Block ())
module HJScript.Objects.Array
-- | Properties for Array
arrLength :: JArray t -> JInt
-- | Methods on array
push :: Exp t -> JArray t -> HJScript ()
headArr :: JArray t -> Var t
-- | Map array
mapArray :: (Exp t1 -> Exp t2) -> JArray t1 -> HJScript (JArray t2)
-- | mapArrayH
mapArrayH :: (Exp t1 -> HJScript (Exp t2)) -> JArray t1 -> HJScript (JArray t2)
-- | Throw away produced value.
mapArrayH_ :: (Exp t1 -> HJScript t2) -> JArray t1 -> HJScript ()
-- | Synonym for mapArrayH_
foreach :: JArray t1 -> (Exp t1 -> HJScript t2) -> HJScript ()
-- | Select array elements with a condition.
filterArray :: (Exp t -> JBool) -> JArray t -> HJScript (JArray t)
instance [overlap ok] HasConstructor (Array t) JInt Int
instance [overlap ok] HasConstructor (Array t) () ()
module HJScript.Objects.Boolean
data Boolean
Boolean :: Boolean
booleanToString :: JObject Boolean -> JString
valueOf :: JObject Boolean -> JBool
instance [overlap ok] Show Boolean
instance [overlap ok] HasConstructor Boolean JInt Int
instance [overlap ok] HasConstructor Boolean JString String
instance [overlap ok] HasConstructor Boolean JBool Bool
instance [overlap ok] IsDeref Boolean
instance [overlap ok] IsClass Boolean
module HJScript.Objects.Date
data Date
Date :: Date
getDate :: JObject Date -> JInt
getDay :: JObject Date -> JInt
getMonth :: JObject Date -> JInt
getFullYear :: JObject Date -> JInt
getHours :: JObject Date -> JInt
getMinutes :: JObject Date -> JInt
getSeconds :: JObject Date -> JInt
getMilliseconds :: JObject Date -> JInt
getUTCDay :: JObject Date -> JString
getUTCMonth :: JObject Date -> JInt
getUTCFullYear :: JObject Date -> JInt
getUTCHours :: JObject Date -> JString
getUTCMinutes :: JObject Date -> JString
getUTCSeconds :: JObject Date -> JString
getUTCMilliseconds :: JObject Date -> JString
getTime :: JObject Date -> JString
getTimezoneOffset :: JObject Date -> JString
getUTCDate :: JObject Date -> JString
setDate :: JInt -> JObject Date -> HJScript ()
setMonth :: JInt -> JObject Date -> HJScript ()
setFullYear :: JInt -> JObject Date -> HJScript ()
setYear :: JInt -> JObject Date -> HJScript ()
setHours :: JInt -> JObject Date -> HJScript ()
setMinutes :: JInt -> JObject Date -> HJScript ()
setSeconds :: JInt -> JObject Date -> HJScript ()
setMilliseconds :: JInt -> JObject Date -> HJScript ()
setTime :: JInt -> JObject Date -> HJScript ()
setUTCDate :: JInt -> JObject Date -> HJScript ()
setUTCMonth :: JInt -> JObject Date -> HJScript ()
setUTCFullYear :: JInt -> JObject Date -> HJScript ()
setUTCHours :: JInt -> JObject Date -> HJScript ()
setUTCMinutes :: JInt -> JObject Date -> HJScript ()
setUTCSeconds :: JInt -> JObject Date -> HJScript ()
setUTCMilliseconds :: JInt -> JObject Date -> HJScript ()
dateToString :: JObject Date -> JString
toGMTString :: JObject Date -> JString
toUTCString :: JObject Date -> JString
toLocaleString :: JObject Date -> JString
instance [overlap ok] Show Date
instance [overlap ok] HasConstructor Date () ()
instance [overlap ok] IsClass Date
module HJScript.Objects.Math
-- | Math Class
data Math
Math :: Math
abs :: (Num t) => Exp t -> JFloat
acos :: (Num t) => Exp t -> JFloat
asin :: (Num t) => Exp t -> JFloat
atan :: (Num t) => Exp t -> JFloat
cos :: (Num t) => Exp t -> JFloat
exp :: (Num t) => Exp t -> JFloat
floor :: (Num t) => Exp t -> JFloat
log :: (Num t) => Exp t -> JFloat
max :: (Num t) => Exp t -> JFloat
min :: (Num t) => Exp t -> JFloat
pow :: (Num t) => Exp t -> JFloat
random :: (Num t) => Exp t -> JFloat
round :: (Num t) => Exp t -> JFloat
sin :: (Num t) => Exp t -> JFloat
sqrt :: (Num t) => Exp t -> JFloat
tan :: (Num t) => Exp t -> JFloat
instance [overlap ok] Show Math
instance [overlap ok] IsDeref Math
instance [overlap ok] IsClass Math
module HJScript.Objects.RegExp
data RegExp
RegExp :: RegExp
test :: JString -> JObject RegExp -> JBool
exec :: JString -> JObject RegExp -> JString
compile :: JString -> JObject RegExp -> HJScript ()
instance [overlap ok] Show RegExp
instance [overlap ok] HasConstructor RegExp JString String
instance [overlap ok] IsDeref RegExp
instance [overlap ok] IsClass RegExp
module HJScript.Objects.String
strLength :: JString -> JInt
toUpperCase :: JString -> JString
toLowerCase :: JString -> JString
anchor :: JString -> JString
big :: JString -> JString
blink :: JString -> JString
bold :: JString -> JString
charAt :: JInt -> JString -> JString
charCodeAt :: JInt -> JString -> JInt
strConcat :: JString -> JString -> JString
indexOf :: JString -> JInt
italics :: JString -> JString
lastIndexOf :: JString -> JInt
link :: JString -> JString
replace :: JString -> JString -> JString
substr :: JInt -> JString -> JString
substring :: JInt -> JInt -> JString -> JString
instance [overlap ok] IsClass String
module HJScript.Objects.ActiveXObject
data ActiveXObject
ActiveXObject :: ActiveXObject
msXMLHttp :: JString
instance [overlap ok] Show ActiveXObject
instance [overlap ok] HasConstructor ActiveXObject JString String
instance [overlap ok] IsClass ActiveXObject
module HJScript.DOM.NodeTypes
-- | Different node types
data NodeType
NodeElement :: NodeType
NodeAttribute :: NodeType
NodeText :: NodeType
NodeCDataSection :: NodeType
NodeEntety :: NodeType
NodeEntetyRef :: NodeType
NodeProccInstr :: NodeType
NodeComment :: NodeType
NodeDocument :: NodeType
NodeDocType :: NodeType
NodeDocFrag :: NodeType
NodeNotation :: NodeType
data Node
Node :: Node
data ElementNode
ElementNode :: ElementNode
data AttributeNode
AttributeNode :: AttributeNode
data TextNode
TextNode :: TextNode
nodeTypeVal :: NodeType -> JInt
data Document
Document :: Document
instance [overlap ok] Show Document
instance [overlap ok] Show TextNode
instance [overlap ok] Show AttributeNode
instance [overlap ok] Show ElementNode
instance [overlap ok] Show Node
module HJScript.DOM.Node
data Node
Node :: Node
class (IsClass n) => IsNode n
castToNode :: (IsNode n) => JObject n -> JObject Node
castFromNode :: (IsNode n) => JObject Node -> JObject n
-- | Different node types
data NodeType
NodeElement :: NodeType
NodeAttribute :: NodeType
NodeText :: NodeType
NodeCDataSection :: NodeType
NodeEntety :: NodeType
NodeEntetyRef :: NodeType
NodeProccInstr :: NodeType
NodeComment :: NodeType
NodeDocument :: NodeType
NodeDocType :: NodeType
NodeDocFrag :: NodeType
NodeNotation :: NodeType
nodeTypeVal :: NodeType -> JInt
nodeName :: (IsNode n) => Exp n -> JString
nodeType :: (IsNode n) => Exp n -> JInt
nodeValue :: (IsNode n) => Exp n -> Var String
ownerDocument :: (IsNode n) => Exp n -> Exp Document
prefix :: (IsNode n) => Exp n -> Exp String
cloneNode :: (IsNode n) => JBool -> Exp n -> Exp n
instance [overlap ok] IsNode Node
instance [overlap ok] IsClass Node
module HJScript.DOM.AttributeNode
data AttributeNode
AttributeNode :: AttributeNode
name :: Exp AttributeNode -> JString
specified :: Exp AttributeNode -> JBool
value :: Exp AttributeNode -> Var String
instance [overlap ok] IsNode AttributeNode
instance [overlap ok] IsClass AttributeNode
module HJScript.DOM.TextNode
data TextNode
TextNode :: TextNode
text :: Exp TextNode -> Var String
length :: Exp TextNode -> JInt
appendData :: JString -> Exp TextNode -> HJScript ()
deleteData :: JInt -> JInt -> Exp TextNode -> HJScript ()
insertData :: JInt -> JString -> Exp TextNode -> HJScript ()
replaceData :: JInt -> JInt -> JString -> Exp TextNode -> HJScript ()
splitText :: JInt -> Exp TextNode -> Exp TextNode
substringData :: JInt -> JInt -> Exp TextNode -> JString
instance [overlap ok] IsNode TextNode
instance [overlap ok] IsClass TextNode
module HJScript.DOM.NamedNodeMap
data NamedNodeMap
NamedNodeMap :: NamedNodeMap
length :: Exp NamedNodeMap -> JInt
getNamedItem :: JString -> Exp NamedNodeMap -> Exp AttributeNode
item :: JInt -> Exp NamedNodeMap -> Exp AttributeNode
removeNamedItem :: JString -> Exp NamedNodeMap -> Exp AttributeNode
instance [overlap ok] Show NamedNodeMap
instance [overlap ok] IsClass NamedNodeMap
module HJScript.DOM.ElementNode
data ElementNode
ElementNode :: ElementNode
class (IsClass n) => IsElementNode n
attributes :: (IsElementNode n) => Exp n -> Exp NamedNodeMap
childNodes :: (IsElementNode n) => Exp n -> JArray Node
firstChild :: (IsElementNode n) => Exp n -> Exp Node
lastChild :: (IsElementNode n) => Exp n -> Exp Node
localName :: (IsElementNode n) => Exp n -> JString
nextSibling :: (IsElementNode n) => Exp n -> Exp Node
parentNode :: (IsElementNode n) => Exp n -> Exp Node
previousSibling :: (IsElementNode n) => Exp n -> Exp Node
tagName :: (IsElementNode o) => Exp o -> JString
scrollTop :: (IsElementNode o) => Exp o -> Exp JInt
scrollTopVar :: (IsElementNode o) => Exp o -> Var JInt
scrollHeight :: (IsElementNode o) => Exp o -> Exp JInt
scrollHeightVar :: (IsElementNode o) => Exp o -> Var JInt
appendChild :: (IsElementNode n, IsNode c) => Exp c -> Exp n -> HJScript ()
cloneNode :: (IsNode n) => JBool -> Exp n -> Exp n
getAttribute :: (IsElementNode n) => JString -> Exp n -> JString
getAttributeNode :: (IsElementNode n) => JString -> Exp n -> Exp AttributeNode
hasAttribute :: (IsElementNode n) => JString -> Exp n -> JBool
hasAttributes :: (IsElementNode n) => Exp n -> JBool
hasChildNodes :: (IsElementNode n) => Exp n -> JBool
insertBefore :: (IsElementNode n) => Exp Node -> Exp Node -> Exp n -> HJScript ()
normalize :: (IsElementNode n) => Exp n -> HJScript ()
removeAttribute :: (IsElementNode n) => JString -> Exp n -> HJScript ()
removeAttributeNode :: (IsElementNode n) => Exp AttributeNode -> Exp n -> HJScript ()
removeChild :: (IsElementNode n, IsNode c) => Exp c -> Exp n -> HJScript ()
replaceChild :: (IsElementNode n, IsNode c, IsNode d) => Exp c -> Exp d -> Exp n -> HJScript ()
setAttribute :: (IsElementNode n) => JString -> JString -> Exp n -> HJScript ()
setAttributeNode :: (IsElementNode n) => Exp AttributeNode -> Exp n -> HJScript ()
instance [overlap ok] IsElementNode ElementNode
instance [overlap ok] IsNode ElementNode
instance [overlap ok] IsClass ElementNode
module HJScript.DOM.XHTML
class (IsElementNode a) => IsXHTMLElement a
asXHTMLElement :: (IsElementNode n) => Exp n -> Exp XHTMLElement
className :: (IsXHTMLElement n) => Exp n -> Var String
data Anchor
Anchor :: Anchor
data Area
Area :: Area
data Base
Base :: Base
data Body
Body :: Body
data Event
Event :: Event
data Form
Form :: Form
data Frame
Frame :: Frame
data Frameset
Frameset :: Frameset
data History
History :: History
data IFrame
IFrame :: IFrame
data Image
Image :: Image
data InputButton
InputButton :: InputButton
data InputCheckbox
InputCheckbox :: InputCheckbox
data InputFile
InputFile :: InputFile
data InputHidden
InputHidden :: InputHidden
data InputPassword
InputPassword :: InputPassword
data InputRadio
InputRadio :: InputRadio
data InputReset
InputTextInputReset :: InputReset
data InputSubmit
InputSubmit :: InputSubmit
data InputText
InputText :: InputText
data Link
Link :: Link
data Location
Location :: Location
data Meta
Meta :: Meta
data Navigator
Navigator :: Navigator
data Object
Object :: Object
data Option
Option :: Option
data Screen
Screen :: Screen
data Select
Select :: Select
data Style
Style :: Style
data Table
Table :: Table
data TableData
TableData :: TableData
data TableHeader
TableHeader :: TableHeader
data TableRow
TableRow :: TableRow
data Textarea
Textarea :: Textarea
instance [overlap ok] Show Textarea
instance [overlap ok] Show TableRow
instance [overlap ok] Show TableHeader
instance [overlap ok] Show TableData
instance [overlap ok] Show Table
instance [overlap ok] Show Style
instance [overlap ok] Show Select
instance [overlap ok] Show Screen
instance [overlap ok] Show Option
instance [overlap ok] Show Object
instance [overlap ok] Show Navigator
instance [overlap ok] Show Meta
instance [overlap ok] Show Location
instance [overlap ok] Show Link
instance [overlap ok] Show InputText
instance [overlap ok] Show InputSubmit
instance [overlap ok] Show InputReset
instance [overlap ok] Show InputRadio
instance [overlap ok] Show InputPassword
instance [overlap ok] Show InputHidden
instance [overlap ok] Show InputFile
instance [overlap ok] Show InputCheckbox
instance [overlap ok] Show InputButton
instance [overlap ok] Show Image
instance [overlap ok] Show IFrame
instance [overlap ok] Show History
instance [overlap ok] Show Frameset
instance [overlap ok] Show Frame
instance [overlap ok] Show Form
instance [overlap ok] Show Event
instance [overlap ok] Show Body
instance [overlap ok] Show Base
instance [overlap ok] Show Area
instance [overlap ok] Show Anchor
instance [overlap ok] Show XHTMLElement
instance [overlap ok] IsXHTMLElement Textarea
instance [overlap ok] IsElementNode Textarea
instance [overlap ok] IsNode Textarea
instance [overlap ok] IsClass Textarea
instance [overlap ok] IsXHTMLElement TableRow
instance [overlap ok] IsElementNode TableRow
instance [overlap ok] IsNode TableRow
instance [overlap ok] IsClass TableRow
instance [overlap ok] IsXHTMLElement TableHeader
instance [overlap ok] IsElementNode TableHeader
instance [overlap ok] IsNode TableHeader
instance [overlap ok] IsClass TableHeader
instance [overlap ok] IsXHTMLElement TableData
instance [overlap ok] IsElementNode TableData
instance [overlap ok] IsNode TableData
instance [overlap ok] IsClass TableData
instance [overlap ok] IsXHTMLElement Table
instance [overlap ok] IsElementNode Table
instance [overlap ok] IsNode Table
instance [overlap ok] IsClass Table
instance [overlap ok] IsClass Style
instance [overlap ok] IsClass Select
instance [overlap ok] IsClass Screen
instance [overlap ok] IsClass Option
instance [overlap ok] IsClass Object
instance [overlap ok] IsClass Navigator
instance [overlap ok] IsClass Meta
instance [overlap ok] IsClass Location
instance [overlap ok] IsXHTMLElement Link
instance [overlap ok] IsElementNode Link
instance [overlap ok] IsNode Link
instance [overlap ok] IsClass Link
instance [overlap ok] IsXHTMLElement InputText
instance [overlap ok] IsElementNode InputText
instance [overlap ok] IsNode InputText
instance [overlap ok] IsClass InputText
instance [overlap ok] IsClass InputSubmit
instance [overlap ok] IsClass InputReset
instance [overlap ok] IsClass InputRadio
instance [overlap ok] IsClass InputPassword
instance [overlap ok] IsClass InputHidden
instance [overlap ok] IsClass InputFile
instance [overlap ok] IsXHTMLElement InputCheckbox
instance [overlap ok] IsElementNode InputCheckbox
instance [overlap ok] IsNode InputCheckbox
instance [overlap ok] IsClass InputCheckbox
instance [overlap ok] IsXHTMLElement InputButton
instance [overlap ok] IsElementNode InputButton
instance [overlap ok] IsNode InputButton
instance [overlap ok] IsClass InputButton
instance [overlap ok] IsXHTMLElement Image
instance [overlap ok] IsElementNode Image
instance [overlap ok] IsNode Image
instance [overlap ok] IsClass Image
instance [overlap ok] IsXHTMLElement IFrame
instance [overlap ok] IsElementNode IFrame
instance [overlap ok] IsNode IFrame
instance [overlap ok] IsClass IFrame
instance [overlap ok] IsClass History
instance [overlap ok] IsClass Frameset
instance [overlap ok] IsXHTMLElement Frame
instance [overlap ok] IsElementNode Frame
instance [overlap ok] IsNode Frame
instance [overlap ok] IsClass Frame
instance [overlap ok] IsXHTMLElement Form
instance [overlap ok] IsElementNode Form
instance [overlap ok] IsNode Form
instance [overlap ok] IsClass Form
instance [overlap ok] IsClass Event
instance [overlap ok] IsXHTMLElement Body
instance [overlap ok] IsElementNode Body
instance [overlap ok] IsNode Body
instance [overlap ok] IsClass Body
instance [overlap ok] IsXHTMLElement Base
instance [overlap ok] IsElementNode Base
instance [overlap ok] IsNode Base
instance [overlap ok] IsClass Base
instance [overlap ok] IsXHTMLElement Area
instance [overlap ok] IsElementNode Area
instance [overlap ok] IsClass Area
instance [overlap ok] IsNode Area
instance [overlap ok] IsXHTMLElement Anchor
instance [overlap ok] IsElementNode Anchor
instance [overlap ok] IsNode Anchor
instance [overlap ok] IsClass Anchor
instance [overlap ok] IsXHTMLElement XHTMLElement
instance [overlap ok] IsElementNode XHTMLElement
instance [overlap ok] IsClass XHTMLElement
module HJScript.DOM.Window
window :: Exp Window
data Window
frames :: Exp Window -> JArray Frame
closed :: Exp Window -> JBool
defaultStatus :: Exp Window -> JString
winDocument :: Exp Window -> Exp Document
winLength :: Exp Window -> Var Int
winName :: Exp Window -> Var String
opener :: Exp Window -> Exp Window
parent :: Exp Window -> Exp Window
self :: Exp Window -> Exp Window
status :: Exp Window -> Var String
top :: Exp Window -> Exp Window
blur :: Exp Window -> HJScript ()
focus :: Exp Window -> HJScript ()
alert :: Exp t -> Exp Window -> HJScript ()
close :: Exp Window -> HJScript ()
confirm :: JString -> Exp Window -> JBool
createPopup :: Exp Window -> Exp Window
resizeBy :: JInt -> JInt -> Exp Window -> HJScript ()
resizeTo :: JInt -> JInt -> Exp Window -> HJScript ()
promt :: JString -> Exp Window -> JString
moveBy :: JInt -> JInt -> Exp Window -> HJScript ()
moveTo :: JInt -> JInt -> Exp Window -> HJScript ()
navigate :: JString -> Exp Window -> HJScript ()
open :: JString -> JString -> Exp Window -> HJScript ()
scrollBy :: JInt -> JInt -> Exp Window -> HJScript ()
scrollTo :: JInt -> JInt -> Exp Window -> HJScript ()
instance [overlap ok] Show Window
instance [overlap ok] IsClass Window
module HJScript.Objects.JQuery
data JQuery
JQuery :: JQuery
jQuery :: Exp JQuery
selectExpr :: Exp c -> JObject JQuery
jSize :: JObject JQuery -> JInt
length :: JObject JQuery -> JInt
get :: JInt -> JObject JQuery -> Exp ElementNode
empty :: JObject JQuery -> Exp JQuery
jVal :: JObject JQuery -> JString
jSetVal :: JString -> JObject JQuery -> JString
jText :: JObject JQuery -> JString
jSetText :: JString -> JObject JQuery -> Exp JQuery
append :: Exp a -> JObject JQuery -> Exp JQuery
prepend :: Exp a -> JObject JQuery -> Exp JQuery
ready :: HJScript () -> HJScript ()
change :: HJScript () -> JObject JQuery -> HJScript ()
submit :: HJScript () -> JObject JQuery -> HJScript ()
select :: HJScript () -> JObject JQuery -> HJScript ()
runExp :: Exp a -> HJScript ()
instance [overlap ok] Show JQuery
instance [overlap ok] HasConstructor JQuery JString String
instance [overlap ok] IsClass JQuery
module HJScript.DOM.Document
data Document
document :: Exp Document
anchors :: Exp Document -> JArray Anchor
applets :: Exp Document -> JArray Object
embeds :: Exp Document -> JArray ElementNode
forms :: Exp Document -> JArray Form
images :: Exp Document -> JArray Image
links :: Exp Document -> JArray Link
stylesheets :: Exp Document -> JArray Style
alinkColor :: Exp Document -> JString
body :: Exp Document -> Exp Body
cookie :: Exp Document -> Var String
documentElement :: Exp Document -> Exp ElementNode
domain :: Exp Document -> JString
lastModified :: Exp Document -> JString
linkColor :: Exp Document -> JString
referrer :: Exp Document -> JString
url :: Exp Document -> JString
vlinkColor :: Exp Document -> JString
createAttribute :: JString -> Exp Document -> Exp AttributeNode
createElement :: JString -> Exp Document -> Exp ElementNode
createTextNode :: JString -> Exp Document -> Exp TextNode
getElementById :: JString -> Exp Document -> Exp ElementNode
getElementsByTagName :: JString -> Exp Document -> JArray ElementNode
write :: JString -> Exp Document -> HJScript ()
writeln :: JString -> Exp Document -> HJScript ()
instance [overlap ok] IsClass Document
module HJScript.DOM
module HJScript.Objects.XMLHttpRequest
-- | XMLHttpRequest
data XMLHttpRequest
XMLHttpRequest :: XMLHttpRequest
statusReq :: JObject XMLHttpRequest -> JInt
onReadyStateChange :: JObject XMLHttpRequest -> Var (() -> ())
responseXML :: JObject XMLHttpRequest -> JObject Document
responseText :: JObject XMLHttpRequest -> JString
readyState :: JObject XMLHttpRequest -> JInt
openReq :: JString -> JString -> JBool -> JObject XMLHttpRequest -> HJScript ()
sendReq :: JString -> JObject XMLHttpRequest -> HJScript ()
setRequestHeader :: JString -> JString -> JObject XMLHttpRequest -> HJScript ()
instance [overlap ok] Show XMLHttpRequest
instance [overlap ok] HasConstructor XMLHttpRequest () ()
instance [overlap ok] IsClass XMLHttpRequest
module HJScript.Ajax
type ReqParam = (JString, JString)
type ReqParams = [ReqParam]
class IsReqParams a
toReqParams :: (IsReqParams a) => a -> [ReqParam]
noParams :: ReqParams
-- | Allowing path selections form XMLHttpRequest objects. instance
-- HasDomSel (JsObject a XMLHttpRequest) where toDomElement req = req
-- documentElement
asyncGetReq :: (IsReqParams ps, IsExp e String) => e -> ps -> (JObject XMLHttpRequest -> HJScript ()) -> HJScript ()
-- | Post request
asyncPostReq :: (IsReqParams ps, IsExp e String) => e -> ps -> (JObject XMLHttpRequest -> HJScript ()) -> HJScript ()
(=:) :: (IsReqParams (a, b)) => a -> b -> ReqParams
(<&>) :: (IsReqParams p1, IsReqParams p2) => p1 -> p2 -> ReqParams
addGetParams :: (IsExp e String, IsReqParams ps) => e -> ps -> JString
openAsync :: (IsExp e String) => HttpMethod -> e -> JObject XMLHttpRequest -> HJScript ()
openAsyncPost :: (IsExp e String) => e -> JObject XMLHttpRequest -> HJScript ()
sendNull :: JObject XMLHttpRequest -> HJScript ()
sendPost :: (IsExp e String) => e -> JObject XMLHttpRequest -> HJScript ()
setCallBack :: (JObject XMLHttpRequest -> XMLGenT HJScript' ()) -> JObject XMLHttpRequest -> XMLGenT HJScript' ()
succCallBack :: JObject XMLHttpRequest -> JBool
isReady :: JObject XMLHttpRequest -> JBool
isReadySucc :: JObject XMLHttpRequest -> Exp Bool
-- | Creates a new XMLHttpRequest
crtXMLHttpRequest :: HJScript (Exp XMLHttpRequest)
setPostReqHeader :: JObject XMLHttpRequest -> HJScript ()
instance [overlap ok] Show HttpMethod
instance [overlap ok] IsExp [ReqParam] String
instance [overlap ok] IsExp ReqParam String
instance [overlap ok] IsReqParams ReqParams
instance [overlap ok] (IsExp e1 String, IsExp e2 String) => IsReqParams (e1, e2)
module HJScript.Utils
dispNone :: JString
dispBlock :: JString
dispInline :: JString
thisElem :: Exp ElementNode
thisXHTMLElement :: Exp ElementNode
thisNode :: Exp Node
hasClass :: (IsJString e) => e -> Exp ElementNode -> JBool
hasChild :: (IsElementNode e) => Exp e -> JBool
isVisible :: (IsElementNode n) => Exp n -> JBool
isInVisible :: (IsElementNode n) => Exp n -> JBool
elemById :: (IsJString e) => e -> Exp ElementNode
elemsByTag :: (IsJString e) => e -> JArray ElementNode
fstElemByTag :: (IsJString e) => e -> Exp ElementNode
allElems :: JArray ElementNode
parentElem :: (IsElementNode e) => (Exp e) -> Exp ElementNode
elemVal :: (IsElementNode n) => Exp n -> JString
msg :: (IsExp e t) => e -> HJScript ()
getElemById :: (IsJString e) => e -> HJScript (Exp ElementNode)
getElemsByTag :: (IsJString e) => e -> HJScript (JArray ElementNode)
getFstElemByTag :: (IsJString e) => e -> HJScript (Exp ElementNode)
getAllElems :: HJScript (JArray ElementNode)
getParentElem :: (IsElementNode e) => Exp e -> HJScript (Exp ElementNode)
getElemsByClass :: (IsJString e) => e -> HJScript (JArray ElementNode)
getFstElemByClass :: (IsJString e) => e -> HJScript (JObject ElementNode)
getSiblings :: (IsElementNode e) => Exp e -> HJScript (JArray Node)
hideElem :: (IsElementNode e) => Exp e -> HJScript ()
showElem :: (IsElementNode e) => Exp e -> HJScript ()
showInline :: (IsElementNode e) => Exp e -> HJScript ()
showBlock :: (IsElementNode e) => Exp e -> HJScript ()
remFirstChild :: (IsElementNode e) => Exp e -> HJScript ()
remChildren :: (IsElementNode e) => Exp e -> HJScript ()
remElem :: (IsElementNode e) => Exp e -> HJScript ()
appendChildren :: (IsElementNode n, IsNode t) => JArray t -> Exp n -> HJScript ()
setChild :: (IsNode n1, IsElementNode n2) => Exp n1 -> Exp n2 -> HJScript ()
toggleVis :: (IsElementNode n) => Exp n -> HJScript ()
toggleVisBlock :: (IsElementNode n) => Exp n -> HJScript ()
toggleVisInline :: (IsElementNode n) => Exp n -> HJScript ()
setVal :: (IsElementNode n) => JString -> Exp n -> HJScript ()
module HJScript.XMLGenerator
genElement :: (XMLGen m) => Name -> [XMLGenT m [Attribute m]] -> [XMLGenT m [Child m]] -> XMLGenT m (XML m)
genEElement :: (XMLGen m) => Name -> [XMLGenT m [Attribute m]] -> XMLGenT m (XML m)
asChild :: (EmbedAsChild m c) => c -> GenChildList m
asAttr :: (EmbedAsAttr m a) => a -> GenAttributeList m
data Attr n a :: * -> * -> *
(:=) :: n -> a -> Attr n a
instance [overlap ok] AppendChild HJScript' XML
instance [overlap ok] SetAttr HJScript' XML
instance [overlap ok] (IsAttrNodeValue a) => IsAttrNodeValue (HJScript a)
instance [overlap ok] (JShow a) => IsAttrNodeValue a
instance [overlap ok] (IsName n, IsAttrNodeValue a) => EmbedAsAttr HJScript' (Attr n a)
instance [overlap ok] EmbedAsAttr HJScript' Attribute
instance [overlap ok] EmbedAsChild HJScript' XML
instance [overlap ok] EmbedAsChild HJScript' Char
instance [overlap ok] EmbedAsChild HJScript' String
instance [overlap ok] EmbedAsChild HJScript' JString
instance [overlap ok] EmbedAsChild HJScript' Child
instance [overlap ok] XMLGenerator HJScript'
instance [overlap ok] XMLGen HJScript'
module HJScript
type HJScript = XMLGenT HJScript'
-- | HJScript Monad
type HJScript' = StateT HJState (Writer (Block ()))
-- | IsHJscript class with function toHJScript for converting instances to
-- HJScript ()
class IsHJScript a
toHJScript :: (IsHJScript a) => a -> HJScript ()
-- | Evaluate a script returning a tuple of the produced value and a block
-- of code.
evalHJScript :: HJScript t -> (t, Block ())
-- | Runs a script returning the value, the new state and the block of
-- code.
runHJScript :: HJScript t -> HJState -> (t, HJState, Block ())
-- | Adds a block
outputBlock :: Block () -> HJScript ()
-- | Adds a statement
outputStmt :: Stmt () -> HJScript ()
newVarName :: HJScript String
newVarNum :: HJScript Int
-- | Runs one script inside another
hjsInside :: HJScript t -> HJScript (t, Block ())