Layout Structs

This commit is contained in:
Zack Arnett 2020-12-12 16:00:14 -06:00
parent 909f3a3005
commit cefb3c3f01
25 changed files with 32 additions and 7 deletions

View File

@ -28,6 +28,7 @@ const cardConfigStruct = object({
name: optional(string()), name: optional(string()),
states: optional(array()), states: optional(array()),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
const includeDomains = ["alarm_control_panel"]; const includeDomains = ["alarm_control_panel"];

View File

@ -37,6 +37,7 @@ const cardConfigStruct = object({
hold_action: optional(actionConfigStruct), hold_action: optional(actionConfigStruct),
theme: optional(string()), theme: optional(string()),
show_state: optional(boolean()), show_state: optional(boolean()),
layout: optional(object()),
}); });
const actions = [ const actions = [

View File

@ -32,6 +32,7 @@ const cardConfigStruct = object({
initial_view: optional(string()), initial_view: optional(string()),
theme: optional(string()), theme: optional(string()),
entities: array(string()), entities: array(string()),
layout: optional(object()),
}); });
const views = ["dayGridMonth", "dayGridDay", "listWeek"]; const views = ["dayGridMonth", "dayGridDay", "listWeek"];

View File

@ -36,6 +36,7 @@ const cardConfigStruct = object({
type: string(), type: string(),
card: any(), card: any(),
conditions: optional(array(conditionStruct)), conditions: optional(array(conditionStruct)),
layout: optional(object()),
}); });
@customElement("hui-conditional-card-editor") @customElement("hui-conditional-card-editor")

View File

@ -55,6 +55,7 @@ const cardConfigStruct = object({
entities: array(entitiesConfigStruct), entities: array(entitiesConfigStruct),
header: optional(headerFooterConfigStructs), header: optional(headerFooterConfigStructs),
footer: optional(headerFooterConfigStructs), footer: optional(headerFooterConfigStructs),
layout: optional(object()),
}); });
@customElement("hui-entities-card-editor") @customElement("hui-entities-card-editor")

View File

@ -32,6 +32,7 @@ const cardConfigStruct = object({
unit: optional(string()), unit: optional(string()),
theme: optional(string()), theme: optional(string()),
footer: optional(headerFooterConfigStructs), footer: optional(headerFooterConfigStructs),
layout: optional(object()),
}); });
@customElement("hui-entity-card-editor") @customElement("hui-entity-card-editor")

View File

@ -31,6 +31,7 @@ const cardConfigStruct = object({
max: optional(number()), max: optional(number()),
severity: optional(object()), severity: optional(object()),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
const includeDomains = ["sensor"]; const includeDomains = ["sensor"];

View File

@ -50,6 +50,7 @@ const cardConfigStruct = object({
show_icon: optional(boolean()), show_icon: optional(boolean()),
state_color: optional(boolean()), state_color: optional(boolean()),
entities: array(entitiesConfigStruct), entities: array(entitiesConfigStruct),
layout: optional(object()),
}); });
@customElement("hui-glance-card-editor") @customElement("hui-glance-card-editor")

View File

@ -42,6 +42,7 @@ const cardConfigStruct = object({
title: optional(string()), title: optional(string()),
hours_to_show: optional(number()), hours_to_show: optional(number()),
refresh_interval: optional(number()), refresh_interval: optional(number()),
layout: optional(object()),
}); });
@customElement("hui-history-graph-card-editor") @customElement("hui-history-graph-card-editor")

View File

@ -23,6 +23,7 @@ const cardConfigStruct = object({
entity: string(), entity: string(),
name: optional(string()), name: optional(string()),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
const includeDomains = ["humidifier"]; const includeDomains = ["humidifier"];

View File

@ -21,6 +21,7 @@ const cardConfigStruct = object({
title: optional(string()), title: optional(string()),
url: optional(string()), url: optional(string()),
aspect_ratio: optional(string()), aspect_ratio: optional(string()),
layout: optional(object()),
}); });
@customElement("hui-iframe-card-editor") @customElement("hui-iframe-card-editor")

View File

@ -30,6 +30,7 @@ const cardConfigStruct = object({
icon: optional(string()), icon: optional(string()),
hold_action: optional(actionConfigStruct), hold_action: optional(actionConfigStruct),
double_tap_action: optional(actionConfigStruct), double_tap_action: optional(actionConfigStruct),
layout: optional(object()),
}); });
const includeDomains = ["light"]; const includeDomains = ["light"];

View File

@ -26,6 +26,7 @@ const cardConfigStruct = object({
title: optional(string()), title: optional(string()),
hours_to_show: optional(number()), hours_to_show: optional(number()),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
@customElement("hui-logbook-card-editor") @customElement("hui-logbook-card-editor")

View File

@ -46,6 +46,7 @@ const cardConfigStruct = object({
entities: array(entitiesConfigStruct), entities: array(entitiesConfigStruct),
hours_to_show: optional(number()), hours_to_show: optional(number()),
geo_location_sources: optional(array()), geo_location_sources: optional(array()),
layout: optional(object()),
}); });
@customElement("hui-map-card-editor") @customElement("hui-map-card-editor")

View File

@ -23,6 +23,7 @@ const cardConfigStruct = object({
title: optional(string()), title: optional(string()),
content: string(), content: string(),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
@customElement("hui-markdown-card-editor") @customElement("hui-markdown-card-editor")

View File

@ -1,22 +1,23 @@
import { import {
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { assert, object, optional, string } from "superstruct";
import { fireEvent } from "../../../../common/dom/fire_event"; import { fireEvent } from "../../../../common/dom/fire_event";
import "../../../../components/entity/ha-entity-picker"; import "../../../../components/entity/ha-entity-picker";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { MediaControlCardConfig } from "../../cards/types"; import { MediaControlCardConfig } from "../../cards/types";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { assert, object, string, optional } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = object({
type: string(), type: string(),
entity: optional(string()), entity: optional(string()),
layout: optional(object()),
}); });
const includeDomains = ["media_player"]; const includeDomains = ["media_player"];

View File

@ -25,6 +25,7 @@ const cardConfigStruct = object({
tap_action: optional(actionConfigStruct), tap_action: optional(actionConfigStruct),
hold_action: optional(actionConfigStruct), hold_action: optional(actionConfigStruct),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
@customElement("hui-picture-card-editor") @customElement("hui-picture-card-editor")

View File

@ -39,6 +39,7 @@ const cardConfigStruct = object({
show_name: optional(boolean()), show_name: optional(boolean()),
show_state: optional(boolean()), show_state: optional(boolean()),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
const includeDomains = ["camera"]; const includeDomains = ["camera"];

View File

@ -42,6 +42,7 @@ const cardConfigStruct = object({
hold_action: optional(actionConfigStruct), hold_action: optional(actionConfigStruct),
entities: array(entitiesConfigStruct), entities: array(entitiesConfigStruct),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
const includeDomains = ["camera"]; const includeDomains = ["camera"];

View File

@ -24,6 +24,7 @@ const cardConfigStruct = object({
entity: string(), entity: string(),
name: optional(string()), name: optional(string()),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
const includeDomains = ["plant"]; const includeDomains = ["plant"];

View File

@ -35,6 +35,7 @@ const cardConfigStruct = object({
detail: optional(number()), detail: optional(number()),
theme: optional(string()), theme: optional(string()),
hours_to_show: optional(number()), hours_to_show: optional(number()),
layout: optional(object()),
}); });
const includeDomains = ["sensor"]; const includeDomains = ["sensor"];

View File

@ -4,11 +4,12 @@ import {
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { assert, object, optional, string } from "superstruct";
import { isComponentLoaded } from "../../../../common/config/is_component_loaded"; import { isComponentLoaded } from "../../../../common/config/is_component_loaded";
import { fireEvent } from "../../../../common/dom/fire_event"; import { fireEvent } from "../../../../common/dom/fire_event";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
@ -16,12 +17,12 @@ import { ShoppingListCardConfig } from "../../cards/types";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { string, assert, object, optional } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = object({
type: string(), type: string(),
title: optional(string()), title: optional(string()),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
@customElement("hui-shopping-list-card-editor") @customElement("hui-shopping-list-card-editor")

View File

@ -16,11 +16,11 @@ import {
any, any,
array, array,
assert, assert,
boolean,
number,
object, object,
optional, optional,
string, string,
boolean,
number,
} from "superstruct"; } from "superstruct";
import { fireEvent, HASSDomEvent } from "../../../../common/dom/fire_event"; import { fireEvent, HASSDomEvent } from "../../../../common/dom/fire_event";
import { LovelaceCardConfig, LovelaceConfig } from "../../../../data/lovelace"; import { LovelaceCardConfig, LovelaceConfig } from "../../../../data/lovelace";
@ -39,6 +39,7 @@ const cardConfigStruct = object({
title: optional(string()), title: optional(string()),
square: optional(boolean()), square: optional(boolean()),
columns: optional(number()), columns: optional(number()),
layout: optional(object()),
}); });
@customElement("hui-stack-card-editor") @customElement("hui-stack-card-editor")

View File

@ -23,6 +23,7 @@ const cardConfigStruct = object({
entity: string(), entity: string(),
name: optional(string()), name: optional(string()),
theme: optional(string()), theme: optional(string()),
layout: optional(object()),
}); });
const includeDomains = ["climate"]; const includeDomains = ["climate"];

View File

@ -10,10 +10,10 @@ import {
import { assert, boolean, object, optional, string } from "superstruct"; import { assert, boolean, object, optional, string } from "superstruct";
import { fireEvent } from "../../../../common/dom/fire_event"; import { fireEvent } from "../../../../common/dom/fire_event";
import { computeRTLDirection } from "../../../../common/util/compute_rtl"; import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import "../../../../components/entity/ha-entity-attribute-picker";
import "../../../../components/entity/ha-entity-picker"; import "../../../../components/entity/ha-entity-picker";
import "../../../../components/ha-formfield"; import "../../../../components/ha-formfield";
import "../../../../components/ha-switch"; import "../../../../components/ha-switch";
import "../../../../components/entity/ha-entity-attribute-picker";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { WeatherForecastCardConfig } from "../../cards/types"; import { WeatherForecastCardConfig } from "../../cards/types";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
@ -28,6 +28,7 @@ const cardConfigStruct = object({
theme: optional(string()), theme: optional(string()),
show_forecast: optional(boolean()), show_forecast: optional(boolean()),
secondary_info_attribute: optional(string()), secondary_info_attribute: optional(string()),
layout: optional(object()),
}); });
const includeDomains = ["weather"]; const includeDomains = ["weather"];