Stub config tweaks (#5197)

* Stub config tweaks

* Lint
This commit is contained in:
Paulus Schoutsen 2020-03-13 12:22:34 -07:00 committed by GitHub
parent af6ebea4a3
commit 21fe68add0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 48 additions and 32 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

View File

@ -56,7 +56,8 @@ export class HuiButtonCard extends LitElement implements LovelaceCard {
lovelaceConfig, lovelaceConfig,
maxEntities, maxEntities,
entities, entities,
entitiesFill entitiesFill,
["light", "switch"]
); );
return { return {

View File

@ -51,10 +51,11 @@ class HuiEntitiesCard extends LitElement implements LovelaceCard {
lovelaceConfig, lovelaceConfig,
maxEntities, maxEntities,
entities, entities,
entitiesFill entitiesFill,
["light", "switch", "sensor"]
); );
return { entities: foundEntities }; return { title: "My Title", entities: foundEntities };
} }
@property() private _config?: EntitiesCardConfig; @property() private _config?: EntitiesCardConfig;

View File

@ -47,7 +47,7 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard {
lovelaceConfig: LovelaceConfig, lovelaceConfig: LovelaceConfig,
entities?: string[], entities?: string[],
entitiesFill?: string[] entitiesFill?: string[]
): object { ): GlanceCardConfig {
const includeDomains = ["sensor"]; const includeDomains = ["sensor"];
const maxEntities = 3; const maxEntities = 3;
const foundEntities = findEntities( const foundEntities = findEntities(
@ -59,7 +59,7 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard {
includeDomains includeDomains
); );
return { entities: foundEntities }; return { type: "glance", entities: foundEntities };
} }
@property() public hass?: HomeAssistant; @property() public hass?: HomeAssistant;

View File

@ -32,8 +32,7 @@ export class HuiPictureCard extends LitElement implements LovelaceCard {
} }
public static getStubConfig(): object { public static getStubConfig(): object {
return { return {
image: image: "https://demo.home-assistant.io/stub_config/t-shirt-promo.png",
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
tap_action: { action: "none" }, tap_action: { action: "none" },
hold_action: { action: "none" }, hold_action: { action: "none" },
}; };

View File

@ -25,26 +25,30 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard {
lovelaceConfig: LovelaceConfig, lovelaceConfig: LovelaceConfig,
entities?: string[], entities?: string[],
entitiesFill?: string[] entitiesFill?: string[]
): object { ): PictureElementsCardConfig {
const maxEntities = 1; const maxEntities = 1;
const foundEntities = findEntities( const foundEntities = findEntities(
hass, hass,
lovelaceConfig, lovelaceConfig,
maxEntities, maxEntities,
entities, entities,
entitiesFill entitiesFill,
["sensor", "binary_sensor"]
); );
return { return {
type: "picture-elements",
elements: [ elements: [
{ {
type: "state-badge", type: "state-badge",
entity: foundEntities[0] || "", entity: foundEntities[0] || "",
style: "position: absolute, transform: translate(-50%, -50%)", style: {
top: "32%",
left: "40%",
},
}, },
], ],
image: image: "https://demo.home-assistant.io/stub_config/floorplan.png",
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
}; };
} }

View File

@ -52,13 +52,13 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard {
lovelaceConfig, lovelaceConfig,
maxEntities, maxEntities,
entities, entities,
entitiesFill entitiesFill,
["light", "switch"]
); );
return { return {
entity: foundEntities[0] || "", entity: foundEntities[0] || "",
image: image: "https://demo.home-assistant.io/stub_config/bedroom.png",
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
}; };
} }

View File

@ -49,19 +49,21 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard {
lovelaceConfig: LovelaceConfig, lovelaceConfig: LovelaceConfig,
entities?: string[], entities?: string[],
entitiesFill?: string[] entitiesFill?: string[]
): object { ): PictureGlanceCardConfig {
const maxEntities = 2; const maxEntities = 2;
const foundEntities = findEntities( const foundEntities = findEntities(
hass, hass,
lovelaceConfig, lovelaceConfig,
maxEntities, maxEntities,
entities, entities,
entitiesFill entitiesFill,
["sensor", "binary_sensor"]
); );
return { return {
image: type: "picture-glance",
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png", title: "Kitchen",
image: "https://demo.home-assistant.io/stub_config/kitchen.png",
entities: foundEntities, entities: foundEntities,
}; };
} }

View File

@ -115,7 +115,7 @@ export interface GlanceCardConfig extends LovelaceCardConfig {
show_icon?: boolean; show_icon?: boolean;
title?: string; title?: string;
theme?: string; theme?: string;
entities: ConfigEntity[]; entities: Array<string | ConfigEntity>;
columns?: number; columns?: number;
state_color?: boolean; state_color?: boolean;
} }
@ -177,7 +177,7 @@ export interface PictureElementsCardConfig extends LovelaceCardConfig {
camera_image?: string; camera_image?: string;
camera_view?: HuiImage["cameraView"]; camera_view?: HuiImage["cameraView"];
state_image?: {}; state_image?: {};
state_filter: string[]; state_filter?: string[];
aspect_ratio?: string; aspect_ratio?: string;
entity?: string; entity?: string;
elements: LovelaceElementConfig[]; elements: LovelaceElementConfig[];
@ -202,13 +202,13 @@ export interface PictureEntityCardConfig extends LovelaceCardConfig {
} }
export interface PictureGlanceCardConfig extends LovelaceCardConfig { export interface PictureGlanceCardConfig extends LovelaceCardConfig {
entities: PictureGlanceEntityConfig[]; entities: Array<string | PictureGlanceEntityConfig>;
title?: string; title?: string;
image?: string; image?: string;
camera_image?: string; camera_image?: string;
camera_view?: HuiImage["cameraView"]; camera_view?: HuiImage["cameraView"];
state_image?: {}; state_image?: {};
state_filter: string[]; state_filter?: string[];
aspect_ratio?: string; aspect_ratio?: string;
entity?: string; entity?: string;
tap_action?: ActionConfig; tap_action?: ActionConfig;

View File

@ -2,22 +2,31 @@ import { HomeAssistant } from "../../../types";
import { Condition } from "../common/validate-condition"; import { Condition } from "../common/validate-condition";
import { ActionConfig } from "../../../data/lovelace"; import { ActionConfig } from "../../../data/lovelace";
export interface LovelaceElementConfig { interface LovelaceElementConfigBase {
type: string; type: string;
style: object; style: object;
} }
export type LovelaceElementConfig =
| ConditionalElementConfig
| IconElementConfig
| ImageElementConfig
| ServiceButtonElementConfig
| StateBadgeElementConfig
| StateIconElementConfig
| StateLabelElementConfig;
export interface LovelaceElement extends HTMLElement { export interface LovelaceElement extends HTMLElement {
hass?: HomeAssistant; hass?: HomeAssistant;
setConfig(config: LovelaceElementConfig): void; setConfig(config: LovelaceElementConfig): void;
} }
export interface ConditionalElementConfig extends LovelaceElementConfig { export interface ConditionalElementConfig extends LovelaceElementConfigBase {
conditions: Condition[]; conditions: Condition[];
elements: LovelaceElementConfig[]; elements: LovelaceElementConfigBase[];
} }
export interface IconElementConfig extends LovelaceElementConfig { export interface IconElementConfig extends LovelaceElementConfigBase {
entity?: string; entity?: string;
name?: string; name?: string;
tap_action?: ActionConfig; tap_action?: ActionConfig;
@ -26,7 +35,7 @@ export interface IconElementConfig extends LovelaceElementConfig {
icon: string; icon: string;
} }
export interface ImageElementConfig extends LovelaceElementConfig { export interface ImageElementConfig extends LovelaceElementConfigBase {
entity?: string; entity?: string;
tap_action?: ActionConfig; tap_action?: ActionConfig;
hold_action?: ActionConfig; hold_action?: ActionConfig;
@ -39,13 +48,13 @@ export interface ImageElementConfig extends LovelaceElementConfig {
aspect_ratio?: string; aspect_ratio?: string;
} }
export interface ServiceButtonElementConfig extends LovelaceElementConfig { export interface ServiceButtonElementConfig extends LovelaceElementConfigBase {
title?: string; title?: string;
service?: string; service?: string;
service_data?: object; service_data?: object;
} }
export interface StateBadgeElementConfig extends LovelaceElementConfig { export interface StateBadgeElementConfig extends LovelaceElementConfigBase {
entity: string; entity: string;
title?: string; title?: string;
tap_action?: ActionConfig; tap_action?: ActionConfig;
@ -53,7 +62,7 @@ export interface StateBadgeElementConfig extends LovelaceElementConfig {
double_tap_action?: ActionConfig; double_tap_action?: ActionConfig;
} }
export interface StateIconElementConfig extends LovelaceElementConfig { export interface StateIconElementConfig extends LovelaceElementConfigBase {
entity: string; entity: string;
tap_action?: ActionConfig; tap_action?: ActionConfig;
hold_action?: ActionConfig; hold_action?: ActionConfig;
@ -62,7 +71,7 @@ export interface StateIconElementConfig extends LovelaceElementConfig {
state_color?: boolean; state_color?: boolean;
} }
export interface StateLabelElementConfig extends LovelaceElementConfig { export interface StateLabelElementConfig extends LovelaceElementConfigBase {
entity: string; entity: string;
attribute?: string; attribute?: string;
prefix?: string; prefix?: string;