@@ -26,6 +26,8 @@ module Web.DOM.Element
26
26
, getAttribute
27
27
, hasAttribute
28
28
, removeAttribute
29
+ , matches
30
+ , closest
29
31
, scrollTop
30
32
, setScrollTop
31
33
, scrollLeft
@@ -51,7 +53,8 @@ import Web.DOM.DOMTokenList (DOMTokenList)
51
53
import Web.DOM.Internal.Types (Element ) as Exports
52
54
import Web.DOM.Internal.Types (Element , HTMLCollection , Node )
53
55
import Web.DOM.NonDocumentTypeChildNode (NonDocumentTypeChildNode )
54
- import Web.DOM.ParentNode (ParentNode )
56
+ import Web.DOM.ParentNode (QuerySelector ) as Exports
57
+ import Web.DOM.ParentNode (ParentNode , QuerySelector )
55
58
import Web.DOM.ShadowRoot (ShadowRoot , ShadowRootMode )
56
59
import Web.Event.EventTarget (EventTarget )
57
60
import Web.Internal.FFI (unsafeReadProtoTagged )
@@ -121,6 +124,13 @@ foreign import _getAttribute :: String -> Element -> Effect (Nullable String)
121
124
foreign import hasAttribute :: String -> Element -> Effect Boolean
122
125
foreign import removeAttribute :: String -> Element -> Effect Unit
123
126
127
+ foreign import matches :: QuerySelector -> Element -> Effect Boolean
128
+
129
+ closest :: QuerySelector -> Element -> Effect (Maybe Element )
130
+ closest qs = map toMaybe <<< _closest qs
131
+
132
+ foreign import _closest :: QuerySelector -> Element -> Effect (Nullable Element )
133
+
124
134
foreign import scrollTop :: Element -> Effect Number
125
135
foreign import setScrollTop :: Number -> Element -> Effect Unit
126
136
0 commit comments