From f02bb67485dcc51e14d1f08142c5c7881ca6fbc4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 26 Feb 2020 00:40:54 -0800 Subject: [PATCH] Static import all the LL cards etc (#4987) --- .../create-element/create-badge-element.ts | 13 +++- .../create-element/create-card-element.ts | 64 +++++++++++++---- .../create-header-footer-element.ts | 15 +++- .../create-element/create-row-element.ts | 70 ++++++++++++++----- 4 files changed, 124 insertions(+), 38 deletions(-) diff --git a/src/panels/lovelace/create-element/create-badge-element.ts b/src/panels/lovelace/create-element/create-badge-element.ts index 120a51b98e..95aa0cd584 100644 --- a/src/panels/lovelace/create-element/create-badge-element.ts +++ b/src/panels/lovelace/create-element/create-badge-element.ts @@ -3,9 +3,18 @@ import "../badges/hui-state-label-badge"; import { LovelaceBadgeConfig } from "../../../data/lovelace"; import { createLovelaceElement } from "./create-element-base"; -const ALWAYS_LOADED_TYPES = new Set(["error", "state-label"]); +// lazy load imports +import "../badges/hui-entity-filter-badge"; + +const ALWAYS_LOADED_TYPES = new Set([ + "error", + "state-label", + + // lazy load types + "entity-filter", +]); const LAZY_LOAD_TYPES = { - "entity-filter": () => import("../badges/hui-entity-filter-badge"), + // "entity-filter": () => import("../badges/hui-entity-filter-badge"), }; export const createBadgeElement = (config: LovelaceBadgeConfig) => diff --git a/src/panels/lovelace/create-element/create-card-element.ts b/src/panels/lovelace/create-element/create-card-element.ts index 3669bba1f4..f793ae3d03 100644 --- a/src/panels/lovelace/create-element/create-card-element.ts +++ b/src/panels/lovelace/create-element/create-card-element.ts @@ -16,6 +16,23 @@ import { getLovelaceElementClass, } from "./create-element-base"; +// lazy load imports +import "../cards/hui-alarm-panel-card"; +import "../cards/hui-empty-state-card"; +import "../cards/hui-entity-filter-card"; +import "../cards/hui-picture-elements-card"; +import "../cards/hui-picture-entity-card"; +import "../cards/hui-picture-glance-card"; +import "../cards/hui-plant-status-card"; +import "../cards/hui-safe-mode-card"; +import "../cards/hui-shopping-list-card"; +import "../cards/hui-conditional-card"; +import "../cards/hui-gauge-card"; +import "../cards/hui-iframe-card"; +import "../cards/hui-map-card"; +import "../cards/hui-markdown-card"; +import "../cards/hui-picture-card"; + const ALWAYS_LOADED_TYPES = new Set([ "entities", "button", @@ -30,24 +47,41 @@ const ALWAYS_LOADED_TYPES = new Set([ "thermostat", "vertical-stack", "weather-forecast", + + // Lazy load types + "alarm-panel", + "empty-state", + "entity-filter", + "picture-elements", + "picture-entity", + "picture-glance", + "plant-status", + "safe-mode", + "shopping-list", + "conditional", + "gauge", + "iframe", + "map", + "markdown", + "picture", ]); const LAZY_LOAD_TYPES = { - "alarm-panel": () => import("../cards/hui-alarm-panel-card"), - "empty-state": () => import("../cards/hui-empty-state-card"), - "entity-filter": () => import("../cards/hui-entity-filter-card"), - "picture-elements": () => import("../cards/hui-picture-elements-card"), - "picture-entity": () => import("../cards/hui-picture-entity-card"), - "picture-glance": () => import("../cards/hui-picture-glance-card"), - "plant-status": () => import("../cards/hui-plant-status-card"), - "safe-mode": () => import("../cards/hui-safe-mode-card"), - "shopping-list": () => import("../cards/hui-shopping-list-card"), - conditional: () => import("../cards/hui-conditional-card"), - gauge: () => import("../cards/hui-gauge-card"), - iframe: () => import("../cards/hui-iframe-card"), - map: () => import("../cards/hui-map-card"), - markdown: () => import("../cards/hui-markdown-card"), - picture: () => import("../cards/hui-picture-card"), + // "alarm-panel": () => import("../cards/hui-alarm-panel-card"), + // "empty-state": () => import("../cards/hui-empty-state-card"), + // "entity-filter": () => import("../cards/hui-entity-filter-card"), + // "picture-elements": () => import("../cards/hui-picture-elements-card"), + // "picture-entity": () => import("../cards/hui-picture-entity-card"), + // "picture-glance": () => import("../cards/hui-picture-glance-card"), + // "plant-status": () => import("../cards/hui-plant-status-card"), + // "safe-mode": () => import("../cards/hui-safe-mode-card"), + // "shopping-list": () => import("../cards/hui-shopping-list-card"), + // conditional: () => import("../cards/hui-conditional-card"), + // gauge: () => import("../cards/hui-gauge-card"), + // iframe: () => import("../cards/hui-iframe-card"), + // map: () => import("../cards/hui-map-card"), + // markdown: () => import("../cards/hui-markdown-card"), + // picture: () => import("../cards/hui-picture-card"), }; export const createCardElement = (config: LovelaceCardConfig) => diff --git a/src/panels/lovelace/create-element/create-header-footer-element.ts b/src/panels/lovelace/create-element/create-header-footer-element.ts index f2e2859f3c..a9b97571be 100644 --- a/src/panels/lovelace/create-element/create-header-footer-element.ts +++ b/src/panels/lovelace/create-element/create-header-footer-element.ts @@ -1,16 +1,25 @@ import { LovelaceHeaderFooterConfig } from "../header-footer/types"; import { createLovelaceElement } from "./create-element-base"; +// lazy load imports +import "../header-footer/hui-picture-header-footer"; +import "../header-footer/hui-buttons-header-footer"; + +const ALWAYS_LOADED_TYPES = new Set([ + // lazy load types + "picture", + "buttons", +]); const LAZY_LOAD_TYPES = { - picture: () => import("../header-footer/hui-picture-header-footer"), - buttons: () => import("../header-footer/hui-buttons-header-footer"), + // picture: () => import("../header-footer/hui-picture-header-footer"), + // buttons: () => import("../header-footer/hui-buttons-header-footer"), }; export const createHeaderFooterElement = (config: LovelaceHeaderFooterConfig) => createLovelaceElement( "header-footer", config, - undefined, + ALWAYS_LOADED_TYPES, // replace with undefined when empty LAZY_LOAD_TYPES, undefined, undefined diff --git a/src/panels/lovelace/create-element/create-row-element.ts b/src/panels/lovelace/create-element/create-row-element.ts index d23464f7fb..e8154de5ef 100644 --- a/src/panels/lovelace/create-element/create-row-element.ts +++ b/src/panels/lovelace/create-element/create-row-element.ts @@ -8,6 +8,23 @@ import "../special-rows/hui-call-service-row"; import { EntityConfig } from "../entity-rows/types"; import { createLovelaceElement } from "./create-element-base"; +// lazy load imports +import "../entity-rows/hui-climate-entity-row"; +import "../entity-rows/hui-cover-entity-row"; +import "../entity-rows/hui-group-entity-row"; +import "../entity-rows/hui-input-datetime-entity-row"; +import "../entity-rows/hui-input-number-entity-row"; +import "../entity-rows/hui-input-select-entity-row"; +import "../entity-rows/hui-input-text-entity-row"; +import "../entity-rows/hui-lock-entity-row"; +import "../entity-rows/hui-timer-entity-row"; +import "../special-rows/hui-conditional-row"; +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 "../special-rows/hui-buttons-row"; + const ALWAYS_LOADED_TYPES = new Set([ "media-player-entity", "scene-entity", @@ -16,26 +33,43 @@ const ALWAYS_LOADED_TYPES = new Set([ "text-entity", "toggle-entity", "call-service", + + // lazy load types + "climate-entity", + "cover-entity", + "group-entity", + "input-datetime-entity", + "input-number-entity", + "input-select-entity", + "input-text-entity", + "lock-entity", + "timer-entity", + "conditional", + "divider", + "section", + "weblink", + "cast", + "buttons", ]); const LAZY_LOAD_TYPES = { - "climate-entity": () => import("../entity-rows/hui-climate-entity-row"), - "cover-entity": () => import("../entity-rows/hui-cover-entity-row"), - "group-entity": () => import("../entity-rows/hui-group-entity-row"), - "input-datetime-entity": () => - import("../entity-rows/hui-input-datetime-entity-row"), - "input-number-entity": () => - import("../entity-rows/hui-input-number-entity-row"), - "input-select-entity": () => - import("../entity-rows/hui-input-select-entity-row"), - "input-text-entity": () => import("../entity-rows/hui-input-text-entity-row"), - "lock-entity": () => import("../entity-rows/hui-lock-entity-row"), - "timer-entity": () => import("../entity-rows/hui-timer-entity-row"), - conditional: () => import("../special-rows/hui-conditional-row"), - divider: () => import("../special-rows/hui-divider-row"), - section: () => import("../special-rows/hui-section-row"), - weblink: () => import("../special-rows/hui-weblink-row"), - cast: () => import("../special-rows/hui-cast-row"), - buttons: () => import("../special-rows/hui-buttons-row"), + // "climate-entity": () => import("../entity-rows/hui-climate-entity-row"), + // "cover-entity": () => import("../entity-rows/hui-cover-entity-row"), + // "group-entity": () => import("../entity-rows/hui-group-entity-row"), + // "input-datetime-entity": () => + // import("../entity-rows/hui-input-datetime-entity-row"), + // "input-number-entity": () => + // import("../entity-rows/hui-input-number-entity-row"), + // "input-select-entity": () => + // import("../entity-rows/hui-input-select-entity-row"), + // "input-text-entity": () => import("../entity-rows/hui-input-text-entity-row"), + // "lock-entity": () => import("../entity-rows/hui-lock-entity-row"), + // "timer-entity": () => import("../entity-rows/hui-timer-entity-row"), + // conditional: () => import("../special-rows/hui-conditional-row"), + // divider: () => import("../special-rows/hui-divider-row"), + // section: () => import("../special-rows/hui-section-row"), + // weblink: () => import("../special-rows/hui-weblink-row"), + // cast: () => import("../special-rows/hui-cast-row"), + // buttons: () => import("../special-rows/hui-buttons-row"), }; const DOMAIN_TO_ELEMENT_TYPE = { _domain_not_found: "text",