mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-28 11:46:42 +00:00
parent
af6ebea4a3
commit
21fe68add0
BIN
demo/public/stub_config/bedroom.png
Normal file
BIN
demo/public/stub_config/bedroom.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 111 KiB |
BIN
demo/public/stub_config/floorplan.png
Normal file
BIN
demo/public/stub_config/floorplan.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
demo/public/stub_config/kitchen.png
Normal file
BIN
demo/public/stub_config/kitchen.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 115 KiB |
BIN
demo/public/stub_config/t-shirt-promo.png
Normal file
BIN
demo/public/stub_config/t-shirt-promo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 185 KiB |
@ -56,7 +56,8 @@ export class HuiButtonCard extends LitElement implements LovelaceCard {
|
||||
lovelaceConfig,
|
||||
maxEntities,
|
||||
entities,
|
||||
entitiesFill
|
||||
entitiesFill,
|
||||
["light", "switch"]
|
||||
);
|
||||
|
||||
return {
|
||||
|
@ -51,10 +51,11 @@ class HuiEntitiesCard extends LitElement implements LovelaceCard {
|
||||
lovelaceConfig,
|
||||
maxEntities,
|
||||
entities,
|
||||
entitiesFill
|
||||
entitiesFill,
|
||||
["light", "switch", "sensor"]
|
||||
);
|
||||
|
||||
return { entities: foundEntities };
|
||||
return { title: "My Title", entities: foundEntities };
|
||||
}
|
||||
|
||||
@property() private _config?: EntitiesCardConfig;
|
||||
|
@ -47,7 +47,7 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard {
|
||||
lovelaceConfig: LovelaceConfig,
|
||||
entities?: string[],
|
||||
entitiesFill?: string[]
|
||||
): object {
|
||||
): GlanceCardConfig {
|
||||
const includeDomains = ["sensor"];
|
||||
const maxEntities = 3;
|
||||
const foundEntities = findEntities(
|
||||
@ -59,7 +59,7 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard {
|
||||
includeDomains
|
||||
);
|
||||
|
||||
return { entities: foundEntities };
|
||||
return { type: "glance", entities: foundEntities };
|
||||
}
|
||||
|
||||
@property() public hass?: HomeAssistant;
|
||||
|
@ -32,8 +32,7 @@ export class HuiPictureCard extends LitElement implements LovelaceCard {
|
||||
}
|
||||
public static getStubConfig(): object {
|
||||
return {
|
||||
image:
|
||||
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
|
||||
image: "https://demo.home-assistant.io/stub_config/t-shirt-promo.png",
|
||||
tap_action: { action: "none" },
|
||||
hold_action: { action: "none" },
|
||||
};
|
||||
|
@ -25,26 +25,30 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard {
|
||||
lovelaceConfig: LovelaceConfig,
|
||||
entities?: string[],
|
||||
entitiesFill?: string[]
|
||||
): object {
|
||||
): PictureElementsCardConfig {
|
||||
const maxEntities = 1;
|
||||
const foundEntities = findEntities(
|
||||
hass,
|
||||
lovelaceConfig,
|
||||
maxEntities,
|
||||
entities,
|
||||
entitiesFill
|
||||
entitiesFill,
|
||||
["sensor", "binary_sensor"]
|
||||
);
|
||||
|
||||
return {
|
||||
type: "picture-elements",
|
||||
elements: [
|
||||
{
|
||||
type: "state-badge",
|
||||
entity: foundEntities[0] || "",
|
||||
style: "position: absolute, transform: translate(-50%, -50%)",
|
||||
style: {
|
||||
top: "32%",
|
||||
left: "40%",
|
||||
},
|
||||
},
|
||||
],
|
||||
image:
|
||||
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
|
||||
image: "https://demo.home-assistant.io/stub_config/floorplan.png",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -52,13 +52,13 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard {
|
||||
lovelaceConfig,
|
||||
maxEntities,
|
||||
entities,
|
||||
entitiesFill
|
||||
entitiesFill,
|
||||
["light", "switch"]
|
||||
);
|
||||
|
||||
return {
|
||||
entity: foundEntities[0] || "",
|
||||
image:
|
||||
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
|
||||
image: "https://demo.home-assistant.io/stub_config/bedroom.png",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -49,19 +49,21 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard {
|
||||
lovelaceConfig: LovelaceConfig,
|
||||
entities?: string[],
|
||||
entitiesFill?: string[]
|
||||
): object {
|
||||
): PictureGlanceCardConfig {
|
||||
const maxEntities = 2;
|
||||
const foundEntities = findEntities(
|
||||
hass,
|
||||
lovelaceConfig,
|
||||
maxEntities,
|
||||
entities,
|
||||
entitiesFill
|
||||
entitiesFill,
|
||||
["sensor", "binary_sensor"]
|
||||
);
|
||||
|
||||
return {
|
||||
image:
|
||||
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
|
||||
type: "picture-glance",
|
||||
title: "Kitchen",
|
||||
image: "https://demo.home-assistant.io/stub_config/kitchen.png",
|
||||
entities: foundEntities,
|
||||
};
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ export interface GlanceCardConfig extends LovelaceCardConfig {
|
||||
show_icon?: boolean;
|
||||
title?: string;
|
||||
theme?: string;
|
||||
entities: ConfigEntity[];
|
||||
entities: Array<string | ConfigEntity>;
|
||||
columns?: number;
|
||||
state_color?: boolean;
|
||||
}
|
||||
@ -177,7 +177,7 @@ export interface PictureElementsCardConfig extends LovelaceCardConfig {
|
||||
camera_image?: string;
|
||||
camera_view?: HuiImage["cameraView"];
|
||||
state_image?: {};
|
||||
state_filter: string[];
|
||||
state_filter?: string[];
|
||||
aspect_ratio?: string;
|
||||
entity?: string;
|
||||
elements: LovelaceElementConfig[];
|
||||
@ -202,13 +202,13 @@ export interface PictureEntityCardConfig extends LovelaceCardConfig {
|
||||
}
|
||||
|
||||
export interface PictureGlanceCardConfig extends LovelaceCardConfig {
|
||||
entities: PictureGlanceEntityConfig[];
|
||||
entities: Array<string | PictureGlanceEntityConfig>;
|
||||
title?: string;
|
||||
image?: string;
|
||||
camera_image?: string;
|
||||
camera_view?: HuiImage["cameraView"];
|
||||
state_image?: {};
|
||||
state_filter: string[];
|
||||
state_filter?: string[];
|
||||
aspect_ratio?: string;
|
||||
entity?: string;
|
||||
tap_action?: ActionConfig;
|
||||
|
@ -2,22 +2,31 @@ import { HomeAssistant } from "../../../types";
|
||||
import { Condition } from "../common/validate-condition";
|
||||
import { ActionConfig } from "../../../data/lovelace";
|
||||
|
||||
export interface LovelaceElementConfig {
|
||||
interface LovelaceElementConfigBase {
|
||||
type: string;
|
||||
style: object;
|
||||
}
|
||||
|
||||
export type LovelaceElementConfig =
|
||||
| ConditionalElementConfig
|
||||
| IconElementConfig
|
||||
| ImageElementConfig
|
||||
| ServiceButtonElementConfig
|
||||
| StateBadgeElementConfig
|
||||
| StateIconElementConfig
|
||||
| StateLabelElementConfig;
|
||||
|
||||
export interface LovelaceElement extends HTMLElement {
|
||||
hass?: HomeAssistant;
|
||||
setConfig(config: LovelaceElementConfig): void;
|
||||
}
|
||||
|
||||
export interface ConditionalElementConfig extends LovelaceElementConfig {
|
||||
export interface ConditionalElementConfig extends LovelaceElementConfigBase {
|
||||
conditions: Condition[];
|
||||
elements: LovelaceElementConfig[];
|
||||
elements: LovelaceElementConfigBase[];
|
||||
}
|
||||
|
||||
export interface IconElementConfig extends LovelaceElementConfig {
|
||||
export interface IconElementConfig extends LovelaceElementConfigBase {
|
||||
entity?: string;
|
||||
name?: string;
|
||||
tap_action?: ActionConfig;
|
||||
@ -26,7 +35,7 @@ export interface IconElementConfig extends LovelaceElementConfig {
|
||||
icon: string;
|
||||
}
|
||||
|
||||
export interface ImageElementConfig extends LovelaceElementConfig {
|
||||
export interface ImageElementConfig extends LovelaceElementConfigBase {
|
||||
entity?: string;
|
||||
tap_action?: ActionConfig;
|
||||
hold_action?: ActionConfig;
|
||||
@ -39,13 +48,13 @@ export interface ImageElementConfig extends LovelaceElementConfig {
|
||||
aspect_ratio?: string;
|
||||
}
|
||||
|
||||
export interface ServiceButtonElementConfig extends LovelaceElementConfig {
|
||||
export interface ServiceButtonElementConfig extends LovelaceElementConfigBase {
|
||||
title?: string;
|
||||
service?: string;
|
||||
service_data?: object;
|
||||
}
|
||||
|
||||
export interface StateBadgeElementConfig extends LovelaceElementConfig {
|
||||
export interface StateBadgeElementConfig extends LovelaceElementConfigBase {
|
||||
entity: string;
|
||||
title?: string;
|
||||
tap_action?: ActionConfig;
|
||||
@ -53,7 +62,7 @@ export interface StateBadgeElementConfig extends LovelaceElementConfig {
|
||||
double_tap_action?: ActionConfig;
|
||||
}
|
||||
|
||||
export interface StateIconElementConfig extends LovelaceElementConfig {
|
||||
export interface StateIconElementConfig extends LovelaceElementConfigBase {
|
||||
entity: string;
|
||||
tap_action?: ActionConfig;
|
||||
hold_action?: ActionConfig;
|
||||
@ -62,7 +71,7 @@ export interface StateIconElementConfig extends LovelaceElementConfig {
|
||||
state_color?: boolean;
|
||||
}
|
||||
|
||||
export interface StateLabelElementConfig extends LovelaceElementConfig {
|
||||
export interface StateLabelElementConfig extends LovelaceElementConfigBase {
|
||||
entity: string;
|
||||
attribute?: string;
|
||||
prefix?: string;
|
||||
|
Loading…
x
Reference in New Issue
Block a user