Move lovelace data to /src/data/lovelace.ts (#2119)

* move lovelace data

* move types

* change imports from cards
This commit is contained in:
Bram Kragten 2018-11-27 10:05:33 +01:00 committed by Paulus Schoutsen
parent 1cc6e09953
commit 97f5d8e7e2
27 changed files with 74 additions and 49 deletions

View File

@ -1,5 +1,29 @@
import { HomeAssistant } from "../../../types";
import { LovelaceConfig, LovelaceCardConfig } from "../types";
import { HomeAssistant } from "../types";
export interface LovelaceConfig {
_frontendAuto: boolean;
title?: string;
views: LovelaceViewConfig[];
}
export interface LovelaceViewConfig {
title?: string;
badges?: string[];
cards?: LovelaceCardConfig[];
id?: string;
icon?: string;
}
export interface LovelaceCardConfig {
id?: string;
type: string;
[key: string]: any;
}
export const fetchConfig = (hass: HomeAssistant): Promise<LovelaceConfig> =>
hass.callWS({
type: "lovelace/config",
});
export const migrateConfig = (hass: HomeAssistant): Promise<void> =>
hass.callWS({

View File

@ -1,7 +1,8 @@
import createCardElement from "../common/create-card-element";
import { computeCardSize } from "../common/compute-card-size";
import { HomeAssistant } from "../../../types";
import { LovelaceCard, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
interface Condition {
entity: string;

View File

@ -14,7 +14,8 @@ 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, LovelaceCardConfig, LovelaceCardEditor } from "../types";
import { LovelaceCard, LovelaceCardEditor } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import processConfigEntities from "../common/process-config-entities";
import createRowElement from "../common/create-row-element";
import computeDomain from "../../../common/entity/compute_domain";

View File

@ -18,7 +18,8 @@ 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, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { longPress } from "../common/directives/long-press-directive";
import { fireEvent } from "../../../common/dom/fire_event";

View File

@ -1,6 +1,7 @@
import { html, LitElement } from "@polymer/lit-element";
import { LovelaceCard, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { TemplateResult } from "lit-html";
interface Config extends LovelaceCardConfig {

View File

@ -6,7 +6,8 @@ import {
} from "@polymer/lit-element";
import { TemplateResult } from "lit-html";
import { LovelaceCard, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { HomeAssistant } from "../../../types";
import { fireEvent } from "../../../common/dom/fire_event";

View File

@ -10,7 +10,8 @@ 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, LovelaceCardConfig, LovelaceCardEditor } from "../types";
import { LovelaceCard, LovelaceCardEditor } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { longPress } from "../common/directives/long-press-directive";
import { EntityConfig } from "../entity-rows/types";
import { toggleEntity } from "../common/entity/toggle-entity";

View File

@ -2,7 +2,8 @@ import { html, LitElement, PropertyDeclarations } from "@polymer/lit-element";
import "../../../components/ha-card";
import { LovelaceCard, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { TemplateResult } from "lit-html";
import { styleMap } from "lit-html/directives/styleMap";

View File

@ -12,7 +12,8 @@ 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, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { longPress } from "../common/directives/long-press-directive";
import stateIcon from "../../../common/entity/state_icon";

View File

@ -4,7 +4,8 @@ import { classMap } from "lit-html/directives/classMap";
import "../../../components/ha-card";
import "../../../components/ha-markdown";
import { LovelaceCard, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { TemplateResult } from "lit-html";
interface Config extends LovelaceCardConfig {

View File

@ -2,7 +2,8 @@ import { html, LitElement, PropertyDeclarations } from "@polymer/lit-element";
import "../../../components/ha-card";
import { LovelaceCard, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { navigate } from "../../../common/navigate";
import { HomeAssistant } from "../../../types";
import { TemplateResult } from "lit-html";

View File

@ -3,7 +3,8 @@ import { TemplateResult } from "lit-html";
import createHuiElement from "../common/create-hui-element";
import { LovelaceCard, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { HomeAssistant } from "../../../types";
import { LovelaceElementConfig, LovelaceElement } from "../elements/types";

View File

@ -5,7 +5,8 @@ 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, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { EntityConfig } from "../entity-rows/types";
import { navigate } from "../../../common/navigate";
import { HomeAssistant } from "../../../types";

View File

@ -9,7 +9,8 @@ import "../../../components/ha-icon";
import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin";
import { HomeAssistant } from "../../../types";
import { LovelaceCard, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import {
fetchItems,
completeItem,

View File

@ -3,7 +3,8 @@ import { TemplateResult } from "lit-html";
import createCardElement from "../common/create-card-element";
import { LovelaceCard, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { HomeAssistant } from "../../../types";
interface Config extends LovelaceCardConfig {

View File

@ -15,7 +15,8 @@ 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, LovelaceCardConfig } from "../types";
import { LovelaceCard } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import "../../../components/ha-card";
import "../../../components/ha-icon";

View File

@ -3,7 +3,7 @@ import {
LovelaceConfig,
LovelaceCardConfig,
LovelaceViewConfig,
} from "../types";
} from "../../../data/lovelace";
import { HassEntity, HassEntities } from "home-assistant-js-websocket";
import extractViews from "../../../common/entity/extract_views";
import getViewEntities from "../../../common/entity/get_view_entities";

View File

@ -6,7 +6,7 @@ import {
registerEditCardDialog,
} from "../editor/hui-dialog-edit-card";
import { HomeAssistant } from "../../../types";
import { LovelaceCardConfig } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
declare global {
// for fire event

View File

@ -3,7 +3,8 @@ 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, LovelaceCardConfig } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { LovelaceCard } from "../types";
import { ConfigError } from "./types";
const CUSTOM_TYPE_PREFIX = "custom:";

View File

@ -3,7 +3,7 @@ import { TemplateResult } from "lit-html";
import { HomeAssistant } from "../../../types";
import { fireEvent, HASSDomEvent } from "../../../common/dom/fire_event";
import { LovelaceCardConfig } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import "./hui-edit-card";
import "./hui-migrate-config";

View File

@ -9,9 +9,12 @@ import { PaperDialogElement } from "@polymer/paper-dialog/paper-dialog";
import "@polymer/paper-button/paper-button";
import { HomeAssistant } from "../../../types";
import { LovelaceConfig } from "../types";
import { saveConfig, migrateConfig } from "../common/data";
import {
saveConfig,
migrateConfig,
LovelaceConfig,
} from "../../../data/lovelace";
import { fireEvent } from "../../../common/dom/fire_event";
import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin";

View File

@ -12,7 +12,7 @@ import "@polymer/paper-button/paper-button";
import "@polymer/paper-input/paper-textarea";
import "@polymer/paper-dialog-scrollable/paper-dialog-scrollable";
import { HomeAssistant } from "../../../types";
import { updateCardConfig } from "../common/data";
import { updateCardConfig, LovelaceCardConfig } from "../../../data/lovelace";
import { fireEvent } from "../../../common/dom/fire_event";
import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin";
@ -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, LovelaceCardConfig } from "../types";
import { LovelaceCardEditor } from "../types";
import { YamlChangedEvent, ConfigValue, ConfigError } from "./types";
import { extYamlSchema } from "./yaml-ext-schema";
import { EntityConfig } from "../entity-rows/types";

View File

@ -11,7 +11,7 @@ import { fireEvent } from "../../../common/dom/fire_event";
import { HomeAssistant } from "../../../types";
import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin";
import { migrateConfig } from "../common/data";
import { migrateConfig } from "../../../data/lovelace";
export class HuiMigrateConfig extends hassLocalizeLitMixin(LitElement) {
protected hass?: HomeAssistant;

View File

@ -5,7 +5,7 @@ import "@polymer/paper-spinner/paper-spinner";
import { HomeAssistant } from "../../../types";
import { fireEvent } from "../../../common/dom/fire_event";
import { getCardConfig } from "../common/data";
import { getCardConfig } from "../../../data/lovelace";
export class HuiYAMLEditor extends LitElement {
public cardId?: string;

View File

@ -1,4 +1,4 @@
import { LovelaceCardConfig } from "../types";
import { LovelaceCardConfig } from "../../../data/lovelace";
import { EntityConfig } from "../entity-rows/types";
export interface YamlChangedEvent extends Event {

View File

@ -3,6 +3,7 @@ import { PolymerElement } from "@polymer/polymer/polymer-element";
import "@polymer/paper-button/paper-button";
import { registerSaveDialog } from "./editor/hui-dialog-save-config";
import { fetchConfig } from "../../data/lovelace";
import "../../layouts/hass-loading-screen";
import "../../layouts/hass-error-screen";
import "./hui-root";
@ -114,7 +115,7 @@ class Lovelace extends localizeMixin(PolymerElement) {
async _fetchConfig() {
try {
const conf = await this.hass.callWS({ type: "lovelace/config" });
const conf = await fetchConfig(this.hass);
this.setProperties({
_config: conf,
_state: "loaded",

View File

@ -1,24 +1,5 @@
import { HomeAssistant } from "../../types";
export interface LovelaceCardConfig {
id?: string;
type: 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[];
}
import { LovelaceCardConfig } from "../../data/lovelace";
export interface LovelaceCard extends HTMLElement {
hass?: HomeAssistant;