File tree Expand file tree Collapse file tree 3 files changed +17
-0
lines changed
Expand file tree Collapse file tree 3 files changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ Breaking changes:
1010
1111New features:
1212- Add support for ShadowRoot API (#34 )
13+ - Add support for ` Element.closest ` (#39 )
1314
1415Bugfixes:
1516
Original file line number Diff line number Diff line change @@ -105,6 +105,14 @@ exports.removeAttribute = function (name) {
105105 } ;
106106} ;
107107
108+ exports . _closest = function ( selector ) {
109+ return function ( element ) {
110+ return function ( ) {
111+ return element . closest ( selector ) ;
112+ } ;
113+ } ;
114+ } ;
115+
108116// - CSSOM ---------------------------------------------------------------------
109117
110118exports . scrollTop = function ( node ) {
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ module Web.DOM.Element
2626 , getAttribute
2727 , hasAttribute
2828 , removeAttribute
29+ , closest
2930 , scrollTop
3031 , setScrollTop
3132 , scrollLeft
@@ -52,6 +53,8 @@ import Web.DOM.Internal.Types (Element) as Exports
5253import Web.DOM.Internal.Types (Element , HTMLCollection , Node )
5354import Web.DOM.NonDocumentTypeChildNode (NonDocumentTypeChildNode )
5455import Web.DOM.ParentNode (ParentNode )
56+ import Web.DOM.ParentNode (QuerySelector ) as Exports
57+ import Web.DOM.ParentNode (ParentNode , QuerySelector )
5558import Web.DOM.ShadowRoot (ShadowRoot , ShadowRootMode )
5659import Web.Event.EventTarget (EventTarget )
5760import Web.Internal.FFI (unsafeReadProtoTagged )
@@ -121,6 +124,11 @@ foreign import _getAttribute :: String -> Element -> Effect (Nullable String)
121124foreign import hasAttribute :: String -> Element -> Effect Boolean
122125foreign import removeAttribute :: String -> Element -> Effect Unit
123126
127+ closest :: QuerySelector -> Element -> Effect (Maybe Element )
128+ closest qs = map toMaybe <<< _closest qs
129+
130+ foreign import _closest :: QuerySelector -> Element -> Effect (Nullable Element )
131+
124132foreign import scrollTop :: Element -> Effect Number
125133foreign import setScrollTop :: Number -> Element -> Effect Unit
126134
You can’t perform that action at this time.
0 commit comments