mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-30 12:46:35 +00:00
Honor group control hidden setting (#2478)
* Honor group control hidden setting * Lint
This commit is contained in:
parent
732237d4e1
commit
f943366ecd
@ -21,7 +21,7 @@ import { createRowElement } from "../common/create-row-element";
|
|||||||
import computeDomain from "../../../common/entity/compute_domain";
|
import computeDomain from "../../../common/entity/compute_domain";
|
||||||
import applyThemesOnElement from "../../../common/dom/apply_themes_on_element";
|
import applyThemesOnElement from "../../../common/dom/apply_themes_on_element";
|
||||||
|
|
||||||
export interface ConfigEntity extends EntityConfig {
|
export interface EntitiesCardEntityConfig extends EntityConfig {
|
||||||
type?: string;
|
type?: string;
|
||||||
secondary_info?: "entity-id" | "last-changed";
|
secondary_info?: "entity-id" | "last-changed";
|
||||||
action_name?: string;
|
action_name?: string;
|
||||||
@ -30,10 +30,10 @@ export interface ConfigEntity extends EntityConfig {
|
|||||||
url?: string;
|
url?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Config extends LovelaceCardConfig {
|
export interface EntitiesCardConfig extends LovelaceCardConfig {
|
||||||
show_header_toggle?: boolean;
|
show_header_toggle?: boolean;
|
||||||
title?: string;
|
title?: string;
|
||||||
entities: ConfigEntity[];
|
entities: EntitiesCardEntityConfig[];
|
||||||
theme?: string;
|
theme?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,8 +49,8 @@ class HuiEntitiesCard extends hassLocalizeLitMixin(LitElement)
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected _hass?: HomeAssistant;
|
protected _hass?: HomeAssistant;
|
||||||
protected _config?: Config;
|
protected _config?: EntitiesCardConfig;
|
||||||
protected _configEntities?: ConfigEntity[];
|
protected _configEntities?: EntitiesCardEntityConfig[];
|
||||||
|
|
||||||
set hass(hass: HomeAssistant) {
|
set hass(hass: HomeAssistant) {
|
||||||
this._hass = hass;
|
this._hass = hass;
|
||||||
@ -81,7 +81,7 @@ class HuiEntitiesCard extends hassLocalizeLitMixin(LitElement)
|
|||||||
return (this._config.title ? 1 : 0) + this._config.entities.length;
|
return (this._config.title ? 1 : 0) + this._config.entities.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
public setConfig(config: Config): void {
|
public setConfig(config: EntitiesCardConfig): void {
|
||||||
const entities = processConfigEntities(config.entities);
|
const entities = processConfigEntities(config.entities);
|
||||||
|
|
||||||
this._config = { theme: "default", ...config };
|
this._config = { theme: "default", ...config };
|
||||||
@ -171,7 +171,7 @@ class HuiEntitiesCard extends hassLocalizeLitMixin(LitElement)
|
|||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
private renderEntity(entityConf: ConfigEntity): TemplateResult {
|
private renderEntity(entityConf: EntitiesCardEntityConfig): TemplateResult {
|
||||||
const element = createRowElement(entityConf);
|
const element = createRowElement(entityConf);
|
||||||
if (this._hass) {
|
if (this._hass) {
|
||||||
element.hass = this._hass;
|
element.hass = this._hass;
|
||||||
@ -189,7 +189,7 @@ class HuiEntitiesCard extends hassLocalizeLitMixin(LitElement)
|
|||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _handleClick(entityConf: ConfigEntity): void {
|
private _handleClick(entityConf: EntitiesCardEntityConfig): void {
|
||||||
const entityId = entityConf.entity;
|
const entityId = entityConf.entity;
|
||||||
fireEvent(this, "hass-more-info", { entityId });
|
fireEvent(this, "hass-more-info", { entityId });
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import computeStateDomain from "../../../common/entity/compute_state_domain";
|
|||||||
import { LocalizeFunc } from "../../../mixins/localize-base-mixin";
|
import { LocalizeFunc } from "../../../mixins/localize-base-mixin";
|
||||||
import computeDomain from "../../../common/entity/compute_domain";
|
import computeDomain from "../../../common/entity/compute_domain";
|
||||||
import { EntityRowConfig, WeblinkConfig } from "../entity-rows/types";
|
import { EntityRowConfig, WeblinkConfig } from "../entity-rows/types";
|
||||||
|
import { EntitiesCardConfig } from "../cards/hui-entities-card";
|
||||||
|
|
||||||
const DEFAULT_VIEW_ENTITY_ID = "group.default_view";
|
const DEFAULT_VIEW_ENTITY_ID = "group.default_view";
|
||||||
const DOMAINS_BADGES = [
|
const DOMAINS_BADGES = [
|
||||||
@ -27,8 +28,8 @@ const DOMAINS_BADGES = [
|
|||||||
const HIDE_DOMAIN = new Set(["persistent_notification", "configurator"]);
|
const HIDE_DOMAIN = new Set(["persistent_notification", "configurator"]);
|
||||||
|
|
||||||
const computeCards = (
|
const computeCards = (
|
||||||
title: string,
|
states: Array<[string, HassEntity]>,
|
||||||
states: Array<[string, HassEntity]>
|
entityCardOptions: Partial<EntitiesCardConfig>
|
||||||
): LovelaceCardConfig[] => {
|
): LovelaceCardConfig[] => {
|
||||||
const cards: LovelaceCardConfig[] = [];
|
const cards: LovelaceCardConfig[] = [];
|
||||||
|
|
||||||
@ -85,9 +86,9 @@ const computeCards = (
|
|||||||
|
|
||||||
if (entities.length > 0) {
|
if (entities.length > 0) {
|
||||||
cards.unshift({
|
cards.unshift({
|
||||||
title,
|
|
||||||
type: "entities",
|
type: "entities",
|
||||||
entities,
|
entities,
|
||||||
|
...entityCardOptions,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,10 +153,13 @@ const generateViewConfig = (
|
|||||||
splitted.groups.forEach((groupEntity) => {
|
splitted.groups.forEach((groupEntity) => {
|
||||||
cards = cards.concat(
|
cards = cards.concat(
|
||||||
computeCards(
|
computeCards(
|
||||||
computeStateName(groupEntity),
|
|
||||||
groupEntity.attributes.entity_id.map(
|
groupEntity.attributes.entity_id.map(
|
||||||
(entityId): [string, HassEntity] => [entityId, entities[entityId]]
|
(entityId): [string, HassEntity] => [entityId, entities[entityId]]
|
||||||
)
|
),
|
||||||
|
{
|
||||||
|
title: computeStateName(groupEntity),
|
||||||
|
show_header_toggle: groupEntity.attributes.control !== "hidden",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -165,10 +169,12 @@ const generateViewConfig = (
|
|||||||
.forEach((domain) => {
|
.forEach((domain) => {
|
||||||
cards = cards.concat(
|
cards = cards.concat(
|
||||||
computeCards(
|
computeCards(
|
||||||
localize(`domain.${domain}`),
|
|
||||||
ungroupedEntitites[domain].map(
|
ungroupedEntitites[domain].map(
|
||||||
(entityId): [string, HassEntity] => [entityId, entities[entityId]]
|
(entityId): [string, HassEntity] => [entityId, entities[entityId]]
|
||||||
)
|
),
|
||||||
|
{
|
||||||
|
title: localize(`domain.${domain}`),
|
||||||
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -16,7 +16,10 @@ import { hassLocalizeLitMixin } from "../../../../mixins/lit-localize-mixin";
|
|||||||
import { HomeAssistant } from "../../../../types";
|
import { HomeAssistant } from "../../../../types";
|
||||||
import { LovelaceCardEditor } from "../../types";
|
import { LovelaceCardEditor } from "../../types";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { Config, ConfigEntity } from "../../cards/hui-entities-card";
|
import {
|
||||||
|
EntitiesCardConfig,
|
||||||
|
EntitiesCardEntityConfig,
|
||||||
|
} from "../../cards/hui-entities-card";
|
||||||
import { configElementStyle } from "./config-elements-style";
|
import { configElementStyle } from "./config-elements-style";
|
||||||
|
|
||||||
import "../../../../components/entity/state-badge";
|
import "../../../../components/entity/state-badge";
|
||||||
@ -57,10 +60,10 @@ export class HuiEntitiesCardEditor extends hassLocalizeLitMixin(LitElement)
|
|||||||
}
|
}
|
||||||
|
|
||||||
public hass?: HomeAssistant;
|
public hass?: HomeAssistant;
|
||||||
private _config?: Config;
|
private _config?: EntitiesCardConfig;
|
||||||
private _configEntities?: ConfigEntity[];
|
private _configEntities?: EntitiesCardEntityConfig[];
|
||||||
|
|
||||||
public setConfig(config: Config): void {
|
public setConfig(config: EntitiesCardConfig): void {
|
||||||
config = cardConfigStruct(config);
|
config = cardConfigStruct(config);
|
||||||
this._config = config;
|
this._config = config;
|
||||||
this._configEntities = processEditorEntities(config.entities);
|
this._configEntities = processEditorEntities(config.entities);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user