UNPKG

visbug-lib

Version:

<p align="center"> <img src="./assets/visbug.png" width="300" height="300" alt="visbug"> <br> <a href="https://www.npmjs.org/package/visbug"><img src="https://img.shields.io/npm/v/visbug.svg?style=flat" alt="npm latest version number"></a> <a href

46 lines (34 loc) 1.05 kB
import { OverlayStyles } from '../styles.store' export class Overlay extends HTMLElement { constructor() { super() this.$shadow = this.attachShadow({mode: 'closed'}) } connectedCallback() { this.$shadow.adoptedStyleSheets = [OverlayStyles] } disconnectedCallback() {} set position(boundingRect) { this.$shadow.innerHTML = this.render(boundingRect) } set update({ top, left, width, height }) { const [svg] = this.$shadow.children this.$shadow.host.style.display = 'block' svg.style.display = 'block' this.style.setProperty('--top', `${top + window.scrollY}px`) this.style.setProperty('--left', `${left + window.scrollX - 1}px`) svg.setAttribute('width', width + 'px') svg.setAttribute('height', height + 'px') } render({height, width}) { return ` <svg class="visbug-overlay" width="${width}px" height="${height}px" viewBox="0 0 ${width} ${height}" > <rect></rect> </svg> ` } } customElements.define('visbug-overlay', Overlay)