/
HTMLDocument.purs
94 lines (71 loc) · 2.75 KB
/
HTMLDocument.purs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
module Web.HTML.HTMLDocument
( HTMLDocument
, fromDocument
, fromNode
, fromParentNode
, fromNonElementParentNode
, fromEventTarget
, toDocument
, toNode
, toParentNode
, toNonElementParentNode
, toEventTarget
, body
, readyState
, activeElement
, currentScript
, referrer
, title
, setTitle
) where
import Prelude
import Data.Maybe (Maybe, fromMaybe)
import Data.Nullable (Nullable, toMaybe)
import Effect (Effect)
import Unsafe.Coerce (unsafeCoerce)
import Web.DOM.Document (Document)
import Web.DOM.Internal.Types (Node)
import Web.DOM.NonElementParentNode (NonElementParentNode)
import Web.DOM.ParentNode (ParentNode)
import Web.Event.EventTarget (EventTarget)
import Web.HTML.HTMLDocument.ReadyState (ReadyState)
import Web.HTML.HTMLDocument.ReadyState as ReadyState
import Web.HTML.HTMLElement (HTMLElement)
import Web.HTML.HTMLScriptElement (HTMLScriptElement)
import Web.Internal.FFI (unsafeReadProtoTagged)
foreign import data HTMLDocument :: Type
fromDocument :: Document -> Maybe HTMLDocument
fromDocument = unsafeReadProtoTagged "HTMLDocument"
fromNode :: Node -> Maybe HTMLDocument
fromNode = unsafeReadProtoTagged "HTMLDocument"
fromParentNode :: ParentNode -> Maybe HTMLDocument
fromParentNode = unsafeReadProtoTagged "HTMLDocument"
fromNonElementParentNode :: NonElementParentNode -> Maybe HTMLDocument
fromNonElementParentNode = unsafeReadProtoTagged "HTMLDocument"
fromEventTarget :: EventTarget -> Maybe HTMLDocument
fromEventTarget = unsafeReadProtoTagged "HTMLDocument"
toDocument :: HTMLDocument -> Document
toDocument = unsafeCoerce
toNode :: HTMLDocument -> Node
toNode = unsafeCoerce
toParentNode :: HTMLDocument -> ParentNode
toParentNode = unsafeCoerce
toNonElementParentNode :: HTMLDocument -> NonElementParentNode
toNonElementParentNode = unsafeCoerce
toEventTarget :: HTMLDocument -> EventTarget
toEventTarget = unsafeCoerce
foreign import _body :: HTMLDocument -> Effect (Nullable HTMLElement)
body :: HTMLDocument -> Effect (Maybe HTMLElement)
body = map toMaybe <<< _body
foreign import _readyState :: HTMLDocument -> Effect String
readyState :: HTMLDocument -> Effect ReadyState
readyState = map (fromMaybe ReadyState.Loading <<< ReadyState.parse) <<< _readyState
foreign import _activeElement :: HTMLDocument -> Effect (Nullable HTMLElement)
activeElement :: HTMLDocument -> Effect (Maybe HTMLElement)
activeElement = map toMaybe <<< _activeElement
foreign import _currentScript :: HTMLDocument -> Effect (Nullable HTMLScriptElement)
currentScript :: HTMLDocument -> Effect (Maybe HTMLScriptElement)
currentScript = map toMaybe <<< _currentScript
foreign import referrer :: HTMLDocument -> Effect String
foreign import title :: HTMLDocument -> Effect String
foreign import setTitle :: String -> HTMLDocument -> Effect Unit