mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-28 11:46:42 +00:00
Stub Configs: Add Type (#5206)
* Add Type * Add return type * Lint * Fix map * map fix * Comments
This commit is contained in:
parent
39bb859f57
commit
0d404e0e37
@ -52,7 +52,7 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
) {
|
||||
): AlarmPanelCardConfig {
|
||||
const includeDomains = ["alarm_control_panel"];
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
@ -64,6 +64,7 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard {
|
||||
);
|
||||
|
||||
return {
|
||||
type: "alarm-panel",
|
||||
states: ["arm_home", "arm_away"],
|
||||
entity: foundEntities[0] || "",
|
||||
};
|
||||
|
@ -48,7 +48,7 @@ export class HuiButtonCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): ButtonCardConfig {
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
hass,
|
||||
@ -59,6 +59,7 @@ export class HuiButtonCard extends LitElement implements LovelaceCard {
|
||||
);
|
||||
|
||||
return {
|
||||
type: "button",
|
||||
tap_action: { action: "toggle" },
|
||||
hold_action: { action: "more-info" },
|
||||
show_icon: true,
|
||||
|
@ -15,10 +15,11 @@ class HuiConditionalCard extends HuiConditionalBase implements LovelaceCard {
|
||||
return document.createElement("hui-conditional-card-editor");
|
||||
}
|
||||
|
||||
public static getStubConfig(): object {
|
||||
public static getStubConfig(): ConditionalCardConfig {
|
||||
return {
|
||||
type: "conditional",
|
||||
conditions: [],
|
||||
card: {},
|
||||
card: { type: "" },
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ class HuiEntitiesCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
) {
|
||||
): EntitiesCardConfig {
|
||||
const maxEntities = 3;
|
||||
const foundEntities = findEntities(
|
||||
hass,
|
||||
@ -52,7 +52,7 @@ class HuiEntitiesCard extends LitElement implements LovelaceCard {
|
||||
["light", "switch", "sensor"]
|
||||
);
|
||||
|
||||
return { title: "My Title", entities: foundEntities };
|
||||
return { type: "entities", title: "My Title", entities: foundEntities };
|
||||
}
|
||||
|
||||
@property() private _config?: EntitiesCardConfig;
|
||||
|
@ -45,7 +45,7 @@ class HuiGaugeCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): GaugeCardConfig {
|
||||
const includeDomains = ["sensor"];
|
||||
const maxEntities = 1;
|
||||
const entityFilter = (stateObj: HassEntity): boolean => {
|
||||
@ -61,7 +61,7 @@ class HuiGaugeCard extends LitElement implements LovelaceCard {
|
||||
entityFilter
|
||||
);
|
||||
|
||||
return { entity: foundEntities[0] || "" };
|
||||
return { type: "gauge", entity: foundEntities[0] || "" };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -35,7 +35,7 @@ export class HuiHistoryGraphCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): HistoryGraphCardConfig {
|
||||
const includeDomains = ["sensor"];
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
@ -46,7 +46,7 @@ export class HuiHistoryGraphCard extends LitElement implements LovelaceCard {
|
||||
includeDomains
|
||||
);
|
||||
|
||||
return { entities: foundEntities };
|
||||
return { type: "history-graph", entities: foundEntities };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -22,8 +22,12 @@ export class HuiIframeCard extends LitElement implements LovelaceCard {
|
||||
);
|
||||
return document.createElement("hui-iframe-card-editor");
|
||||
}
|
||||
public static getStubConfig(): object {
|
||||
return { url: "https://www.home-assistant.io", aspect_ratio: "50%" };
|
||||
public static getStubConfig(): IframeCardConfig {
|
||||
return {
|
||||
type: "iframe",
|
||||
url: "https://www.home-assistant.io",
|
||||
aspect_ratio: "50%",
|
||||
};
|
||||
}
|
||||
|
||||
@property() protected _config?: IframeCardConfig;
|
||||
|
@ -45,7 +45,7 @@ export class HuiLightCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): LightCardConfig {
|
||||
const includeDomains = ["light"];
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
@ -56,7 +56,7 @@ export class HuiLightCard extends LitElement implements LovelaceCard {
|
||||
includeDomains
|
||||
);
|
||||
|
||||
return { entity: foundEntities[0] || "" };
|
||||
return { type: "light", entity: foundEntities[0] || "" };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -45,7 +45,7 @@ class HuiMapCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): MapCardConfig {
|
||||
const includeDomains = ["device_tracker"];
|
||||
const maxEntities = 2;
|
||||
const foundEntities = findEntities(
|
||||
@ -56,7 +56,7 @@ class HuiMapCard extends LitElement implements LovelaceCard {
|
||||
includeDomains
|
||||
);
|
||||
|
||||
return { entities: foundEntities };
|
||||
return { type: "map", entities: foundEntities };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
@ -113,9 +113,10 @@ class HuiMapCard extends LitElement implements LovelaceCard {
|
||||
}
|
||||
|
||||
public getCardSize(): number {
|
||||
if (!this._config) {
|
||||
return 3;
|
||||
if (!this._config?.aspect_ratio) {
|
||||
return 5;
|
||||
}
|
||||
|
||||
const ratio = parseAspectRatio(this._config.aspect_ratio);
|
||||
const ar =
|
||||
ratio && ratio.w > 0 && ratio.h > 0
|
||||
@ -206,6 +207,11 @@ class HuiMapCard extends LitElement implements LovelaceCard {
|
||||
this._attachObserver();
|
||||
}
|
||||
|
||||
if (!this._config.aspect_ratio) {
|
||||
root.style.paddingBottom = "100%";
|
||||
return;
|
||||
}
|
||||
|
||||
const ratio = parseAspectRatio(this._config.aspect_ratio);
|
||||
|
||||
root.style.paddingBottom =
|
||||
|
@ -29,8 +29,9 @@ export class HuiMarkdownCard extends LitElement implements LovelaceCard {
|
||||
return document.createElement("hui-markdown-card-editor");
|
||||
}
|
||||
|
||||
public static getStubConfig(): object {
|
||||
public static getStubConfig(): MarkdownCardConfig {
|
||||
return {
|
||||
type: "markdown",
|
||||
content:
|
||||
"The **Markdown** card allows you to write any text. You can style it **bold**, *italicized*, ~strikethrough~ etc. You can do images, links, and more.\n\nFor more information see the [Markdown Cheatsheet](https://commonmark.org/help).",
|
||||
};
|
||||
|
@ -177,7 +177,7 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): MediaControlCardConfig {
|
||||
const includeDomains = ["media_player"];
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
@ -188,7 +188,7 @@ export class HuiMediaControlCard extends LitElement implements LovelaceCard {
|
||||
includeDomains
|
||||
);
|
||||
|
||||
return { entity: foundEntities[0] || "" };
|
||||
return { type: "media-control", entity: foundEntities[0] || "" };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -30,8 +30,9 @@ export class HuiPictureCard extends LitElement implements LovelaceCard {
|
||||
);
|
||||
return document.createElement("hui-picture-card-editor");
|
||||
}
|
||||
public static getStubConfig(): object {
|
||||
public static getStubConfig(): PictureCardConfig {
|
||||
return {
|
||||
type: "picture",
|
||||
image: "https://demo.home-assistant.io/stub_config/t-shirt-promo.png",
|
||||
tap_action: { action: "none" },
|
||||
hold_action: { action: "none" },
|
||||
|
@ -44,7 +44,7 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): PictureEntityCardConfig {
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
hass,
|
||||
@ -55,6 +55,7 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard {
|
||||
);
|
||||
|
||||
return {
|
||||
type: "picture-entity",
|
||||
entity: foundEntities[0] || "",
|
||||
image: "https://demo.home-assistant.io/stub_config/bedroom.png",
|
||||
};
|
||||
|
@ -45,7 +45,7 @@ class HuiPlantStatusCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): PlantStatusCardConfig {
|
||||
const includeDomains = ["plant"];
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
@ -56,7 +56,7 @@ class HuiPlantStatusCard extends LitElement implements LovelaceCard {
|
||||
includeDomains
|
||||
);
|
||||
|
||||
return { entity: foundEntities[0] || "" };
|
||||
return { type: "plant-status", entity: foundEntities[0] || "" };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -180,7 +180,7 @@ class HuiSensorCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): SensorCardConfig {
|
||||
const includeDomains = ["sensor"];
|
||||
const maxEntities = 1;
|
||||
const entityFilter = (stateObj: HassEntity): boolean => {
|
||||
@ -199,7 +199,7 @@ class HuiSensorCard extends LitElement implements LovelaceCard {
|
||||
entityFilter
|
||||
);
|
||||
|
||||
return { entity: foundEntities[0] || "", graph: "line" };
|
||||
return { type: "sensor", entity: foundEntities[0] || "", graph: "line" };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -37,8 +37,8 @@ class HuiShoppingListCard extends LitElement implements LovelaceCard {
|
||||
return document.createElement("hui-shopping-list-card-editor");
|
||||
}
|
||||
|
||||
public static getStubConfig(): object {
|
||||
return {};
|
||||
public static getStubConfig(): ShoppingListCardConfig {
|
||||
return { type: "shopping-list" };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -60,7 +60,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): ThermostatCardConfig {
|
||||
const includeDomains = ["climate"];
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
@ -71,7 +71,7 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
|
||||
includeDomains
|
||||
);
|
||||
|
||||
return { entity: foundEntities[0] || "" };
|
||||
return { type: "thermostat", entity: foundEntities[0] || "" };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -77,7 +77,7 @@ class HuiWeatherForecastCard extends LitElement implements LovelaceCard {
|
||||
hass: HomeAssistant,
|
||||
entities: string[],
|
||||
entitiesFallback: string[]
|
||||
): object {
|
||||
): WeatherForecastCardConfig {
|
||||
const includeDomains = ["weather"];
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
@ -88,7 +88,7 @@ class HuiWeatherForecastCard extends LitElement implements LovelaceCard {
|
||||
includeDomains
|
||||
);
|
||||
|
||||
return { entity: foundEntities[0] || "" };
|
||||
return { type: "weather-forecast", entity: foundEntities[0] || "" };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -39,7 +39,7 @@ export interface EntitiesCardConfig extends LovelaceCardConfig {
|
||||
type: "entities";
|
||||
show_header_toggle?: boolean;
|
||||
title?: string;
|
||||
entities: EntitiesCardEntityConfig[];
|
||||
entities: Array<EntitiesCardEntityConfig | string>;
|
||||
theme?: string;
|
||||
icon?: string;
|
||||
header?: LovelaceHeaderFooterConfig;
|
||||
@ -135,8 +135,8 @@ export interface LightCardConfig extends LovelaceCardConfig {
|
||||
|
||||
export interface MapCardConfig extends LovelaceCardConfig {
|
||||
type: "map";
|
||||
title: string;
|
||||
aspect_ratio: string;
|
||||
title?: string;
|
||||
aspect_ratio?: string;
|
||||
default_zoom?: number;
|
||||
entities?: Array<EntityConfig | string>;
|
||||
geo_location_sources?: string[];
|
||||
|
Loading…
x
Reference in New Issue
Block a user