From 101a364a83d2a20fa472e88a86102b037ed0f3d2 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Sat, 24 Nov 2018 14:03:54 +0100 Subject: [PATCH] Type LovelaceConfig -> LovelaceCardConfig (#2103) * LovelaceConfig -> LovelaceCardConfig * Typo --- .../lovelace/cards/hui-conditional-card.ts | 6 ++-- .../lovelace/cards/hui-entities-card.ts | 4 +-- .../lovelace/cards/hui-entity-button-card.ts | 4 +-- src/panels/lovelace/cards/hui-error-card.ts | 8 ++--- src/panels/lovelace/cards/hui-gauge-card.ts | 4 +-- src/panels/lovelace/cards/hui-glance-card.ts | 4 +-- src/panels/lovelace/cards/hui-iframe-card.ts | 4 +-- src/panels/lovelace/cards/hui-light-card.ts | 4 +-- .../lovelace/cards/hui-markdown-card.ts | 4 +-- src/panels/lovelace/cards/hui-picture-card.ts | 4 +-- .../cards/hui-picture-elements-card.ts | 4 +-- .../lovelace/cards/hui-picture-glance-card.ts | 4 +-- .../lovelace/cards/hui-shopping-list-card.ts | 4 +-- src/panels/lovelace/cards/hui-stack-card.ts | 6 ++-- .../lovelace/cards/hui-thermostat-card.ts | 4 +-- src/panels/lovelace/common/data.ts | 4 +-- .../common/generate-lovelace-config.ts | 33 +++++-------------- .../lovelace/components/hui-card-options.ts | 4 +-- .../lovelace/editor/hui-card-preview.ts | 6 ++-- .../lovelace/editor/hui-dialog-edit-card.ts | 4 +-- src/panels/lovelace/editor/hui-edit-card.ts | 15 +++++---- src/panels/lovelace/editor/types.ts | 4 +-- src/panels/lovelace/types.ts | 22 ++++++++++--- 23 files changed, 80 insertions(+), 80 deletions(-) diff --git a/src/panels/lovelace/cards/hui-conditional-card.ts b/src/panels/lovelace/cards/hui-conditional-card.ts index 5111855b1a..4646b7386b 100644 --- a/src/panels/lovelace/cards/hui-conditional-card.ts +++ b/src/panels/lovelace/cards/hui-conditional-card.ts @@ -1,7 +1,7 @@ import createCardElement from "../common/create-card-element"; import { computeCardSize } from "../common/compute-card-size"; import { HomeAssistant } from "../../../types"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; interface Condition { entity: string; @@ -9,8 +9,8 @@ interface Condition { state_not?: string; } -interface Config extends LovelaceConfig { - card: LovelaceConfig; +interface Config extends LovelaceCardConfig { + card: LovelaceCardConfig; conditions: Condition[]; } diff --git a/src/panels/lovelace/cards/hui-entities-card.ts b/src/panels/lovelace/cards/hui-entities-card.ts index 2689fa4ad9..cbb51e71a7 100644 --- a/src/panels/lovelace/cards/hui-entities-card.ts +++ b/src/panels/lovelace/cards/hui-entities-card.ts @@ -14,7 +14,7 @@ import { DOMAINS_HIDE_MORE_INFO } from "../../../common/const"; import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin"; import { HomeAssistant } from "../../../types"; import { EntityConfig, EntityRow } from "../entity-rows/types"; -import { LovelaceCard, LovelaceConfig, LovelaceCardEditor } from "../types"; +import { LovelaceCard, LovelaceCardConfig, LovelaceCardEditor } from "../types"; import processConfigEntities from "../common/process-config-entities"; import createRowElement from "../common/create-row-element"; import computeDomain from "../../../common/entity/compute_domain"; @@ -29,7 +29,7 @@ export interface ConfigEntity extends EntityConfig { url?: string; } -export interface Config extends LovelaceConfig { +export interface Config extends LovelaceCardConfig { show_header_toggle?: boolean; title?: string; entities: ConfigEntity[]; diff --git a/src/panels/lovelace/cards/hui-entity-button-card.ts b/src/panels/lovelace/cards/hui-entity-button-card.ts index de0d81a2e4..78c0320e26 100644 --- a/src/panels/lovelace/cards/hui-entity-button-card.ts +++ b/src/panels/lovelace/cards/hui-entity-button-card.ts @@ -18,11 +18,11 @@ import applyThemesOnElement from "../../../common/dom/apply_themes_on_element"; import { toggleEntity } from "../common/entity/toggle-entity"; import { HomeAssistant, LightEntity } from "../../../types"; import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { longPress } from "../common/directives/long-press-directive"; import { fireEvent } from "../../../common/dom/fire_event"; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { entity: string; name?: string; icon?: string; diff --git a/src/panels/lovelace/cards/hui-error-card.ts b/src/panels/lovelace/cards/hui-error-card.ts index 5aa785d62d..6d89c406c9 100644 --- a/src/panels/lovelace/cards/hui-error-card.ts +++ b/src/panels/lovelace/cards/hui-error-card.ts @@ -1,11 +1,11 @@ import { html, LitElement } from "@polymer/lit-element"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { TemplateResult } from "lit-html"; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { error: string; - origConfig: LovelaceConfig; + origConfig: LovelaceCardConfig; } class HuiErrorCard extends LitElement implements LovelaceCard { @@ -50,7 +50,7 @@ class HuiErrorCard extends LitElement implements LovelaceCard { `; } - private _toStr(config: LovelaceConfig): string { + private _toStr(config: LovelaceCardConfig): string { return JSON.stringify(config, null, 2); } } diff --git a/src/panels/lovelace/cards/hui-gauge-card.ts b/src/panels/lovelace/cards/hui-gauge-card.ts index 5fbfeece6f..e901f5d3cf 100644 --- a/src/panels/lovelace/cards/hui-gauge-card.ts +++ b/src/panels/lovelace/cards/hui-gauge-card.ts @@ -6,7 +6,7 @@ import { } from "@polymer/lit-element"; import { TemplateResult } from "lit-html"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { HomeAssistant } from "../../../types"; import { fireEvent } from "../../../common/dom/fire_event"; @@ -16,7 +16,7 @@ import { hasConfigOrEntityChanged } from "../common/has-changed"; import "../../../components/ha-card"; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { entity: string; title?: string; unit_of_measurement?: string; diff --git a/src/panels/lovelace/cards/hui-glance-card.ts b/src/panels/lovelace/cards/hui-glance-card.ts index d3c40ee8ca..246a0e564d 100644 --- a/src/panels/lovelace/cards/hui-glance-card.ts +++ b/src/panels/lovelace/cards/hui-glance-card.ts @@ -10,7 +10,7 @@ import { classMap } from "lit-html/directives/classMap"; import { fireEvent } from "../../../common/dom/fire_event"; import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin"; import { HomeAssistant } from "../../../types"; -import { LovelaceCard, LovelaceConfig, LovelaceCardEditor } from "../types"; +import { LovelaceCard, LovelaceCardConfig, LovelaceCardEditor } from "../types"; import { longPress } from "../common/directives/long-press-directive"; import { EntityConfig } from "../entity-rows/types"; import { toggleEntity } from "../common/entity/toggle-entity"; @@ -31,7 +31,7 @@ export interface ConfigEntity extends EntityConfig { service_data?: object; } -export interface Config extends LovelaceConfig { +export interface Config extends LovelaceCardConfig { show_name?: boolean; show_state?: boolean; title?: string; diff --git a/src/panels/lovelace/cards/hui-iframe-card.ts b/src/panels/lovelace/cards/hui-iframe-card.ts index 822f60f870..a964bcac90 100644 --- a/src/panels/lovelace/cards/hui-iframe-card.ts +++ b/src/panels/lovelace/cards/hui-iframe-card.ts @@ -2,11 +2,11 @@ import { html, LitElement, PropertyDeclarations } from "@polymer/lit-element"; import "../../../components/ha-card"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { TemplateResult } from "lit-html"; import { styleMap } from "lit-html/directives/styleMap"; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { aspect_ratio?: string; title?: string; url: string; diff --git a/src/panels/lovelace/cards/hui-light-card.ts b/src/panels/lovelace/cards/hui-light-card.ts index 1bbf158271..99e2c2c613 100644 --- a/src/panels/lovelace/cards/hui-light-card.ts +++ b/src/panels/lovelace/cards/hui-light-card.ts @@ -12,7 +12,7 @@ import { jQuery } from "../../../resources/jquery"; import { roundSliderStyle } from "../../../resources/jquery.roundslider"; import { HomeAssistant, LightEntity } from "../../../types"; import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { longPress } from "../common/directives/long-press-directive"; import stateIcon from "../../../common/entity/state_icon"; @@ -37,7 +37,7 @@ const lightConfig = { showTooltip: false, }; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { entity: string; name?: string; theme?: string; diff --git a/src/panels/lovelace/cards/hui-markdown-card.ts b/src/panels/lovelace/cards/hui-markdown-card.ts index 5cedf5873b..99380293a8 100644 --- a/src/panels/lovelace/cards/hui-markdown-card.ts +++ b/src/panels/lovelace/cards/hui-markdown-card.ts @@ -4,10 +4,10 @@ import { classMap } from "lit-html/directives/classMap"; import "../../../components/ha-card"; import "../../../components/ha-markdown"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { TemplateResult } from "lit-html"; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { content: string; title?: string; } diff --git a/src/panels/lovelace/cards/hui-picture-card.ts b/src/panels/lovelace/cards/hui-picture-card.ts index e988c0ea97..f5744a5c7f 100644 --- a/src/panels/lovelace/cards/hui-picture-card.ts +++ b/src/panels/lovelace/cards/hui-picture-card.ts @@ -2,13 +2,13 @@ import { html, LitElement, PropertyDeclarations } from "@polymer/lit-element"; import "../../../components/ha-card"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { navigate } from "../../../common/navigate"; import { HomeAssistant } from "../../../types"; import { TemplateResult } from "lit-html"; import { classMap } from "lit-html/directives/classMap"; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { image?: string; navigation_path?: string; service?: string; diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index d99cdb3249..4d77fdaab8 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -3,11 +3,11 @@ import { TemplateResult } from "lit-html"; import createHuiElement from "../common/create-hui-element"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { HomeAssistant } from "../../../types"; import { LovelaceElementConfig, LovelaceElement } from "../elements/types"; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { title?: string; image: string; elements: LovelaceElementConfig[]; diff --git a/src/panels/lovelace/cards/hui-picture-glance-card.ts b/src/panels/lovelace/cards/hui-picture-glance-card.ts index 593567bf88..776126ddb6 100644 --- a/src/panels/lovelace/cards/hui-picture-glance-card.ts +++ b/src/panels/lovelace/cards/hui-picture-glance-card.ts @@ -5,7 +5,7 @@ import { TemplateResult } from "lit-html"; import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin"; import { fireEvent } from "../../../common/dom/fire_event"; import { DOMAINS_TOGGLE } from "../../../common/const"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { EntityConfig } from "../entity-rows/types"; import { navigate } from "../../../common/navigate"; import { HomeAssistant } from "../../../types"; @@ -23,7 +23,7 @@ import "../components/hui-image"; const STATES_OFF = new Set(["closed", "locked", "not_home", "off"]); -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { entities: EntityConfig[]; title?: string; navigation_path?: string; diff --git a/src/panels/lovelace/cards/hui-shopping-list-card.ts b/src/panels/lovelace/cards/hui-shopping-list-card.ts index a9191f1dcb..1930dfbdff 100644 --- a/src/panels/lovelace/cards/hui-shopping-list-card.ts +++ b/src/panels/lovelace/cards/hui-shopping-list-card.ts @@ -9,7 +9,7 @@ import "../../../components/ha-icon"; import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin"; import { HomeAssistant } from "../../../types"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { fetchItems, completeItem, @@ -19,7 +19,7 @@ import { addItem, } from "../../../data/shopping-list"; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { title?: string; } diff --git a/src/panels/lovelace/cards/hui-stack-card.ts b/src/panels/lovelace/cards/hui-stack-card.ts index 2bc6ca5022..cf2820cdc8 100644 --- a/src/panels/lovelace/cards/hui-stack-card.ts +++ b/src/panels/lovelace/cards/hui-stack-card.ts @@ -3,11 +3,11 @@ import { TemplateResult } from "lit-html"; import createCardElement from "../common/create-card-element"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { HomeAssistant } from "../../../types"; -interface Config extends LovelaceConfig { - cards: LovelaceConfig[]; +interface Config extends LovelaceCardConfig { + cards: LovelaceCardConfig[]; } export abstract class HuiStackCard extends LitElement implements LovelaceCard { diff --git a/src/panels/lovelace/cards/hui-thermostat-card.ts b/src/panels/lovelace/cards/hui-thermostat-card.ts index a9491043eb..e39376c32a 100644 --- a/src/panels/lovelace/cards/hui-thermostat-card.ts +++ b/src/panels/lovelace/cards/hui-thermostat-card.ts @@ -15,7 +15,7 @@ import { hasConfigOrEntityChanged } from "../common/has-changed"; import { roundSliderStyle } from "../../../resources/jquery.roundslider"; import { HomeAssistant, ClimateEntity } from "../../../types"; import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import "../../../components/ha-card"; import "../../../components/ha-icon"; @@ -43,7 +43,7 @@ const modeIcons = { idle: "hass:power-sleep", }; -interface Config extends LovelaceConfig { +interface Config extends LovelaceCardConfig { entity: string; theme?: string; } diff --git a/src/panels/lovelace/common/data.ts b/src/panels/lovelace/common/data.ts index 685c00c52b..373dccb4d6 100644 --- a/src/panels/lovelace/common/data.ts +++ b/src/panels/lovelace/common/data.ts @@ -1,5 +1,5 @@ import { HomeAssistant } from "../../../types"; -import { LovelaceConfig } from "../types"; +import { LovelaceCardConfig } from "../types"; export const getCardConfig = ( hass: HomeAssistant, @@ -13,7 +13,7 @@ export const getCardConfig = ( export const updateCardConfig = ( hass: HomeAssistant, cardId: string, - config: LovelaceConfig | string, + config: LovelaceCardConfig | string, configFormat: "json" | "yaml" ): Promise => hass.callWS({ diff --git a/src/panels/lovelace/common/generate-lovelace-config.ts b/src/panels/lovelace/common/generate-lovelace-config.ts index aa5f912d28..6109b96fef 100644 --- a/src/panels/lovelace/common/generate-lovelace-config.ts +++ b/src/panels/lovelace/common/generate-lovelace-config.ts @@ -1,4 +1,9 @@ import { HomeAssistant, GroupEntity } from "../../../types"; +import { + LovelaceConfig, + LovelaceCardConfig, + LovelaceViewConfig, +} from "../types"; import { HassEntity, HassEntities } from "home-assistant-js-websocket"; import extractViews from "../../../common/entity/extract_views"; import getViewEntities from "../../../common/entity/get_view_entities"; @@ -9,26 +14,6 @@ import computeStateDomain from "../../../common/entity/compute_state_domain"; import { LocalizeFunc } from "../../../mixins/localize-base-mixin"; import computeDomain from "../../../common/entity/compute_domain"; -interface CardConfig { - id?: string; - type: string; - [key: string]: any; -} - -interface ViewConfig { - title?: string; - badges?: string[]; - cards?: CardConfig[]; - id?: string; - icon?: string; -} - -interface LovelaceConfig { - _frontendAuto: boolean; - title?: string; - views: ViewConfig[]; -} - const DEFAULT_VIEW_ENTITY_ID = "group.default_view"; const DOMAINS_BADGES = [ "binary_sensor", @@ -43,8 +28,8 @@ const HIDE_DOMAIN = new Set(["persistent_notification", "configurator"]); const computeCards = ( title: string, states: Array<[string, HassEntity]> -): CardConfig[] => { - const cards: CardConfig[] = []; +): LovelaceCardConfig[] => { + const cards: LovelaceCardConfig[] = []; // For entity card const entities: string[] = []; @@ -109,7 +94,7 @@ const generateViewConfig = ( icon: string | undefined, entities: HassEntities, groupOrders: { [entityId: string]: number } -): ViewConfig => { +): LovelaceViewConfig => { const splitted = splitByGroups(entities); splitted.groups.sort( (gr1, gr2) => groupOrders[gr1.entity_id] - groupOrders[gr2.entity_id] @@ -141,7 +126,7 @@ const generateViewConfig = ( } }); - let cards: CardConfig[] = []; + let cards: LovelaceCardConfig[] = []; splitted.groups.forEach((groupEntity) => { cards = cards.concat( diff --git a/src/panels/lovelace/components/hui-card-options.ts b/src/panels/lovelace/components/hui-card-options.ts index 436cfa65c7..d1d6858c1c 100644 --- a/src/panels/lovelace/components/hui-card-options.ts +++ b/src/panels/lovelace/components/hui-card-options.ts @@ -2,12 +2,12 @@ import "@polymer/paper-button/paper-button"; import { html, LitElement, PropertyDeclarations } from "@polymer/lit-element"; import { fireEvent } from "../../../common/dom/fire_event"; import { HomeAssistant } from "../../../types"; -import { LovelaceConfig } from "../types"; +import { LovelaceCardConfig } from "../types"; let registeredDialog = false; export class HuiCardOptions extends LitElement { - public cardConfig?: LovelaceConfig; + public cardConfig?: LovelaceCardConfig; protected hass?: HomeAssistant; static get properties(): PropertyDeclarations { diff --git a/src/panels/lovelace/editor/hui-card-preview.ts b/src/panels/lovelace/editor/hui-card-preview.ts index 57f4491fbd..31617da87d 100644 --- a/src/panels/lovelace/editor/hui-card-preview.ts +++ b/src/panels/lovelace/editor/hui-card-preview.ts @@ -3,7 +3,7 @@ import "@polymer/paper-input/paper-textarea"; import createCardElement from "../common/create-card-element"; import createErrorCardConfig from "../common/create-error-card-config"; import { HomeAssistant } from "../../../types"; -import { LovelaceCard, LovelaceConfig } from "../types"; +import { LovelaceCard, LovelaceCardConfig } from "../types"; import { ConfigError } from "./types"; const CUSTOM_TYPE_PREFIX = "custom:"; @@ -28,7 +28,7 @@ export class HuiCardPreview extends HTMLElement { this._createCard(configValue); } - set config(configValue: LovelaceConfig) { + set config(configValue: LovelaceCardConfig) { if (!configValue) { return; } @@ -49,7 +49,7 @@ export class HuiCardPreview extends HTMLElement { } } - private _createCard(configValue: LovelaceConfig): void { + private _createCard(configValue: LovelaceCardConfig): void { if (this._element) { this.removeChild(this._element); } diff --git a/src/panels/lovelace/editor/hui-dialog-edit-card.ts b/src/panels/lovelace/editor/hui-dialog-edit-card.ts index 478c0c1b48..6fb993517a 100644 --- a/src/panels/lovelace/editor/hui-dialog-edit-card.ts +++ b/src/panels/lovelace/editor/hui-dialog-edit-card.ts @@ -2,13 +2,13 @@ import { html, LitElement, PropertyDeclarations } from "@polymer/lit-element"; import { TemplateResult } from "lit-html"; import { HomeAssistant } from "../../../types"; -import { LovelaceConfig } from "../types"; +import { LovelaceCardConfig } from "../types"; import "./hui-edit-card"; import "./hui-migrate-config"; export class HuiDialogEditCard extends LitElement { protected _hass?: HomeAssistant; - private _cardConfig?: LovelaceConfig; + private _cardConfig?: LovelaceCardConfig; private _reloadLovelace?: () => void; static get properties(): PropertyDeclarations { diff --git a/src/panels/lovelace/editor/hui-edit-card.ts b/src/panels/lovelace/editor/hui-edit-card.ts index 2ffd9ff5cc..166b8913d1 100644 --- a/src/panels/lovelace/editor/hui-edit-card.ts +++ b/src/panels/lovelace/editor/hui-edit-card.ts @@ -21,7 +21,7 @@ import "./hui-card-preview"; // This is not a duplicate import, one is for types, one is for element. // tslint:disable-next-line import { HuiCardPreview } from "./hui-card-preview"; -import { LovelaceCardEditor, LovelaceConfig } from "../types"; +import { LovelaceCardEditor, LovelaceCardConfig } from "../types"; import { YamlChangedEvent, ConfigValue, ConfigError } from "./types"; import { extYamlSchema } from "./yaml-ext-schema"; @@ -30,7 +30,7 @@ const CUSTOM_TYPE_PREFIX = "custom:"; export class HuiEditCard extends hassLocalizeLitMixin(LitElement) { protected hass?: HomeAssistant; private _cardId?: string; - private _originalConfig?: LovelaceConfig; + private _originalConfig?: LovelaceCardConfig; private _configElement?: LovelaceCardEditor | null; private _uiEditor?: boolean; private _configValue?: ConfigValue; @@ -59,7 +59,7 @@ export class HuiEditCard extends hassLocalizeLitMixin(LitElement) { this._saving = false; } - set cardConfig(cardConfig: LovelaceConfig) { + set cardConfig(cardConfig: LovelaceCardConfig) { this._originalConfig = cardConfig; if (String(cardConfig.id) !== this._cardId) { this._loading = true; @@ -210,7 +210,8 @@ export class HuiEditCard extends hassLocalizeLitMixin(LitElement) { schema: extYamlSchema, }), }; - this._configElement.setConfig(this._configValue!.value as LovelaceConfig); + this._configElement.setConfig(this._configValue! + .value as LovelaceCardConfig); this._uiEditor = !this._uiEditor; } this._resizeDialog(); @@ -274,7 +275,7 @@ export class HuiEditCard extends hassLocalizeLitMixin(LitElement) { try { const config = yaml.safeLoad(this._configValue.value, { schema: extYamlSchema, - }) as LovelaceConfig; + }) as LovelaceCardConfig; this._updatePreview(config); this._configState = "OK"; if (!this._isToggleAvailable && this._configElement !== null) { @@ -290,12 +291,12 @@ export class HuiEditCard extends hassLocalizeLitMixin(LitElement) { } } - private _handleUIConfigChanged(value: LovelaceConfig): void { + private _handleUIConfigChanged(value: LovelaceCardConfig): void { this._configValue = { format: "json", value }; this._updatePreview(value); } - private _updatePreview(config: LovelaceConfig) { + private _updatePreview(config: LovelaceCardConfig) { if (!this._previewEl) { return; } diff --git a/src/panels/lovelace/editor/types.ts b/src/panels/lovelace/editor/types.ts index 3fbc360b47..c89ab3e10a 100644 --- a/src/panels/lovelace/editor/types.ts +++ b/src/panels/lovelace/editor/types.ts @@ -1,4 +1,4 @@ -import { LovelaceConfig } from "../types"; +import { LovelaceCardConfig } from "../types"; import { EntityConfig } from "../entity-rows/types"; export interface YamlChangedEvent extends Event { @@ -9,7 +9,7 @@ export interface YamlChangedEvent extends Event { export interface ConfigValue { format: "json" | "yaml"; - value?: string | LovelaceConfig; + value?: string | LovelaceCardConfig; } export interface ConfigError { diff --git a/src/panels/lovelace/types.ts b/src/panels/lovelace/types.ts index 7f3fabeaae..ca7a2e2d58 100644 --- a/src/panels/lovelace/types.ts +++ b/src/panels/lovelace/types.ts @@ -1,17 +1,31 @@ import { HomeAssistant } from "../../types"; -export interface LovelaceConfig { +export interface LovelaceCardConfig { + id?: string; type: string; - id: string; + [key: string]: any; +} + +export interface LovelaceViewConfig { + title?: string; + badges?: string[]; + cards?: LovelaceCardConfig[]; + id?: string; + icon?: string; +} +export interface LovelaceConfig { + _frontendAuto: boolean; + title?: string; + views: LovelaceViewConfig[]; } export interface LovelaceCard extends HTMLElement { hass?: HomeAssistant; getCardSize(): number; - setConfig(config: LovelaceConfig): void; + setConfig(config: LovelaceCardConfig): void; } export interface LovelaceCardEditor extends HTMLElement { hass?: HomeAssistant; - setConfig(config: LovelaceConfig): void; + setConfig(config: LovelaceCardConfig): void; }