nl_tokens: Extracted from timoxley / offset but directly using a TextRectangle instead of getting another version .
pl_tokens: function _offset ( box , doc ) { const body = doc . body || doc . getElementsByTagName ( 'body' ) [ 0 ] ; const docEl = doc . documentElement || body . parentNode ; const clientTop = docEl . clientTop || body . clientTop || 0 ; const clientLeft = docEl . clientLeft || body . clientLeft || 0 ; const scrollTop = window . pageYOffset || docEl . scrollTop ; const scrollLeft = window . pageXOffset || docEl . scrollLeft ; return { <mask> : box . top + scrollTop - clientTop , left : box . left + scrollLeft - clientLeft , } ; }