import { html, css, LitElement } from 'lit'; import { property } from 'lit/decorators.js'; import { ref, createRef } from 'lit/directives/ref.js'; export class VaaEmbed extends LitElement { static styles = css` :host { display: block; } iframe { width: 100%; height: 720px; } `; private _iframeRef = createRef(); private _handleResizeMessage = (event: MessageEvent) => { if (event.origin !== this.src.origin) return; if (event.data?.height) { const iframe = this._iframeRef.value as HTMLIFrameElement; iframe.style.height = `${event.data.height}px`; } }; connectedCallback() { super.connectedCallback(); window.addEventListener('message', this._handleResizeMessage); } disconnectedCallback() { window.removeEventListener('message', this._handleResizeMessage); super.disconnectedCallback(); } @property({ converter: { fromAttribute: value => value ? new URL(value) : new URL('https://altinget.dk/valg'), }, }) src = new URL('https://altinget.dk/valg'); render() { return html` `; } }