File tree Expand file tree Collapse file tree 3 files changed +32
-0
lines changed Expand file tree Collapse file tree 3 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based
77Breaking changes:
88- Migrate FFI to ES modules (#51 by @JordanMartinez )
99- Unwrap returned ` Effect ` for ` doctype ` (#52 by @JordanMartinez )
10+ - Port ` getBoundingClientRect ` from ` web-html ` ; set arg to ` Element ` (#53 by @JordanMartinez )
1011
1112New features:
1213
Original file line number Diff line number Diff line change @@ -185,6 +185,22 @@ export function clientHeight(el) {
185185 } ;
186186}
187187
188+ export function getBoundingClientRect ( el ) {
189+ return function ( ) {
190+ var rect = el . getBoundingClientRect ( ) ;
191+ return {
192+ top : rect . top ,
193+ right : rect . right ,
194+ bottom : rect . bottom ,
195+ left : rect . left ,
196+ width : rect . width ,
197+ height : rect . height ,
198+ x : rect . x ,
199+ y : rect . y
200+ } ;
201+ } ;
202+ }
203+
188204export function _attachShadow ( props ) {
189205 return function ( el ) {
190206 return function ( ) {
Original file line number Diff line number Diff line change @@ -38,6 +38,8 @@ module Web.DOM.Element
3838 , clientLeft
3939 , clientWidth
4040 , clientHeight
41+ , getBoundingClientRect
42+ , DOMRect
4143 , ShadowRootInit
4244 , attachShadow
4345 ) where
@@ -144,6 +146,19 @@ foreign import clientLeft :: Element -> Effect Number
144146foreign import clientWidth :: Element -> Effect Number
145147foreign import clientHeight :: Element -> Effect Number
146148
149+ type DOMRect =
150+ { top :: Number
151+ , right :: Number
152+ , bottom :: Number
153+ , left :: Number
154+ , width :: Number
155+ , height :: Number
156+ , x :: Number
157+ , y :: Number
158+ }
159+
160+ foreign import getBoundingClientRect :: Element -> Effect DOMRect
161+
147162type ShadowRootInit = {
148163 mode :: ShadowRootMode ,
149164 delegatesFocus :: Boolean
You can’t perform that action at this time.
0 commit comments