diff --git a/src/panels/iframe/ha-panel-iframe.js b/src/panels/iframe/ha-panel-iframe.js deleted file mode 100644 index 8dcc0e4670..0000000000 --- a/src/panels/iframe/ha-panel-iframe.js +++ /dev/null @@ -1,44 +0,0 @@ -import "@polymer/app-layout/app-toolbar/app-toolbar"; -import { html } from "@polymer/polymer/lib/utils/html-tag"; -/* eslint-plugin-disable lit */ -import { PolymerElement } from "@polymer/polymer/polymer-element"; -import "../../components/ha-menu-button"; -import "../../styles/polymer-ha-style"; - -class HaPanelIframe extends PolymerElement { - static get template() { - return html` - - - -
[[panel.title]]
-
- - - `; - } - - static get properties() { - return { - hass: Object, - narrow: Boolean, - panel: Object, - }; - } -} - -customElements.define("ha-panel-iframe", HaPanelIframe); diff --git a/src/panels/iframe/ha-panel-iframe.ts b/src/panels/iframe/ha-panel-iframe.ts new file mode 100644 index 0000000000..14aec1fdcd --- /dev/null +++ b/src/panels/iframe/ha-panel-iframe.ts @@ -0,0 +1,63 @@ +import { html, css, LitElement } from "lit"; +import { customElement, property } from "lit/decorators"; +import "../../layouts/hass-error-screen"; +import "../../layouts/hass-subpage"; +import { HomeAssistant, PanelInfo } from "../../types"; + +@customElement("ha-panel-iframe") +class HaPanelIframe extends LitElement { + @property() hass!: HomeAssistant; + + @property({ type: Boolean }) narrow!: boolean; + + @property() panel!: PanelInfo<{ url: string }>; + + render() { + if ( + location.protocol === "https:" && + new URL(this.panel.config.url, location.toString()).protocol !== "https:" + ) { + return html` + + `; + } + + return html` + + + + `; + } + + static styles = css` + iframe { + border: 0; + width: 100%; + position: absolute; + height: 100%; + background-color: var(--primary-background-color); + } + `; +} + +declare global { + interface HTMLElementTagNameMap { + "ha-panel-iframe": HaPanelIframe; + } +}