UNPKG

@decidables/decidables-elements

Version:

decidables-elements: Basic UI Web Components for the decidables project

52 lines (43 loc) 1.18 kB
export default function DecidablesMixinResizeable(superClass) { return class extends superClass { static get properties() { return { width: { attribute: false, type: Number, reflect: false, }, height: { attribute: false, type: Number, reflect: false, }, rem: { attribute: false, type: Number, reflect: false, }, }; } constructor() { super(); this.width = NaN; this.height = NaN; this.rem = NaN; } getDimensions() { this.width = parseFloat(this.getComputedStyleValue('width'), 10); this.height = parseFloat(this.getComputedStyleValue('height'), 10); this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10); } connectedCallback() { super.connectedCallback(); this.resizeObserver = new ResizeObserver(this.getDimensions.bind(this)); this.resizeObserver.observe(this); } disconnectedCallback() { this.resizeObserver.unobserve(this); super.disconnectedCallback(); } }; }