Type LovelaceConfig -> LovelaceCardConfig (#2103)

* LovelaceConfig -> LovelaceCardConfig

* Typo
This commit is contained in:
Bram Kragten 2018-11-24 14:03:54 +01:00 committed by Paulus Schoutsen
parent 412b7595d2
commit 101a364a83
23 changed files with 80 additions and 80 deletions

View File

@ -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[];
}

View File

@ -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[];

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -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;

View File

@ -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[];

View File

@ -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;

View File

@ -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;
}

View File

@ -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 {

View File

@ -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;
}

View File

@ -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<void> =>
hass.callWS({

View File

@ -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(

View File

@ -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 {

View File

@ -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);
}

View File

@ -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 {

View File

@ -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;
}

View File

@ -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 {

View File

@ -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;
}