-- 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.5 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 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.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.DOM module HJScript.XMLGenerator 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.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 () succCallBack :: JObject XMLHttpRequest -> JBool isReady :: JObject XMLHttpRequest -> JBool -- | Creates a new XMLHttpRequest crtXMLHttpRequest :: HJScript (Exp XMLHttpRequest) 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 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 ())