diff --git a/src/panels/lovelace/entity-rows/types.ts b/src/panels/lovelace/entity-rows/types.ts index b2eb451582..9890927485 100644 --- a/src/panels/lovelace/entity-rows/types.ts +++ b/src/panels/lovelace/entity-rows/types.ts @@ -29,6 +29,8 @@ export interface WeblinkConfig { name?: string; icon?: string; url: string; + new_tab?: boolean; + download?: boolean; } export interface TextConfig { type: "text"; diff --git a/src/panels/lovelace/special-rows/hui-weblink-row.ts b/src/panels/lovelace/special-rows/hui-weblink-row.ts index fed13977c9..6cdf9cc983 100644 --- a/src/panels/lovelace/special-rows/hui-weblink-row.ts +++ b/src/panels/lovelace/special-rows/hui-weblink-row.ts @@ -7,6 +7,7 @@ import { LitElement, TemplateResult, } from "lit-element"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../../../components/ha-icon"; import { HomeAssistant } from "../../../types"; import { LovelaceRow, WeblinkConfig } from "../entity-rows/types"; @@ -37,8 +38,9 @@ class HuiWeblinkRow extends LitElement implements LovelaceRow { return html`
${this._config.name}
@@ -66,6 +68,15 @@ class HuiWeblinkRow extends LitElement implements LovelaceRow { } `; } + + protected _computeTargetValue(): string | undefined { + return this._config && + (this._config.url.indexOf("://") !== -1 || + this._config.new_tab === true || + this._config.download === true) + ? "_blank" + : undefined; + } } declare global {