File tree 3 files changed +28
-0
lines changed
3 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ Breaking changes:
10
10
11
11
New features:
12
12
- Add support for ShadowRoot API (#34 )
13
+ - Add support for ` Element.matches ` and ` Element.closest ` (#39 )
13
14
14
15
Bugfixes:
15
16
Original file line number Diff line number Diff line change @@ -105,6 +105,22 @@ exports.removeAttribute = function (name) {
105
105
} ;
106
106
} ;
107
107
108
+ exports . matches = function ( selector ) {
109
+ return function ( element ) {
110
+ return function ( ) {
111
+ return element . matches ( selector ) ;
112
+ } ;
113
+ } ;
114
+ } ;
115
+
116
+ exports . _closest = function ( selector ) {
117
+ return function ( element ) {
118
+ return function ( ) {
119
+ return element . closest ( selector ) ;
120
+ } ;
121
+ } ;
122
+ } ;
123
+
108
124
// - CSSOM ---------------------------------------------------------------------
109
125
110
126
exports . scrollTop = function ( node ) {
Original file line number Diff line number Diff line change @@ -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
@@ -52,6 +54,8 @@ 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
56
import Web.DOM.ParentNode (ParentNode )
57
+ import Web.DOM.ParentNode (QuerySelector ) as Exports
58
+ import Web.DOM.ParentNode (ParentNode , QuerySelector )
55
59
import Web.DOM.ShadowRoot (ShadowRoot , ShadowRootMode )
56
60
import Web.Event.EventTarget (EventTarget )
57
61
import Web.Internal.FFI (unsafeReadProtoTagged )
@@ -121,6 +125,13 @@ foreign import _getAttribute :: String -> Element -> Effect (Nullable String)
121
125
foreign import hasAttribute :: String -> Element -> Effect Boolean
122
126
foreign import removeAttribute :: String -> Element -> Effect Unit
123
127
128
+ foreign import matches :: QuerySelector -> Element -> Effect Boolean
129
+
130
+ closest :: QuerySelector -> Element -> Effect (Maybe Element )
131
+ closest qs = map toMaybe <<< _closest qs
132
+
133
+ foreign import _closest :: QuerySelector -> Element -> Effect (Nullable Element )
134
+
124
135
foreign import scrollTop :: Element -> Effect Number
125
136
foreign import setScrollTop :: Number -> Element -> Effect Unit
126
137
You can’t perform that action at this time.
0 commit comments