File tree 3 files changed +17
-0
lines changed
3 files changed +17
-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.closest ` (#39 )
13
14
14
15
Bugfixes:
15
16
Original file line number Diff line number Diff line change @@ -105,6 +105,14 @@ exports.removeAttribute = function (name) {
105
105
} ;
106
106
} ;
107
107
108
+ exports . _closest = function ( selector ) {
109
+ return function ( element ) {
110
+ return function ( ) {
111
+ return element . closest ( selector ) ;
112
+ } ;
113
+ } ;
114
+ } ;
115
+
108
116
// - CSSOM ---------------------------------------------------------------------
109
117
110
118
exports . scrollTop = function ( node ) {
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ module Web.DOM.Element
26
26
, getAttribute
27
27
, hasAttribute
28
28
, removeAttribute
29
+ , closest
29
30
, scrollTop
30
31
, setScrollTop
31
32
, scrollLeft
@@ -52,6 +53,8 @@ import Web.DOM.Internal.Types (Element) as Exports
52
53
import Web.DOM.Internal.Types (Element , HTMLCollection , Node )
53
54
import Web.DOM.NonDocumentTypeChildNode (NonDocumentTypeChildNode )
54
55
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,11 @@ 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
+ closest :: QuerySelector -> Element -> Effect (Maybe Element )
128
+ closest qs = may toMaybe <<< _closest qs
129
+
130
+ foreign import _closest :: QuerySelector -> Element -> Effect (Nullable Element )
131
+
124
132
foreign import scrollTop :: Element -> Effect Number
125
133
foreign import setScrollTop :: Number -> Element -> Effect Unit
126
134
You can’t perform that action at this time.
0 commit comments