From ebeca2e34eb4ca5d67fafcfc60ff03cac2183e69 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 17 Jan 2020 14:36:02 -0800 Subject: [PATCH 1/3] Refactor create element --- .../lovelace/common/create-badge-element.ts | 69 +---------- .../lovelace/common/create-card-element.ts | 74 +----------- .../lovelace/common/create-hui-element.ts | 78 +------------ .../lovelace/common/create-row-element.ts | 92 +-------------- .../create-element/create-element-base.ts | 110 ++++++++++++++++++ 5 files changed, 125 insertions(+), 298 deletions(-) create mode 100644 src/panels/lovelace/create-element/create-element-base.ts diff --git a/src/panels/lovelace/common/create-badge-element.ts b/src/panels/lovelace/common/create-badge-element.ts index 9a046cd0a5cc..c54f2f529472 100644 --- a/src/panels/lovelace/common/create-badge-element.ts +++ b/src/panels/lovelace/common/create-badge-element.ts @@ -1,73 +1,10 @@ import "../badges/hui-entity-filter-badge"; import "../badges/hui-state-label-badge"; -import { - createErrorBadgeElement, - createErrorBadgeConfig, - HuiErrorBadge, -} from "../badges/hui-error-badge"; -import { LovelaceBadge } from "../types"; import { LovelaceBadgeConfig } from "../../../data/lovelace"; -import { fireEvent } from "../../../common/dom/fire_event"; +import { createLovelaceElement } from "../create-element/create-element-base"; const BADGE_TYPES = new Set(["entity-filter", "error", "state-label"]); -const CUSTOM_TYPE_PREFIX = "custom:"; -const TIMEOUT = 2000; -const _createElement = ( - tag: string, - config: LovelaceBadgeConfig -): LovelaceBadge => { - const element = document.createElement(tag) as LovelaceBadge; - try { - element.setConfig(config); - } catch (err) { - // tslint:disable-next-line - console.error(tag, err); - return _createErrorElement(err.message); - } - return element; -}; - -const _createErrorElement = (error: string): HuiErrorBadge => - createErrorBadgeElement(createErrorBadgeConfig(error)); - -export const createBadgeElement = ( - config: LovelaceBadgeConfig -): LovelaceBadge => { - if (!config || typeof config !== "object") { - return _createErrorElement("No config"); - } - - let type = config.type; - - if (!type) { - type = "state-label"; - } - - if (type.startsWith(CUSTOM_TYPE_PREFIX)) { - const tag = type.substr(CUSTOM_TYPE_PREFIX.length); - - if (customElements.get(tag)) { - return _createElement(tag, config); - } - const element = _createErrorElement(`Type doesn't exist: ${tag}`); - element.style.display = "None"; - const timer = window.setTimeout(() => { - element.style.display = ""; - }, TIMEOUT); - - customElements.whenDefined(tag).then(() => { - clearTimeout(timer); - fireEvent(element, "ll-badge-rebuild"); - }); - - return element; - } - - if (!BADGE_TYPES.has(type)) { - return _createErrorElement(`Unknown type: ${type}`); - } - - return _createElement(`hui-${type}-badge`, config); -}; +export const createBadgeElement = (config: LovelaceBadgeConfig) => + createLovelaceElement("badge", config, BADGE_TYPES, undefined, "state-label"); diff --git a/src/panels/lovelace/common/create-card-element.ts b/src/panels/lovelace/common/create-card-element.ts index 9f18c0596d9f..3377462fb61c 100644 --- a/src/panels/lovelace/common/create-card-element.ts +++ b/src/panels/lovelace/common/create-card-element.ts @@ -1,17 +1,8 @@ -import deepClone from "deep-clone-simple"; - -import { fireEvent } from "../../../common/dom/fire_event"; - import "../cards/hui-alarm-panel-card"; import "../cards/hui-conditional-card"; import "../cards/hui-entities-card"; import "../cards/hui-entity-button-card"; import "../cards/hui-entity-filter-card"; -import { - createErrorCardElement, - createErrorCardConfig, - HuiErrorCard, -} from "../cards/hui-error-card"; import "../cards/hui-glance-card"; import "../cards/hui-history-graph-card"; import "../cards/hui-horizontal-stack-card"; @@ -31,8 +22,8 @@ import "../cards/hui-shopping-list-card"; import "../cards/hui-thermostat-card"; import "../cards/hui-weather-forecast-card"; import "../cards/hui-gauge-card"; -import { LovelaceCard } from "../types"; import { LovelaceCardConfig } from "../../../data/lovelace"; +import { createLovelaceElement } from "../create-element/create-element-base"; const CARD_TYPES = new Set([ "alarm-panel", @@ -61,65 +52,6 @@ const CARD_TYPES = new Set([ "vertical-stack", "weather-forecast", ]); -const CUSTOM_TYPE_PREFIX = "custom:"; -const TIMEOUT = 2000; - -const _createElement = ( - tag: string, - config: LovelaceCardConfig -): LovelaceCard | HuiErrorCard => { - const element = document.createElement(tag) as LovelaceCard; - try { - element.setConfig(deepClone(config)); - } catch (err) { - // tslint:disable-next-line - console.error(tag, err); - return _createErrorElement(err.message, config); - } - return element; -}; - -const _createErrorElement = ( - error: string, - config: LovelaceCardConfig -): HuiErrorCard => createErrorCardElement(createErrorCardConfig(error, config)); - -export const createCardElement = ( - config: LovelaceCardConfig -): LovelaceCard | HuiErrorCard => { - if (!config || typeof config !== "object" || !config.type) { - return _createErrorElement("No card type configured.", config); - } - - if (config.type.startsWith(CUSTOM_TYPE_PREFIX)) { - const tag = config.type.substr(CUSTOM_TYPE_PREFIX.length); - - if (customElements.get(tag)) { - return _createElement(tag, config); - } - const element = _createErrorElement( - `Custom element doesn't exist: ${tag}.`, - config - ); - element.style.display = "None"; - const timer = window.setTimeout(() => { - element.style.display = ""; - }, TIMEOUT); - - customElements.whenDefined(tag).then(() => { - clearTimeout(timer); - fireEvent(element, "ll-rebuild"); - }); - - return element; - } - - if (!CARD_TYPES.has(config.type)) { - return _createErrorElement( - `Unknown card type encountered: ${config.type}.`, - config - ); - } - return _createElement(`hui-${config.type}-card`, config); -}; +export const createCardElement = (config: LovelaceCardConfig) => + createLovelaceElement("card", config, CARD_TYPES); diff --git a/src/panels/lovelace/common/create-hui-element.ts b/src/panels/lovelace/common/create-hui-element.ts index baea37275a80..c6e2deb8a017 100644 --- a/src/panels/lovelace/common/create-hui-element.ts +++ b/src/panels/lovelace/common/create-hui-element.ts @@ -1,5 +1,3 @@ -import deepClone from "deep-clone-simple"; - import "../elements/hui-conditional-element"; import "../elements/hui-icon-element"; import "../elements/hui-image-element"; @@ -8,15 +6,9 @@ import "../elements/hui-state-badge-element"; import "../elements/hui-state-icon-element"; import "../elements/hui-state-label-element"; -import { fireEvent } from "../../../common/dom/fire_event"; -import { - createErrorCardElement, - createErrorCardConfig, - HuiErrorCard, -} from "../cards/hui-error-card"; -import { LovelaceElementConfig, LovelaceElement } from "../elements/types"; +import { LovelaceElementConfig } from "../elements/types"; +import { createLovelaceElement } from "../create-element/create-element-base"; -const CUSTOM_TYPE_PREFIX = "custom:"; const ELEMENT_TYPES = new Set([ "conditional", "icon", @@ -26,68 +18,6 @@ const ELEMENT_TYPES = new Set([ "state-icon", "state-label", ]); -const TIMEOUT = 2000; - -const _createElement = ( - tag: string, - config: LovelaceElementConfig -): LovelaceElement | HuiErrorCard => { - const element = document.createElement(tag) as LovelaceElement; - try { - element.setConfig(deepClone(config)); - } catch (err) { - // tslint:disable-next-line - console.error(tag, err); - return _createErrorElement(err.message, config); - } - return element; -}; - -const _createErrorElement = ( - error: string, - config: LovelaceElementConfig -): HuiErrorCard => createErrorCardElement(createErrorCardConfig(error, config)); - -function _hideErrorElement(element) { - element.style.display = "None"; - return window.setTimeout(() => { - element.style.display = ""; - }, TIMEOUT); -} - -export const createHuiElement = ( - config: LovelaceElementConfig -): LovelaceElement | HuiErrorCard => { - if (!config || typeof config !== "object" || !config.type) { - return _createErrorElement("No element type configured.", config); - } - - if (config.type.startsWith(CUSTOM_TYPE_PREFIX)) { - const tag = config.type.substr(CUSTOM_TYPE_PREFIX.length); - - if (customElements.get(tag)) { - return _createElement(tag, config); - } - const element = _createErrorElement( - `Custom element doesn't exist: ${tag}.`, - config - ); - const timer = _hideErrorElement(element); - - customElements.whenDefined(tag).then(() => { - clearTimeout(timer); - fireEvent(element, "ll-rebuild"); - }); - - return element; - } - - if (!ELEMENT_TYPES.has(config.type)) { - return _createErrorElement( - `Unknown element type encountered: ${config.type}.`, - config - ); - } - return _createElement(`hui-${config.type}-element`, config); -}; +export const createHuiElement = (config: LovelaceElementConfig) => + createLovelaceElement("element", config, ELEMENT_TYPES); diff --git a/src/panels/lovelace/common/create-row-element.ts b/src/panels/lovelace/common/create-row-element.ts index f7b00ad9bdea..18d8f15596dd 100644 --- a/src/panels/lovelace/common/create-row-element.ts +++ b/src/panels/lovelace/common/create-row-element.ts @@ -1,12 +1,3 @@ -import deepClone from "deep-clone-simple"; - -import { fireEvent } from "../../../common/dom/fire_event"; - -import { - createErrorCardElement, - createErrorCardConfig, - HuiErrorCard, -} from "../cards/hui-error-card"; import "../entity-rows/hui-climate-entity-row"; import "../entity-rows/hui-cover-entity-row"; import "../entity-rows/hui-group-entity-row"; @@ -27,9 +18,9 @@ import "../special-rows/hui-divider-row"; import "../special-rows/hui-section-row"; import "../special-rows/hui-weblink-row"; import "../special-rows/hui-cast-row"; -import { EntityConfig, EntityRow } from "../entity-rows/types"; +import { EntityConfig } from "../entity-rows/types"; +import { createLovelaceElement } from "../create-element/create-element-base"; -const CUSTOM_TYPE_PREFIX = "custom:"; const SPECIAL_TYPES = new Set([ "call-service", "divider", @@ -39,6 +30,7 @@ const SPECIAL_TYPES = new Set([ "select", ]); const DOMAIN_TO_ELEMENT_TYPE = { + _domain_not_found: "text", alert: "toggle", automation: "toggle", climate: "climate", @@ -64,80 +56,6 @@ const DOMAIN_TO_ELEMENT_TYPE = { water_heater: "climate", input_datetime: "input-datetime", }; -const TIMEOUT = 2000; - -const _createElement = ( - tag: string, - config: EntityConfig -): EntityRow | HuiErrorCard => { - const element = document.createElement(tag) as EntityRow; - try { - element.setConfig(deepClone(config)); - } catch (err) { - // tslint:disable-next-line - console.error(tag, err); - return _createErrorElement(err.message, config); - } - - return element; -}; - -const _createErrorElement = ( - error: string, - config: EntityConfig -): HuiErrorCard => createErrorCardElement(createErrorCardConfig(error, config)); - -const _hideErrorElement = (element) => { - element.style.display = "None"; - return window.setTimeout(() => { - element.style.display = ""; - }, TIMEOUT); -}; - -export const createRowElement = ( - config: EntityConfig -): EntityRow | HuiErrorCard => { - let tag; - if ( - !config || - typeof config !== "object" || - (!config.entity && !config.type) - ) { - return _createErrorElement("Invalid config given.", config); - } - - const type = config.type || "default"; - if (SPECIAL_TYPES.has(type)) { - return _createElement(`hui-${type}-row`, config); - } - - if (type.startsWith(CUSTOM_TYPE_PREFIX)) { - tag = type.substr(CUSTOM_TYPE_PREFIX.length); - - if (customElements.get(tag)) { - return _createElement(tag, config); - } - const element = _createErrorElement( - `Custom element doesn't exist: ${tag}.`, - config - ); - const timer = _hideErrorElement(element); - - customElements.whenDefined(tag).then(() => { - clearTimeout(timer); - fireEvent(element, "ll-rebuild"); - }); - - return element; - } - - if (!config.entity) { - return _createErrorElement("Invalid config given.", config); - } - - const domain = config.entity.split(".", 1)[0]; - tag = `hui-${DOMAIN_TO_ELEMENT_TYPE[domain] || "text"}-entity-row`; - - return _createElement(tag, config); -}; +export const createRowElement = (config: EntityConfig) => + createLovelaceElement("row", config, SPECIAL_TYPES, DOMAIN_TO_ELEMENT_TYPE); diff --git a/src/panels/lovelace/create-element/create-element-base.ts b/src/panels/lovelace/create-element/create-element-base.ts new file mode 100644 index 000000000000..797064c8da73 --- /dev/null +++ b/src/panels/lovelace/create-element/create-element-base.ts @@ -0,0 +1,110 @@ +import { + LovelaceCardConfig, + LovelaceBadgeConfig, +} from "../../../data/lovelace"; +import { + HuiErrorCard, + createErrorCardElement, + createErrorCardConfig, +} from "../cards/hui-error-card"; +import { LovelaceCard, LovelaceBadge } from "../types"; +import { fireEvent } from "../../../common/dom/fire_event"; +import { LovelaceElementConfig, LovelaceElement } from "../elements/types"; +import { EntityRow, EntityRowConfig } from "../entity-rows/types"; + +const CUSTOM_TYPE_PREFIX = "custom:"; +const TIMEOUT = 2000; + +interface CreateElementConfigTypes { + card: { config: LovelaceCardConfig; element: LovelaceCard }; + badge: { config: LovelaceBadgeConfig; element: LovelaceBadge }; + element: { config: LovelaceElementConfig; element: LovelaceElement }; + row: { config: EntityRowConfig; element: EntityRow }; +} + +const _createElement = ( + tag: string, + config: CreateElementConfigTypes[T]["config"] +): CreateElementConfigTypes[T]["element"] | HuiErrorCard => { + const element = document.createElement( + tag + ) as CreateElementConfigTypes[T]["element"]; + try { + // @ts-ignore + element.setConfig(config); + } catch (err) { + // tslint:disable-next-line + console.error(tag, err); + return _createErrorElement(err.message, config); + } + return element; +}; + +const _createErrorElement = ( + error: string, + config: CreateElementConfigTypes[T]["config"] +): HuiErrorCard => createErrorCardElement(createErrorCardConfig(error, config)); + +export const createLovelaceElement = ( + tagSuffix: T, + config: CreateElementConfigTypes[T]["config"], + elementTypes: Set, + // Allow looking at "entity" in config and mapping that to a type + domainTypes?: { _domain_not_found: string; [domain: string]: string }, + // Default type if no type given. If given, entity types will not work. + defaultType?: string +): CreateElementConfigTypes[T]["element"] | HuiErrorCard => { + if (!config || typeof config !== "object") { + return _createErrorElement("Config is not an object", config); + } + + if ( + !config.type && + !defaultType && + // If domain types is given, we can derive a type from "entity" + (!domainTypes || !("entity" in config)) + ) { + return _createErrorElement("No card type configured.", config); + } + + if (config.type && config.type.startsWith(CUSTOM_TYPE_PREFIX)) { + const tag = config.type.substr(CUSTOM_TYPE_PREFIX.length); + + if (customElements.get(tag)) { + return _createElement(tag, config); + } + const element = _createErrorElement( + `Custom element doesn't exist: ${tag}.`, + config + ); + element.style.display = "None"; + const timer = window.setTimeout(() => { + element.style.display = ""; + }, TIMEOUT); + + customElements.whenDefined(tag).then(() => { + clearTimeout(timer); + fireEvent(element, "ll-rebuild"); + }); + + return element; + } + + // config.type has priority over config.entity, but defaultType has not. + // @ts-ignore + if (domainTypes && !config.type && config.entity) { + // @ts-ignore + const domain = config.entity.split(".", 1)[0]; + return _createElement( + `hui-${domainTypes![domain] || + domainTypes!._domain_not_found}-entity-${tagSuffix}`, + config + ); + } + + const type = config.type || defaultType; + + return type !== undefined && elementTypes.has(type) + ? _createElement(`hui-${type}-${tagSuffix}`, config) + : _createErrorElement(`Unknown type encountered: ${type}.`, config); +}; From 746ba2ecd398b76ed430669df9ed0f0a923a8374 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 17 Jan 2020 14:48:47 -0800 Subject: [PATCH 2/3] Move things around --- src/panels/lovelace/badges/hui-entity-filter-badge.ts | 2 +- src/panels/lovelace/cards/hui-conditional-card.ts | 2 +- src/panels/lovelace/cards/hui-entities-card.ts | 2 +- src/panels/lovelace/cards/hui-entity-filter-card.ts | 2 +- src/panels/lovelace/cards/hui-stack-card.ts | 2 +- .../cards/picture-elements/create-styled-hui-element.ts | 2 +- .../{common => create-element}/create-badge-element.ts | 2 +- .../{common => create-element}/create-card-element.ts | 2 +- .../lovelace/{common => create-element}/create-hui-element.ts | 2 +- .../lovelace/{common => create-element}/create-row-element.ts | 2 +- src/panels/lovelace/editor/card-editor/hui-card-preview.ts | 2 +- src/panels/lovelace/views/hui-panel-view.ts | 2 +- src/panels/lovelace/views/hui-view.ts | 4 ++-- 13 files changed, 14 insertions(+), 14 deletions(-) rename src/panels/lovelace/{common => create-element}/create-badge-element.ts (82%) rename src/panels/lovelace/{common => create-element}/create-card-element.ts (95%) rename src/panels/lovelace/{common => create-element}/create-hui-element.ts (89%) rename src/panels/lovelace/{common => create-element}/create-row-element.ts (96%) diff --git a/src/panels/lovelace/badges/hui-entity-filter-badge.ts b/src/panels/lovelace/badges/hui-entity-filter-badge.ts index 444ec7d3f6e9..a0d7432cd3cc 100644 --- a/src/panels/lovelace/badges/hui-entity-filter-badge.ts +++ b/src/panels/lovelace/badges/hui-entity-filter-badge.ts @@ -1,4 +1,4 @@ -import { createBadgeElement } from "../common/create-badge-element"; +import { createBadgeElement } from "../create-element/create-badge-element"; import { processConfigEntities } from "../common/process-config-entities"; import { LovelaceBadge } from "../types"; import { EntityFilterEntityConfig } from "../entity-rows/types"; diff --git a/src/panels/lovelace/cards/hui-conditional-card.ts b/src/panels/lovelace/cards/hui-conditional-card.ts index 45907b322911..bfc6ab3facbb 100644 --- a/src/panels/lovelace/cards/hui-conditional-card.ts +++ b/src/panels/lovelace/cards/hui-conditional-card.ts @@ -1,4 +1,4 @@ -import { createCardElement } from "../common/create-card-element"; +import { createCardElement } from "../create-element/create-card-element"; import { computeCardSize } from "../common/compute-card-size"; import { checkConditionsMet, diff --git a/src/panels/lovelace/cards/hui-entities-card.ts b/src/panels/lovelace/cards/hui-entities-card.ts index e004ceedaf62..8a7d3d19b5a7 100644 --- a/src/panels/lovelace/cards/hui-entities-card.ts +++ b/src/panels/lovelace/cards/hui-entities-card.ts @@ -16,7 +16,7 @@ import { HomeAssistant } from "../../../types"; import { EntityRow } from "../entity-rows/types"; import { LovelaceCard, LovelaceCardEditor } from "../types"; import { processConfigEntities } from "../common/process-config-entities"; -import { createRowElement } from "../common/create-row-element"; +import { createRowElement } from "../create-element/create-row-element"; import { EntitiesCardConfig, EntitiesCardEntityConfig } from "./types"; import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element"; diff --git a/src/panels/lovelace/cards/hui-entity-filter-card.ts b/src/panels/lovelace/cards/hui-entity-filter-card.ts index 93dae22a6f5d..0bf897c960d5 100644 --- a/src/panels/lovelace/cards/hui-entity-filter-card.ts +++ b/src/panels/lovelace/cards/hui-entity-filter-card.ts @@ -1,4 +1,4 @@ -import { createCardElement } from "../common/create-card-element"; +import { createCardElement } from "../create-element/create-card-element"; import { processConfigEntities } from "../common/process-config-entities"; import { LovelaceCard } from "../types"; import { LovelaceCardConfig } from "../../../data/lovelace"; diff --git a/src/panels/lovelace/cards/hui-stack-card.ts b/src/panels/lovelace/cards/hui-stack-card.ts index 48ecd4b103c9..cfa36d4c7c7b 100644 --- a/src/panels/lovelace/cards/hui-stack-card.ts +++ b/src/panels/lovelace/cards/hui-stack-card.ts @@ -1,6 +1,6 @@ import { html, LitElement, TemplateResult, CSSResult, css } from "lit-element"; -import { createCardElement } from "../common/create-card-element"; +import { createCardElement } from "../create-element/create-card-element"; import { LovelaceCard } from "../types"; import { LovelaceCardConfig } from "../../../data/lovelace"; import { HomeAssistant } from "../../../types"; diff --git a/src/panels/lovelace/cards/picture-elements/create-styled-hui-element.ts b/src/panels/lovelace/cards/picture-elements/create-styled-hui-element.ts index 3b57bf711d36..97afade546c2 100644 --- a/src/panels/lovelace/cards/picture-elements/create-styled-hui-element.ts +++ b/src/panels/lovelace/cards/picture-elements/create-styled-hui-element.ts @@ -1,5 +1,5 @@ import { LovelaceElement, LovelaceElementConfig } from "../../elements/types"; -import { createHuiElement } from "../../common/create-hui-element"; +import { createHuiElement } from "../../create-element/create-hui-element"; export function createStyledHuiElement( elementConfig: LovelaceElementConfig diff --git a/src/panels/lovelace/common/create-badge-element.ts b/src/panels/lovelace/create-element/create-badge-element.ts similarity index 82% rename from src/panels/lovelace/common/create-badge-element.ts rename to src/panels/lovelace/create-element/create-badge-element.ts index c54f2f529472..9fb4bc3b2148 100644 --- a/src/panels/lovelace/common/create-badge-element.ts +++ b/src/panels/lovelace/create-element/create-badge-element.ts @@ -2,7 +2,7 @@ import "../badges/hui-entity-filter-badge"; import "../badges/hui-state-label-badge"; import { LovelaceBadgeConfig } from "../../../data/lovelace"; -import { createLovelaceElement } from "../create-element/create-element-base"; +import { createLovelaceElement } from "./create-element-base"; const BADGE_TYPES = new Set(["entity-filter", "error", "state-label"]); diff --git a/src/panels/lovelace/common/create-card-element.ts b/src/panels/lovelace/create-element/create-card-element.ts similarity index 95% rename from src/panels/lovelace/common/create-card-element.ts rename to src/panels/lovelace/create-element/create-card-element.ts index 3377462fb61c..acfd98261308 100644 --- a/src/panels/lovelace/common/create-card-element.ts +++ b/src/panels/lovelace/create-element/create-card-element.ts @@ -23,7 +23,7 @@ import "../cards/hui-thermostat-card"; import "../cards/hui-weather-forecast-card"; import "../cards/hui-gauge-card"; import { LovelaceCardConfig } from "../../../data/lovelace"; -import { createLovelaceElement } from "../create-element/create-element-base"; +import { createLovelaceElement } from "./create-element-base"; const CARD_TYPES = new Set([ "alarm-panel", diff --git a/src/panels/lovelace/common/create-hui-element.ts b/src/panels/lovelace/create-element/create-hui-element.ts similarity index 89% rename from src/panels/lovelace/common/create-hui-element.ts rename to src/panels/lovelace/create-element/create-hui-element.ts index c6e2deb8a017..1645737bbb28 100644 --- a/src/panels/lovelace/common/create-hui-element.ts +++ b/src/panels/lovelace/create-element/create-hui-element.ts @@ -7,7 +7,7 @@ import "../elements/hui-state-icon-element"; import "../elements/hui-state-label-element"; import { LovelaceElementConfig } from "../elements/types"; -import { createLovelaceElement } from "../create-element/create-element-base"; +import { createLovelaceElement } from "./create-element-base"; const ELEMENT_TYPES = new Set([ "conditional", diff --git a/src/panels/lovelace/common/create-row-element.ts b/src/panels/lovelace/create-element/create-row-element.ts similarity index 96% rename from src/panels/lovelace/common/create-row-element.ts rename to src/panels/lovelace/create-element/create-row-element.ts index 18d8f15596dd..98ec16a0d42e 100644 --- a/src/panels/lovelace/common/create-row-element.ts +++ b/src/panels/lovelace/create-element/create-row-element.ts @@ -19,7 +19,7 @@ import "../special-rows/hui-section-row"; import "../special-rows/hui-weblink-row"; import "../special-rows/hui-cast-row"; import { EntityConfig } from "../entity-rows/types"; -import { createLovelaceElement } from "../create-element/create-element-base"; +import { createLovelaceElement } from "./create-element-base"; const SPECIAL_TYPES = new Set([ "call-service", diff --git a/src/panels/lovelace/editor/card-editor/hui-card-preview.ts b/src/panels/lovelace/editor/card-editor/hui-card-preview.ts index 26b28c855686..46c03731e52d 100644 --- a/src/panels/lovelace/editor/card-editor/hui-card-preview.ts +++ b/src/panels/lovelace/editor/card-editor/hui-card-preview.ts @@ -2,7 +2,7 @@ import "@polymer/paper-input/paper-textarea"; import deepClone from "deep-clone-simple"; -import { createCardElement } from "../../common/create-card-element"; +import { createCardElement } from "../../create-element/create-card-element"; import { HomeAssistant } from "../../../../types"; import { LovelaceCardConfig } from "../../../../data/lovelace"; import { LovelaceCard } from "../../types"; diff --git a/src/panels/lovelace/views/hui-panel-view.ts b/src/panels/lovelace/views/hui-panel-view.ts index f2e4a85c55af..fbceb6ef51ba 100644 --- a/src/panels/lovelace/views/hui-panel-view.ts +++ b/src/panels/lovelace/views/hui-panel-view.ts @@ -9,7 +9,7 @@ import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_elemen import { HomeAssistant } from "../../../types"; import { LovelaceCard } from "../types"; -import { createCardElement } from "../common/create-card-element"; +import { createCardElement } from "../create-element/create-card-element"; import { LovelaceViewConfig } from "../../../data/lovelace"; @customElement("hui-panel-view") diff --git a/src/panels/lovelace/views/hui-view.ts b/src/panels/lovelace/views/hui-view.ts index 9798522dea3d..ad283f985098 100644 --- a/src/panels/lovelace/views/hui-view.ts +++ b/src/panels/lovelace/views/hui-view.ts @@ -19,12 +19,12 @@ import { import { HomeAssistant } from "../../../types"; import { classMap } from "lit-html/directives/class-map"; import { Lovelace, LovelaceCard, LovelaceBadge } from "../types"; -import { createCardElement } from "../common/create-card-element"; +import { createCardElement } from "../create-element/create-card-element"; import { computeCardSize } from "../common/compute-card-size"; import { showEditCardDialog } from "../editor/card-editor/show-edit-card-dialog"; import { HuiErrorCard } from "../cards/hui-error-card"; import { computeRTL } from "../../../common/util/compute_rtl"; -import { createBadgeElement } from "../common/create-badge-element"; +import { createBadgeElement } from "../create-element/create-badge-element"; import { processConfigEntities } from "../common/process-config-entities"; let editCodeLoaded = false; From ef4d036d81687102d246c0468bb14b430e2f35c9 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 17 Jan 2020 15:19:38 -0800 Subject: [PATCH 3/3] Fix reference in gallery --- gallery/src/components/demo-card.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gallery/src/components/demo-card.js b/gallery/src/components/demo-card.js index b782aaf882d8..e52cf02890b1 100644 --- a/gallery/src/components/demo-card.js +++ b/gallery/src/components/demo-card.js @@ -2,7 +2,7 @@ import { html } from "@polymer/polymer/lib/utils/html-tag"; import { PolymerElement } from "@polymer/polymer/polymer-element"; import { safeLoad } from "js-yaml"; -import { createCardElement } from "../../../src/panels/lovelace/common/create-card-element"; +import { createCardElement } from "../../../src/panels/lovelace/create-element/create-card-element"; class DemoCard extends PolymerElement { static get template() {