From 4e58a17911b0e700abbaad0fa68a217ec0b2424f Mon Sep 17 00:00:00 2001 From: Juicy Date: Fri, 8 Nov 2024 11:44:57 +0000 Subject: [PATCH] try to fix stack-in-card --- custom_components/linus_dashboard/js/linus-strategy.js | 2 +- custom_components/linus_dashboard/js/linus-strategy.js.map | 2 +- src/cards/AreaCard.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/custom_components/linus_dashboard/js/linus-strategy.js b/custom_components/linus_dashboard/js/linus-strategy.js index 571cffe..2288f89 100644 --- a/custom_components/linus_dashboard/js/linus-strategy.js +++ b/custom_components/linus_dashboard/js/linus-strategy.js @@ -1116,7 +1116,7 @@ class AreaCard extends _AbstractCard__WEBPACK_IMPORTED_MODULE_0__.AbstractCard { const { area_state, all_lights, aggregate_temperature, aggregate_battery, aggregate_health, aggregate_window, aggregate_door, aggregate_cover, aggregate_climate, light_control } = device?.entities || {}; const icon = area.icon || "mdi:home-outline"; return { - type: "custom:stack-in-card", + type: "vertical-stack", cards: [ this.getMainCard(area, icon, aggregate_temperature, aggregate_battery, area_state), this.getChipsCard(area, device, area_state, aggregate_health, aggregate_window, aggregate_door, aggregate_cover, aggregate_climate, all_lights, light_control), diff --git a/custom_components/linus_dashboard/js/linus-strategy.js.map b/custom_components/linus_dashboard/js/linus-strategy.js.map index 3a8fc7a..2db3c57 100644 --- a/custom_components/linus_dashboard/js/linus-strategy.js.map +++ b/custom_components/linus_dashboard/js/linus-strategy.js.map @@ -1 +1 @@ -{"version":3,"file":"linus-strategy.js","mappings":"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AM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,2BAAI,iCAAe,EAAE,OAAO,CAAC,CAAC;QAEvE,iEAAiE;QACjE,IAAI,CAAC,kBAAkB,GAAG,IAAI,iEAAc,CAC1C,IAAI,CAAC,YAAY,CAAC,yBAAU,8BAAQ,CAAC,EACrC;YACE,GAAG,2BAAI,4CAA0B;YACjC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAA+B;SACnH,CAAC,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;;;AAxDD;;;;;;GAMG;AACI,8BAAkB,QAAQ,EAAnB,CAAoB;AAoDhB;;;;;;;;;;;AC3EpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;AC1LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;UC1HA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;;;;;WCHA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;UENA;UACA;UACA;UACA","sources":["webpack://linus-strategy/./node_modules/deepmerge/dist/cjs.js","webpack://linus-strategy/./src/Helper.ts","webpack://linus-strategy/./src/cards/AbstractCard.ts","webpack://linus-strategy/./src/cards/AggregateCard.ts","webpack://linus-strategy/./src/cards/AlarmCard.ts","webpack://linus-strategy/./src/cards/AreaCard.ts","webpack://linus-strategy/./src/cards/BinarySensorCard.ts","webpack://linus-strategy/./src/cards/CameraCard.ts","webpack://linus-strategy/./src/cards/ClimateCard.ts","webpack://linus-strategy/./src/cards/ControllerCard.ts","webpack://linus-strategy/./src/cards/CoverCard.ts","webpack://linus-strategy/./src/cards/FanCard.ts","webpack://linus-strategy/./src/cards/HaAreaCard.ts","webpack://linus-strategy/./src/cards/LightCard.ts","webpack://linus-strategy/./src/cards/LockCard.ts","webpack://linus-strategy/./src/cards/MainAreaCard.ts","webpack://linus-strategy/./src/cards/MediaPlayerCard.ts","webpack://linus-strategy/./src/cards/MiscellaneousCard.ts","webpack://linus-strategy/./src/cards/NumberCard.ts","webpack://linus-strategy/./src/cards/PersonCard.ts","webpack://linus-strategy/./src/cards/SceneCard.ts","webpack://linus-strategy/./src/cards/SensorCard.ts","webpack://linus-strategy/./src/cards/SwipeCard.ts","webpack://linus-strategy/./src/cards/SwitchCard.ts","webpack://linus-strategy/./src/cards/VacuumCard.ts","webpack://linus-strategy/./src/chips/AbstractChip.ts","webpack://linus-strategy/./src/chips/AlarmChip.ts","webpack://linus-strategy/./src/chips/AreaScenesChips.ts","webpack://linus-strategy/./src/chips/AreaStateChip.ts","webpack://linus-strategy/./src/chips/ClimateChip.ts","webpack://linus-strategy/./src/chips/CoverChip.ts","webpack://linus-strategy/./src/chips/DoorChip.ts","webpack://linus-strategy/./src/chips/FanChip.ts","webpack://linus-strategy/./src/chips/LightChip.ts","webpack://linus-strategy/./src/chips/LightControlChip.ts","webpack://linus-strategy/./src/chips/LinusAggregateChip.ts","webpack://linus-strategy/./src/chips/LinusAlarmChip.ts","webpack://linus-strategy/./src/chips/LinusClimateChip.ts","webpack://linus-strategy/./src/chips/LinusLightChip.ts","webpack://linus-strategy/./src/chips/MotionChip.ts","webpack://linus-strategy/./src/chips/SafetyChip.ts","webpack://linus-strategy/./src/chips/SettingsChip.ts","webpack://linus-strategy/./src/chips/SpotifyChip.ts","webpack://linus-strategy/./src/chips/SwitchChip.ts","webpack://linus-strategy/./src/chips/ToggleSceneChip.ts","webpack://linus-strategy/./src/chips/UnavailableChip.ts","webpack://linus-strategy/./src/chips/WeatherChip.ts","webpack://linus-strategy/./src/chips/WindowChip.ts","webpack://linus-strategy/./src/configurationDefaults.ts","webpack://linus-strategy/./src/linus-strategy.ts","webpack://linus-strategy/./src/popups/AbstractPopup.ts","webpack://linus-strategy/./src/popups/AggregateAreaListPopup.ts","webpack://linus-strategy/./src/popups/AggregateListPopup.ts","webpack://linus-strategy/./src/popups/AreaInformationsPopup.ts","webpack://linus-strategy/./src/popups/GroupListPopup.ts","webpack://linus-strategy/./src/popups/LightSettingsPopup.ts","webpack://linus-strategy/./src/popups/LinusSettingsPopup.ts","webpack://linus-strategy/./src/popups/SceneSettingsPopup.ts","webpack://linus-strategy/./src/popups/WeatherPopup.ts","webpack://linus-strategy/./src/types/lovelace-mushroom/cards/vacuum-card-config.ts","webpack://linus-strategy/./src/types/strategy/generic.ts","webpack://linus-strategy/./src/utils.ts","webpack://linus-strategy/./src/variables.ts","webpack://linus-strategy/./src/views/AbstractView.ts","webpack://linus-strategy/./src/views/CameraView.ts","webpack://linus-strategy/./src/views/ClimateView.ts","webpack://linus-strategy/./src/views/CoverView.ts","webpack://linus-strategy/./src/views/FanView.ts","webpack://linus-strategy/./src/views/HomeView.ts","webpack://linus-strategy/./src/views/LightView.ts","webpack://linus-strategy/./src/views/MediaPlayerView.ts","webpack://linus-strategy/./src/views/SceneView.ts","webpack://linus-strategy/./src/views/SecurityDetailsView.ts","webpack://linus-strategy/./src/views/SecurityView.ts","webpack://linus-strategy/./src/views/SwitchView.ts","webpack://linus-strategy/./src/views/VacuumView.ts","webpack://linus-strategy/./src/cards/ lazy ^\\.\\/.*$ namespace object","webpack://linus-strategy/./src/chips/ lazy ^\\.\\/.*$ namespace object","webpack://linus-strategy/./src/views/ lazy ^\\.\\/.*$ namespace object","webpack://linus-strategy/webpack/bootstrap","webpack://linus-strategy/webpack/runtime/compat get default export","webpack://linus-strategy/webpack/runtime/define property getters","webpack://linus-strategy/webpack/runtime/ensure chunk","webpack://linus-strategy/webpack/runtime/hasOwnProperty shorthand","webpack://linus-strategy/webpack/runtime/make namespace object","webpack://linus-strategy/webpack/before-startup","webpack://linus-strategy/webpack/startup","webpack://linus-strategy/webpack/after-startup"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { configurationDefaults } from \"./configurationDefaults\";\nimport { HassEntities, HassEntity } from \"home-assistant-js-websocket\";\nimport deepmerge from \"deepmerge\";\nimport { EntityRegistryEntry } from \"./types/homeassistant/data/entity_registry\";\nimport { DeviceRegistryEntry, MagicAreaRegistryEntry } from \"./types/homeassistant/data/device_registry\";\nimport { AreaRegistryEntry } from \"./types/homeassistant/data/area_registry\";\nimport { generic } from \"./types/strategy/generic\";\nimport StrategyArea = generic.StrategyArea;\nimport StrategyFloor = generic.StrategyFloor;\nimport { FloorRegistryEntry } from \"./types/homeassistant/data/floor_registry\";\nimport { DOMAIN } from \"./variables\";\nimport { entitySharedConfigStruct } from \"./types/lovelace-mushroom/shared/config/entity-config\";\nimport { slugify } from \"./utils\";\n\n/**\n * Helper Class\n *\n * Contains the objects of Home Assistant's registries and helper methods.\n */\nclass Helper {\n /**\n * An array of entities from Home Assistant's entity registry.\n *\n * @type {EntityRegistryEntry[]}\n * @private\n */\n static #entities: EntityRegistryEntry[];\n /**\n * An array of entities from Home Assistant's entity registry.\n *\n * @type {Record;\n\n /**\n * An array of entities from Home Assistant's device registry.\n *\n * @type {DeviceRegistryEntry[]}\n * @private\n */\n static #devices: DeviceRegistryEntry[];\n\n /**\n * An array of entities from Home Assistant's area registry.\n *\n * @type {StrategyArea[]}\n * @private\n */\n static #areas: StrategyArea[] = [];\n\n /**\n * An array of entities from Home Assistant's area registry.\n *\n * @type {StrategyFloor[]}\n * @private\n */\n static #floors: StrategyFloor[] = [];\n\n /**\n * An array of state entities from Home Assistant's Hass object.\n *\n * @type {HassEntities}\n * @private\n */\n static #hassStates: HassEntities;\n\n /**\n * Translation method.\n *\n * @type {any}\n * @private\n */\n static #hassLocalize: any;\n\n /**\n * Indicates whether this module is initialized.\n *\n * @type {boolean} True if initialized.\n * @private\n */\n static #initialized: boolean = false;\n\n /**\n * The Custom strategy configuration.\n *\n * @type {generic.StrategyConfig}\n * @private\n */\n static #strategyOptions: generic.StrategyConfig;\n\n /**\n * The magic areas devices.\n *\n * @type {Record}\n * @private\n */\n static #magicAreasDevices: Record;\n\n /**\n * Set to true for more verbose information in the console.\n *\n * @type {boolean}\n * @private\n */\n static #debug: boolean;\n\n /**\n * Class constructor.\n *\n * This class shouldn't be instantiated directly.\n * Instead, it should be initialized with method initialize().\n *\n * @throws {Error} If trying to instantiate this class.\n */\n constructor() {\n throw new Error(\"This class should be invoked with method initialize() instead of using the keyword new!\");\n }\n\n /**\n * Custom strategy configuration.\n *\n * @returns {generic.StrategyConfig}\n * @static\n */\n static get strategyOptions(): generic.StrategyConfig {\n return this.#strategyOptions;\n }\n\n /**\n * Custom strategy configuration.\n *\n * @returns {Record}\n * @static\n */\n static get magicAreasDevices(): Record {\n return this.#magicAreasDevices;\n }\n\n /**\n * Get the entities from Home Assistant's area registry.\n *\n * @returns {StrategyArea[]}\n * @static\n */\n static get areas(): StrategyArea[] {\n return this.#areas;\n }\n\n /**\n * Get the entities from Home Assistant's floor registry.\n *\n * @returns {StrategyFloor[]}\n * @static\n */\n static get floors(): StrategyFloor[] {\n return this.#floors.sort((a, b) => {\n // Check if 'level' is undefined in either object\n if (a.level === undefined) return 1; // a should come after b\n if (b.level === undefined) return -1; // b should come after a\n\n // Both 'level' values are defined, compare them\n return a.level - b.level;\n });\n }\n\n /**\n * Get the devices from Home Assistant's device registry.\n *\n * @returns {DeviceRegistryEntry[]}\n * @static\n */\n static get devices(): DeviceRegistryEntry[] {\n return this.#devices;\n }\n\n /**\n * Get the entities from Home Assistant's entity registry.\n *\n * @returns {EntityRegistryEntry[]}\n * @static\n */\n static get entities(): EntityRegistryEntry[] {\n return this.#entities;\n }\n\n /**\n * Get the domains from Home Assistant's entity registry.\n *\n * @returns {EntityRegistryEntry[]}\n * @static\n */\n static get domains(): Record {\n return this.#domains;\n }\n\n /**\n * Get the current debug mode of the mushroom strategy.\n *\n * @returns {boolean}\n * @static\n */\n static get debug(): boolean {\n return this.#debug;\n }\n\n /**\n * Initialize this module.\n *\n * @param {generic.DashBoardInfo} info Strategy information object.\n * @returns {Promise}\n * @static\n */\n static async initialize(info: generic.DashBoardInfo): Promise {\n // Initialize properties.\n this.#hassStates = info.hass.states;\n this.#hassLocalize = info.hass.localize;\n console.log('info.hass.resources.fr', info.hass.resources.fr)\n this.#strategyOptions = deepmerge(configurationDefaults, info.config?.strategy?.options ?? {});\n this.#debug = this.#strategyOptions.debug;\n\n try {\n // Query the registries of Home Assistant.\n\n // noinspection ES6MissingAwait False positive? https://youtrack.jetbrains.com/issue/WEB-63746\n [Helper.#entities, Helper.#devices, Helper.#areas, Helper.#floors] = await Promise.all([\n info.hass.callWS({ type: \"config/entity_registry/list\" }) as Promise,\n info.hass.callWS({ type: \"config/device_registry/list\" }) as Promise,\n info.hass.callWS({ type: \"config/area_registry/list\" }) as Promise,\n info.hass.callWS({ type: \"config/floor_registry/list\" }) as Promise,\n ]);\n\n } catch (e) {\n Helper.logError(\"An error occurred while querying Home assistant's registries!\", e);\n throw 'Check the console for details';\n }\n\n // Create and add the undisclosed area if not hidden in the strategy options.\n if (!this.#strategyOptions.areas.undisclosed?.hidden) {\n this.#strategyOptions.areas.undisclosed = {\n ...configurationDefaults.areas.undisclosed,\n ...this.#strategyOptions.areas.undisclosed,\n };\n\n // Make sure the custom configuration of the undisclosed area doesn't overwrite the area_id.\n this.#strategyOptions.areas.undisclosed.area_id = \"undisclosed\";\n\n this.#areas.push(this.#strategyOptions.areas.undisclosed);\n }\n\n // Merge custom areas of the strategy options into strategy areas.\n this.#areas = Helper.areas.map(area => {\n return { ...area, ...this.#strategyOptions.areas?.[area.area_id] };\n });\n\n // Sort strategy areas by order first and then by name.\n this.#areas.sort((a, b) => {\n return (a.order ?? Infinity) - (b.order ?? Infinity) || a.name.localeCompare(b.name);\n });\n\n // Find undisclosed and put it in last position.\n const indexUndisclosed = this.#areas.findIndex(item => item.area_id === \"undisclosed\");\n if (indexUndisclosed !== -1) {\n const areaUndisclosed = this.#areas.splice(indexUndisclosed, 1)[0];\n this.#areas.push(areaUndisclosed);\n }\n\n\n // Sort custom and default views of the strategy options by order first and then by title.\n this.#strategyOptions.views = Object.fromEntries(\n Object.entries(this.#strategyOptions.views).sort(([, a], [, b]) => {\n return (a.order ?? Infinity) - (b.order ?? Infinity) || (a.title ?? \"undefined\").localeCompare(b.title ?? \"undefined\");\n }),\n );\n\n // Sort custom and default domains of the strategy options by order first and then by title.\n this.#strategyOptions.domains = Object.fromEntries(\n Object.entries(this.#strategyOptions.domains).sort(([, a], [, b]) => {\n return (a.order ?? Infinity) - (b.order ?? Infinity) || (a.title ?? \"undefined\").localeCompare(b.title ?? \"undefined\");\n }),\n );\n\n this.#domains = Helper.entities\n .reduce((acc: Record, entity) => {\n const domain = entity.entity_id.split(\".\")[0];\n if (!acc[domain]) {\n acc[domain] = [];\n }\n acc[domain].push(entity);\n return acc;\n }, {});\n\n // Get magic areas devices.\n this.#magicAreasDevices = Helper.devices\n .filter(device => device.manufacturer === 'Magic Areas')\n .reduce((acc: Record, device) => {\n acc[slugify(device.name!)] = {\n ...device,\n area_name: device.name!,\n entities: this.#entities\n .filter(entity => entity.device_id === device.id)\n .reduce((entities: Record, entity) => {\n entities[entity.translation_key!] = entity;\n return entities;\n }, {})\n };\n return acc;\n }, {});\n\n console.log('this.#magicAreasDevices', this.#magicAreasDevices)\n\n this.#initialized = true;\n }\n\n /**\n * Get the initialization status of the Helper class.\n *\n * @returns {boolean} True if this module is initialized.\n * @static\n */\n static isInitialized(): boolean {\n return this.#initialized;\n }\n\n /**\n * Get a template string to define the number of a given domain's entities with a certain state.\n *\n * States are compared against a given value by a given operator.\n *\n * @param {string} domain The domain of the entities.\n * @param {string} operator The Comparison operator between state and value.\n * @param {string} value The value to which the state is compared against.\n * @param {string} area_id\n *\n * @return {string} The template string.\n * @static\n */\n static getCountTemplate(domain: string, operator: string, value: string, area_id?: string): string {\n // noinspection JSMismatchedCollectionQueryUpdate (False positive per 17-04-2023)\n /**\n * Array of entity state-entries, filtered by domain.\n *\n * Each element contains a template-string which is used to access home assistant's state machine (state object) in\n * a template.\n * E.g. \"states['light.kitchen']\"\n *\n * The array excludes hidden and disabled entities.\n *\n * @type {string[]}\n */\n const states: string[] = [];\n\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n // Get the ID of the devices which are linked to the given area.\n for (const area of this.#areas) {\n if (area_id && area.area_id !== area_id) continue\n\n const areaDeviceIds = this.#devices.filter((device) => {\n return device.area_id === area.area_id;\n }).map((device) => {\n return device.id;\n });\n\n // Get the entities of which all conditions of the callback function are met. @see areaFilterCallback.\n const newStates = this.#entities.filter(\n this.#areaFilterCallback, {\n area: area,\n domain: domain,\n areaDeviceIds: areaDeviceIds,\n })\n .map((entity) => `states['${entity.entity_id}']`);\n\n states.push(...newStates);\n }\n\n return `{% set entities = [${states}] %} {{ entities | selectattr('state','${operator}','${value}') | list | count }}`;\n }\n\n /**\n * Get a template string to define the number of a given device_class's entities with a certain state.\n *\n * States are compared against a given value by a given operator.\n *\n * @param {string} domain The domain of the entities.\n * @param {string} device_class The device class of the entities.\n * @param {string} operator The Comparison operator between state and value.\n * @param {string} value The value to which the state is compared against.\n * @param {string} area_id\n *\n * @return {string} The template string.\n * @static\n */\n static getDeviceClassCountTemplate(domain: string, device_class: string, operator: string, value: string, area_id?: string): string {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n const states: string[] = this.#areas\n .filter(area => !area_id || area.area_id === area_id)\n .flatMap(area => {\n const areaDeviceIds = this.#devices\n .filter(device => device.area_id === area.area_id)\n .map(device => device.id);\n\n return this.#entities\n .filter(entity =>\n entity.entity_id.startsWith(`${domain}.`) &&\n entity.hidden_by === null &&\n entity.disabled_by === null &&\n (area.area_id === \"undisclosed\"\n ? !entity.area_id && (areaDeviceIds.includes(entity.device_id ?? \"\") || !entity.device_id)\n : areaDeviceIds.includes(entity.device_id ?? \"\") || entity.area_id === area.area_id)\n )\n .map(entity => `states['${entity.entity_id}']`);\n });\n\n return `{% set entities = [${states}] %} {{ entities | selectattr('attributes.device_class', 'defined') | selectattr('attributes.device_class', 'eq', '${device_class}') | selectattr('state','${operator}','${value}') | list | count }}`;\n }\n\n /**\n * Get a template string to define the average state of sensor entities with a given device class.\n *\n * States are compared against a given value by a given operator.\n *\n * @param {string} device_class The device class of the entities.\n * @param {string} area_id\n *\n * @return {string} The template string.\n * @static\n */\n static getAverageStateTemplate(device_class: string, area_id?: string): string {\n\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n const states: string[] = this.#areas\n .filter(area => !area_id || area.area_id === area_id)\n .flatMap(area => {\n const areaDeviceIds = this.#devices\n .filter(device => device.area_id === area.area_id)\n .map(device => device.id);\n\n return this.#entities\n .filter(entity =>\n entity.entity_id.startsWith(\"sensor.\") &&\n entity.hidden_by === null &&\n entity.disabled_by === null &&\n (area.area_id === \"undisclosed\"\n ? !entity.area_id && (areaDeviceIds.includes(entity.device_id ?? \"\") || !entity.device_id)\n : areaDeviceIds.includes(entity.device_id ?? \"\") || entity.area_id === area.area_id)\n )\n .map(entity => `states['${entity.entity_id}']`);\n });\n\n\n // Todo: fix that because the temperature not working\n return `{% set entities = [${states}] %} {{ entities | selectattr('attributes.device_class', 'defined') | selectattr('attributes.device_class', 'eq', '${device_class}') | map(attribute='state') | map('float') | sum / entities | length }} {{ state_attr('sensor.outside_temperature', 'unit_of_measurement')}}`;\n }\n\n /**\n * Get device entities from the entity registry, filtered by area and domain.\n *\n * The entity registry is a registry where Home-Assistant keeps track of all entities.\n * A device is represented in Home Assistant via one or more entities.\n *\n * The result excludes hidden and disabled entities.\n *\n * @param {AreaRegistryEntry} area Area entity.\n * @param {string} domain The domain of the entity-id.\n *\n * @return {EntityRegistryEntry[]} Array of device entities.\n * @static\n */\n static getDeviceEntities(area: AreaRegistryEntry, domain: string): EntityRegistryEntry[] {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n // Get the ID of the devices which are linked to the given area.\n const areaDeviceIds = this.#devices.filter((device) => {\n return (device.area_id ?? \"undisclosed\") === area.area_id;\n }).map((device: DeviceRegistryEntry) => {\n\n return device.id;\n });\n\n // Return the entities of which all conditions of the callback function are met. @see areaFilterCallback.\n let device_entities = this.#entities.filter(\n this.#areaFilterCallback, {\n area: area,\n domain: domain,\n areaDeviceIds: areaDeviceIds,\n })\n .sort((a, b) => {\n return (a.original_name ?? \"undefined\").localeCompare(b.original_name ?? \"undefined\");\n });\n\n if (domain === \"light\") {\n const deviceLights = Object.values(this.#magicAreasDevices[area.name]?.entities ?? [])\n .filter(e => e.translation_key !== 'all_lights' && e.entity_id.endsWith('_lights'));\n\n deviceLights.forEach(light => {\n const childLights = Helper.#hassStates[light.entity_id]?.attributes?.entity_id ?? [];\n device_entities = device_entities.filter(entity => !childLights.includes(entity.entity_id));\n device_entities.unshift(light);\n });\n }\n\n return device_entities;\n }\n\n /**\n * Get state entities, filtered by area and domain.\n *\n * The result excludes hidden and disabled entities.\n *\n * @param {AreaRegistryEntry} area Area entity.\n * @param {string} domain Domain of the entity-id.\n *\n * @return {HassEntity[]} Array of state entities.\n */\n static getStateEntities(area: AreaRegistryEntry, domain: string): HassEntity[] {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n const states: HassEntity[] = [];\n\n // Create a map for the hassEntities and devices {id: object} to improve lookup speed.\n const entityMap: {\n [s: string]: EntityRegistryEntry;\n } = Object.fromEntries(this.#entities.map((entity) => [entity.entity_id, entity]));\n const deviceMap: {\n [s: string]: DeviceRegistryEntry;\n } = Object.fromEntries(this.#devices.map((device) => [device.id, device]));\n\n // Get states whose entity-id starts with the given string.\n const stateEntities = Object.values(this.#hassStates).filter(\n (state) => state.entity_id.startsWith(`${domain}.`),\n );\n\n for (const state of stateEntities) {\n const hassEntity = entityMap[state.entity_id];\n const device = deviceMap[hassEntity?.device_id ?? \"\"];\n\n // Collect states of which any (whichever comes first) of the conditions below are met:\n // 1. The linked entity is linked to the given area.\n // 2. The entity is linked to a device, and the linked device is linked to the given area.\n if (\n (hassEntity?.area_id === area.area_id)\n || (device && device.area_id === area.area_id)\n ) {\n states.push(state);\n }\n }\n\n return states;\n }\n\n /**\n * Sanitize a classname.\n *\n * The name is sanitized by capitalizing the first character of the name or after an underscore.\n * Underscores are removed.\n *\n * @param {string} className Name of the class to sanitize.\n * @returns {string} The sanitized classname.\n */\n static sanitizeClassName(className: string): string {\n className = className.charAt(0).toUpperCase() + className.slice(1);\n\n return className.replace(/([-_][a-z])/g, (group) => group\n .toUpperCase()\n .replace(\"-\", \"\")\n .replace(\"_\", \"\"),\n );\n }\n\n /**\n * Get the ids of the views which aren't set to hidden in the strategy options.\n *\n * @return {string[]} An array of view ids.\n */\n static getExposedViewIds(): string[] {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n return this.#getObjectKeysByPropertyValue(this.#strategyOptions.views, \"hidden\", false);\n }\n\n /**\n * Get the ids of the domain ids which aren't set to hidden in the strategy options.\n *\n * @return {string[]} An array of domain ids.\n */\n static getExposedDomainIds(): string[] {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n return this.#getObjectKeysByPropertyValue(this.#strategyOptions.domains, \"hidden\", false);\n }\n\n /**\n * Callback function for filtering entities.\n *\n * Entities of which all the conditions below are met are kept:\n * 1. The entity is not hidden and is not disabled.\n * 2. The entity's domain matches the given domain.\n * 3. Or/Neither the entity's linked device (if any) or/nor the entity itself is linked to the given area.\n * (See variable areaMatch)\n *\n * @param {EntityRegistryEntry} entity The current hass entity to evaluate.\n * @this {AreaFilterContext}\n *\n * @return {boolean} True to keep the entity.\n * @static\n */\n static #areaFilterCallback(\n this: {\n area: AreaRegistryEntry,\n areaDeviceIds: string[],\n domain: string,\n },\n entity: EntityRegistryEntry): boolean {\n const entityUnhidden = entity.hidden_by === null && entity.disabled_by === null;\n const domainMatches = entity.entity_id.startsWith(`${this.domain}.`);\n const linusDeviceIds = Helper.#devices.filter(d => [DOMAIN, \"adaptive_lighting\"].includes(d.identifiers[0]?.[0])).map(e => e.id)\n const isLinusEntity = linusDeviceIds.includes(entity.device_id ?? \"\") || entity.platform === DOMAIN\n const entityLinked = this.area.area_id === \"undisclosed\"\n // Undisclosed area;\n // nor the entity itself, neither the entity's linked device (if any) is linked to any area.\n ? !entity.area_id && (this.areaDeviceIds.includes(entity.device_id ?? \"\") || !entity.device_id)\n // Area is a hass entity;\n // The entity's linked device or the entity itself is linked to the given area.\n : this.areaDeviceIds.includes(entity.device_id ?? \"\") || entity.area_id === this.area.area_id;\n\n return (!isLinusEntity && entityUnhidden && domainMatches && entityLinked);\n }\n\n /**\n * Get the keys of nested objects by its property value.\n *\n * @param {Object} object An object of objects.\n * @param {string|number} property The name of the property to evaluate.\n * @param {*} value The value which the property should match.\n *\n * @return {string[]} An array with keys.\n */\n static #getObjectKeysByPropertyValue(\n object: { [k: string]: any },\n property: string, value: any\n ): string[] {\n const keys: string[] = [];\n\n for (const key of Object.keys(object)) {\n if (object[key][property] === value) {\n keys.push(key);\n }\n }\n\n return keys;\n }\n\n /**\n * Logs an error message to the console.\n *\n * @param {string} userMessage - The error message to display.\n * @param {unknown} [e] - (Optional) The error object or additional information.\n *\n * @return {void}\n */\n static logError(userMessage: string, e?: unknown): void {\n if (Helper.debug) {\n console.error(userMessage, e);\n\n return;\n }\n\n console.error(userMessage);\n }\n\n /**\n * Get entity state.\n *\n * @return {HassEntity}\n */\n static getEntityState(entity_id: string): HassEntity {\n return this.#hassStates[entity_id]\n }\n\n /**\n * Get entity domain.\n *\n * @return {string}\n */\n static getEntityDomain(entityId: string): string {\n return entityId.split(\".\")[0];\n }\n\n /**\n * Get translation.\n *\n * @return {string}\n */\n static localize(translationKey: string): string | undefined {\n return this.#hassLocalize(translationKey);\n }\n\n /**\n * Get valid entity.\n *\n * @return {EntityRegistryEntry}\n */\n static getValidEntity(entity: EntityRegistryEntry): Boolean {\n return entity.disabled_by === null && entity.hidden_by === null\n }\n\n /**\n * Get Main Alarm entity.\n *\n * @return {EntityRegistryEntry}\n */\n static getAlarmEntity(): EntityRegistryEntry | undefined {\n return Helper.#entities.find(\n (entity) => entity.entity_id.startsWith(\"alarm_control_panel.\") && Helper.getValidEntity(entity),\n )\n }\n\n /**\n * Get Persons entity.\n *\n * @return {EntityRegistryEntry}\n */\n static getPersonsEntity(): EntityRegistryEntry[] | undefined {\n return Helper.#entities.filter(\n (entity) => entity.entity_id.startsWith(\"person.\") && Helper.getValidEntity(entity),\n )\n }\n\n /**\n * Get Cameras entity.\n *\n * @return {EntityRegistryEntry}\n */\n static getCamerasEntity(): EntityRegistryEntry[] | undefined {\n return Helper.#entities.filter(\n (entity) => entity.entity_id.startsWith(\"camera.\") && Helper.getValidEntity(entity),\n )\n }\n}\n\nexport { Helper };\n","import {Helper} from \"../Helper\";\nimport {cards} from \"../types/strategy/cards\";\nimport {generic} from \"../types/strategy/generic\";\nimport {EntityCardConfig} from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n/**\n * Abstract Card Class\n *\n * To create a new card, extend the new class with this one.\n *\n * @class\n * @abstract\n */\nabstract class AbstractCard {\n /**\n * Entity to create the card for.\n *\n * @type {generic.RegistryEntry}\n */\n entity: generic.RegistryEntry;\n\n /**\n * Configuration of the card.\n *\n * @type {EntityCardConfig}\n */\n config: EntityCardConfig = {\n type: \"custom:mushroom-entity-card\",\n icon: \"mdi:help-circle\",\n };\n\n /**\n * Class constructor.\n *\n * @param {generic.RegistryEntry} entity The hass entity to create a card for.\n * @throws {Error} If the Helper module isn't initialized.\n */\n protected constructor(entity: generic.RegistryEntry) {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n\n this.entity = entity;\n }\n\n /**\n * Get a card.\n *\n * @return {cards.AbstractCardConfig} A card object.\n */\n getCard(): cards.AbstractCardConfig {\n return {\n ...this.config,\n entity: \"entity_id\" in this.entity ? this.entity.entity_id : undefined,\n };\n }\n}\n\nexport {AbstractCard};\n","import { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig } from \"../types/homeassistant/data/lovelace\";\nimport { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport { getAggregateEntity, getStateContent, groupBy } from \"../utils\";\nimport { Helper } from \"../Helper\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\n\ninterface AggregateCardConfig {\n title?: string;\n subtitle?: string;\n device_name?: string;\n device_class?: string | string[];\n}\n\n/**\n * Aggregate Card class.\n *\n * Used for creating a Title Card with controls.\n *\n * @class\n */\nclass AggregateCard {\n /**\n * @type {string} The domain to control the entities of.\n * @private\n */\n readonly #domain: string;\n\n /**\n * Default configuration of the card.\n *\n * @type {AggregateCardConfig}\n * @private\n */\n readonly #defaultConfig: AggregateCardConfig = {\n device_name: \"Global\",\n };\n\n /**\n * Class constructor.\n *\n * @param {string} domain The domain to control the entities of.\n * @param {AggregateCardConfig} options Aggregate Card options.\n */\n constructor(domain: string, options: AggregateCardConfig = {}) {\n this.#domain = domain;\n this.#defaultConfig = {\n ...this.#defaultConfig,\n ...options,\n };\n }\n\n /**\n * Create a Aggregate card.\n *\n * @return {StackCardConfig} A Aggregate card.\n */\n createCard(): StackCardConfig {\n\n const domains = typeof (this.#domain) === \"string\" ? [this.#domain] : this.#domain;\n const deviceClasses = this.#defaultConfig.device_class && typeof (this.#defaultConfig.device_class) === \"string\" ? [this.#defaultConfig.device_class] : this.#defaultConfig.device_class;\n\n const cards: LovelaceCardConfig[] = [];\n\n const globalEntities = getAggregateEntity(Helper.magicAreasDevices[\"global\"], domains, deviceClasses)[0] ?? false\n\n if (globalEntities) {\n cards.push({\n type: \"tile\",\n entity: globalEntities.entity_id,\n state_content: getStateContent(globalEntities.entity_id),\n color: globalEntities.entity_id.startsWith('binary_sensor.') ? 'red' : false,\n icon_tap_action: this.#domain === \"light\" ? \"more-info\" : \"toggle\",\n });\n }\n\n const areasByFloor = groupBy(Helper.areas, (e) => e.floor_id ?? \"undisclosed\");\n\n for (const floor of [...Helper.floors, Helper.strategyOptions.floors.undisclosed]) {\n\n if (!(floor.floor_id in areasByFloor) || areasByFloor[floor.floor_id].length === 0) continue\n\n let floorCards: (TemplateCardConfig)[] = [];\n floorCards.push({\n type: \"custom:mushroom-title-card\",\n subtitle: floor.name,\n card_mod: {\n style: `\n ha-card.header {\n padding-top: 8px;\n }\n `,\n }\n });\n\n let areaCards: (TemplateCardConfig)[] = [];\n\n for (const [i, area] of areasByFloor[floor.floor_id].entries()) {\n\n if (Helper.strategyOptions.areas[area.area_id]?.hidden) continue\n\n if (area.area_id !== \"undisclosed\") {\n const areaEntities = getAggregateEntity(Helper.magicAreasDevices[area.name], domains, deviceClasses).map(e => e.entity_id).filter(Boolean)\n\n for (const areaEntity of areaEntities) {\n areaCards.push({\n type: \"tile\",\n entity: areaEntity,\n primary: area.name,\n state_content: getStateContent(areaEntity),\n color: areaEntity.startsWith('binary_sensor.') ? 'red' : false,\n });\n }\n }\n\n // Horizontally group every two area cards if all cards are created.\n if (i === areasByFloor[floor.floor_id].length - 1) {\n for (let i = 0; i < areaCards.length; i += 2) {\n floorCards.push({\n type: \"horizontal-stack\",\n cards: areaCards.slice(i, i + 2),\n });\n }\n }\n\n }\n\n if (areaCards.length === 0) floorCards.pop()\n\n if (floorCards.length > 1) cards.push(...floorCards)\n\n }\n\n return {\n type: \"vertical-stack\",\n cards: cards,\n };\n }\n}\n\nexport { AggregateCard };\n","import { AbstractCard } from \"./AbstractCard\";\nimport { EntityRegistryEntry } from \"../types/homeassistant/data/entity_registry\";\nimport { TileCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Alarm Card Class\n *\n * Used to create a card for controlling an entity of the fan domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass AlarmCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {TileCardConfig}\n * @private\n */\n #defaultConfig: TileCardConfig = {\n type: \"tile\",\n entity: undefined,\n icon: undefined,\n features: [\n {\n type: \"alarm-modes\",\n modes: [\"armed_home\", \"armed_away\", \"armed_night\", \"armed_vacation\", \"armed_custom_bypass\", \"disarmed\"]\n }\n ]\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig);\n }\n}\n\nexport { AlarmCard };\n","import { AbstractCard } from \"./AbstractCard\";\nimport { cards } from \"../types/strategy/cards\";\nimport { AreaRegistryEntry } from \"../types/homeassistant/data/area_registry\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { Helper } from \"../Helper\";\nimport { LightControlChip } from \"../chips/LightControlChip\";\nimport { LinusLightChip } from \"../chips/LinusLightChip\";\nimport { LinusClimateChip } from \"../chips/LinusClimateChip\";\nimport { LinusAggregateChip } from \"../chips/LinusAggregateChip\";\nimport { AreaStateChip } from \"../chips/AreaStateChip\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\n\n// Utility function to generate badge icon and color\nconst getBadgeIcon = (entityId: string) => `\n {% set bl = states('${entityId}') %}\n {% if bl == 'unknown' or bl == 'unavailable' %}\n {% elif bl | int() < 10 %} mdi:battery-outline\n {% elif bl | int() < 20 %} mdi:battery-10\n {% elif bl | int() < 30 %} mdi:battery-20\n {% elif bl | int() < 40 %} mdi:battery-30\n {% elif bl | int() < 50 %} mdi:battery-40\n {% elif bl | int() < 60 %} mdi:battery-50\n {% elif bl | int() < 70 %} mdi:battery-60\n {% elif bl | int() < 80 %} mdi:battery-70\n {% elif bl | int() < 90 %} mdi:battery-80\n {% elif bl | int() < 100 %} mdi:battery-90\n {% elif bl | int() == 100 %} mdi:battery\n {% else %} mdi:battery-unknown\n {% endif %}\n`;\n\nconst getBadgeColor = (entityId: string) => `\n {% set bl = states('${entityId}') %}\n {% if bl == 'unknown' or bl == 'unavailable' %} disabled\n {% elif bl | int() < 10 %} red\n {% elif bl | int() < 20 %} red\n {% elif bl | int() < 30 %} red\n {% elif bl | int() < 40 %} orange\n {% elif bl | int() < 50 %} orange\n {% elif bl | int() < 60 %} green\n {% elif bl | int() < 70 %} green\n {% elif bl | int() < 80 %} green\n {% elif bl | int() < 90 %} green\n {% elif bl | int() == 100 %} green\n {% else %} disabled\n {% endif %}\n`;\n\nclass AreaCard extends AbstractCard {\n constructor(area: AreaRegistryEntry, options: cards.TemplateCardOptions = {}) {\n super(area);\n const device = Helper.magicAreasDevices[area.area_id];\n const defaultConfig = this.getDefaultConfig(area, device);\n this.config = { ...this.config, ...defaultConfig, ...options };\n }\n\n getDefaultConfig(area: AreaRegistryEntry, device: MagicAreaRegistryEntry): TemplateCardConfig {\n if (area.area_id === \"undisclosed\") {\n return this.getUndisclosedAreaConfig(area);\n }\n\n const { area_state, all_lights, aggregate_temperature, aggregate_battery, aggregate_health, aggregate_window, aggregate_door, aggregate_cover, aggregate_climate, light_control } = device?.entities || {};\n const icon = area.icon || \"mdi:home-outline\";\n\n return {\n type: \"custom:stack-in-card\",\n cards: [\n this.getMainCard(area, icon, aggregate_temperature, aggregate_battery, area_state),\n this.getChipsCard(area, device, area_state, aggregate_health, aggregate_window, aggregate_door, aggregate_cover, aggregate_climate, all_lights, light_control),\n this.getLightCard(all_lights)\n ]\n };\n }\n\n getUndisclosedAreaConfig(area: AreaRegistryEntry): TemplateCardConfig {\n return {\n type: \"custom:mushroom-template-card\",\n primary: area.name,\n icon: \"mdi:devices\",\n icon_color: \"grey\",\n fill_container: true,\n layout: \"horizontal\",\n tap_action: { action: \"navigate\", navigation_path: area.area_id },\n card_mod: { style: this.getCardModStyle() }\n };\n }\n\n getMainCard(area: AreaRegistryEntry, icon: string, aggregate_temperature: any, aggregate_battery: any, area_state: any): any {\n return {\n type: \"custom:mushroom-template-card\",\n primary: area.name,\n secondary: this.getTemperatureTemplate(aggregate_temperature),\n icon: icon,\n icon_color: this.getIconColorTemplate(area_state),\n fill_container: true,\n layout: \"horizontal\",\n badge_icon: getBadgeIcon(aggregate_battery?.entity_id),\n badge_color: getBadgeColor(aggregate_battery?.entity_id),\n tap_action: { action: \"navigate\", navigation_path: area.area_id },\n card_mod: { style: this.getCardModStyle() }\n };\n }\n\n getChipsCard(area: AreaRegistryEntry, device: MagicAreaRegistryEntry, area_state: any, aggregate_health: any, aggregate_window: any, aggregate_door: any, aggregate_cover: any, aggregate_climate: any, all_lights: any, light_control: any): any {\n return {\n type: \"custom:mushroom-chips-card\",\n alignment: \"end\",\n chips: [\n this.getConditionalChip(area_state?.entity_id, \"unavailable\", new AreaStateChip(device).getChip()),\n this.getConditionalChip(aggregate_health?.entity_id, \"on\", new LinusAggregateChip(device, \"health\").getChip()),\n this.getConditionalChip(aggregate_window?.entity_id, \"on\", new LinusAggregateChip(device, \"window\").getChip()),\n this.getConditionalChip(aggregate_door?.entity_id, \"on\", new LinusAggregateChip(device, \"door\").getChip()),\n this.getConditionalChip(aggregate_cover?.entity_id, \"on\", new LinusAggregateChip(device, \"cover\").getChip()),\n this.getConditionalChip(aggregate_climate?.entity_id, \"unavailable\", new LinusClimateChip(device).getChip()),\n this.getConditionalChip(all_lights?.entity_id, \"unavailable\", new LinusLightChip(device, area.area_id).getChip()),\n this.getConditionalChip(all_lights?.entity_id, \"unavailable\", new LightControlChip(light_control?.entity_id).getChip())\n ].filter(Boolean),\n card_mod: { style: this.getChipsCardModStyle() }\n };\n }\n\n getLightCard(all_lights: any): any {\n return {\n type: \"custom:mushroom-light-card\",\n entity: all_lights?.entity_id,\n show_brightness_control: true,\n icon_type: \"none\",\n primary_info: \"none\",\n secondary_info: \"none\",\n use_light_color: true,\n card_mod: { style: this.getLightCardModStyle() }\n };\n }\n\n getTemperatureTemplate(aggregate_temperature: any): string {\n if (!aggregate_temperature) return Helper.getAverageStateTemplate(\"temperature\");\n return `\n {% set t = states('${aggregate_temperature?.entity_id}') %}\n {% if t != 'unknown' and t != 'unavailable' %}\n {{ t | float | round(1) }}{{ state_attr('${aggregate_temperature?.entity_id}', 'unit_of_measurement')}}\n {% endif %}\n `;\n }\n\n getIconColorTemplate(area_state: any): string {\n return `\n {{ \"indigo\" if \"dark\" in state_attr('${area_state?.entity_id}', 'states') else \"amber\" }}\n `;\n }\n\n getConditionalChip(entityId: string, state: string, chip: any): any {\n return entityId && {\n type: \"conditional\",\n conditions: [{ entity: entityId, state_not: state }],\n chip: chip\n };\n }\n\n getCardModStyle(): string {\n return `\n :host {\n background: #1f1f1f;\n height: 66px;\n }\n mushroom-badge-icon {\n left: 178px;\n top: 17px;\n }\n ha-card {\n box-shadow: none!important;\n border: none;\n }\n ha-state-icon {\n --icon-symbol-size: 30px;\n }\n\n `;\n }\n\n getChipsCardModStyle(): string {\n return `\n ha-card {\n --chip-box-shadow: none;\n --chip-spacing: 0px;\n width: -webkit-fill-available;\n }\n `;\n }\n\n getLightCardModStyle(): string {\n return `\n ha-card {\n box-shadow: none!important;\n border: none;\n }\n\n #TODO: Fix this\n mushroom-light-brightness-control$:\n mushroom-slider$: |\n .slider {\n width: 16px !important;\n height: 16px !important;\n }\n mushroom-light-color-control$:\n mushroom-slider$: |\n .slider {\n width: 16px !important;\n height: 16px !important;\n }\n mushroom-light-color-temp-control$:\n mushroom-slider$: |\n .slider {\n width: 16px !important;\n height: 16px !important;\n }\n .: |\n mushroom-light-brightness-control {\n height: 16px;\n }\n mushroom-light-color-control {\n height: 16px;\n }\n mushroom-light-color-temp-control {\n height: 16px;\n }\n }\n\n\n `;\n }\n}\n\nexport { AreaCard };\n","import { SensorCard } from \"./SensorCard\";\nimport { cards } from \"../types/strategy/cards\";\nimport { EntityRegistryEntry } from \"../types/homeassistant/data/entity_registry\";\nimport { EntityCardConfig } from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Sensor Card Class\n *\n * Used to create a card for controlling an entity of the binary_sensor domain.\n *\n * @class\n * @extends SensorCard\n */\nclass BinarySensorCard extends SensorCard {\n /**\n * Default configuration of the card.\n *\n * @type {EntityCardConfig}\n * @private\n */\n #defaultConfig: EntityCardConfig = {\n type: \"tile\",\n icon: undefined,\n state_content: \"last_changed\",\n vertical: false,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.EntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.EntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { BinarySensorCard };\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {PictureEntityCardConfig} from \"../types/homeassistant/panels/lovelave/cards/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Camera Card Class\n *\n * Used to create a card for controlling an entity of the camera domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass CameraCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {PictureEntityCardConfig}\n * @private\n */\n #defaultConfig: PictureEntityCardConfig = {\n entity: \"\",\n type: \"picture-entity\",\n show_name: false,\n show_state: false,\n camera_view: \"live\",\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.PictureEntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.PictureEntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {CameraCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {ClimateCardConfig} from \"../types/lovelace-mushroom/cards/climate-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Card Class\n *\n * Used to create a card for controlling an entity of the climate domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass ClimateCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {ClimateCardConfig}\n * @private\n */\n #defaultConfig: ClimateCardConfig = {\n type: \"thermostat\",\n icon: undefined,\n vertical: false,\n features: [\n {\n type: \"target-temperature\"\n },\n {\n type: \"climate-preset-modes\",\n style: \"icons\",\n preset_modes: [\"home\",\"eco\", \"comfort\", \"away\", \"boost\"]\n },\n {\n type: \"climate-hvac-modes\",\n hvac_modes: [\n \"auto\",\n \"heat_cool\",\n \"heat\",\n \"cool\",\n \"dry\",\n \"fan_only\",\n \"off\",\n ]\n },\n {\n type: \"climate-fan-modes\",\n style: \"icons\",\n fan_modes: [\n \"off\",\n \"low\",\n \"medium\",\n \"high\",\n ]\n }\n ],\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.ClimateCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.ClimateCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {ClimateCard};\n","import { cards } from \"../types/strategy/cards\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig } from \"../types/homeassistant/data/lovelace\";\nimport { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport { Helper } from \"../Helper\";\n\n/**\n * Controller Card class.\n *\n * Used for creating a Title Card with controls.\n *\n * @class\n */\nclass ControllerCard {\n /**\n * @type {HassServiceTarget} The target to control the entities of.\n * @private\n */\n readonly #target: HassServiceTarget;\n\n /**\n * Default configuration of the card.\n *\n * @type {cards.ControllerCardConfig}\n * @private\n */\n readonly #defaultConfig: cards.ControllerCardConfig = {\n type: \"custom:mushroom-title-card\",\n showControls: true,\n iconOn: \"mdi:power-on\",\n iconOff: \"mdi:power-off\",\n onService: \"none\",\n offService: \"none\",\n };\n\n /**\n * Class constructor.\n *\n * @param {HassServiceTarget} target The target to control the entities of.\n * @param {cards.ControllerCardOptions} options Controller Card options.\n */\n constructor(target: HassServiceTarget, options: cards.ControllerCardOptions = {}) {\n this.#target = target;\n this.#defaultConfig = {\n ...this.#defaultConfig,\n ...options,\n };\n }\n\n /**\n * Create a Controller card.\n *\n * @return {StackCardConfig} A Controller card.\n */\n createCard(): StackCardConfig {\n const cards: LovelaceCardConfig[] = [\n {\n type: \"custom:mushroom-title-card\",\n title: this.#defaultConfig.title,\n subtitle: this.#defaultConfig.subtitle,\n },\n ];\n\n if (this.#defaultConfig.showControls || this.#defaultConfig.extraControls) {\n const areaId = Array.isArray(this.#target.area_id) ? this.#target.area_id[0] : this.#target.area_id;\n const linusDevice = areaId ? Helper.magicAreasDevices[areaId] : undefined;\n\n cards.push({\n type: \"custom:mushroom-chips-card\",\n alignment: \"end\",\n chips: [\n (this.#defaultConfig.showControls &&\n (this.#target.entity_id && typeof this.#target.entity_id === \"string\" ?\n {\n type: \"template\",\n entity: this.#target.entity_id,\n icon: `{{ '${this.#defaultConfig.iconOn}' if states(entity) == 'on' else '${this.#defaultConfig.iconOff}' }}`,\n icon_color: `{{ 'amber' if states(entity) == 'on' else 'red' }}`,\n tap_action: {\n action: \"toggle\"\n },\n hold_action: {\n action: \"more-info\"\n }\n } :\n {\n type: \"template\",\n entity: this.#target.entity_id,\n icon: this.#defaultConfig.iconOff,\n tap_action: {\n action: \"call-service\",\n service: this.#defaultConfig.offService,\n target: this.#target,\n data: {},\n },\n })\n ),\n ...(this.#defaultConfig.extraControls && this.#target ? this.#defaultConfig.extraControls(linusDevice) : [])\n ],\n card_mod: {\n style: `ha-card {padding: var(--title-padding);}`\n }\n });\n }\n\n return {\n type: \"horizontal-stack\",\n cards: cards,\n };\n }\n}\n\nexport { ControllerCard };\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {CoverCardConfig} from \"../types/lovelace-mushroom/cards/cover-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Cover Card Class\n *\n * Used to create a card for controlling an entity of the cover domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass CoverCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {CoverCardConfig}\n * @private\n */\n #defaultConfig: CoverCardConfig = {\n type: \"tile\",\n icon: undefined,\n features: [\n {\n type: \"cover-open-close\"\n }\n ]\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.CoverCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.CoverCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {CoverCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {FanCardConfig} from \"../types/lovelace-mushroom/cards/fan-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Fan Card Class\n *\n * Used to create a card for controlling an entity of the fan domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass FanCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {FanCardConfig}\n * @private\n */\n #defaultConfig: FanCardConfig = {\n type: \"tile\",\n icon: undefined,\n features:[\n {\n type: \"fan-speed\"\n }\n ]\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.FanCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.FanCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {FanCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {AreaRegistryEntry} from \"../types/homeassistant/data/area_registry\";\nimport {AreaCardConfig} from \"../types/homeassistant/lovelace/cards/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * HA Area Card Class\n *\n * Used to create a card for an entity of the area domain using the built-in type 'area'.\n *\n * @class\n * @extends AbstractCard\n */\nclass AreaCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {AreaCardConfig}\n * @private\n */\n #defaultConfig: AreaCardConfig = {\n type: \"area\",\n area: \"\",\n };\n\n /**\n * Class constructor.\n *\n * @param {AreaRegistryEntry} area The area entity to create a card for.\n * @param {cards.AreaCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n\n constructor(area: AreaRegistryEntry, options: cards.AreaCardOptions = {}) {\n super(area);\n\n // Initialize the default configuration.\n this.#defaultConfig.area = area.area_id;\n this.#defaultConfig.navigation_path = this.#defaultConfig.area;\n\n // Enforce the card type.\n delete options.type;\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {AreaCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {LightCardConfig} from \"../types/lovelace-mushroom/cards/light-card-config\";\nimport {generic} from \"../types/strategy/generic\";\nimport isCallServiceActionConfig = generic.isCallServiceActionConfig;\nimport isCallServiceActionTarget = generic.isCallServiceActionTarget;\n\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Card Class\n *\n * Used to create a card for controlling an entity of the light domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass LightCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {LightCardConfig}\n * @private\n */\n #defaultConfig: LightCardConfig = {\n type: \"tile\",\n icon: undefined,\n vertical: false,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.LightCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.LightCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {LightCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {LockCardConfig} from \"../types/lovelace-mushroom/cards/lock-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Lock Card Class\n *\n * Used to create a card for controlling an entity of the lock domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass LockCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {LockCardConfig}\n * @private\n */\n #defaultConfig: LockCardConfig = {\n type: \"custom:mushroom-lock-card\",\n icon: undefined,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.LockCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.LockCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {LockCard};\n","import { AbstractCard } from \"./AbstractCard\";\nimport { cards } from \"../types/strategy/cards\";\nimport { AreaRegistryEntry } from \"../types/homeassistant/data/area_registry\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { Helper } from \"../Helper\";\nimport { LinusAggregateChip } from \"../chips/LinusAggregateChip\";\nimport { AreaStateChip } from \"../chips/AreaStateChip\";\n\nimport { AreaScenesChips } from \"../chips/AreaScenesChips\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Area Card Class\n *\n * Used to create a card for an entity of the area domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass MainAreaCard extends AbstractCard {\n\n getDefaultConfig(area: AreaRegistryEntry): TemplateCardConfig {\n\n const device = Helper.magicAreasDevices[area.area_id];\n\n if (!device) {\n return {\n type: \"custom:layout-card\",\n cards: [{ type: \"markdown\", content: `Area ${area.name} is empty.` }]\n }\n }\n\n const {\n area_state,\n aggregate_temperature,\n aggregate_humidity,\n aggregate_illuminance,\n aggregate_window,\n aggregate_door,\n aggregate_health,\n aggregate_cover,\n } = device?.entities ?? {}\n\n return {\n type: \"custom:layout-card\",\n layout_type: \"custom:masonry-layout\",\n card_mod: {\n },\n cards: [\n {\n type: \"custom:mod-card\",\n style: `\n ha-card {\n position: relative;\n }\n .card-content {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n `,\n card: {\n type: \"vertical-stack\",\n cards: [\n\n {\n type: \"custom:mushroom-chips-card\",\n alignment: \"end\",\n chips: [\n aggregate_temperature?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_temperature?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"temperature\", true, true).getChip(),\n },\n aggregate_humidity?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_humidity?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"humidity\", true, true).getChip(),\n },\n aggregate_illuminance?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_illuminance?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"illuminance\", true, true).getChip(),\n },\n ].filter(Boolean),\n card_mod: {\n style: `\n ha-card {\n position: absolute;\n top: 24px;\n left: 0px;\n right: 8px;\n z-index: 2;\n }\n `\n }\n },\n {\n type: \"custom:mushroom-chips-card\",\n alignment: \"end\",\n chips: [\n aggregate_window?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_window?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"window\", true, true).getChip(),\n },\n aggregate_door?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_door?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"door\", true, true).getChip(),\n },\n aggregate_health?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_health?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"health\", true, true).getChip(),\n },\n aggregate_cover?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_cover?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"cover\", true, true).getChip(),\n },\n area_state?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: area_state?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new AreaStateChip(device, true).getChip(),\n },\n ].filter(Boolean),\n card_mod: {\n style: `\n ha-card {\n position: absolute;\n bottom: 8px;\n left: 0px;\n right: 8px;\n z-index: 2;\n }\n `\n }\n },\n\n {\n type: \"area\",\n area: area.area_id,\n show_camera: true,\n alert_classes: [],\n sensor_classes: [],\n aspect_ratio: \"16:9\",\n\n card_mod: {\n style: `\n ha-card {\n position: relative;\n z-index: 1;\n }\n .sensors {\n display: none;\n }\n .buttons {\n display: none;\n }\n `\n }\n }\n ]\n }\n },\n (device?.entities.all_lights && device?.entities.all_lights.entity_id !== \"unavailable\" ? {\n type: \"custom:mushroom-chips-card\",\n alignment: \"center\",\n chips: new AreaScenesChips(device, area).getChips()\n } : undefined)\n ].filter(Boolean)\n }\n }\n\n /**\n * Class constructor.\n *\n * @param {AreaRegistryEntry} area The area entity to create a card for.\n * @param {cards.TemplateCardOptions} [options={}] Options for the card.\n *\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(area: AreaRegistryEntry, options: cards.TemplateCardOptions = {}) {\n super(area);\n\n // Don't override the default card type if default is set in the strategy options.\n if (options.type === \"LinusMainAreaCard\") {\n delete options.type;\n }\n\n const defaultConfig = this.getDefaultConfig(area)\n\n this.config = Object.assign(this.config, defaultConfig, options);\n }\n}\n\nexport { MainAreaCard };\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {MediaPlayerCardConfig} from \"../types/lovelace-mushroom/cards/media-player-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Mediaplayer Card Class\n *\n * Used to create a card for controlling an entity of the media_player domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass MediaPlayerCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {MediaPlayerCardConfig}\n * @private\n */\n #defaultConfig: MediaPlayerCardConfig = {\n type: \"custom:mushroom-media-player-card\",\n use_media_info: true,\n media_controls: [\n \"on_off\",\n \"play_pause_stop\",\n ],\n show_volume_level: true,\n volume_controls: [\n \"volume_mute\",\n \"volume_set\",\n \"volume_buttons\",\n ],\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.MediaPlayerCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.MediaPlayerCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {MediaPlayerCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {EntityCardConfig} from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n/**\n * Miscellaneous Card Class\n *\n * Used to create a card an entity of any domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass MiscellaneousCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {EntityCardConfig}\n * @private\n */\n #defaultConfig: EntityCardConfig = {\n type: \"tile\",\n icon: undefined,\n vertical: false,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.EntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.EntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {MiscellaneousCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {NumberCardConfig} from \"../types/lovelace-mushroom/cards/number-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported\n/**\n * Number Card Class\n *\n * Used to create a card for controlling an entity of the number domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass NumberCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {NumberCardConfig}\n * @private\n */\n #defaultConfig: NumberCardConfig = {\n type: \"custom:mushroom-number-card\",\n icon: undefined,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.NumberCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.NumberCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {NumberCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {PersonCardConfig} from \"../types/lovelace-mushroom/cards/person-card-config\";\n\n/**\n * Person Card Class\n *\n * Used to create a card for an entity of the Person domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass PersonCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {PersonCardConfig}\n * @private\n */\n #defaultConfig: PersonCardConfig = {\n type: \"custom:mushroom-person-card\",\n layout: \"vertical\",\n primary_info: \"none\",\n secondary_info: \"none\",\n icon_type: \"entity-picture\",\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.PersonCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.PersonCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {PersonCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport { SceneCardConfig } from \"../types/lovelace-mushroom/cards/scene-card-config\";\n\n/**\n * Scene Card Class\n *\n * Used to create a card for an entity of the Scene domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass SceneCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {SceneCardConfig}\n * @private\n */\n #defaultConfig: SceneCardConfig = {\n type: \"tile\",\n icon: undefined,\n vertical: false,\n icon_type: \"entity-picture\",\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.SceneCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.SceneCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {SceneCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {EntityCardConfig} from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n/**\n * Sensor Card Class\n *\n * Used to create a card for controlling an entity of the sensor domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass SensorCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {EntityCardConfig}\n * @private\n */\n #defaultConfig: EntityCardConfig = {\n type: \"custom:mushroom-entity-card\",\n icon: \"mdi:information\",\n animate: true,\n line_color: \"green\",\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.EntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.EntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {SensorCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport { SwipeCardConfig } from \"../types/lovelace-mushroom/cards/swipe-card-config\";\nimport { SwiperOptions } from \"swiper/types/swiper-options\";\nimport { EntityCardConfig } from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Swipe Card Class\n *\n * Used to create a card for controlling an entity of the light domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass SwipeCard {\n\n /**\n * Configuration of the card.\n *\n * @type {SwipeCardConfig}\n */\n config: SwipeCardConfig = {\n type: \"custom:swipe-card\",\n start_card: 1,\n parameters: {\n centeredSlides: false,\n followFinger: true,\n spaceBetween: 16,\n grabCursor: true,\n },\n cards: [],\n };\n\n /**\n * Class constructor.\n *\n * @param {AbstractCard[]} cards The hass entity to create a card for.\n * @param {SwiperOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(cards: (AbstractCard | EntityCardConfig)[], options?: SwiperOptions) {\n\n this.config.cards = cards;\n\n const multipleSlicesPerView = 2.2\n const slidesPerView = cards.length > 2 ? multipleSlicesPerView : cards.length ?? 1\n\n this.config.parameters = {...this.config.parameters, slidesPerView, ...options};\n }\n\n /**\n * Get a card.\n *\n * @return {SwipeCardConfig} A card object.\n */\n getCard(): SwipeCardConfig {\n return {\n ...this.config,\n };\n }\n}\n\nexport {SwipeCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {EntityCardConfig} from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Switch Card Class\n *\n * Used to create a card for controlling an entity of the switch domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass SwitchCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {EntityCardConfig}\n * @private\n */\n #defaultConfig: EntityCardConfig = {\n type: \"tile\",\n icon: undefined,\n vertical: false,\n tap_action: {\n action: \"toggle\",\n },\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.EntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.EntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {SwitchCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {VACUUM_COMMANDS, VacuumCardConfig} from \"../types/lovelace-mushroom/cards/vacuum-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Vacuum Card Class\n *\n * Used to create a card for controlling an entity of the vacuum domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass VacuumCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {VacuumCardConfig}\n * @private\n */\n #defaultConfig: VacuumCardConfig = {\n type: \"custom:mushroom-vacuum-card\",\n icon: undefined,\n icon_animation: true,\n commands: [...VACUUM_COMMANDS],\n tap_action: {\n action: \"more-info\",\n }\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.VacuumCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.VacuumCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {VacuumCard};\n","import { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport { LovelaceChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { Helper } from \"../Helper\";\nimport { generic } from \"../types/strategy/generic\";\nimport isCallServiceActionConfig = generic.isCallServiceActionConfig;\n\n/**\n * Abstract Chip class.\n *\n * To create a new chip, extend this one.\n *\n * @class\n * @abstract\n */\nabstract class AbstractChip {\n /**\n * Configuration of the chip.\n *\n * @type {LovelaceChipConfig}\n */\n config: LovelaceChipConfig = {\n type: \"template\"\n };\n\n /**\n * Class Constructor.\n */\n protected constructor() {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n }\n\n // noinspection JSUnusedGlobalSymbols Method is called on dymanically imported classes.\n /**\n * Get the chip.\n *\n * @returns {LovelaceChipConfig} A chip.\n */\n getChip(): LovelaceChipConfig {\n return this.config;\n }\n\n /**\n * Set the target to switch.\n *\n * @param {HassServiceTarget} target Target to switch.\n */\n setTapActionTarget(target: HassServiceTarget) {\n if (\"tap_action\" in this.config && isCallServiceActionConfig(this.config.tap_action)) {\n this.config.tap_action.target = target;\n\n return;\n }\n\n if (Helper.debug) {\n console.warn(\n this.constructor.name\n + \" - Target not set: Invalid target or tap action.\");\n }\n }\n}\n\nexport { AbstractChip };\n","import { chips } from \"../types/strategy/chips\";\nimport { AlarmChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { navigateTo } from \"../utils\";\n\n// noinspection JSUnusedGlobalSymbols False positive.\n/**\n * Alarm Chip class.\n *\n * Used to create a chip for showing the alarm.\n */\nclass AlarmChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @private\n * @readonly\n */\n readonly #defaultConfig: AlarmChipConfig = {\n type: \"alarm-control-panel\",\n tap_action: navigateTo('security')\n };\n\n /**\n * Class Constructor.\n *\n * @param {string} entityId Id of a alarm entity.\n * @param {chips.AlarmChipOptions} options Alarm Chip options.\n */\n constructor(entityId: string, options: chips.AlarmChipOptions = {}) {\n super();\n this.#defaultConfig = {\n ...this.#defaultConfig,\n ...{ entity: entityId },\n ...options,\n };\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { AlarmChip };\n","import { shiftIterator } from \"superstruct/dist/utils\";\nimport { Helper } from \"../Helper\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { LovelaceChipConfig, TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN, todOrder } from \"../variables\";\nimport { slugify } from \"../utils\";\nimport { AreaRegistryEntry } from \"../types/homeassistant/data/area_registry\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Area selects Chips class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass AreaScenesChips {\n /**\n * Configuration of the chip.\n *\n * @type {LovelaceChipConfig[]}\n */\n config: LovelaceChipConfig[] = [];\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry, area: AreaRegistryEntry): TemplateChipConfig[] {\n\n const selects = todOrder.map(tod => Helper.getEntityState(device?.entities[`scene_${tod as 'morning'}`]?.entity_id)).filter(Boolean)\n\n const chips = [] as TemplateChipConfig[]\n\n if (selects.find(scene => scene?.state == \"Adaptive lighting\")) {\n chips.push({\n type: \"template\",\n icon: \"mdi:theme-light-dark\",\n content: \"AD\",\n tap_action: {\n action: \"call-service\",\n service: `${DOMAIN}.area_light_adapt`,\n data: {\n area: slugify(device.name),\n }\n },\n })\n }\n\n selects.forEach((scene, index) => {\n if (scene?.state === \"Scène instantanée\") {\n const entity_id = `scene.${slugify(device.name)}_${todOrder[index]}_snapshot_scene`\n chips.push({\n type: \"template\",\n entity: scene?.entity_id,\n icon: scene?.attributes.icon,\n content: todOrder[index],\n tap_action: {\n action: \"call-service\",\n service: \"scene.turn_on\",\n data: { entity_id }\n },\n hold_action: {\n action: \"more-info\"\n }\n })\n } else if (scene?.state !== \"Adaptive lighting\") {\n const sceneEntity_id = Helper.getStateEntities(area, \"scene\").find(s => s.attributes.friendly_name === scene?.state)?.entity_id\n chips.push({\n type: \"template\",\n entity: scene?.entity_id,\n icon: scene?.attributes.icon,\n content: todOrder[index],\n tap_action: {\n action: \"call-service\",\n service: \"scene.turn_on\",\n data: {\n entity_id: sceneEntity_id,\n }\n },\n hold_action: {\n action: \"more-info\"\n }\n })\n }\n })\n\n return chips\n\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, area: AreaRegistryEntry) {\n\n this.config = this.getDefaultConfig(device, area);\n\n }\n\n\n // noinspection JSUnusedGlobalSymbols Method is called on dymanically imported classes.\n /**\n * Get the chip.\n *\n * @returns {LovelaceChipConfig} A chip.\n */\n getChips(): LovelaceChipConfig[] {\n return this.config;\n }\n}\n\nexport { AreaScenesChips };\n","import { AreaInformations } from \"../popups/AreaInformationsPopup\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { ConditionalChipConfig, TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AREA_STATE_ICONS, DEVICE_ICONS, DOMAIN_ICONS } from \"../variables\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Area state Chip class.\n *\n * Used to create a chip to indicate area state.\n */\nclass AreaStateChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry, showContent: boolean = false): TemplateChipConfig {\n\n const { area_state, presence_hold, all_media_players, aggregate_motion } = device?.entities ?? {}\n return {\n \"type\": \"template\",\n \"entity\": area_state?.entity_id,\n \"icon_color\": `\n {% set presence_hold = states('${presence_hold?.entity_id}')%}\n {% set motion = states('${aggregate_motion?.entity_id}')%}\n {% set media_player = states('${all_media_players?.entity_id}')%}\n {% set bl = state_attr('${area_state?.entity_id}', 'states')%}\n {% if motion == 'on' %}\n red\n {% elif media_player in ['on', 'playing'] %}\n blue\n {% elif presence_hold == 'on' %}\n red\n {% elif 'sleep' in bl %}\n blue\n {% elif 'extended' in bl %}\n orange\n {% elif 'occupied' in bl %}\n grey\n {% else %}\n transparent\n {% endif %}\n `,\n \"icon\": `\n {% set presence_hold = states('${presence_hold?.entity_id}')%}\n {% set motion = states('${aggregate_motion?.entity_id}')%}\n {% set media_player = states('${all_media_players?.entity_id}')%}\n {% set bl = state_attr('${area_state?.entity_id}', 'states')%}\n {% if motion == 'on' %}\n ${DOMAIN_ICONS.motion}\n {% elif media_player in ['on', 'playing'] %}\n ${DOMAIN_ICONS.media_player}\n {% elif presence_hold == 'on' %}\n ${DEVICE_ICONS.presence_hold}\n {% elif 'sleep' in bl %}\n ${AREA_STATE_ICONS.sleep}\n {% elif 'extended' in bl %}\n ${AREA_STATE_ICONS.extended}\n {% elif 'occupied' in bl %}\n ${AREA_STATE_ICONS.occupied}\n {% else %}\n ${AREA_STATE_ICONS.clear}\n {% endif %}`,\n \"content\": showContent ? `\n {% set presence_hold = states('${presence_hold?.entity_id}')%}\n {% set bl = state_attr('${area_state?.entity_id}', 'states')%}\n {% if presence_hold == 'on' %}\n presence_hold\n {% elif 'sleep' in bl %}\n sleep\n {% elif 'extended' in bl %}\n extended\n {% elif 'occupied' in bl %}\n occupied\n {% else %}\n clear\n {% endif %}` : \"\",\n \"tap_action\": new AreaInformations(device, true).getPopup() as any\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, showContent: boolean = false) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device, showContent)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { AreaStateChip };\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate how many climates are operating.\n */\nclass ClimateChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:thermostat\",\n icon_color: \"orange\",\n content: Helper.getCountTemplate(\"climate\", \"ne\", \"off\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"climates\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { ClimateChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Cover Chip class.\n *\n * Used to create a chip to indicate how many covers aren't closed.\n */\nclass CoverChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:window-open\",\n icon_color: \"cyan\",\n content: Helper.getCountTemplate(\"cover\", \"eq\", \"open\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"covers\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { CoverChip };\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_STATE_ICONS } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Door Chip class.\n *\n * Used to create a chip to indicate how many doors are operating.\n */\nclass DoorChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: DOMAIN_STATE_ICONS.binary_sensor.door.on,\n icon_color: \"grey\",\n content: Helper.getDeviceClassCountTemplate(\"binary_sensor\", \"door\", \"ne\", \"off\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"doors\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { DoorChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Fan Chip class.\n *\n * Used to create a chip to indicate how many fans are on and to turn all off.\n */\nclass FanChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:fan\",\n icon_color: \"green\",\n content: Helper.getCountTemplate(\"fan\", \"eq\", \"on\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"fans\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { FanChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LightChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:lightbulb-group\",\n icon_color: \"amber\",\n content: Helper.getCountTemplate(\"light\", \"eq\", \"on\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"lights\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(areaId: string, options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n }\n}\n\nexport { LightChip };\n","import {AbstractChip} from \"./AbstractChip\";\nimport {TemplateChipConfig} from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LightControlChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n entity: undefined,\n icon: \"mdi:lightbulb-auto\",\n icon_color: \"{% if is_state(config.entity, 'on') %}green{% else %}red{% endif %}\",\n tap_action: {\n action: \"more-info\"\n },\n // double_tap_action: {\n // action: \"call-service\",\n // service: \"switch.toggle\",\n // data: {\n // entity_id: undefined\n // }\n // }\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(entity_id: string) {\n super();\n\n this.#defaultConfig.entity = entity_id\n this.config = Object.assign(this.config, this.#defaultConfig);\n\n }\n}\n\nexport {LightControlChip};\n","import { AggregateAreaListPopup } from \"../popups/AggregateAreaListPopup\";\nimport { AggregateListPopup } from \"../popups/AggregateListPopup\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { ConditionalChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_ICONS } from \"../variables\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass LinusAggregateChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig | undefined}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry, deviceClass: string, showContent: boolean, by_area: boolean = false): ConditionalChipConfig | undefined {\n\n const entity = device?.entities[`aggregate_${deviceClass}`]\n\n if (!entity?.entity_id) return undefined\n\n const domain = entity?.entity_id.split(\".\")[0]\n\n let icon = DOMAIN_ICONS[deviceClass as \"motion\"]\n let icon_color = ''\n let content = ''\n\n if (domain === \"binary_sensor\") {\n icon_color = `{{ 'red' if expand(states.${entity?.entity_id}.attributes.sensors is defined and states.${entity?.entity_id}.attributes.sensors) | selectattr( 'state', 'eq', 'on') | list | count > 0 else 'grey' }}`\n content = showContent ? `{{ expand(states.${entity?.entity_id}.attributes.sensors is defined and states.${entity?.entity_id}.attributes.sensors) | selectattr( 'state', 'eq', 'on') | list | count }}` : \"\"\n }\n\n if (domain === \"sensor\") {\n if (deviceClass === \"battery\") {\n icon_color = `{% set bl = states('${entity?.entity_id}') %}\n {% if bl == 'unknown' or bl == 'unavailable' %}\n {% elif bl | int() < 30 %} red\n {% elif bl | int() < 50 %} orange\n {% elif bl | int() <= 100 %} green\n {% else %} disabled{% endif %}`\n icon = `{% set bl = states('${entity?.entity_id}') %}\n {% if bl == 'unknown' or bl == 'unavailable' %}\n {% elif bl | int() < 10 %}mdi:battery-outline\n {% elif bl | int() < 20 %} mdi:battery1\n {% elif bl | int() < 30 %} mdi:battery-20\n {% elif bl | int() < 40 %} mdi:battery-30\n {% elif bl | int() < 50 %} mdi:battery-40\n {% elif bl | int() < 60 %} mdi:battery-50\n {% elif bl | int() < 70 %} mdi:battery-60\n {% elif bl | int() < 80 %} mdi:battery-70\n {% elif bl | int() < 90 %} mdi:battery-80\n {% elif bl | int() < 100 %} mdi:battery-90\n {% elif bl | int() == 100 %} mdi:battery\n {% else %} mdi:battery{% endif %} `\n content = showContent ? `{{ states('${entity?.entity_id}') | int | round(1) }} %` : \"\"\n }\n if (deviceClass === \"temperature\") icon_color = `{% set bl = states('${entity?.entity_id}') | int() %} {% if bl < 20 %} blue\n {% elif bl < 30 %} orange\n {% elif bl >= 30 %} red{% else %} disabled{% endif %}`\n if (deviceClass === \"illuminance\") icon_color = `{{ 'blue' if 'dark' in state_attr('${device?.entities.area_state?.entity_id}', 'states') else 'amber' }}`\n\n content = showContent ? `{{ states.${entity?.entity_id}.state | float | round(1) }} {{ states.${entity?.entity_id}.attributes.unit_of_measurement }}` : \"\"\n }\n\n if (deviceClass === \"cover\") {\n icon_color = `{{ 'red' if is_state('${entity?.entity_id}', 'open') else 'grey' }}`\n content = showContent ? `{{ expand(states.${entity?.entity_id}.attributes.entity_id) | selectattr( 'state', 'eq', 'open') | list | count }}` : \"\"\n }\n\n if (deviceClass === \"health\") {\n icon_color = `{{ 'red' if is_state(entity, 'on') else 'green' }}`\n }\n\n const tap_action = by_area ? new AggregateAreaListPopup(entity?.entity_id, deviceClass).getPopup() : new AggregateListPopup(entity?.entity_id, deviceClass).getPopup()\n\n return {\n type: \"conditional\",\n conditions: [\n {\n entity: entity?.entity_id ?? \"\",\n state_not: \"unavailable\"\n }\n ],\n chip: {\n type: \"template\",\n entity: entity?.entity_id,\n icon_color: icon_color,\n icon: icon,\n content: content,\n tap_action: tap_action\n },\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, deviceClass: string, showContent: boolean = false, by_area: boolean = false) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device, deviceClass, showContent, by_area)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { LinusAggregateChip };\n","import { AlarmChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport {AbstractChip} from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass LinusAlarmChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(entity_id: any): AlarmChipConfig {\n return {\n type: \"alarm-control-panel\",\n entity: entity_id,\n tap_action: {\n action: \"more-info\"\n },\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(entityId: string) {\n super();\n\n const defaultConfig = this.getDefaultConfig(entityId)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport {LinusAlarmChip};\n","import { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass LinusClimateChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry, showContent: boolean): TemplateChipConfig {\n return {\n \"type\": \"template\",\n \"entity\": device?.entities.aggregate_climate?.entity_id,\n \"icon_color\": `{{ 'orange' if is_state('${device?.entities.aggregate_climate?.entity_id}', 'heat') else 'grey' }}`,\n \"icon\": \"mdi:thermostat\",\n \"content\": showContent ? `{{ states.${device?.entities.aggregate_climate?.entity_id}.attributes.preset_mode }}` : \"\",\n // \"tap_action\": climateList(hass, area)\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, showContent: boolean = false) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device, showContent)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { LinusClimateChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AggregateListPopup } from \"../popups/AggregateListPopup\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { DOMAIN } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LinusLightChip extends AbstractChip {\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, area_id: string, show_content?: boolean, show_group?: boolean) {\n super();\n\n const defaultConfig: TemplateChipConfig = {\n type: \"template\",\n entity: device?.entities.all_lights?.entity_id,\n icon_color: `{{ 'amber' if expand(states.${device?.entities.all_lights?.entity_id}.attributes.entity_id) | selectattr( 'state', 'eq', 'on') | list | count > 0 else 'grey' }}`,\n icon: \"mdi:lightbulb-group\",\n content: show_content ? `{{ expand(states.${device?.entities.all_lights?.entity_id}.attributes.entity_id) | selectattr( 'state', 'eq', 'on') | list | count }}` : \"\",\n tap_action: show_group ? new AggregateListPopup(device?.entities.all_lights?.entity_id, \"light\").getPopup() : {\n action: \"call-service\",\n service: `${DOMAIN}.area_light_toggle`,\n data: {\n area: area_id\n }\n }\n }\n\n this.config = Object.assign(this.config, defaultConfig);\n }\n}\n\nexport { LinusLightChip };\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_STATE_ICONS } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Motion Chip class.\n *\n * Used to create a chip to indicate how many motions are operating.\n */\nclass MotionChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: DOMAIN_STATE_ICONS.binary_sensor.motion.on,\n icon_color: \"grey\",\n content: Helper.getDeviceClassCountTemplate(\"binary_sensor\", \"motion\", \"ne\", \"off\"),\n tap_action: {\n action: \"none\",\n },\n hold_action: {\n action: \"navigate\",\n navigation_path: \"motions\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { MotionChip };\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_STATE_ICONS } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Safety Chip class.\n *\n * Used to create a chip to indicate how many safetys are operating.\n */\nclass SafetyChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: DOMAIN_STATE_ICONS.binary_sensor.safety.on,\n icon_color: \"grey\",\n content: Helper.getDeviceClassCountTemplate(\"binary_sensor\", \"safety\", \"ne\", \"off\"),\n tap_action: {\n action: \"none\",\n },\n hold_action: {\n action: \"navigate\",\n navigation_path: \"safety\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { SafetyChip };\n","import {Helper} from \"../Helper\";\nimport {chips} from \"../types/strategy/chips\";\nimport {AbstractChip} from \"./AbstractChip\";\nimport {TemplateChipConfig} from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Settings Chip class.\n *\n * Used to create a chip to indicate how many fans are on and to turn all off.\n */\nclass SettingsChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n \"type\": \"template\",\n \"icon\": \"mdi:cog\",\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {SettingsChip};\n","import { Helper } from \"../Helper\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Spotify Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass SpotifyChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(entityId: string): TemplateChipConfig {\n\n return {\n type: \"template\",\n entity: entityId,\n icon_color: `{{ 'green' if is_state('${entityId}', 'playing') else 'grey' }}`,\n content: '{{ states(entity) }}',\n icon: \"mdi:spotify\",\n // content: show_content ? `{{ states('${entityId}') if not states('${entityId}') == 'on' else '' }}` : \"\",\n tap_action: {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Spotify\",\n \"content\":\n {\n type: \"vertical-stack\",\n cards: [\n ...([entityId].map(x => {\n\n const entity = Helper.getEntityState(x)\n const source_list = entity.attributes.source_list\n const chunkSize = 3;\n const source_cards_chunk = []\n\n for (let i = 0; i < source_list.length; i += chunkSize) {\n const chunk = source_list.slice(i, i + chunkSize);\n source_cards_chunk.push(chunk)\n }\n\n return {\n type: \"custom:stack-in-card\",\n cards: [\n {\n type: \"custom:mushroom-media-player-card\",\n entity: \"media_player.spotify_juicy\",\n icon: \"mdi:spotify\",\n icon_color: \"green\",\n use_media_info: true,\n use_media_artwork: false,\n show_volume_level: false,\n media_controls: [\n \"play_pause_stop\",\n \"previous\",\n \"next\"\n ],\n volume_controls: [\n \"volume_buttons\",\n \"volume_set\"\n ],\n fill_container: false,\n card_mod: {\n style: \"ha-card {\\n --rgb-state-media-player: var(--rgb-green);\\n}\\n\"\n }\n },\n {\n type: \"custom:swipe-card\",\n parameters: null,\n spaceBetween: 8,\n scrollbar: null,\n start_card: 1,\n hide: false,\n draggable: true,\n snapOnRelease: true,\n slidesPerView: 2.2,\n cards: [\n ...(source_cards_chunk.map(source_cards => (\n {\n type: \"horizontal-stack\",\n cards: [\n ...(source_cards.map((source: string) => (\n {\n type: \"custom:mushroom-template-card\",\n icon: \"mdi:speaker-play\",\n icon_color: `{% if states[entity].attributes.source == '${source}' %}\\namber\\n{% else %}\\ngrey\\n{% endif %}`,\n primary: null,\n secondary: source,\n entity: entity.entity_id,\n multiline_secondary: false,\n tap_action: {\n action: \"call-service\",\n service: \"spotcast.start\",\n data: {\n device_name: source,\n force_playback: true\n }\n },\n layout: \"vertical\",\n style: \"mushroom-card \\n background-size: 42px 32px;\\nmushroom-shape-icon {\\n --shape-color: none !important;\\n} \\n ha-card { \\n background: rgba(#1a1a2a;, 1.25);\\n {% if is_state('media_player.cuisine_media_players', 'playing') %}\\n {% else %}\\n background: rgba(var(--rgb-primary-background-color), 0.8);\\n {% endif %} \\n width: 115px;\\n border-radius: 30px;\\n margin-top: 10px;\\n margin-left: auto;\\n margin-right: auto;\\n margin-bottom: 20px;\\n }\\n\",\n card_mode: {\n style: \":host {\\n background: rgba(var(--rgb-primary-background-color), 0.8);\\n border-radius: 50px;!important\\n} \\n\"\n },\n line_width: 8,\n line_color: \"#FF6384\",\n card_mod: {\n style: `\n :host {\n --mush-icon-symbol-size: 0.75em;\n }\n `\n }\n\n }))\n ).filter(Boolean),\n ]\n }))\n ).filter(Boolean),\n ]\n },\n {\n type: \"custom:spotify-card\",\n always_play_random_song: true,\n hide_currently_playing: true,\n hide_playback_controls: true,\n hide_top_header: true,\n hide_warning: true,\n hide_chromecast_devices: true,\n display_style: \"Grid\",\n grid_covers_per_row: 5,\n limit: 20\n }\n ],\n card_mod: {\n style: \"ha-card {\\n {% if not is_state('media_player.spotify_juicy', 'off') and not is_state('media_player.spotify_juicy', 'idle') %}\\n background: url( '{{ state_attr(\\\"media_player.spotify_juicy\\\", \\\"entity_picture\\\") }}' ), linear-gradient(to left, transparent, rgb(var(--rgb-card-background-color)) 100%);\\n\\n {% if state_attr('media_player.spotify_juicy', 'media_content_type') == 'tvshow' %}\\n background-size: auto 100%, cover;\\n {% else %}\\n background-size: 130% auto, cover;\\n {% endif %}\\n\\n background-position: top right;\\n background-repeat: no-repeat;\\n background-blend-mode: saturation;\\n {% endif %}\\n}\\n\"\n }\n }\n })\n ).filter(Boolean),\n ],\n card_mod: {\n style: \"ha-card {\\n background:#4a1a1a;\\n}\\n\"\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(entityId: string) {\n super();\n\n const defaultConfig = this.getDefaultConfig(entityId)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { SpotifyChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Switch Chip class.\n *\n * Used to create a chip to indicate how many switches are on and to turn all off.\n */\nclass SwitchChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:dip-switch\",\n icon_color: \"blue\",\n content: Helper.getCountTemplate(\"switch\", \"eq\", \"on\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"switches\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { SwitchChip };\n","import { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN } from \"../variables\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass ToggleSceneChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry): TemplateChipConfig {\n return {\n type: \"template\",\n entity: device?.entities.light_control?.entity_id,\n icon: \"mdi:recycle-variant\",\n // icon_color: \"{% if is_state(config.entity, 'on') %}green{% else %}red{% endif %}\",\n tap_action: {\n action: \"call-service\",\n service: `${DOMAIN}.area_scene_toggle`,\n data: {\n area: device?.name,\n }\n },\n hold_action: {\n action: \"more-info\"\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { ToggleSceneChip };\n","import { GroupListPopup } from \"../popups/GroupListPopup\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { EntityRegistryEntry } from '../types/homeassistant/data/entity_registry';\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Unavailable Chip class.\n *\n * Used to create a chip to indicate unable entities.\n */\nclass UnavailableChip extends AbstractChip {\n getDefaultConfig(entities: EntityRegistryEntry[]) {\n return {\n type: \"template\",\n icon_color: \"orange\",\n icon: 'mdi:help',\n tap_action: new GroupListPopup(entities, \"Unavailable entities\").getPopup()\n };\n }\n /**\n * Class Constructor.\n *\n * @param {EntityRegistryEntry[]} entities The chip entities.\n */\n constructor(entities: EntityRegistryEntry[]) {\n super();\n const defaultConfig = this.getDefaultConfig(entities);\n this.config = Object.assign(this.config, defaultConfig);\n }\n}\n\nexport { UnavailableChip };\n","import {chips} from \"../types/strategy/chips\";\nimport {WeatherChipConfig} from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport {AbstractChip} from \"./AbstractChip\";\nimport { WeatherPopup } from \"../popups/WeatherPopup\";\n\n// noinspection JSUnusedGlobalSymbols False positive.\n/**\n * Weather Chip class.\n *\n * Used to create a chip for showing the weather.\n */\nclass WeatherChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @private\n * @readonly\n */\n readonly #defaultConfig: WeatherChipConfig = {\n type: \"weather\",\n show_temperature: true,\n show_conditions: true,\n };\n\n /**\n * Class Constructor.\n *\n * @param {string} entityId Id of a weather entity.\n * @param {chips.WeatherChipOptions} options Weather Chip options.\n */\n constructor(entityId: string, options: chips.WeatherChipOptions = {}) {\n super();\n this.#defaultConfig = {\n ...this.#defaultConfig,\n tap_action: new WeatherPopup(entityId).getPopup() as any,\n ...{entity: entityId},\n ...options,\n };\n\n this.#defaultConfig.tap_action = new WeatherPopup(entityId).getPopup()\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {WeatherChip};\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_STATE_ICONS } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Window Chip class.\n *\n * Used to create a chip to indicate how many windows are operating.\n */\nclass WindowChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: DOMAIN_STATE_ICONS.binary_sensor.window.on,\n icon_color: \"grey\",\n content: Helper.getDeviceClassCountTemplate(\"binary_sensor\", \"window\", \"ne\", \"off\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"windows\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { WindowChip };\n","import { generic } from \"./types/strategy/generic\";\nimport StrategyDefaults = generic.StrategyDefaults;\nimport { LightControlChip } from \"./chips/LightControlChip\";\nimport { SettingsChip } from \"./chips/SettingsChip\";\nimport { LightSettings } from \"./popups/LightSettingsPopup\";\nimport { ToggleSceneChip } from \"./chips/ToggleSceneChip\";\nimport { SceneSettings } from \"./popups/SceneSettingsPopup\";\nimport { MagicAreaRegistryEntry } from \"./types/homeassistant/data/device_registry\";\n\n/**\n * Default configuration for the mushroom strategy.\n */\nexport const configurationDefaults: StrategyDefaults = {\n areas: {\n undisclosed: {\n aliases: [],\n area_id: \"undisclosed\",\n name: \"Non assigné\",\n picture: null,\n hidden: false,\n }\n },\n floors: {\n undisclosed: {\n aliases: [],\n floor_id: \"undisclosed\",\n name: \"Non assigné\",\n hidden: false,\n }\n },\n debug: true,\n domains: {\n _: {\n hide_config_entities: false,\n },\n default: {\n title: \"Divers\",\n showControls: false,\n hidden: false,\n },\n light: {\n // title: \"Lights\",\n showControls: true,\n extraControls: (device: MagicAreaRegistryEntry) => {\n return [\n new LightControlChip(device?.entities.light_control?.entity_id).getChip(),\n new SettingsChip({ tap_action: new LightSettings(device).getPopup() }).getChip()\n ]\n },\n iconOn: \"mdi:lightbulb\",\n iconOff: \"mdi:lightbulb-off\",\n onService: \"light.turn_on\",\n offService: \"light.turn_off\",\n hidden: false,\n order: 1\n },\n scene: {\n title: \"Scènes\",\n showControls: false,\n extraControls: (device: MagicAreaRegistryEntry) => {\n\n return [\n {\n type: \"conditional\",\n conditions: [{\n entity: device?.entities.all_lights?.entity_id,\n state_not: \"unavailable\"\n }],\n chip: new ToggleSceneChip(device).getChip(),\n },\n new SettingsChip({ tap_action: new SceneSettings(device).getPopup() }).getChip()\n ]\n },\n iconOn: \"mdi:lightbulb\",\n iconOff: \"mdi:lightbulb-off\",\n onService: \"scene.turn_on\",\n hidden: false,\n order: 2\n },\n fan: {\n title: \"Fans\",\n showControls: true,\n iconOn: \"mdi:fan\",\n iconOff: \"mdi:fan-off\",\n onService: \"fan.turn_on\",\n offService: \"fan.turn_off\",\n hidden: false,\n order: 4\n },\n cover: {\n title: \"Covers\",\n showControls: true,\n iconOn: \"mdi:arrow-up\",\n iconOff: \"mdi:arrow-down\",\n onService: \"cover.open_cover\",\n offService: \"cover.close_cover\",\n hidden: false,\n order: 8\n },\n switch: {\n title: \"Switches\",\n showControls: true,\n iconOn: \"mdi:power-plug\",\n iconOff: \"mdi:power-plug-off\",\n onService: \"switch.turn_on\",\n offService: \"switch.turn_off\",\n hidden: false,\n order: 5\n },\n camera: {\n title: \"Cameras\",\n showControls: false,\n hidden: false,\n order: 6\n },\n lock: {\n title: \"Locks\",\n showControls: false,\n hidden: false,\n order: 7\n },\n climate: {\n title: \"Climates\",\n showControls: true,\n hidden: false,\n order: 3\n },\n media_player: {\n title: \"Media Players\",\n showControls: true,\n hidden: false,\n order: 9\n },\n sensor: {\n title: \"Sensors\",\n showControls: false,\n hidden: false,\n },\n binary_sensor: {\n title: \"Binary Sensors\",\n showControls: false,\n hidden: false,\n },\n number: {\n title: \"Numbers\",\n showControls: false,\n hidden: false,\n },\n vacuum: {\n title: \"Vacuums\",\n showControls: true,\n hidden: false,\n order: 10\n },\n },\n home_view: {\n hidden: [],\n },\n views: {\n home: {\n order: 1,\n hidden: false,\n },\n security: {\n order: 2,\n hidden: false,\n },\n light: {\n order: 3,\n hidden: false,\n },\n media_player: {\n order: 4,\n hidden: false,\n },\n climate: {\n order: 5,\n hidden: false,\n },\n fan: {\n order: 6,\n hidden: false,\n },\n cover: {\n order: 7,\n hidden: false,\n },\n camera: {\n order: 8,\n hidden: false,\n },\n switch: {\n order: 9,\n hidden: false,\n },\n vacuum: {\n order: 10,\n hidden: false,\n },\n scene: {\n order: 11,\n hidden: false,\n },\n securityDetails: {\n hidden: false,\n },\n }\n};\n","import { Helper } from \"./Helper\";\nimport { SensorCard } from \"./cards/SensorCard\";\nimport { ControllerCard } from \"./cards/ControllerCard\";\nimport { generic } from \"./types/strategy/generic\";\nimport { LovelaceCardConfig, LovelaceConfig, LovelaceViewConfig } from \"./types/homeassistant/data/lovelace\";\nimport { StackCardConfig } from \"./types/homeassistant/lovelace/cards/types\";\nimport { EntityCardConfig } from \"./types/lovelace-mushroom/cards/entity-card-config\";\nimport { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport StrategyArea = generic.StrategyArea;\nimport { SwipeCard } from \"./cards/SwipeCard\";\nimport { MainAreaCard } from \"./cards/MainAreaCard\";\nimport { SwipeCardConfig } from \"./types/lovelace-mushroom/cards/swipe-card-config\";\nimport { slugify } from \"./utils\";\nimport { MAGIC_AREAS_DOMAINS } from \"./variables\";\n\n/**\n * Mushroom Dashboard Strategy.
\n *
\n * Mushroom dashboard strategy provides a strategy for Home-Assistant to create a dashboard automatically.
\n * The strategy makes use Mushroom and Mini Graph cards to represent your entities.
\n *
\n * Features:
\n * 🛠 Automatically create dashboard with three lines of yaml.
\n * 😍 Built-in Views for several standard domains.
\n * 🎨 Many options to customize to your needs.
\n *
\n * Check the [Repository]{@link https://github.com/AalianKhan/linus-strategy} for more information.\n */\nclass MushroomStrategy extends HTMLTemplateElement {\n /**\n * Generate a dashboard.\n *\n * Called when opening a dashboard.\n *\n * @param {generic.DashBoardInfo} info Dashboard strategy information object.\n * @return {Promise}\n */\n static async generateDashboard(info: generic.DashBoardInfo): Promise {\n await Helper.initialize(info);\n\n // Create views.\n const views: LovelaceViewConfig[] = info.config?.views ?? [];\n\n let viewModule;\n\n\n // Create a view for each exposed domain.\n for (let viewId of Helper.getExposedViewIds()) {\n if (MAGIC_AREAS_DOMAINS.includes(viewId) && (Helper.domains[viewId] ?? []).length === 0) continue\n try {\n const viewType = Helper.sanitizeClassName(viewId + \"View\");\n viewModule = await import(`./views/${viewType}`);\n const view: LovelaceViewConfig = await new viewModule[viewType](Helper.strategyOptions.views[viewId]).getView();\n\n if (view.cards?.length || view.sections?.length) {\n views.push(view);\n }\n } catch (e) {\n Helper.logError(`View '${viewId}' couldn't be loaded!`, e);\n }\n }\n\n // Create subviews for each area.\n for (let area of Helper.areas) {\n if (!area.hidden) {\n views.push({\n title: area.name,\n path: area.area_id ?? area.name,\n subview: true,\n strategy: {\n type: \"custom:linus-strategy\",\n options: {\n area,\n },\n },\n });\n }\n }\n\n // Add custom views.\n if (Helper.strategyOptions.extra_views) {\n views.push(...Helper.strategyOptions.extra_views);\n }\n\n // Return the created views.\n return {\n views: views,\n };\n }\n\n /**\n * Generate a view.\n *\n * Called when opening a subview.\n *\n * @param {generic.ViewInfo} info The view's strategy information object.\n * @return {Promise}\n */\n static async generateView(info: generic.ViewInfo): Promise {\n const exposedDomainIds = Helper.getExposedDomainIds();\n const area = info.view.strategy?.options?.area ?? {} as StrategyArea;\n const viewCards: LovelaceCardConfig[] = [...(area.extra_cards ?? [])];\n\n\n if (area.area_id !== \"undisclosed\")\n viewCards.push(new MainAreaCard(area).getCard());\n\n // Set the target for controller cards to the current area.\n let target: HassServiceTarget = {\n area_id: [area.area_id],\n };\n\n // Create cards for each domain.\n for (const domain of exposedDomainIds) {\n if (domain === \"default\") {\n continue;\n }\n\n const className = Helper.sanitizeClassName(domain + \"Card\");\n\n let domainCards = [];\n\n try {\n domainCards = await import(`./cards/${className}`).then(cardModule => {\n let domainCards = [] as any[];\n const entities = Helper.getDeviceEntities(area, domain);\n let configEntityHidden =\n Helper.strategyOptions.domains[domain ?? \"_\"].hide_config_entities\n || Helper.strategyOptions.domains[\"_\"].hide_config_entities;\n\n const magicAreasDevice = Helper.magicAreasDevices[area.name];\n const magicAreasKey = domain === \"light\" ? 'all_lights' : `${domain}_group`;\n\n // Set the target for controller cards to linus aggregate entity if exist.\n target[\"entity_id\"] = magicAreasDevice?.entities[magicAreasKey]?.entity_id;\n // Set the target for controller cards to entities without an area.\n if (area.area_id === \"undisclosed\") {\n target = {\n entity_id: entities.map(entity => entity.entity_id),\n }\n }\n\n if (entities.length) {\n // Create a Controller card for the current domain.\n\n const title = Helper.localize(domain === 'scene' ? 'ui.dialogs.quick-bar.commands.navigation.scene' : `component.${domain}.entity_component._.name`);\n const titleCard = new ControllerCard(\n target,\n { ...Helper.strategyOptions.domains[domain], domain, title },\n ).createCard();\n\n if (domain === \"sensor\") {\n // Create a card for each entity-sensor of the current area.\n const sensorStates = Helper.getStateEntities(area, \"sensor\");\n const sensorCards: EntityCardConfig[] = [];\n\n for (const sensor of entities) {\n // Find the state of the current sensor.\n const sensorState = sensorStates.find(state => state.entity_id === sensor.entity_id);\n let cardOptions = Helper.strategyOptions.card_options?.[sensor.entity_id];\n let deviceOptions = Helper.strategyOptions.card_options?.[sensor.device_id ?? \"null\"];\n\n if (!cardOptions?.hidden && !deviceOptions?.hidden) {\n if (sensorState?.attributes.unit_of_measurement) {\n cardOptions = {\n ...{\n type: \"custom:mini-graph-card\",\n entities: [sensor.entity_id],\n },\n ...cardOptions,\n };\n }\n\n sensorCards.push(new SensorCard(sensor, cardOptions).getCard());\n }\n }\n\n if (sensorCards.length) {\n domainCards.push(new SwipeCard(sensorCards).getCard())\n\n domainCards.unshift(titleCard);\n }\n\n return domainCards;\n }\n\n // Create a card for each other domain-entity of the current area.\n for (const entity of entities) {\n let deviceOptions;\n let cardOptions = Helper.strategyOptions.card_options?.[entity.entity_id];\n\n if (entity.device_id) {\n deviceOptions = Helper.strategyOptions.card_options?.[entity.device_id];\n }\n\n // Don't include the entity if hidden in the strategy options.\n if (cardOptions?.hidden || deviceOptions?.hidden) {\n continue;\n }\n\n // Don't include the config-entity if hidden in the strategy options.\n if (entity.entity_category === \"config\" && configEntityHidden) {\n continue;\n }\n\n domainCards.push(new cardModule[className](entity, cardOptions).getCard());\n }\n\n domainCards = [new SwipeCard(domainCards).getCard()];\n\n if (domainCards.length) {\n domainCards.unshift(titleCard);\n }\n }\n\n return domainCards;\n });\n } catch (e) {\n Helper.logError(\"An error occurred while creating the domain cards!\", e);\n }\n\n if (domainCards.length) {\n viewCards.push({\n type: \"vertical-stack\",\n cards: domainCards,\n });\n }\n }\n\n if (!Helper.strategyOptions.domains.default.hidden) {\n // Create cards for any other domain.\n // Collect device entities of the current area.\n const areaDevices = Helper.devices.filter((device) => device.area_id === area.area_id)\n .map((device) => device.id);\n\n // Collect the remaining entities of which all conditions below are met:\n // 1. The entity is not hidden.\n // 2. The entity's domain isn't exposed (entities of exposed domains are already included).\n // 3. The entity is linked to a device which is linked to the current area,\n // or the entity itself is linked to the current area.\n const miscellaneousEntities = Helper.entities.filter((entity) => {\n const entityLinked = areaDevices.includes(entity.device_id ?? \"null\") || entity.area_id === area.area_id;\n const entityUnhidden = entity.hidden_by === null && entity.disabled_by === null;\n const domainExposed = exposedDomainIds.includes(entity.entity_id.split(\".\", 1)[0]);\n\n return entityUnhidden && !domainExposed && entityLinked;\n });\n\n // Create a column of miscellaneous entity cards.\n if (miscellaneousEntities.length) {\n let miscellaneousCards: (StackCardConfig | EntityCardConfig | SwipeCardConfig)[] = [];\n\n try {\n miscellaneousCards = await import(\"./cards/MiscellaneousCard\").then(cardModule => {\n const miscellaneousCards: (StackCardConfig | EntityCardConfig)[] = [\n new ControllerCard(target, Helper.strategyOptions.domains.default).createCard(),\n ];\n\n const swipeCard = []\n\n for (const entity of miscellaneousEntities) {\n let cardOptions = Helper.strategyOptions.card_options?.[entity.entity_id];\n let deviceOptions = Helper.strategyOptions.card_options?.[entity.device_id ?? \"null\"];\n\n // Don't include the entity if hidden in the strategy options.\n if (cardOptions?.hidden || deviceOptions?.hidden) {\n continue;\n }\n\n // Don't include the config-entity if hidden in the strategy options\n if (entity.entity_category === \"config\" && Helper.strategyOptions.domains[\"_\"].hide_config_entities) {\n continue;\n }\n\n swipeCard.push(new cardModule.MiscellaneousCard(entity, cardOptions).getCard());\n\n }\n\n return [...miscellaneousCards, new SwipeCard(swipeCard).getCard()];\n });\n } catch (e) {\n Helper.logError(\"An error occurred while creating the domain cards!\", e);\n }\n\n viewCards.push({\n type: \"vertical-stack\",\n cards: miscellaneousCards,\n });\n }\n }\n\n // Return cards.\n return {\n cards: viewCards,\n };\n }\n}\n\ncustomElements.define(\"ll-strategy-linus-strategy\", MushroomStrategy);\n\nexport const version = \"v4.0.1\";\nconsole.info(\n \"%c Linus Strategy %c \".concat(version, \" \"),\n \"color: white; background: coral; font-weight: 700;\", \"color: coral; background: white; font-weight: 700;\"\n);\n","import {Helper} from \"../Helper\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\n\n/**\n * Abstract Popup class.\n *\n * To create a new Popup, extend this one.\n *\n * @class\n * @abstract\n */\nabstract class AbstractPopup {\n /**\n * Configuration of the Popup.\n *\n * @type {PopupActionConfig}\n */\n config: PopupActionConfig = {\n action: \"fire-dom-event\",\n browser_mod: {}\n };\n\n /**\n * Class Constructor.\n */\n protected constructor() {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n }\n\n // noinspection JSUnusedGlobalSymbols Method is called on dymanically imported classes.\n /**\n * Get the Popup.\n *\n * @returns {PopupActionConfig} A Popup.\n */\n getPopup(): PopupActionConfig {\n return this.config;\n }\n}\n\nexport {AbstractPopup};\n","import { Helper } from \"../Helper\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { groupBy } from \"../utils\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass AggregateAreaListPopup extends AbstractPopup {\n\n getDefaultConfig(aggregate_entity: any, deviceClass: string, is_binary_sensor: boolean): PopupActionConfig {\n\n const groupedCards: (TitleCardConfig | StackCardConfig)[] = [];\n\n\n let areaCards: (TemplateCardConfig)[] = [];\n\n for (const [i, entity_id] of aggregate_entity.attributes.entity_id?.entries() ?? []) {\n\n // Get a card for the area.\n if (entity_id) {\n\n areaCards.push({\n type: \"tile\",\n entity: entity_id,\n // primary: area.name,\n state_content: is_binary_sensor ? 'last-changed' : 'state',\n color: is_binary_sensor ? 'red' : false,\n // badge_icon: \"mdi:numeric-9\",\n // badge_color: \"red\",\n });\n }\n \n // Horizontally group every two area cards if all cards are created.\n if (i === aggregate_entity.attributes.entity_id.length - 1) {\n for (let i = 0; i < areaCards.length; i += 2) {\n groupedCards.push({\n type: \"horizontal-stack\",\n cards: areaCards.slice(i, i + 2),\n } as StackCardConfig);\n }\n }\n\n }\n\n return {\n \"action\": \"fire-dom-event\",\n \"browser_mod\": {\n \"service\": \"browser_mod.popup\",\n \"data\": {\n \"title\": aggregate_entity?.attributes?.friendly_name,\n \"content\": {\n \"type\": \"vertical-stack\",\n \"cards\": [\n {\n type: \"custom:mushroom-entity-card\",\n entity: aggregate_entity.entity_id,\n color: is_binary_sensor ? 'red' : false,\n secondary_info: is_binary_sensor ? 'last-changed' : 'state',\n },\n {\n \"type\": \"history-graph\",\n \"hours_to_show\": 10,\n \"show_names\": false,\n \"entities\": [\n {\n \"entity\": aggregate_entity.entity_id,\n \"name\": \" \"\n }\n ]\n },\n ...groupedCards,\n ]\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(entity_id: string, type: string) {\n super();\n\n const aggregate_entity = Helper.getEntityState(entity_id)\n\n if (aggregate_entity) {\n const is_binary_sensor = [\"motion\", \"window\", \"door\", \"health\"].includes(type)\n\n const defaultConfig = this.getDefaultConfig(aggregate_entity, type, is_binary_sensor)\n\n this.config = Object.assign(this.config, defaultConfig);\n }\n\n }\n}\n\nexport { AggregateAreaListPopup };\n","import { Helper } from \"../Helper\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { groupBy } from \"../utils\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass AggregateListPopup extends AbstractPopup {\n\n getDefaultConfig(aggregate_entity: any, deviceClass: string, is_binary_sensor: boolean): PopupActionConfig {\n\n const groupedCards: (TitleCardConfig | StackCardConfig)[] = [];\n\n const areasByFloor = groupBy(Helper.areas, (e) => e.floor_id ?? \"undisclosed\");\n\n for (const floor of [...Helper.floors, Helper.strategyOptions.floors.undisclosed]) {\n\n if (!(floor.floor_id in areasByFloor) || areasByFloor[floor.floor_id].length === 0) continue\n\n groupedCards.push({\n type: \"custom:mushroom-title-card\",\n subtitle: floor.name,\n card_mod: {\n style: `\n ha-card.header {\n padding-top: 8px;\n }\n `,\n }\n });\n\n let areaCards: (TemplateCardConfig)[] = [];\n\n for (const [i, area] of areasByFloor[floor.floor_id].entries()) {\n\n const entity = Helper.magicAreasDevices[area.name]?.entities[`aggregate_${aggregate_entity.attributes?.device_class}`]\n\n // Get a card for the area.\n if (entity && !Helper.strategyOptions.areas[area.area_id]?.hidden) {\n\n areaCards.push({\n type: \"tile\",\n entity: entity?.entity_id,\n primary: area.name,\n state_content: is_binary_sensor ? 'last-changed' : 'state',\n color: is_binary_sensor ? 'red' : false,\n // badge_icon: \"mdi:numeric-9\",\n // badge_color: \"red\",\n });\n }\n \n // Horizontally group every two area cards if all cards are created.\n if (i === areasByFloor[floor.floor_id].length - 1) {\n for (let i = 0; i < areaCards.length; i += 2) {\n groupedCards.push({\n type: \"horizontal-stack\",\n cards: areaCards.slice(i, i + 2),\n } as StackCardConfig);\n }\n }\n\n }\n\n if(areaCards.length === 0) groupedCards.pop()\n \n }\n\n return {\n \"action\": \"fire-dom-event\",\n \"browser_mod\": {\n \"service\": \"browser_mod.popup\",\n \"data\": {\n \"title\": aggregate_entity?.attributes?.friendly_name,\n \"content\": {\n \"type\": \"vertical-stack\",\n \"cards\": [\n {\n type: \"custom:mushroom-entity-card\",\n entity: aggregate_entity.entity_id,\n color: is_binary_sensor ? 'red' : false,\n secondary_info: is_binary_sensor ? 'last-changed' : 'state',\n },\n {\n \"type\": \"history-graph\",\n \"hours_to_show\": 10,\n \"show_names\": false,\n \"entities\": [\n {\n \"entity\": aggregate_entity.entity_id,\n \"name\": \" \"\n }\n ]\n },\n ...groupedCards,\n ]\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(entity_id: string, type: string) {\n super();\n\n const aggregate_entity = Helper.getEntityState(entity_id)\n\n if (aggregate_entity) {\n const is_binary_sensor = [\"motion\", \"window\", \"door\", \"health\"].includes(type)\n\n const defaultConfig = this.getDefaultConfig(aggregate_entity, type, is_binary_sensor)\n\n this.config = Object.assign(this.config, defaultConfig);\n }\n\n }\n}\n\nexport { AggregateListPopup };\n","import { Helper } from \"../Helper\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { slugify } from \"../utils\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass AreaInformations extends AbstractPopup {\n\n getDefaultConfig(device: MagicAreaRegistryEntry, minimalist: boolean): PopupActionConfig {\n\n const { area_state } = device?.entities ?? {}\n\n const { friendly_name, adjoining_areas, features, states, presence_sensors, on_states } = Helper.getEntityState(area_state?.entity_id)?.attributes ?? {}\n\n presence_sensors?.sort((a: string, b: string) => {\n const aState = Helper.getEntityState(a);\n const bState = Helper.getEntityState(b);\n const lastChangeA = new Date(aState?.last_changed).getTime();\n const lastChangeB = new Date(bState?.last_changed).getTime();\n if (a === `switch.magic_areas_presence_hold_${slugify(device?.name)}`) {\n return -1;\n } else if (b === `switch.magic_areas_presence_hold_${slugify(device?.name)}`) {\n return 1;\n } else {\n return lastChangeB - lastChangeA;\n }\n });\n\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: friendly_name,\n content: {\n type: \"vertical-stack\",\n cards: [\n {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"custom:mushroom-entity-card\",\n entity: area_state?.entity_id,\n name: \"Présence\",\n secondary_info: \"last-changed\",\n color: \"red\",\n tap_action: device?.id ? {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.sequence\",\n data: {\n sequence: [\n {\n service: \"browser_mod.close_popup\",\n data: {}\n },\n {\n service: \"browser_mod.navigate\",\n data: { path: `/config/devices/device/${device?.id}` }\n }\n ]\n }\n }\n } : \"more-info\"\n },\n {\n type: \"custom:mushroom-template-card\",\n primary: \"Recharger la pièce\",\n icon: \"mdi:refresh\",\n icon_color: \"blue\",\n tap_action: {\n action: \"call-service\",\n service: `homeassistant.reload_config_entry`,\n target: { \"device_id\": device?.id },\n }\n },\n ]\n },\n // {\n // type: \"horizontal-stack\",\n // cards: [\n // {\n // type: \"custom:mushroom-chips-card\",\n // alignment: \"end\",\n // chips: currentStateChip(states),\n // },\n // ]\n // },\n ...(!minimalist ? [\n {\n type: \"custom:mushroom-template-card\",\n primary: `Configuration de la pièce :`,\n card_mod: {\n style: `ha-card {padding: 4px 12px!important;}`\n }\n },\n {\n type: \"custom:mushroom-chips-card\",\n chips: [\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Type : {{ state_attr('${area_state?.entity_id}', 'type') }}`,\n icon: `\n {% set type = state_attr('${area_state?.entity_id}', 'type') %}\n {% if type == \"interior\" %}\n mdi:home-import-outline\n {% elif type == \"exterior\" %}\n mdi:home-import-outline\n {% else %}\n mdi:home-alert\n {% endif %}\n `,\n },\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Étage : {{ state_attr('${area_state?.entity_id}', 'floor') }}`,\n icon: `\n {% set floor = state_attr('${area_state?.entity_id}', 'floor') %}\n {% if floor == \"third\" %}\n mdi:home-floor-3\n {% elif floor == \"second\" %}\n mdi:home-floor-2\n {% elif floor == \"first\" %}\n mdi:home-floor-1\n {% elif floor == \"ground\" %}\n mdi:home-floor-g\n {% elif floor == \"basement\" %}\n mdi:home-floor-b\n {% else %}\n mdi:home-alert\n {% endif %}\n `,\n },\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Délai pièce vide : {{ state_attr('${area_state?.entity_id}', 'clear_timeout') }}s`,\n icon: `mdi:camera-timer`,\n },\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Interval mise à jour : {{ state_attr('${area_state?.entity_id}', 'update_interval') }}s`,\n icon: `mdi:update`,\n },\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Pièces adjacentes : ${adjoining_areas?.length ? adjoining_areas.join(' ') : 'Non défini'}`,\n icon: `mdi:view-dashboard-variant`,\n },\n ],\n card_mod: {\n style: `ha-card .chip-container * {margin-bottom: 0px!important;}`\n }\n }\n ] : []),\n {\n type: \"custom:mushroom-template-card\",\n primary: `Capteurs utilisé pour la détection de présence :`,\n card_mod: {\n style: `ha-card {padding: 4px 12px!important;}`\n }\n },\n (minimalist ? {\n type: \"vertical-stack\",\n cards: presence_sensors?.map((sensor: string) => ({\n type: \"custom:mushroom-entity-card\",\n entity: sensor,\n content_info: \"name\",\n secondary_info: \"last-changed\",\n icon_color: sensor.includes('media_player.') ? \"blue\" : \"red\",\n }))\n } :\n {\n type: \"custom:mushroom-chips-card\",\n chips: presence_sensors?.map((sensor: string) => ({\n type: \"entity\",\n entity: sensor,\n content_info: \"name\",\n icon_color: sensor.includes('media_player.') ? \"blue\" : \"red\",\n tap_action: {\n action: \"more-info\"\n }\n })),\n card_mod: {\n style: `ha-card .chip-container * {margin-bottom: 0px!important;}`\n }\n }),\n ...(!minimalist ? [\n {\n type: \"custom:mushroom-template-card\",\n primary: `Présence détecté pour les états :`,\n card_mod: {\n style: `ha-card {padding: 4px 12px!important;}`\n }\n },\n {\n type: \"custom:mushroom-chips-card\",\n chips: on_states?.map((sensor: string) => ({\n type: \"template\",\n content: sensor,\n })),\n card_mod: {\n style: `ha-card .chip-container * {margin-bottom: 0px!important;}`\n }\n },\n {\n type: \"custom:mushroom-template-card\",\n primary: `Fonctionnalitées disponibles :`,\n card_mod: {\n style: `ha-card {padding: 4px 12px!important;}`\n }\n },\n {\n type: \"custom:mushroom-chips-card\",\n chips: features?.map((sensor: string) => ({\n type: \"template\",\n content: sensor,\n })),\n card_mod: {\n style: `ha-card .chip-container * {margin-bottom: 0px!important;}`\n }\n },\n ] : [])\n ].filter(Boolean)\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, minimalist: boolean = false) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device, minimalist)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { AreaInformations };\n","import { Helper } from \"../Helper\";\nimport { EntityRegistryEntry } from \"../types/homeassistant/data/entity_registry\";\nimport { groupBy } from \"../utils\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass GroupListPopup extends AbstractPopup {\n getDefaultConfig(entities: EntityRegistryEntry[], title: string) {\n const entitiesByArea = groupBy(entities, (e) => e.area_id ?? \"undisclosed\");\n \n return {\n \"action\": \"fire-dom-event\",\n \"browser_mod\": {\n \"service\": \"browser_mod.popup\",\n \"data\": {\n \"title\": title,\n \"content\": {\n \"type\": \"vertical-stack\",\n \"cards\": Object.entries(entitiesByArea).map(([area_id, entities]) => ([\n {\n type: \"markdown\",\n content: `${Helper.areas.find(a => a.area_id === area_id)?.name}`,\n },\n {\n type: \"custom:layout-card\",\n layout_type: \"custom:horizontal-layout\",\n layout: {\n width: 150,\n },\n cards: entities?.map((entity) => ({\n type: \"custom:mushroom-entity-card\",\n vertical: true,\n entity: entity.entity_id,\n secondary_info: 'last-changed',\n })),\n }\n ])).flat()\n }\n }\n }\n };\n }\n /**\n * Class Constructor.\n *\n * @param {EntityRegistryEntry[]} entities The chip entities.\n * @param {string} title The chip title.\n */\n constructor(entities: EntityRegistryEntry[], title: string) {\n super();\n const defaultConfig = this.getDefaultConfig(entities, title);\n this.config = Object.assign(this.config, defaultConfig);\n }\n}\n\nexport {GroupListPopup};\n","import { Helper } from \"../Helper\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { slugify } from \"../utils\";\nimport { DOMAIN } from \"../variables\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LightSettings extends AbstractPopup {\n\n getDefaultConfig(device: MagicAreaRegistryEntry): PopupActionConfig {\n\n const { aggregate_illuminance, adaptive_lighting_range, minimum_brightness, maximum_brightness, maximum_lighting_level } = device?.entities ?? {}\n\n const device_slug = slugify(device?.name ?? \"\")\n\n const OPTIONS_ADAPTIVE_LIGHTING_RANGE = {\n \"\": 1,\n \"Small\": 10,\n \"Medium\": 25,\n \"Large\": 50,\n \"Extra large\": 100,\n } as Record\n\n const adaptive_lighting_range_state = Helper.getEntityState(adaptive_lighting_range?.entity_id)?.state\n\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Configurer l'éclairage adaptatif\",\n content: {\n type: \"vertical-stack\",\n cards: [\n {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"tile\",\n entity: `switch.adaptive_lighting_${device_slug}`,\n vertical: \"true\",\n },\n {\n type: \"tile\",\n entity: `switch.adaptive_lighting_adapt_brightness_${device_slug}`,\n vertical: \"true\",\n },\n {\n type: \"tile\",\n entity: `switch.adaptive_lighting_adapt_color_${device_slug}`,\n vertical: \"true\",\n },\n {\n type: \"tile\",\n entity: `switch.adaptive_lighting_sleep_mode_${device_slug}`,\n vertical: \"true\",\n }\n ]\n },\n {\n type: \"custom:mushroom-select-card\",\n entity: adaptive_lighting_range?.entity_id,\n secondary_info: \"last-changed\",\n icon_color: \"blue\",\n },\n {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"custom:mushroom-number-card\",\n entity: maximum_lighting_level?.entity_id,\n icon_color: \"red\",\n card_mod: {\n style: `\n :host {\n --mush-control-height: 20px;\n }\n `\n }\n },\n {\n type: \"custom:mushroom-template-card\",\n primary: \"Utiliser la valeur actuelle\",\n icon: \"mdi:pencil\",\n layout: \"vertical\",\n tap_action: {\n action: \"call-service\",\n service: `${DOMAIN}.area_lux_for_lighting_max`,\n data: {\n area: device?.name\n }\n },\n },\n ],\n },\n {\n type: \"custom:mushroom-number-card\",\n entity: minimum_brightness?.entity_id,\n icon_color: \"green\",\n card_mod: {\n style: \":host {--mush-control-height: 10px;}\"\n }\n },\n {\n type: \"custom:mushroom-number-card\",\n entity: maximum_brightness?.entity_id,\n icon_color: \"green\",\n card_mod: {\n style: \":host {--mush-control-height: 10px;}\"\n }\n },\n {\n type: \"custom:apexcharts-card\",\n graph_span: \"15h\",\n header: {\n show: true,\n title: \"Luminosité en fonction du temps\",\n show_states: true,\n colorize_states: true\n },\n yaxis: [\n {\n id: \"illuminance\",\n min: 0,\n apex_config: {\n tickAmount: 4\n }\n },\n {\n id: \"brightness\",\n opposite: true,\n min: 0,\n max: 100,\n apex_config: {\n tickAmount: 4\n }\n }\n ],\n series: [\n (aggregate_illuminance?.entity_id ? {\n entity: aggregate_illuminance?.entity_id,\n yaxis_id: \"illuminance\",\n color: \"orange\",\n name: \"Luminosité ambiante (lx)\",\n type: \"line\",\n group_by: {\n func: \"last\",\n duration: \"30m\"\n }\n } : undefined),\n {\n entity: adaptive_lighting_range?.entity_id,\n type: \"area\",\n yaxis_id: \"illuminance\",\n show: {\n in_header: false\n },\n color: \"blue\",\n name: \"Zone d'éclairage adaptatif\",\n unit: \"lx\",\n transform: `return parseInt(hass.states['${maximum_lighting_level?.entity_id}'].state) + ${OPTIONS_ADAPTIVE_LIGHTING_RANGE[adaptive_lighting_range_state]};`,\n group_by: {\n func: \"last\",\n }\n },\n {\n entity: maximum_lighting_level?.entity_id,\n type: \"area\",\n yaxis_id: \"illuminance\",\n name: \"Zone d'éclairage à 100%\",\n color: \"red\",\n show: {\n in_header: false\n },\n group_by: {\n func: \"last\",\n }\n },\n ].filter(Boolean)\n },\n ]\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {PopupActionConfig} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { LightSettings };\n","import { Helper } from \"../Helper\";\nimport { version } from \"../linus-strategy\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Linus Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LinusSettings extends AbstractPopup {\n\n getDefaultConfig(): PopupActionConfig {\n\n const linusDeviceIds = Object.values(Helper.magicAreasDevices).map((area) => area?.id).flat()\n\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Paramètre de Linus\",\n content: {\n type: \"vertical-stack\",\n cards: [\n {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"custom:mushroom-template-card\",\n primary: \"Recharger Magic Areas\",\n icon: \"mdi:refresh\",\n icon_color: \"blue\",\n tap_action: {\n action: \"call-service\",\n service: `homeassistant.reload_config_entry`,\n target: { \"device_id\": linusDeviceIds },\n }\n },\n {\n type: \"custom:mushroom-template-card\",\n primary: \"Redémarrer HA\",\n icon: \"mdi:restart\",\n icon_color: \"red\",\n tap_action: {\n action: \"call-service\",\n service: \"homeassistant.restart\",\n }\n },\n ]\n },\n {\n type: \"markdown\",\n content: `Linus dashboard est en version ${version}.`,\n },\n ].filter(Boolean)\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor() {\n super();\n\n const defaultConfig = this.getDefaultConfig()\n\n this.config = Object.assign(this.config, defaultConfig);\n\n\n }\n}\n\nexport { LinusSettings };\n","import { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { slugify } from \"../utils\";\nimport { DOMAIN, todOrder } from \"../variables\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Scene Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass SceneSettings extends AbstractPopup {\n\n getDefaultConfig(device: MagicAreaRegistryEntry): PopupActionConfig {\n\n const { scene_morning, scene_daytime, scene_evening, scene_night } = device?.entities\n const selectControl = [scene_morning, scene_daytime, scene_evening, scene_night].filter(Boolean)\n\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Configurer les scènes\",\n content: {\n type: \"vertical-stack\",\n cards: [\n ...(selectControl.length ? todOrder.map(tod => (\n {\n type: \"custom:config-template-card\",\n variables: {\n SCENE_STATE: `states['${device?.entities[('scene_' + tod) as \"scene_morning\"]?.entity_id}'].state`\n },\n entities: [device?.entities[('scene_' + tod) as \"scene_morning\"]?.entity_id],\n card: {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"entities\",\n entities: [device?.entities[('scene_' + tod) as \"scene_morning\"]?.entity_id]\n },\n {\n type: \"conditional\",\n conditions: [\n {\n entity: \"${SCENE_STATE}\",\n state: \"on\"\n },\n // {\n // entity: \"${SCENE_STATE}\",\n // state: \"off\"\n // }\n ],\n card:\n {\n type: \"tile\",\n entity: \"${SCENE_STATE}\",\n show_entity_picture: true,\n tap_action: {\n action: \"toggle\"\n },\n }\n },\n {\n type: \"conditional\",\n conditions: [\n {\n entity: \"${SCENE_STATE}\",\n state: \"unavailable\"\n },\n // {\n // entity: \"${SCENE_STATE}\",\n // state: \"off\"\n // }\n ],\n card:\n\n {\n type: \"custom:mushroom-template-card\",\n secondary: \"Utiliser l'éclairage actuel\",\n multiline_secondary: true,\n icon: \"mdi:pencil\",\n layout: \"vertical\",\n tap_action: {\n action: \"call-service\",\n service: `${DOMAIN}.snapshot_lights_as_tod_scene`,\n data: {\n area: slugify(device.name),\n tod\n }\n },\n },\n }\n ]\n }\n }\n )\n ) : [{\n type: \"custom:mushroom-template-card\",\n primary: \"Ajouter une nouvelle scène\",\n secondary: `Cliquer ici pour vous rendre sur la page des scènes`,\n multiline_secondary: true,\n icon: `mdi:palette`,\n tap_action: {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.sequence\",\n data: {\n sequence: [\n {\n service: \"browser_mod.navigate\",\n data: { path: `/config/scene/dashboard` }\n },\n {\n service: \"browser_mod.close_popup\",\n data: {}\n }\n ]\n }\n }\n },\n card_mod: {\n style: `\n ha-card {\n box-shadow: none!important;\n }\n `\n }\n }])\n ].filter(Boolean)\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n\n }\n}\n\nexport { SceneSettings };\n","import { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Weather Chip class.\n *\n * Used to create a chip to indicate how many Weathers are on and to turn all off.\n */\nclass WeatherPopup extends AbstractPopup {\n\n getDefaultConfig(entityId: string): PopupActionConfig {\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Météo\",\n content: {\n type: \"vertical-stack\",\n cards: [\n {\n type: \"weather-forecast\",\n entity: entityId,\n show_current: true,\n show_forecast: true\n },\n ]\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(entity_id: string) {\n super();\n\n this.config = Object.assign(this.config, this.getDefaultConfig(entity_id));\n\n\n }\n}\n\nexport {WeatherPopup};\n","import {ActionsSharedConfig} from \"../shared/config/actions-config\";\nimport {LovelaceCardConfig} from \"../../homeassistant/data/lovelace\";\nimport {EntitySharedConfig} from \"../shared/config/entity-config\";\nimport {AppearanceSharedConfig} from \"../shared/config/appearance-config\";\n\nexport const VACUUM_COMMANDS = [\n \"on_off\",\n \"start_pause\",\n \"stop\",\n \"locate\",\n \"clean_spot\",\n \"return_home\",\n] as const;\n\nexport type VacuumCommand = (typeof VACUUM_COMMANDS)[number];\n\n/**\n * Vacuum Card Config.\n *\n * @param {boolean} icon_animation Animate the icon when vacuum is cleaning.\n * @param {VacuumCommand[]} commands List of commands to display (start_pause, stop, locate, clean_spot, return_home).\n *\n * @see https://github.com/piitaya/lovelace-mushroom/blob/main/docs/cards/vacuum.md\n */\nexport type VacuumCardConfig = LovelaceCardConfig &\n EntitySharedConfig &\n AppearanceSharedConfig &\n ActionsSharedConfig & {\n icon_animation?: boolean;\n commands?: VacuumCommand[];\n};\n","import {\n CallServiceActionConfig,\n LovelaceCardConfig,\n LovelaceConfig,\n LovelaceViewConfig\n} from \"../homeassistant/data/lovelace\";\nimport {HomeAssistant} from \"../homeassistant/types\";\nimport {AreaRegistryEntry} from \"../homeassistant/data/area_registry\";\nimport {cards} from \"./cards\";\nimport {EntityRegistryEntry} from \"../homeassistant/data/entity_registry\";\nimport {LovelaceChipConfig} from \"../lovelace-mushroom/utils/lovelace/chip/types\";\nimport {HassServiceTarget} from \"home-assistant-js-websocket\";\nimport { FloorRegistryEntry } from \"../homeassistant/data/floor_registry\";\n\nexport namespace generic {\n /**\n * An entry out of a Home Assistant Register.\n */\n export type RegistryEntry =\n | AreaRegistryEntry\n | DataTransfer\n | EntityRegistryEntry\n\n /**\n * View Entity.\n *\n * @property {number} [order] Ordering position of the entity in the list of available views.\n * @property {boolean} [hidden] True if the entity should be hidden from the dashboard.\n */\n export interface ViewConfig extends LovelaceViewConfig {\n hidden?: boolean;\n order?: number;\n }\n\n /**\n * Domain Configuration.\n *\n * @property {number} [order] Ordering position of the entity in the list of available views.\n * @property {boolean} [hidden] True if the entity should be hidden from the dashboard.\n * @property {boolean} [hide_config_entities] True if the entity's categorie is \"config\" and should be hidden from the\n * dashboard.\n */\n export interface DomainConfig extends Partial {\n hidden?: boolean;\n order?: number;\n hide_config_entities?: boolean\n }\n\n /**\n * Dashboard Information Object.\n *\n * Home Assistant passes this object to the Dashboard Generator method.\n *\n * @property {LovelaceConfig} config Dashboard configuration.\n * @property {HomeAssistant} hass The Home Assistant object.\n *\n * @see https://developers.home-assistant.io/docs/frontend/custom-ui/custom-strategy/#dashboard-strategies\n */\n export interface DashBoardInfo {\n config?: LovelaceConfig & {\n strategy: {\n options?: StrategyConfig\n }\n };\n hass: HomeAssistant;\n }\n\n /**\n * View Information Object.\n *\n * Home Assistant passes this object to the View Generator method.\n *\n * @property {LovelaceViewConfig} view View configuration.\n * @property {LovelaceConfig} config Dashboard configuration.\n * @property {HomeAssistant} hass The Home Assistant object.\n *\n * @see https://developers.home-assistant.io/docs/frontend/custom-ui/custom-strategy/#view-strategies\n */\n export interface ViewInfo {\n view: LovelaceViewConfig & {\n strategy?: {\n options?: StrategyConfig & { area: StrategyArea }\n }\n };\n config: LovelaceConfig\n hass: HomeAssistant;\n }\n\n /**\n * Strategy Configuration.\n *\n * @property {Object.} areas List of areas.\n * @property {Object.} [card_options] Card options for entities.\n * @property {chips} [chips] List of chips to show in the Home view.\n * @property {boolean} [debug] Set to true for more verbose debugging info.\n * @property {Object.} domains List of domains.\n * @property {object[]} [extra_cards] List of cards to show below room cards.\n * @property {object[]} [extra_views] List of views to add to the dashboard.\n * @property {object[]} [quick_access_cards] List of cards to show between welcome card and rooms cards.\n * @property {Object.} views List of views.\n */\n export interface StrategyConfig {\n areas: { [k: string]: StrategyArea };\n floors: { [k: string]: StrategyFloor };\n card_options?: { [k: string]: CustomCardConfig };\n chips?: Chips;\n debug: boolean;\n domains: { [k: string]: DomainConfig };\n extra_cards?: LovelaceCardConfig[];\n extra_views?: ViewConfig[];\n home_view: {\n hidden: HiddenSectionType[]\n }\n quick_access_cards?: LovelaceCardConfig[];\n views: { [k: string]: ViewConfig };\n }\n\n const hiddenSectionList = [\"chips\", \"persons\", \"greeting\", \"areas\", \"areasTitle\"] as const;\n export type HiddenSectionType = typeof hiddenSectionList[number];\n\n /**\n * Represents the default configuration for a strategy.\n */\n export interface StrategyDefaults extends StrategyConfig {\n areas: {\n undisclosed: StrategyArea & {\n area_id: \"undisclosed\",\n },\n [k: string]: StrategyArea,\n },\n floors: {\n undisclosed: StrategyFloor & {\n floor_id: \"undisclosed\",\n },\n [k: string]: StrategyFloor,\n },\n domains: {\n default: DomainConfig,\n [k: string]: DomainConfig,\n }\n }\n\n /**\n * Strategy Area.\n *\n * @property {number} [order] Ordering position of the area in the list of available areas.\n * @property {boolean} [hidden] True if the entity should be hidden from the dashboard.\n * @property {object[]} [extra_cards] An array of card configurations.\n * The configured cards are added to the dashboard.\n * @property {string} [type=default] The type of area card.\n */\n export interface StrategyArea extends AreaRegistryEntry {\n order?: number;\n hidden?: boolean;\n extra_cards?: LovelaceCardConfig[];\n type?: string;\n }\n\n /**\n * Strategy Floor.\n *\n * @property {number} [order] Ordering position of the area in the list of available areas.\n * @property {boolean} [hidden] True if the entity should be hidden from the dashboard.\n */\n export interface StrategyFloor extends FloorRegistryEntry {\n order?: number;\n hidden?: boolean;\n type?: string;\n }\n\n /**\n * A list of chips to show in the Home view.\n *\n * @property {boolean} light_count Chip to display the number of lights on.\n * @property {boolean} fan_count Chip to display the number of fans on.\n * @property {boolean} cover_count Chip to display the number of unclosed covers.\n * @property {boolean} switch_count Chip to display the number of switches on.\n * @property {boolean} climate_count Chip to display the number of climates which are not off.\n * @property {string} weather_entity Entity ID for the weather chip to use, accepts `weather.` only.\n * @property {object[]} extra_chips List of extra chips.\n */\n export interface Chips {\n extra_chips: LovelaceChipConfig[];\n\n light_count: boolean;\n fan_count: boolean;\n cover_count: boolean;\n switch_count: boolean;\n climate_count: boolean;\n weather_entity: string;\n alarm_entity: string;\n\n [key: string]: any;\n }\n\n /**\n * Custom Card Configuration for an entity.\n *\n * @property {boolean} hidden True if the entity should be hidden from the dashboard.\n */\n export interface CustomCardConfig extends LovelaceCardConfig {\n hidden?: boolean;\n }\n\n /**\n * Area Filter Context.\n *\n * @property {AreaRegistryEntry} area Area Entity.\n * @property {string[]} areaDeviceIds The id of devices which are linked to the area entity.\n * @property {string} domain Domain of the entity.\n * Example: `light`.\n */\n export interface AreaFilterContext {\n area: AreaRegistryEntry;\n areaDeviceIds: string[];\n domain: string;\n }\n\n /**\n * Checks if the given object is an instance of CallServiceActionConfig.\n *\n * @param {any} obj - The object to be checked.\n * @return {boolean} - Returns true if the object is an instance of CallServiceActionConfig, otherwise false.\n */\n export function isCallServiceActionConfig(obj: any): obj is CallServiceActionConfig {\n return obj && obj.action === \"call-service\" && [\"action\", \"service\"].every(key => key in obj);\n }\n\n /**\n * Checks if the given object is an instance of HassServiceTarget.\n *\n * @param {any} obj - The object to check.\n * @return {boolean} - True if the object is an instance of HassServiceTarget, false otherwise.\n */\n export function isCallServiceActionTarget(obj: any): obj is HassServiceTarget {\n return obj && [\"entity_id\", \"device_id\", \"area_id\"].some(key => key in obj);\n }\n}\n","import { MagicAreaRegistryEntry } from \"./types/homeassistant/data/device_registry\";\nimport { EntityRegistryEntry } from \"./types/homeassistant/data/entity_registry\";\nimport { ActionConfig } from \"./types/homeassistant/data/lovelace\";\nimport { MAGIC_AREAS_AGGREGATE_DOMAINS, MAGIC_AREAS_GROUP_DOMAINS } from \"./variables\";\n\n/**\n * Groups the elements of an array based on a provided function\n * @param {T[]} array - The array to group\n * @param {(item: T) => K} fn - The function to determine the group key for each element\n * @returns {Record} - An object where the keys are the group identifiers and the values are arrays of grouped elements\n */\nexport function groupBy(array: T[], fn: (item: T) => K): Record {\n return array.reduce((result, item) => {\n // Determine the group key for the current item\n const key = fn(item);\n\n // If the group key does not exist in the result, create an array for it\n if (!result[key]) {\n result[key] = [];\n }\n\n // Add the current item to the group\n result[key].push(item);\n\n return result;\n }, {} as Record);\n}\n\n\nexport function slugify(name: string | null): string {\n if (name === null) {\n return \"\";\n }\n return name.toLowerCase().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").replace(/\\s+/g, \"_\");\n}\n\nexport function getStateContent(entity_id: string): string {\n return entity_id.startsWith('binary_sensor.') ? 'last-changed' : 'state'\n}\n\nexport function navigateTo(path: string): ActionConfig {\n return {\n action: \"navigate\",\n navigation_path: `/dashboard/${path}`,\n }\n}\n\nexport function getAggregateEntity(device: MagicAreaRegistryEntry, domains: string | string[], deviceClasses?: string | string[]): EntityRegistryEntry[] {\n\n const aggregateKeys = []\n\n for (const domain of Array.isArray(domains) ? domains : [domains]) {\n\n if (domain === \"light\") {\n Object.values(device?.entities ?? {})?.map(entity => {\n if (entity.entity_id.endsWith('_lights')) {\n aggregateKeys.push(entity)\n }\n })\n }\n\n if (MAGIC_AREAS_GROUP_DOMAINS.includes(domain)) {\n aggregateKeys.push(device?.entities[`${domain}_group` as 'cover_group'])\n }\n\n if (MAGIC_AREAS_AGGREGATE_DOMAINS.includes(domain)) {\n for (const deviceClass of Array.isArray(deviceClasses) ? deviceClasses : [deviceClasses]) {\n aggregateKeys.push(device?.entities[`aggregate_${deviceClass}` as 'aggregate_motion'])\n }\n\n }\n }\n\n return aggregateKeys.filter(Boolean)\n}","export const DOMAIN = \"magic_areas\";\n\nexport const UNAVAILABLE = \"unavailable\";\nexport const UNKNOWN = \"unknown\";\n\n\nexport const todOrder = [\"morning\", \"daytime\", \"evening\", \"night\"];\n\n\nexport const STATES_OFF = [\"closed\", \"locked\", \"off\", \"docked\", \"idle\", \"standby\", \"paused\", \"auto\", \"ok\"];\n\nexport const UNAVAILABLE_STATES = [\"unavailable\", \"unknown\"];\n\nexport const MAGIC_AREAS_LIGHT_DOMAINS = \"light\";\nexport const MAGIC_AREAS_GROUP_DOMAINS = [\"cover\", \"climate\", \"media_player\"];\nexport const MAGIC_AREAS_AGGREGATE_DOMAINS = [\"binary_sensor\", \"sensor\"];\n\nexport const MAGIC_AREAS_DOMAINS = [MAGIC_AREAS_LIGHT_DOMAINS, ...MAGIC_AREAS_GROUP_DOMAINS, ...MAGIC_AREAS_AGGREGATE_DOMAINS];\n\nexport const SENSOR_DOMAINS = [\"sensor\"];\n\nexport const ALERT_DOMAINS = [\"binary_sensor\", \"health\"];\n\nexport const TOGGLE_DOMAINS = [\"light\", \"switch\"];\n\nexport const CLIMATE_DOMAINS = [\"climate\", \"fan\"];\n\nexport const HOUSE_INFORMATION_DOMAINS = [\"camera\", \"cover\", \"vacuum\", \"media_player\", \"lock\", \"plant\"];\n\nexport const OTHER_DOMAINS = [\"camera\", \"cover\", \"vacuum\", \"media_player\", \"lock\", \"scene\", \"plant\"];\n\nexport const AREA_CARDS_DOMAINS = [...TOGGLE_DOMAINS, ...CLIMATE_DOMAINS, ...OTHER_DOMAINS, \"binary_sensor\", \"sensor\"];\n\nexport const DEVICE_CLASSES = {\n sensor: [\"illuminance\", \"temperature\", \"humidity\", \"battery\", \"energy\", \"power\"],\n binary_sensor: [\"motion\", \"door\", \"window\", \"vibration\", \"moisture\", \"smoke\"],\n};\n\nexport const AREA_CARD_SENSORS_CLASS = [\"temperature\"];\n\nexport const DEVICE_ICONS = {\n presence_hold: 'mdi:car-brake-hold'\n};\n\nexport const DOMAIN_STATE_ICONS = {\n light: { on: \"mdi:lightbulb\", off: \"mdi:lightbulb-outline\" },\n switch: { on: \"mdi:power-plug\", off: \"mdi:power-plug\" },\n fan: { on: \"mdi:fan\", off: \"mdi:fan-off\" },\n sensor: { humidity: \"mdi:water-percent\", temperature: \"mdi:thermometer\", pressure: \"mdi:gauge\" },\n binary_sensor: {\n motion: { on: \"mdi:motion-sensor\", off: \"mdi:motion-sensor-off\" },\n door: { on: \"mdi:door-open\", off: \"mdi:door-closed\" },\n window: { on: \"mdi:window-open-variant\", off: \"mdi:window-closed-variant\" },\n safety: { on: \"mdi:alert-circle\", off: \"mdi:check-circle\" },\n vibration: \"mdi:vibrate\",\n moisture: \"mdi:water-alert\",\n smoke: \"mdi:smoke-detector-variant-alert\",\n },\n vacuum: { on: \"mdi:robot-vacuum\" },\n media_player: { on: \"mdi:cast-connected\" },\n lock: { on: \"mdi:lock-open\" },\n climate: { on: \"mdi:thermostat\" },\n camera: { on: \"mdi:video\" },\n cover: { on: \"mdi:window-shutter-open\", off: \"mdi:window-shutter\" },\n plant: { on: \"mdi:flower\", off: \"mdi:flower\" },\n};\n\nexport const DOMAIN_ICONS = {\n light: \"mdi:lightbulb\",\n climate: \"mdi:thermostat\",\n switch: \"mdi:power-plug\",\n fan: \"mdi:fan\",\n sensor: \"mdi:eye\",\n humidity: \"mdi:water-percent\",\n pressure: \"mdi:gauge\",\n illuminance: \"mdi:brightness-5\",\n temperature: \"mdi:thermometer\",\n energy: \"mdi:lightning-bolt\",\n power: \"mdi:flash\",\n binary_sensor: \"mdi:radiobox-blank\",\n motion: \"mdi:motion-sensor\",\n door: \"mdi:door-open\",\n window: \"mdi:window-open-variant\",\n vibration: \"mdi:vibrate\",\n moisture: \"mdi:water-alert\",\n vacuum: \"mdi:robot-vacuum\",\n media_player: \"mdi:cast-connected\",\n camera: \"mdi:video\",\n cover: \"mdi:window-shutter\",\n remote: \"mdi:remote\",\n scene: \"mdi:palette\",\n number: \"mdi:ray-vertex\",\n button: \"mdi:gesture-tap-button\",\n water_heater: \"mdi:thermometer\",\n select: \"mdi:format-list-bulleted\",\n lock: \"mdi:lock\",\n device_tracker: \"mdi:radar\",\n person: \"mdi:account-multiple\",\n weather: \"mdi:weather-cloudy\",\n automation: \"mdi:robot-outline\",\n alarm_control_panel: \"mdi:shield-home\",\n plant: 'mdi:flower',\n input_boolean: 'mdi:toggle-switch',\n health: 'mdi:shield-check-outline',\n};\n\nexport const AREA_STATE_ICONS = {\n occupied: \"mdi:account\",\n extended: \"mdi:account-clock\",\n clear: \"mdi:account-off\",\n bright: \"mdi:brightness-2\",\n dark: \"mdi:brightness-5\",\n sleep: \"mdi:bed\",\n};\n\n","import { MAGIC_AREAS_DOMAINS } from './../variables';\nimport { Helper } from \"../Helper\";\nimport { ControllerCard } from \"../cards/ControllerCard\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig, LovelaceSectionConfig, LovelaceViewConfig } from \"../types/homeassistant/data/lovelace\";\nimport { cards } from \"../types/strategy/cards\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport abstractCardConfig = cards.AbstractCardConfig;\nimport { SwipeCard } from \"../cards/SwipeCard\";\nimport { groupBy } from \"../utils\";\nimport { AggregateCard } from \"../cards/AggregateCard\";\nimport { TemplateCardConfig } from '../types/lovelace-mushroom/cards/template-card-config';\n\n/**\n * Abstract View Class.\n *\n * To create a new view, extend the new class with this one.\n *\n * @class\n * @abstract\n */\nabstract class AbstractView {\n /**\n * Configuration of the view.\n *\n * @type {LovelaceViewConfig}\n */\n config: LovelaceViewConfig = {\n icon: \"mdi:view-dashboard\",\n subview: false,\n };\n\n /**\n * A card to switch all entities in the view.\n *\n * @type {StackCardConfig}\n */\n viewControllerCard: StackCardConfig = {\n cards: [],\n type: \"\",\n };\n\n /**\n * The domain of which we operate the devices.\n *\n * @private\n * @readonly\n */\n readonly #domain?: string;\n\n /**\n * Class constructor.\n *\n * @param {string} [domain] The domain which the view is representing.\n *\n * @throws {Error} If trying to instantiate this class.\n * @throws {Error} If the Helper module isn't initialized.\n */\n protected constructor(domain: string = \"\") {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n\n if (domain) {\n this.#domain = domain;\n }\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TitleCardConfig)[]>} An array of card objects.\n */\n async createViewCards(): Promise<(StackCardConfig | TitleCardConfig)[]> {\n const viewCards: LovelaceCardConfig[] = [];\n const configEntityHidden =\n Helper.strategyOptions.domains[this.#domain ?? \"_\"].hide_config_entities\n || Helper.strategyOptions.domains[\"_\"].hide_config_entities;\n\n\n if (this.#domain && MAGIC_AREAS_DOMAINS.includes(this.#domain)) {\n viewCards.push(new AggregateCard(this.#domain).createCard())\n }\n\n const areasByFloor = groupBy(Helper.areas, (e) => e.floor_id ?? \"undisclosed\");\n\n\n for (const floor of [...Helper.floors, Helper.strategyOptions.floors.undisclosed]) {\n\n if (this.#domain && MAGIC_AREAS_DOMAINS.includes(this.#domain) && floor.floor_id !== \"undisclosed\") continue\n if (!(floor.floor_id in areasByFloor) || areasByFloor[floor.floor_id].length === 0) continue\n\n\n let floorCards: (TemplateCardConfig)[] = [];\n\n if (floor.floor_id !== \"undisclosed\") {\n floorCards.push(\n {\n type: \"heading\",\n heading: floor.name,\n heading_style: \"title\",\n }\n );\n }\n\n\n let areaCards: abstractCardConfig[] = [];\n\n // Create cards for each area.\n for (const [i, area] of areasByFloor[floor.floor_id].entries()) {\n\n areaCards = [];\n\n if (this.#domain && !MAGIC_AREAS_DOMAINS.includes(this.#domain) && area.area_id !== \"undisclosed\") continue\n\n const entities = Helper.getDeviceEntities(area, this.#domain ?? \"\");\n const className = Helper.sanitizeClassName(this.#domain + \"Card\");\n const cardModule = await import(`../cards/${className}`);\n\n // Set the target for controller cards to the current area.\n let target: HassServiceTarget = {\n area_id: [area.area_id],\n };\n\n // Set the target for controller cards to entities without an area.\n if (area.area_id === \"undisclosed\") {\n\n if (this.#domain === 'light')\n target = {\n entity_id: entities.map(entity => entity.entity_id),\n }\n }\n\n const swipeCard = []\n\n // Create a card for each domain-entity of the current area.\n for (const entity of entities) {\n let cardOptions = Helper.strategyOptions.card_options?.[entity.entity_id];\n let deviceOptions = Helper.strategyOptions.card_options?.[entity.device_id ?? \"null\"];\n\n if (cardOptions?.hidden || deviceOptions?.hidden) {\n continue;\n }\n\n if (entity.entity_category === \"config\" && configEntityHidden) {\n continue;\n }\n swipeCard.push(new cardModule[className](entity, cardOptions).getCard());\n }\n if (swipeCard.length) {\n areaCards.push(new SwipeCard(swipeCard).getCard())\n }\n\n // Vertical stack the area cards if it has entities.\n if (areaCards.length) {\n\n const titleCardOptions = (\"controllerCardOptions\" in this.config) ? this.config.controllerCardOptions : {};\n\n // Create and insert a Controller card.\n areaCards.unshift(new ControllerCard(target, Object.assign({ subtitle: area.name }, titleCardOptions)).createCard());\n\n floorCards.push({\n type: \"vertical-stack\",\n cards: areaCards,\n } as StackCardConfig);\n }\n }\n\n if (floorCards.length > 0) viewCards.push(...floorCards)\n }\n\n // Add a Controller Card for all the entities in the view.\n if (viewCards.length) {\n viewCards.unshift(this.viewControllerCard);\n }\n\n return viewCards;\n }\n\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TitleCardConfig)[]>} An array of card objects.\n */\n async createSectionCards(): Promise<(StackCardConfig | TitleCardConfig)[]> {\n\n return [];\n }\n\n /**\n * Get a view object.\n *\n * The view includes the cards which are created by method createViewCards().\n *\n * @returns {Promise} The view object.\n */\n async getView(): Promise {\n return {\n ...this.config,\n cards: await this.createViewCards(),\n sections: await this.createSectionCards(),\n };\n }\n\n /**\n * Get a target of entity IDs for the given domain.\n *\n * @param {string} domain - The target domain to retrieve entity IDs from.\n * @return {HassServiceTarget} - A target for a service call.\n */\n targetDomain(domain: string): HassServiceTarget {\n return {\n entity_id: Helper.entities.filter(\n entity =>\n entity.entity_id.startsWith(domain + \".\")\n && !entity.hidden_by\n && !Helper.strategyOptions.card_options?.[entity.entity_id]?.hidden\n ).map(entity => entity.entity_id),\n };\n }\n}\n\nexport { AbstractView };\n","import {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\nimport {Helper} from \"../Helper\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Camera View Class.\n *\n * Used to create a view for entities of the camera domain.\n *\n * @class CameraView\n * @extends AbstractView\n */\nclass CameraView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"camera\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Cameras\",\n path: \"cameras\",\n icon: \"mdi:cctv\",\n subview: false,\n controllerCardOptions: {\n showControls: false,\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.camera.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(CameraView.#domain, \"ne\", \"off\") + ` ${Helper.localize(\"component.light.entity_component._.state.on\")}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(CameraView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n {},\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {CameraView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate View Class.\n *\n * Used to create a view for entities of the climate domain.\n *\n * @class ClimateView\n * @extends AbstractView\n */\nclass ClimateView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"climate\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Climates\",\n path: \"climates\",\n icon: \"mdi:thermostat\",\n subview: false,\n controllerCardOptions: {\n showControls: false,\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.climate.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(ClimateView.#domain, \"ne\", \"off\") + ` ${Helper.localize(`component.fan.entity_component._.state.on`)}s`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(ClimateView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(ClimateView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {ClimateView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Cover View Class.\n *\n * Used to create a view for entities of the cover domain.\n *\n * @class CoverView\n * @extends AbstractView\n */\nclass CoverView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"cover\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Covers\",\n path: \"covers\",\n icon: \"mdi:window-open\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:arrow-up\",\n iconOff: \"mdi:arrow-down\",\n onService: \"cover.open_cover\",\n offService: \"cover.close_cover\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.cover.entity_component._.name`)}`,\n subtitle: Helper.getCountTemplate(CoverView.#domain, \"eq\", \"open\") + ` ${Helper.localize(`component.cover.entity_component._.state.open`)}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(CoverView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(CoverView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {CoverView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Fan View Class.\n *\n * Used to create a view for entities of the fan domain.\n *\n * @class FanView\n * @extends AbstractView\n */\nclass FanView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"fan\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Fans\",\n path: \"fans\",\n icon: \"mdi:fan\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:fan\",\n iconOff: \"mdi:fan-off\",\n onService: \"fan.turn_on\",\n offService: \"fan.turn_off\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.fan.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(FanView.#domain, \"eq\", \"on\") + ` ${Helper.localize(`component.fan.entity_component._.state.on`)}s`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(FanView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(FanView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {FanView};\n","import { Helper } from \"../Helper\";\nimport { AbstractView } from \"./AbstractView\";\nimport { views } from \"../types/strategy/views\";\nimport { LovelaceChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { ChipsCardConfig } from \"../types/lovelace-mushroom/cards/chips-card\";\nimport { AreaCardConfig, StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { ActionConfig, LovelaceSectionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { PersonCardConfig } from \"../types/lovelace-mushroom/cards/person-card-config\";\nimport { SettingsChip } from \"../chips/SettingsChip\";\nimport { LinusSettings } from \"../popups/LinusSettingsPopup\";\nimport { UnavailableChip } from \"../chips/UnavailableChip\";\nimport { UNAVAILABLE_STATES } from \"../variables\";\nimport { groupBy } from \"../utils\";\nimport { generic } from \"../types/strategy/generic\";\nimport isCallServiceActionConfig = generic.isCallServiceActionConfig;\n\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Home View Class.\n *\n * Used to create a Home view.\n *\n * @class HomeView\n * @extends AbstractView\n */\nclass HomeView extends AbstractView {\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Home\",\n icon: \"mdi:home-assistant\",\n type: \"sections\",\n path: \"home\",\n subview: false,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super();\n\n this.config = { ...this.config, ...this.#defaultConfig, ...options };\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TemplateCardConfig | ChipsCardConfig)[]>} Promise a View Card array.\n * @override\n */\n async createViewCards(): Promise<(StackCardConfig | TemplateCardConfig | ChipsCardConfig)[]> {\n return []\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TemplateCardConfig | ChipsCardConfig)[]>} Promise a View Card array.\n * @override\n */\n async createSectionCards(): Promise<(StackCardConfig | TemplateCardConfig | ChipsCardConfig)[]> {\n return await Promise.all([\n this.#createChips(),\n this.#createPersonCards(),\n this.#createAreaSection(),\n ]).then(([chips, personCards, areaCards]) => {\n const options = Helper.strategyOptions;\n const firstSection: LovelaceSectionConfig = {\n type: \"grid\",\n column_span: 1,\n cards: []\n };\n\n if (chips.length) {\n // TODO: Create the Chip card at this.#createChips()\n firstSection.cards.push({\n type: \"custom:mushroom-chips-card\",\n alignment: \"center\",\n chips: chips,\n } as ChipsCardConfig)\n }\n\n if (personCards.length) {\n // TODO: Create the stack at this.#createPersonCards()\n firstSection.cards.push({\n type: \"horizontal-stack\",\n cards: personCards,\n } as StackCardConfig);\n }\n\n if (!Helper.strategyOptions.home_view.hidden.includes(\"greeting\")) {\n const tod = Helper.magicAreasDevices.global?.entities.time_of_the_day;\n\n firstSection.cards.push({\n type: \"custom:mushroom-template-card\",\n primary: `\n {% set tod = states(\"${tod?.entity_id}\") %}\n {% if (tod == \"evening\") %} Bonne soirée, {{user}} !\n {% elif (tod == \"daytime\") %} Bonne après-midi, {{user}} !\n {% elif (tod == \"night\") %} Bonne nuit, {{user}} !\n {% else %} Bonjour, {{user}} !\n {% endif %}`,\n icon: \"mdi:hand-wave\",\n icon_color: \"orange\",\n tap_action: {\n action: \"none\",\n } as ActionConfig,\n double_tap_action: {\n action: \"none\",\n } as ActionConfig,\n hold_action: {\n action: \"none\",\n } as ActionConfig,\n } as TemplateCardConfig);\n }\n\n\n // Add quick access cards.\n if (options.quick_access_cards) {\n firstSection.cards.push(...options.quick_access_cards);\n }\n\n // Add custom cards.\n if (options.extra_cards) {\n firstSection.cards.push(...options.extra_cards);\n }\n\n // Add area cards.\n const secondSection: LovelaceSectionConfig = {\n type: \"grid\",\n column_span: 1,\n cards: areaCards,\n };\n\n return [firstSection, secondSection];\n });\n }\n\n /**\n * Create the chips to include in the view.\n *\n * @return {Promise} Promise a chip array.\n */\n async #createChips(): Promise {\n if (Helper.strategyOptions.home_view.hidden.includes(\"chips\")) {\n // Chips section is hidden.\n\n return [];\n }\n\n const chips: LovelaceChipConfig[] = [];\n const chipOptions = Helper.strategyOptions.chips;\n\n // TODO: Get domains from config.\n const exposedChips = [\"light\", \"fan\", \"cover\", \"switch\", \"climate\", \"safety\", \"motion\", \"door\", \"window\"];\n // Create a list of area-ids, used for switching all devices via chips\n const areaIds = Helper.areas.map(area => area.area_id ?? \"\");\n\n let chipModule;\n\n // Weather chip.\n const weatherEntityId = chipOptions?.weather_entity ?? Helper.entities.find(\n (entity) => entity.entity_id.startsWith(\"weather.\") && entity.disabled_by === null && entity.hidden_by === null,\n )?.entity_id;\n\n if (weatherEntityId) {\n try {\n chipModule = await import(\"../chips/WeatherChip\");\n const weatherChip = new chipModule.WeatherChip(weatherEntityId);\n\n chips.push(weatherChip.getChip());\n } catch (e) {\n Helper.logError(\"An error occurred while creating the weather chip!\", e);\n }\n }\n\n // Alarm chip.\n const alarmEntityId = chipOptions?.alarm_entity ?? Helper.getAlarmEntity()?.entity_id;\n\n if (alarmEntityId) {\n try {\n chipModule = await import(\"../chips/AlarmChip\");\n const alarmChip = new chipModule.AlarmChip(alarmEntityId);\n\n chips.push(alarmChip.getChip());\n } catch (e) {\n Helper.logError(\"An error occurred while creating the alarm chip!\", e);\n }\n }\n\n // Spotify chip.\n const spotifyEntityId = chipOptions?.spotify_entity ?? Helper.entities.find(\n (entity) => entity.entity_id.startsWith(\"media_player.spotify_\") && entity.disabled_by === null && entity.hidden_by === null,\n )?.entity_id;\n\n if (spotifyEntityId) {\n try {\n chipModule = await import(\"../chips/SpotifyChip\");\n const spotifyChip = new chipModule.SpotifyChip(spotifyEntityId);\n\n chips.push(spotifyChip.getChip());\n } catch (e) {\n Helper.logError(\"An error occurred while creating the spotify chip!\", e);\n }\n }\n\n // Numeric chips.\n for (let chipType of exposedChips) {\n if (chipOptions?.[`${chipType}_count` as string] ?? true) {\n const className = Helper.sanitizeClassName(chipType + \"Chip\");\n try {\n chipModule = await import((`../chips/${className}`));\n const chip = new chipModule[className](Helper.magicAreasDevices[\"global\"]);\n\n if (\"tap_action\" in this.config && isCallServiceActionConfig(this.config.tap_action)) {\n chip.setTapActionTarget({ area_id: areaIds });\n }\n chips.push(chip.getChip());\n } catch (e) {\n Helper.logError(`An error occurred while creating the ${chipType} chip!`, e);\n }\n }\n }\n\n // Extra chips.\n if (chipOptions?.extra_chips) {\n chips.push(...chipOptions.extra_chips);\n }\n\n // Unavailable chip.\n const unavailableEntities = Object.values(Helper.magicAreasDevices[\"global\"]?.entities ?? [])?.filter((e) => {\n const entityState = Helper.getEntityState(e.entity_id);\n return (exposedChips.includes(e.entity_id.split(\".\", 1)[0]) || exposedChips.includes(entityState?.attributes.device_class || '')) &&\n UNAVAILABLE_STATES.includes(entityState?.state);\n });\n\n\n if (unavailableEntities.length) {\n const unavailableChip = new UnavailableChip(unavailableEntities);\n chips.push(unavailableChip.getChip());\n }\n\n const linusSettings = new SettingsChip({ tap_action: new LinusSettings().getPopup() })\n\n chips.push(linusSettings.getChip());\n\n return chips;\n }\n\n /**\n * Create the person cards to include in the view.\n *\n * @return {PersonCardConfig[]} A Person Card array.\n */\n #createPersonCards(): PersonCardConfig[] {\n if (Helper.strategyOptions.home_view.hidden.includes(\"persons\")) {\n // Person section is hidden.\n\n return [];\n }\n\n const cards: PersonCardConfig[] = [];\n\n import(\"../cards/PersonCard\").then(personModule => {\n for (const person of Helper.entities.filter((entity) => {\n return entity.entity_id.startsWith(\"person.\")\n && entity.hidden_by == null\n && entity.disabled_by == null;\n })) {\n cards.push(new personModule.PersonCard(person).getCard());\n }\n });\n\n return cards;\n }\n\n /**\n * Create the area cards to include in the view.\n *\n * Area cards are grouped into two areas per row.\n *\n * @return {Promise<(TitleCardConfig | StackCardConfig)[]>} Promise an Area Card Section.\n */\n async #createAreaSection(): Promise<(TitleCardConfig | StackCardConfig)[]> {\n if (Helper.strategyOptions.home_view.hidden.includes(\"areas\")) {\n // Areas section is hidden.\n\n return [];\n }\n\n const groupedCards: (TitleCardConfig | StackCardConfig)[] = [];\n\n if (!Helper.strategyOptions.home_view.hidden.includes(\"areasTitle\")) {\n groupedCards.push(\n {\n type: \"heading\",\n heading: `${Helper.localize(\"ui.components.area-picker.area\")}s`,\n heading_style: \"title\",\n },\n );\n }\n\n const areasByFloor = groupBy(Helper.areas, (e) => e.floor_id ?? \"undisclosed\");\n\n for (const floor of [...Helper.floors, Helper.strategyOptions.floors.undisclosed]) {\n if (!(floor.floor_id in areasByFloor)) continue\n\n groupedCards.push(\n {\n type: \"heading\",\n heading: floor.name,\n heading_style: \"subtitle\",\n }\n );\n\n for (const [i, area] of areasByFloor[floor.floor_id].entries()) {\n\n type ModuleType = typeof import(\"../cards/AreaCard\");\n\n let module: ModuleType;\n let moduleName =\n Helper.strategyOptions.areas[area.area_id]?.type ??\n Helper.strategyOptions.areas[\"_\"]?.type ??\n \"default\";\n\n // Load module by type in strategy options.\n try {\n module = await import((`../cards/${moduleName}`));\n } catch (e) {\n // Fallback to the default strategy card.\n module = await import(\"../cards/AreaCard\");\n\n if (Helper.strategyOptions.debug && moduleName !== \"default\") {\n console.error(e);\n }\n }\n\n // Get a card for the area.\n if (!Helper.strategyOptions.areas[area.area_id as string]?.hidden) {\n let options = {\n ...Helper.strategyOptions.areas[\"_\"],\n ...Helper.strategyOptions.areas[area.area_id],\n };\n\n groupedCards.push({\n ...new module.AreaCard(area, options).getCard(),\n layout_options: {\n grid_columns: 2\n }\n });\n }\n }\n }\n\n groupedCards.push({\n type: \"custom:mushroom-template-card\",\n primary: \"Ajouter une nouvelle pièce\",\n secondary: `Cliquer ici pour vous rendre sur la page des pièces`,\n multiline_secondary: true,\n icon: `mdi:view-dashboard-variant`,\n fill_container: true,\n tap_action: {\n action: \"navigate\",\n navigation_path: '/config/areas/dashboard'\n },\n } as any)\n\n return groupedCards;\n }\n}\n\nexport { HomeView };\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light View Class.\n *\n * Used to create a view for entities of the light domain.\n *\n * @class LightView\n * @extends AbstractView\n */\nclass LightView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"light\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n path: \"lights\",\n icon: \"mdi:lightbulb-group\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:lightbulb\",\n iconOff: \"mdi:lightbulb-off\",\n onService: \"light.turn_on\",\n offService: \"light.turn_off\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.light.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(LightView.#domain, \"eq\", \"on\") + ` ${Helper.localize(\"component.light.entity_component._.state.on\")}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(LightView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(LightView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {LightView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * MediaPlayer View Class.\n *\n * Used to create a view for entities of the media_player domain.\n *\n * @class MediaPlayerView\n * @extends AbstractView\n */\nclass MediaPlayerView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"media_player\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"MediaPlayers\",\n path: \"media_players\",\n icon: \"mdi:cast\",\n subview: false,\n controllerCardOptions: {\n showControls: false,\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.media_player.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(MediaPlayerView.#domain, \"ne\", \"off\") + \" media players on\",\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(MediaPlayerView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(MediaPlayerView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {MediaPlayerView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Scene View Class.\n *\n * Used to create a view for entities of the scene domain.\n *\n * @class SceneView\n * @extends AbstractView\n */\nclass SceneView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"scene\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Scenes\",\n path: \"scenes\",\n icon: \"mdi:palette\",\n subview: false,\n controllerCardOptions: {\n showControls: false,\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`ui.dialogs.quick-bar.commands.navigation.scene`)}`,\n subtitle: Helper.getCountTemplate(SceneView.#domain, \"ne\", \"on\") + ` ${Helper.localize(`ui.dialogs.quick-bar.commands.navigation.scene`)}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(SceneView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to scene all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(SceneView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {SceneView};\n","import { Helper } from \"../Helper\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig, LovelaceViewConfig } from \"../types/homeassistant/data/lovelace\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { AggregateCard } from \"../cards/AggregateCard\";\n\n/**\n * Security View Class.\n *\n * To create a new view, extend the new class with this one.\n *\n * @class\n * @abstract\n */\nabstract class SecurityDetailsView {\n /**\n * Configuration of the view.\n *\n * @type {LovelaceViewConfig}\n */\n config: LovelaceViewConfig = {\n title: Helper.localize(\"component.binary_sensor.entity_component.safety.name\"),\n path: \"security-details\",\n icon: \"mdi:security\",\n subview: true,\n };\n\n /**\n * A card to switch all entities in the view.\n *\n * @type {StackCardConfig}\n */\n viewControllerCard: StackCardConfig = {\n cards: [],\n type: \"\",\n };\n\n /**\n * Class constructor.\n *\n * @throws {Error} If trying to instantiate this class.\n * @throws {Error} If the Helper module isn't initialized.\n */\n protected constructor() {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TitleCardConfig)[]>} An array of card objects.\n */\n async createViewCards(): Promise<(StackCardConfig | TitleCardConfig)[]> {\n const viewCards: LovelaceCardConfig[] = [];\n\n const globalDevice = Helper.magicAreasDevices[\"global\"];\n\n if (!globalDevice) return [];\n\n const {\n aggregate_motion,\n aggregate_door,\n aggregate_window,\n } = globalDevice?.entities;\n\n\n if (aggregate_motion?.entity_id) {\n viewCards.push(new AggregateCard('binary_sensor', { device_class: 'motion', title: Helper.localize(\"component.binary_sensor.entity_component.motion.name\") }).createCard())\n // viewCards.push(new AggregateCard({ entity_id: aggregate_motion.entity_id }, { title: `${Helper.localize(\"component.binary_sensor.entity_component.motion.name\")}s` }).createCard())\n }\n\n if (aggregate_door?.entity_id || aggregate_window?.entity_id) {\n viewCards.push(new AggregateCard('binary_sensor', { device_class: ['door', 'window'], title: Helper.localize(\"component.binary_sensor.entity_component.opening.name\") }).createCard())\n // viewCards.push(new AggregateCard({ entity_id: [aggregate_door?.entity_id, aggregate_window?.entity_id] }, { title: `${Helper.localize(\"component.binary_sensor.entity_component.opening.name\")}s` }).createCard())\n }\n\n return viewCards;\n }\n\n /**\n * Get a view object.\n *\n * The view includes the cards which are created by method createViewCards().\n *\n * @returns {Promise} The view object.\n */\n async getView(): Promise {\n return {\n ...this.config,\n cards: await this.createViewCards(),\n };\n }\n}\n\nexport { SecurityDetailsView };\n","import { Helper } from \"../Helper\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig, LovelaceSectionConfig, LovelaceViewConfig } from \"../types/homeassistant/data/lovelace\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { AlarmCard } from \"../cards/AlarmCard\";\nimport { PersonCard } from \"../cards/PersonCard\";\nimport { BinarySensorCard } from \"../cards/BinarySensorCard\";\nimport { navigateTo } from \"../utils\";\n\n/**\n * Security View Class.\n *\n * To create a new view, extend the new class with this one.\n *\n * @class\n * @abstract\n */\nabstract class SecurityView {\n /**\n * Configuration of the view.\n *\n * @type {LovelaceViewConfig}\n */\n config: LovelaceViewConfig = {\n title: Helper.localize(\"component.binary_sensor.entity_component.safety.name\"),\n path: \"security\",\n type: \"sections\",\n icon: \"mdi:security\",\n };\n\n /**\n * A card to switch all entities in the view.\n *\n * @type {StackCardConfig}\n */\n viewControllerCard: StackCardConfig = {\n cards: [],\n type: \"\",\n };\n\n /**\n * Class constructor.\n *\n * @throws {Error} If trying to instantiate this class.\n * @throws {Error} If the Helper module isn't initialized.\n */\n protected constructor() {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TitleCardConfig)[]>} An array of card objects.\n */\n async createSectionCards(): Promise<(StackCardConfig | TitleCardConfig)[]> {\n const globalSection: LovelaceSectionConfig = {\n type: \"grid\",\n column_span: 1,\n cards: []\n };\n\n const alarmEntity = Helper.getAlarmEntity();\n if (alarmEntity?.entity_id) {\n globalSection.cards.push(\n {\n type: \"heading\",\n heading: \"Sécurité\",\n heading_style: \"title\",\n }\n )\n globalSection.cards.push(\n {\n type: \"heading\",\n heading: \"Alarme\",\n heading_style: \"subtitle\",\n })\n globalSection.cards.push(new AlarmCard(alarmEntity).getCard())\n }\n\n const persons = Helper.getPersonsEntity()\n if (persons?.length) {\n globalSection.cards.push(\n {\n type: \"heading\",\n heading: \"Personnes\",\n heading_style: \"subtitle\",\n })\n\n for (const person of persons) {\n globalSection.cards.push(new PersonCard(person, {\n layout: \"horizontal\",\n primary_info: \"name\",\n secondary_info: \"state\"\n }).getCard())\n }\n }\n\n const globalDevice = Helper.magicAreasDevices[\"global\"];\n\n if (!globalDevice) {\n console.debug(\"Security view : Global device not found\");\n return [];\n }\n\n const {\n aggregate_motion,\n aggregate_door,\n aggregate_window,\n } = globalDevice?.entities;\n\n if (aggregate_motion || aggregate_door || aggregate_window) {\n globalSection.cards.push(\n {\n type: \"heading\",\n heading: \"Capteurs\",\n heading_style: \"subtitle\",\n })\n if (aggregate_motion?.entity_id) globalSection.cards.push(new BinarySensorCard(aggregate_motion, { tap_action: navigateTo('security-details') }).getCard());\n if (aggregate_door?.entity_id) globalSection.cards.push(new BinarySensorCard(aggregate_door, { tap_action: navigateTo('security-details') }).getCard());\n if (aggregate_window?.entity_id) globalSection.cards.push(new BinarySensorCard(aggregate_window, { tap_action: navigateTo('security-details') }).getCard());\n }\n\n return [globalSection];\n }\n\n /**\n * Get a view object.\n *\n * The view includes the cards which are created by method createSectionCards().\n *\n * @returns {Promise} The view object.\n */\n async getView(): Promise {\n return {\n ...this.config,\n sections: await this.createSectionCards(),\n };\n }\n}\n\nexport { SecurityView };\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Switch View Class.\n *\n * Used to create a view for entities of the switch domain.\n *\n * @class SwitchView\n * @extends AbstractView\n */\nclass SwitchView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"switch\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Switches\",\n path: \"switches\",\n icon: \"mdi:dip-switch\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:power-plug\",\n iconOff: \"mdi:power-plug-off\",\n onService: \"switch.turn_on\",\n offService: \"switch.turn_off\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.switch.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(SwitchView.#domain, \"eq\", \"on\") + \" switches on\",\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(SwitchView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(SwitchView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {SwitchView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Vacuum View Class.\n *\n * Used to create a view for entities of the vacuum domain.\n *\n * @class VacuumView\n * @extends AbstractView\n */\nclass VacuumView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"vacuum\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Vacuums\",\n path: \"vacuums\",\n icon: \"mdi:robot-vacuum\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:robot-vacuum\",\n iconOff: \"mdi:robot-vacuum-off\",\n onService: \"vacuum.start\",\n offService: \"vacuum.stop\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.vacuum.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(VacuumView.#domain, \"ne\", \"off\") + ` ${Helper.localize(`component.vacuum.entity_component._.state.on`)}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(VacuumView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(VacuumView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {VacuumView};\n","var map = {\n\t\"./AbstractCard\": [\n\t\t\"./src/cards/AbstractCard.ts\"\n\t],\n\t\"./AbstractCard.ts\": [\n\t\t\"./src/cards/AbstractCard.ts\"\n\t],\n\t\"./AggregateCard\": [\n\t\t\"./src/cards/AggregateCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AggregateCard.ts\": [\n\t\t\"./src/cards/AggregateCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AlarmCard\": [\n\t\t\"./src/cards/AlarmCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AlarmCard.ts\": [\n\t\t\"./src/cards/AlarmCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AreaCard\": [\n\t\t\"./src/cards/AreaCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AreaCard.ts\": [\n\t\t\"./src/cards/AreaCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./BinarySensorCard\": [\n\t\t\"./src/cards/BinarySensorCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./BinarySensorCard.ts\": [\n\t\t\"./src/cards/BinarySensorCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./CameraCard\": [\n\t\t\"./src/cards/CameraCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./CameraCard.ts\": [\n\t\t\"./src/cards/CameraCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateCard\": [\n\t\t\"./src/cards/ClimateCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateCard.ts\": [\n\t\t\"./src/cards/ClimateCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./ControllerCard\": [\n\t\t\"./src/cards/ControllerCard.ts\"\n\t],\n\t\"./ControllerCard.ts\": [\n\t\t\"./src/cards/ControllerCard.ts\"\n\t],\n\t\"./CoverCard\": [\n\t\t\"./src/cards/CoverCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverCard.ts\": [\n\t\t\"./src/cards/CoverCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanCard\": [\n\t\t\"./src/cards/FanCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanCard.ts\": [\n\t\t\"./src/cards/FanCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./HaAreaCard\": [\n\t\t\"./src/cards/HaAreaCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./HaAreaCard.ts\": [\n\t\t\"./src/cards/HaAreaCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightCard\": [\n\t\t\"./src/cards/LightCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightCard.ts\": [\n\t\t\"./src/cards/LightCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./LockCard\": [\n\t\t\"./src/cards/LockCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./LockCard.ts\": [\n\t\t\"./src/cards/LockCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./MainAreaCard\": [\n\t\t\"./src/cards/MainAreaCard.ts\"\n\t],\n\t\"./MainAreaCard.ts\": [\n\t\t\"./src/cards/MainAreaCard.ts\"\n\t],\n\t\"./MediaPlayerCard\": [\n\t\t\"./src/cards/MediaPlayerCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./MediaPlayerCard.ts\": [\n\t\t\"./src/cards/MediaPlayerCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./MiscellaneousCard\": [\n\t\t\"./src/cards/MiscellaneousCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./MiscellaneousCard.ts\": [\n\t\t\"./src/cards/MiscellaneousCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./NumberCard\": [\n\t\t\"./src/cards/NumberCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./NumberCard.ts\": [\n\t\t\"./src/cards/NumberCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./PersonCard\": [\n\t\t\"./src/cards/PersonCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./PersonCard.ts\": [\n\t\t\"./src/cards/PersonCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./SceneCard\": [\n\t\t\"./src/cards/SceneCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./SceneCard.ts\": [\n\t\t\"./src/cards/SceneCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./SensorCard\": [\n\t\t\"./src/cards/SensorCard.ts\"\n\t],\n\t\"./SensorCard.ts\": [\n\t\t\"./src/cards/SensorCard.ts\"\n\t],\n\t\"./SwipeCard\": [\n\t\t\"./src/cards/SwipeCard.ts\"\n\t],\n\t\"./SwipeCard.ts\": [\n\t\t\"./src/cards/SwipeCard.ts\"\n\t],\n\t\"./SwitchCard\": [\n\t\t\"./src/cards/SwitchCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchCard.ts\": [\n\t\t\"./src/cards/SwitchCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./VacuumCard\": [\n\t\t\"./src/cards/VacuumCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./VacuumCard.ts\": [\n\t\t\"./src/cards/VacuumCard.ts\",\n\t\t\"main\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./src/cards lazy recursive ^\\\\.\\\\/.*$\";\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./AbstractChip\": [\n\t\t\"./src/chips/AbstractChip.ts\"\n\t],\n\t\"./AbstractChip.ts\": [\n\t\t\"./src/chips/AbstractChip.ts\"\n\t],\n\t\"./AlarmChip\": [\n\t\t\"./src/chips/AlarmChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./AlarmChip.ts\": [\n\t\t\"./src/chips/AlarmChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./AreaScenesChips\": [\n\t\t\"./src/chips/AreaScenesChips.ts\"\n\t],\n\t\"./AreaScenesChips.ts\": [\n\t\t\"./src/chips/AreaScenesChips.ts\"\n\t],\n\t\"./AreaStateChip\": [\n\t\t\"./src/chips/AreaStateChip.ts\"\n\t],\n\t\"./AreaStateChip.ts\": [\n\t\t\"./src/chips/AreaStateChip.ts\"\n\t],\n\t\"./ClimateChip\": [\n\t\t\"./src/chips/ClimateChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateChip.ts\": [\n\t\t\"./src/chips/ClimateChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverChip\": [\n\t\t\"./src/chips/CoverChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverChip.ts\": [\n\t\t\"./src/chips/CoverChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./DoorChip\": [\n\t\t\"./src/chips/DoorChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./DoorChip.ts\": [\n\t\t\"./src/chips/DoorChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanChip\": [\n\t\t\"./src/chips/FanChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanChip.ts\": [\n\t\t\"./src/chips/FanChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightChip\": [\n\t\t\"./src/chips/LightChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightChip.ts\": [\n\t\t\"./src/chips/LightChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightControlChip\": [\n\t\t\"./src/chips/LightControlChip.ts\"\n\t],\n\t\"./LightControlChip.ts\": [\n\t\t\"./src/chips/LightControlChip.ts\"\n\t],\n\t\"./LinusAggregateChip\": [\n\t\t\"./src/chips/LinusAggregateChip.ts\"\n\t],\n\t\"./LinusAggregateChip.ts\": [\n\t\t\"./src/chips/LinusAggregateChip.ts\"\n\t],\n\t\"./LinusAlarmChip\": [\n\t\t\"./src/chips/LinusAlarmChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusAlarmChip.ts\": [\n\t\t\"./src/chips/LinusAlarmChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusClimateChip\": [\n\t\t\"./src/chips/LinusClimateChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusClimateChip.ts\": [\n\t\t\"./src/chips/LinusClimateChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusLightChip\": [\n\t\t\"./src/chips/LinusLightChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusLightChip.ts\": [\n\t\t\"./src/chips/LinusLightChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./MotionChip\": [\n\t\t\"./src/chips/MotionChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./MotionChip.ts\": [\n\t\t\"./src/chips/MotionChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SafetyChip\": [\n\t\t\"./src/chips/SafetyChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SafetyChip.ts\": [\n\t\t\"./src/chips/SafetyChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SettingsChip\": [\n\t\t\"./src/chips/SettingsChip.ts\"\n\t],\n\t\"./SettingsChip.ts\": [\n\t\t\"./src/chips/SettingsChip.ts\"\n\t],\n\t\"./SpotifyChip\": [\n\t\t\"./src/chips/SpotifyChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SpotifyChip.ts\": [\n\t\t\"./src/chips/SpotifyChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchChip\": [\n\t\t\"./src/chips/SwitchChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchChip.ts\": [\n\t\t\"./src/chips/SwitchChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./ToggleSceneChip\": [\n\t\t\"./src/chips/ToggleSceneChip.ts\"\n\t],\n\t\"./ToggleSceneChip.ts\": [\n\t\t\"./src/chips/ToggleSceneChip.ts\"\n\t],\n\t\"./UnavailableChip\": [\n\t\t\"./src/chips/UnavailableChip.ts\"\n\t],\n\t\"./UnavailableChip.ts\": [\n\t\t\"./src/chips/UnavailableChip.ts\"\n\t],\n\t\"./WeatherChip\": [\n\t\t\"./src/chips/WeatherChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./WeatherChip.ts\": [\n\t\t\"./src/chips/WeatherChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./WindowChip\": [\n\t\t\"./src/chips/WindowChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./WindowChip.ts\": [\n\t\t\"./src/chips/WindowChip.ts\",\n\t\t\"main\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./src/chips lazy recursive ^\\\\.\\\\/.*$\";\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./AbstractView\": [\n\t\t\"./src/views/AbstractView.ts\",\n\t\t\"main\"\n\t],\n\t\"./AbstractView.ts\": [\n\t\t\"./src/views/AbstractView.ts\",\n\t\t\"main\"\n\t],\n\t\"./CameraView\": [\n\t\t\"./src/views/CameraView.ts\",\n\t\t\"main\"\n\t],\n\t\"./CameraView.ts\": [\n\t\t\"./src/views/CameraView.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateView\": [\n\t\t\"./src/views/ClimateView.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateView.ts\": [\n\t\t\"./src/views/ClimateView.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverView\": [\n\t\t\"./src/views/CoverView.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverView.ts\": [\n\t\t\"./src/views/CoverView.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanView\": [\n\t\t\"./src/views/FanView.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanView.ts\": [\n\t\t\"./src/views/FanView.ts\",\n\t\t\"main\"\n\t],\n\t\"./HomeView\": [\n\t\t\"./src/views/HomeView.ts\",\n\t\t\"main\"\n\t],\n\t\"./HomeView.ts\": [\n\t\t\"./src/views/HomeView.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightView\": [\n\t\t\"./src/views/LightView.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightView.ts\": [\n\t\t\"./src/views/LightView.ts\",\n\t\t\"main\"\n\t],\n\t\"./MediaPlayerView\": [\n\t\t\"./src/views/MediaPlayerView.ts\",\n\t\t\"main\"\n\t],\n\t\"./MediaPlayerView.ts\": [\n\t\t\"./src/views/MediaPlayerView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SceneView\": [\n\t\t\"./src/views/SceneView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SceneView.ts\": [\n\t\t\"./src/views/SceneView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SecurityDetailsView\": [\n\t\t\"./src/views/SecurityDetailsView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SecurityDetailsView.ts\": [\n\t\t\"./src/views/SecurityDetailsView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SecurityView\": [\n\t\t\"./src/views/SecurityView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SecurityView.ts\": [\n\t\t\"./src/views/SecurityView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchView\": [\n\t\t\"./src/views/SwitchView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchView.ts\": [\n\t\t\"./src/views/SwitchView.ts\",\n\t\t\"main\"\n\t],\n\t\"./VacuumView\": [\n\t\t\"./src/views/VacuumView.ts\",\n\t\t\"main\"\n\t],\n\t\"./VacuumView.ts\": [\n\t\t\"./src/views/VacuumView.ts\",\n\t\t\"main\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./src/views lazy recursive ^\\\\.\\\\/.*$\";\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/linus-strategy.ts\");\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"linus-strategy.js","mappings":"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AM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,2BAAI,iCAAe,EAAE,OAAO,CAAC,CAAC;QAEvE,iEAAiE;QACjE,IAAI,CAAC,kBAAkB,GAAG,IAAI,iEAAc,CAC1C,IAAI,CAAC,YAAY,CAAC,yBAAU,8BAAQ,CAAC,EACrC;YACE,GAAG,2BAAI,4CAA0B;YACjC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAA+B;SACnH,CAAC,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;;;AAxDD;;;;;;GAMG;AACI,8BAAkB,QAAQ,EAAnB,CAAoB;AAoDhB;;;;;;;;;;;AC3EpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;AC1LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;UC1HA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;;;;;WCHA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;UENA;UACA;UACA;UACA","sources":["webpack://linus-strategy/./node_modules/deepmerge/dist/cjs.js","webpack://linus-strategy/./src/Helper.ts","webpack://linus-strategy/./src/cards/AbstractCard.ts","webpack://linus-strategy/./src/cards/AggregateCard.ts","webpack://linus-strategy/./src/cards/AlarmCard.ts","webpack://linus-strategy/./src/cards/AreaCard.ts","webpack://linus-strategy/./src/cards/BinarySensorCard.ts","webpack://linus-strategy/./src/cards/CameraCard.ts","webpack://linus-strategy/./src/cards/ClimateCard.ts","webpack://linus-strategy/./src/cards/ControllerCard.ts","webpack://linus-strategy/./src/cards/CoverCard.ts","webpack://linus-strategy/./src/cards/FanCard.ts","webpack://linus-strategy/./src/cards/HaAreaCard.ts","webpack://linus-strategy/./src/cards/LightCard.ts","webpack://linus-strategy/./src/cards/LockCard.ts","webpack://linus-strategy/./src/cards/MainAreaCard.ts","webpack://linus-strategy/./src/cards/MediaPlayerCard.ts","webpack://linus-strategy/./src/cards/MiscellaneousCard.ts","webpack://linus-strategy/./src/cards/NumberCard.ts","webpack://linus-strategy/./src/cards/PersonCard.ts","webpack://linus-strategy/./src/cards/SceneCard.ts","webpack://linus-strategy/./src/cards/SensorCard.ts","webpack://linus-strategy/./src/cards/SwipeCard.ts","webpack://linus-strategy/./src/cards/SwitchCard.ts","webpack://linus-strategy/./src/cards/VacuumCard.ts","webpack://linus-strategy/./src/chips/AbstractChip.ts","webpack://linus-strategy/./src/chips/AlarmChip.ts","webpack://linus-strategy/./src/chips/AreaScenesChips.ts","webpack://linus-strategy/./src/chips/AreaStateChip.ts","webpack://linus-strategy/./src/chips/ClimateChip.ts","webpack://linus-strategy/./src/chips/CoverChip.ts","webpack://linus-strategy/./src/chips/DoorChip.ts","webpack://linus-strategy/./src/chips/FanChip.ts","webpack://linus-strategy/./src/chips/LightChip.ts","webpack://linus-strategy/./src/chips/LightControlChip.ts","webpack://linus-strategy/./src/chips/LinusAggregateChip.ts","webpack://linus-strategy/./src/chips/LinusAlarmChip.ts","webpack://linus-strategy/./src/chips/LinusClimateChip.ts","webpack://linus-strategy/./src/chips/LinusLightChip.ts","webpack://linus-strategy/./src/chips/MotionChip.ts","webpack://linus-strategy/./src/chips/SafetyChip.ts","webpack://linus-strategy/./src/chips/SettingsChip.ts","webpack://linus-strategy/./src/chips/SpotifyChip.ts","webpack://linus-strategy/./src/chips/SwitchChip.ts","webpack://linus-strategy/./src/chips/ToggleSceneChip.ts","webpack://linus-strategy/./src/chips/UnavailableChip.ts","webpack://linus-strategy/./src/chips/WeatherChip.ts","webpack://linus-strategy/./src/chips/WindowChip.ts","webpack://linus-strategy/./src/configurationDefaults.ts","webpack://linus-strategy/./src/linus-strategy.ts","webpack://linus-strategy/./src/popups/AbstractPopup.ts","webpack://linus-strategy/./src/popups/AggregateAreaListPopup.ts","webpack://linus-strategy/./src/popups/AggregateListPopup.ts","webpack://linus-strategy/./src/popups/AreaInformationsPopup.ts","webpack://linus-strategy/./src/popups/GroupListPopup.ts","webpack://linus-strategy/./src/popups/LightSettingsPopup.ts","webpack://linus-strategy/./src/popups/LinusSettingsPopup.ts","webpack://linus-strategy/./src/popups/SceneSettingsPopup.ts","webpack://linus-strategy/./src/popups/WeatherPopup.ts","webpack://linus-strategy/./src/types/lovelace-mushroom/cards/vacuum-card-config.ts","webpack://linus-strategy/./src/types/strategy/generic.ts","webpack://linus-strategy/./src/utils.ts","webpack://linus-strategy/./src/variables.ts","webpack://linus-strategy/./src/views/AbstractView.ts","webpack://linus-strategy/./src/views/CameraView.ts","webpack://linus-strategy/./src/views/ClimateView.ts","webpack://linus-strategy/./src/views/CoverView.ts","webpack://linus-strategy/./src/views/FanView.ts","webpack://linus-strategy/./src/views/HomeView.ts","webpack://linus-strategy/./src/views/LightView.ts","webpack://linus-strategy/./src/views/MediaPlayerView.ts","webpack://linus-strategy/./src/views/SceneView.ts","webpack://linus-strategy/./src/views/SecurityDetailsView.ts","webpack://linus-strategy/./src/views/SecurityView.ts","webpack://linus-strategy/./src/views/SwitchView.ts","webpack://linus-strategy/./src/views/VacuumView.ts","webpack://linus-strategy/./src/cards/ lazy ^\\.\\/.*$ namespace object","webpack://linus-strategy/./src/chips/ lazy ^\\.\\/.*$ namespace object","webpack://linus-strategy/./src/views/ lazy ^\\.\\/.*$ namespace object","webpack://linus-strategy/webpack/bootstrap","webpack://linus-strategy/webpack/runtime/compat get default export","webpack://linus-strategy/webpack/runtime/define property getters","webpack://linus-strategy/webpack/runtime/ensure chunk","webpack://linus-strategy/webpack/runtime/hasOwnProperty shorthand","webpack://linus-strategy/webpack/runtime/make namespace object","webpack://linus-strategy/webpack/before-startup","webpack://linus-strategy/webpack/startup","webpack://linus-strategy/webpack/after-startup"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { configurationDefaults } from \"./configurationDefaults\";\nimport { HassEntities, HassEntity } from \"home-assistant-js-websocket\";\nimport deepmerge from \"deepmerge\";\nimport { EntityRegistryEntry } from \"./types/homeassistant/data/entity_registry\";\nimport { DeviceRegistryEntry, MagicAreaRegistryEntry } from \"./types/homeassistant/data/device_registry\";\nimport { AreaRegistryEntry } from \"./types/homeassistant/data/area_registry\";\nimport { generic } from \"./types/strategy/generic\";\nimport StrategyArea = generic.StrategyArea;\nimport StrategyFloor = generic.StrategyFloor;\nimport { FloorRegistryEntry } from \"./types/homeassistant/data/floor_registry\";\nimport { DOMAIN } from \"./variables\";\nimport { entitySharedConfigStruct } from \"./types/lovelace-mushroom/shared/config/entity-config\";\nimport { slugify } from \"./utils\";\n\n/**\n * Helper Class\n *\n * Contains the objects of Home Assistant's registries and helper methods.\n */\nclass Helper {\n /**\n * An array of entities from Home Assistant's entity registry.\n *\n * @type {EntityRegistryEntry[]}\n * @private\n */\n static #entities: EntityRegistryEntry[];\n /**\n * An array of entities from Home Assistant's entity registry.\n *\n * @type {Record;\n\n /**\n * An array of entities from Home Assistant's device registry.\n *\n * @type {DeviceRegistryEntry[]}\n * @private\n */\n static #devices: DeviceRegistryEntry[];\n\n /**\n * An array of entities from Home Assistant's area registry.\n *\n * @type {StrategyArea[]}\n * @private\n */\n static #areas: StrategyArea[] = [];\n\n /**\n * An array of entities from Home Assistant's area registry.\n *\n * @type {StrategyFloor[]}\n * @private\n */\n static #floors: StrategyFloor[] = [];\n\n /**\n * An array of state entities from Home Assistant's Hass object.\n *\n * @type {HassEntities}\n * @private\n */\n static #hassStates: HassEntities;\n\n /**\n * Translation method.\n *\n * @type {any}\n * @private\n */\n static #hassLocalize: any;\n\n /**\n * Indicates whether this module is initialized.\n *\n * @type {boolean} True if initialized.\n * @private\n */\n static #initialized: boolean = false;\n\n /**\n * The Custom strategy configuration.\n *\n * @type {generic.StrategyConfig}\n * @private\n */\n static #strategyOptions: generic.StrategyConfig;\n\n /**\n * The magic areas devices.\n *\n * @type {Record}\n * @private\n */\n static #magicAreasDevices: Record;\n\n /**\n * Set to true for more verbose information in the console.\n *\n * @type {boolean}\n * @private\n */\n static #debug: boolean;\n\n /**\n * Class constructor.\n *\n * This class shouldn't be instantiated directly.\n * Instead, it should be initialized with method initialize().\n *\n * @throws {Error} If trying to instantiate this class.\n */\n constructor() {\n throw new Error(\"This class should be invoked with method initialize() instead of using the keyword new!\");\n }\n\n /**\n * Custom strategy configuration.\n *\n * @returns {generic.StrategyConfig}\n * @static\n */\n static get strategyOptions(): generic.StrategyConfig {\n return this.#strategyOptions;\n }\n\n /**\n * Custom strategy configuration.\n *\n * @returns {Record}\n * @static\n */\n static get magicAreasDevices(): Record {\n return this.#magicAreasDevices;\n }\n\n /**\n * Get the entities from Home Assistant's area registry.\n *\n * @returns {StrategyArea[]}\n * @static\n */\n static get areas(): StrategyArea[] {\n return this.#areas;\n }\n\n /**\n * Get the entities from Home Assistant's floor registry.\n *\n * @returns {StrategyFloor[]}\n * @static\n */\n static get floors(): StrategyFloor[] {\n return this.#floors.sort((a, b) => {\n // Check if 'level' is undefined in either object\n if (a.level === undefined) return 1; // a should come after b\n if (b.level === undefined) return -1; // b should come after a\n\n // Both 'level' values are defined, compare them\n return a.level - b.level;\n });\n }\n\n /**\n * Get the devices from Home Assistant's device registry.\n *\n * @returns {DeviceRegistryEntry[]}\n * @static\n */\n static get devices(): DeviceRegistryEntry[] {\n return this.#devices;\n }\n\n /**\n * Get the entities from Home Assistant's entity registry.\n *\n * @returns {EntityRegistryEntry[]}\n * @static\n */\n static get entities(): EntityRegistryEntry[] {\n return this.#entities;\n }\n\n /**\n * Get the domains from Home Assistant's entity registry.\n *\n * @returns {EntityRegistryEntry[]}\n * @static\n */\n static get domains(): Record {\n return this.#domains;\n }\n\n /**\n * Get the current debug mode of the mushroom strategy.\n *\n * @returns {boolean}\n * @static\n */\n static get debug(): boolean {\n return this.#debug;\n }\n\n /**\n * Initialize this module.\n *\n * @param {generic.DashBoardInfo} info Strategy information object.\n * @returns {Promise}\n * @static\n */\n static async initialize(info: generic.DashBoardInfo): Promise {\n // Initialize properties.\n this.#hassStates = info.hass.states;\n this.#hassLocalize = info.hass.localize;\n console.log('info.hass.resources.fr', info.hass.resources.fr)\n this.#strategyOptions = deepmerge(configurationDefaults, info.config?.strategy?.options ?? {});\n this.#debug = this.#strategyOptions.debug;\n\n try {\n // Query the registries of Home Assistant.\n\n // noinspection ES6MissingAwait False positive? https://youtrack.jetbrains.com/issue/WEB-63746\n [Helper.#entities, Helper.#devices, Helper.#areas, Helper.#floors] = await Promise.all([\n info.hass.callWS({ type: \"config/entity_registry/list\" }) as Promise,\n info.hass.callWS({ type: \"config/device_registry/list\" }) as Promise,\n info.hass.callWS({ type: \"config/area_registry/list\" }) as Promise,\n info.hass.callWS({ type: \"config/floor_registry/list\" }) as Promise,\n ]);\n\n } catch (e) {\n Helper.logError(\"An error occurred while querying Home assistant's registries!\", e);\n throw 'Check the console for details';\n }\n\n // Create and add the undisclosed area if not hidden in the strategy options.\n if (!this.#strategyOptions.areas.undisclosed?.hidden) {\n this.#strategyOptions.areas.undisclosed = {\n ...configurationDefaults.areas.undisclosed,\n ...this.#strategyOptions.areas.undisclosed,\n };\n\n // Make sure the custom configuration of the undisclosed area doesn't overwrite the area_id.\n this.#strategyOptions.areas.undisclosed.area_id = \"undisclosed\";\n\n this.#areas.push(this.#strategyOptions.areas.undisclosed);\n }\n\n // Merge custom areas of the strategy options into strategy areas.\n this.#areas = Helper.areas.map(area => {\n return { ...area, ...this.#strategyOptions.areas?.[area.area_id] };\n });\n\n // Sort strategy areas by order first and then by name.\n this.#areas.sort((a, b) => {\n return (a.order ?? Infinity) - (b.order ?? Infinity) || a.name.localeCompare(b.name);\n });\n\n // Find undisclosed and put it in last position.\n const indexUndisclosed = this.#areas.findIndex(item => item.area_id === \"undisclosed\");\n if (indexUndisclosed !== -1) {\n const areaUndisclosed = this.#areas.splice(indexUndisclosed, 1)[0];\n this.#areas.push(areaUndisclosed);\n }\n\n\n // Sort custom and default views of the strategy options by order first and then by title.\n this.#strategyOptions.views = Object.fromEntries(\n Object.entries(this.#strategyOptions.views).sort(([, a], [, b]) => {\n return (a.order ?? Infinity) - (b.order ?? Infinity) || (a.title ?? \"undefined\").localeCompare(b.title ?? \"undefined\");\n }),\n );\n\n // Sort custom and default domains of the strategy options by order first and then by title.\n this.#strategyOptions.domains = Object.fromEntries(\n Object.entries(this.#strategyOptions.domains).sort(([, a], [, b]) => {\n return (a.order ?? Infinity) - (b.order ?? Infinity) || (a.title ?? \"undefined\").localeCompare(b.title ?? \"undefined\");\n }),\n );\n\n this.#domains = Helper.entities\n .reduce((acc: Record, entity) => {\n const domain = entity.entity_id.split(\".\")[0];\n if (!acc[domain]) {\n acc[domain] = [];\n }\n acc[domain].push(entity);\n return acc;\n }, {});\n\n // Get magic areas devices.\n this.#magicAreasDevices = Helper.devices\n .filter(device => device.manufacturer === 'Magic Areas')\n .reduce((acc: Record, device) => {\n acc[slugify(device.name!)] = {\n ...device,\n area_name: device.name!,\n entities: this.#entities\n .filter(entity => entity.device_id === device.id)\n .reduce((entities: Record, entity) => {\n entities[entity.translation_key!] = entity;\n return entities;\n }, {})\n };\n return acc;\n }, {});\n\n console.log('this.#magicAreasDevices', this.#magicAreasDevices)\n\n this.#initialized = true;\n }\n\n /**\n * Get the initialization status of the Helper class.\n *\n * @returns {boolean} True if this module is initialized.\n * @static\n */\n static isInitialized(): boolean {\n return this.#initialized;\n }\n\n /**\n * Get a template string to define the number of a given domain's entities with a certain state.\n *\n * States are compared against a given value by a given operator.\n *\n * @param {string} domain The domain of the entities.\n * @param {string} operator The Comparison operator between state and value.\n * @param {string} value The value to which the state is compared against.\n * @param {string} area_id\n *\n * @return {string} The template string.\n * @static\n */\n static getCountTemplate(domain: string, operator: string, value: string, area_id?: string): string {\n // noinspection JSMismatchedCollectionQueryUpdate (False positive per 17-04-2023)\n /**\n * Array of entity state-entries, filtered by domain.\n *\n * Each element contains a template-string which is used to access home assistant's state machine (state object) in\n * a template.\n * E.g. \"states['light.kitchen']\"\n *\n * The array excludes hidden and disabled entities.\n *\n * @type {string[]}\n */\n const states: string[] = [];\n\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n // Get the ID of the devices which are linked to the given area.\n for (const area of this.#areas) {\n if (area_id && area.area_id !== area_id) continue\n\n const areaDeviceIds = this.#devices.filter((device) => {\n return device.area_id === area.area_id;\n }).map((device) => {\n return device.id;\n });\n\n // Get the entities of which all conditions of the callback function are met. @see areaFilterCallback.\n const newStates = this.#entities.filter(\n this.#areaFilterCallback, {\n area: area,\n domain: domain,\n areaDeviceIds: areaDeviceIds,\n })\n .map((entity) => `states['${entity.entity_id}']`);\n\n states.push(...newStates);\n }\n\n return `{% set entities = [${states}] %} {{ entities | selectattr('state','${operator}','${value}') | list | count }}`;\n }\n\n /**\n * Get a template string to define the number of a given device_class's entities with a certain state.\n *\n * States are compared against a given value by a given operator.\n *\n * @param {string} domain The domain of the entities.\n * @param {string} device_class The device class of the entities.\n * @param {string} operator The Comparison operator between state and value.\n * @param {string} value The value to which the state is compared against.\n * @param {string} area_id\n *\n * @return {string} The template string.\n * @static\n */\n static getDeviceClassCountTemplate(domain: string, device_class: string, operator: string, value: string, area_id?: string): string {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n const states: string[] = this.#areas\n .filter(area => !area_id || area.area_id === area_id)\n .flatMap(area => {\n const areaDeviceIds = this.#devices\n .filter(device => device.area_id === area.area_id)\n .map(device => device.id);\n\n return this.#entities\n .filter(entity =>\n entity.entity_id.startsWith(`${domain}.`) &&\n entity.hidden_by === null &&\n entity.disabled_by === null &&\n (area.area_id === \"undisclosed\"\n ? !entity.area_id && (areaDeviceIds.includes(entity.device_id ?? \"\") || !entity.device_id)\n : areaDeviceIds.includes(entity.device_id ?? \"\") || entity.area_id === area.area_id)\n )\n .map(entity => `states['${entity.entity_id}']`);\n });\n\n return `{% set entities = [${states}] %} {{ entities | selectattr('attributes.device_class', 'defined') | selectattr('attributes.device_class', 'eq', '${device_class}') | selectattr('state','${operator}','${value}') | list | count }}`;\n }\n\n /**\n * Get a template string to define the average state of sensor entities with a given device class.\n *\n * States are compared against a given value by a given operator.\n *\n * @param {string} device_class The device class of the entities.\n * @param {string} area_id\n *\n * @return {string} The template string.\n * @static\n */\n static getAverageStateTemplate(device_class: string, area_id?: string): string {\n\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n const states: string[] = this.#areas\n .filter(area => !area_id || area.area_id === area_id)\n .flatMap(area => {\n const areaDeviceIds = this.#devices\n .filter(device => device.area_id === area.area_id)\n .map(device => device.id);\n\n return this.#entities\n .filter(entity =>\n entity.entity_id.startsWith(\"sensor.\") &&\n entity.hidden_by === null &&\n entity.disabled_by === null &&\n (area.area_id === \"undisclosed\"\n ? !entity.area_id && (areaDeviceIds.includes(entity.device_id ?? \"\") || !entity.device_id)\n : areaDeviceIds.includes(entity.device_id ?? \"\") || entity.area_id === area.area_id)\n )\n .map(entity => `states['${entity.entity_id}']`);\n });\n\n\n // Todo: fix that because the temperature not working\n return `{% set entities = [${states}] %} {{ entities | selectattr('attributes.device_class', 'defined') | selectattr('attributes.device_class', 'eq', '${device_class}') | map(attribute='state') | map('float') | sum / entities | length }} {{ state_attr('sensor.outside_temperature', 'unit_of_measurement')}}`;\n }\n\n /**\n * Get device entities from the entity registry, filtered by area and domain.\n *\n * The entity registry is a registry where Home-Assistant keeps track of all entities.\n * A device is represented in Home Assistant via one or more entities.\n *\n * The result excludes hidden and disabled entities.\n *\n * @param {AreaRegistryEntry} area Area entity.\n * @param {string} domain The domain of the entity-id.\n *\n * @return {EntityRegistryEntry[]} Array of device entities.\n * @static\n */\n static getDeviceEntities(area: AreaRegistryEntry, domain: string): EntityRegistryEntry[] {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n // Get the ID of the devices which are linked to the given area.\n const areaDeviceIds = this.#devices.filter((device) => {\n return (device.area_id ?? \"undisclosed\") === area.area_id;\n }).map((device: DeviceRegistryEntry) => {\n\n return device.id;\n });\n\n // Return the entities of which all conditions of the callback function are met. @see areaFilterCallback.\n let device_entities = this.#entities.filter(\n this.#areaFilterCallback, {\n area: area,\n domain: domain,\n areaDeviceIds: areaDeviceIds,\n })\n .sort((a, b) => {\n return (a.original_name ?? \"undefined\").localeCompare(b.original_name ?? \"undefined\");\n });\n\n if (domain === \"light\") {\n const deviceLights = Object.values(this.#magicAreasDevices[area.name]?.entities ?? [])\n .filter(e => e.translation_key !== 'all_lights' && e.entity_id.endsWith('_lights'));\n\n deviceLights.forEach(light => {\n const childLights = Helper.#hassStates[light.entity_id]?.attributes?.entity_id ?? [];\n device_entities = device_entities.filter(entity => !childLights.includes(entity.entity_id));\n device_entities.unshift(light);\n });\n }\n\n return device_entities;\n }\n\n /**\n * Get state entities, filtered by area and domain.\n *\n * The result excludes hidden and disabled entities.\n *\n * @param {AreaRegistryEntry} area Area entity.\n * @param {string} domain Domain of the entity-id.\n *\n * @return {HassEntity[]} Array of state entities.\n */\n static getStateEntities(area: AreaRegistryEntry, domain: string): HassEntity[] {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n const states: HassEntity[] = [];\n\n // Create a map for the hassEntities and devices {id: object} to improve lookup speed.\n const entityMap: {\n [s: string]: EntityRegistryEntry;\n } = Object.fromEntries(this.#entities.map((entity) => [entity.entity_id, entity]));\n const deviceMap: {\n [s: string]: DeviceRegistryEntry;\n } = Object.fromEntries(this.#devices.map((device) => [device.id, device]));\n\n // Get states whose entity-id starts with the given string.\n const stateEntities = Object.values(this.#hassStates).filter(\n (state) => state.entity_id.startsWith(`${domain}.`),\n );\n\n for (const state of stateEntities) {\n const hassEntity = entityMap[state.entity_id];\n const device = deviceMap[hassEntity?.device_id ?? \"\"];\n\n // Collect states of which any (whichever comes first) of the conditions below are met:\n // 1. The linked entity is linked to the given area.\n // 2. The entity is linked to a device, and the linked device is linked to the given area.\n if (\n (hassEntity?.area_id === area.area_id)\n || (device && device.area_id === area.area_id)\n ) {\n states.push(state);\n }\n }\n\n return states;\n }\n\n /**\n * Sanitize a classname.\n *\n * The name is sanitized by capitalizing the first character of the name or after an underscore.\n * Underscores are removed.\n *\n * @param {string} className Name of the class to sanitize.\n * @returns {string} The sanitized classname.\n */\n static sanitizeClassName(className: string): string {\n className = className.charAt(0).toUpperCase() + className.slice(1);\n\n return className.replace(/([-_][a-z])/g, (group) => group\n .toUpperCase()\n .replace(\"-\", \"\")\n .replace(\"_\", \"\"),\n );\n }\n\n /**\n * Get the ids of the views which aren't set to hidden in the strategy options.\n *\n * @return {string[]} An array of view ids.\n */\n static getExposedViewIds(): string[] {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n return this.#getObjectKeysByPropertyValue(this.#strategyOptions.views, \"hidden\", false);\n }\n\n /**\n * Get the ids of the domain ids which aren't set to hidden in the strategy options.\n *\n * @return {string[]} An array of domain ids.\n */\n static getExposedDomainIds(): string[] {\n if (!this.isInitialized()) {\n console.warn(\"Helper class should be initialized before calling this method!\");\n }\n\n return this.#getObjectKeysByPropertyValue(this.#strategyOptions.domains, \"hidden\", false);\n }\n\n /**\n * Callback function for filtering entities.\n *\n * Entities of which all the conditions below are met are kept:\n * 1. The entity is not hidden and is not disabled.\n * 2. The entity's domain matches the given domain.\n * 3. Or/Neither the entity's linked device (if any) or/nor the entity itself is linked to the given area.\n * (See variable areaMatch)\n *\n * @param {EntityRegistryEntry} entity The current hass entity to evaluate.\n * @this {AreaFilterContext}\n *\n * @return {boolean} True to keep the entity.\n * @static\n */\n static #areaFilterCallback(\n this: {\n area: AreaRegistryEntry,\n areaDeviceIds: string[],\n domain: string,\n },\n entity: EntityRegistryEntry): boolean {\n const entityUnhidden = entity.hidden_by === null && entity.disabled_by === null;\n const domainMatches = entity.entity_id.startsWith(`${this.domain}.`);\n const linusDeviceIds = Helper.#devices.filter(d => [DOMAIN, \"adaptive_lighting\"].includes(d.identifiers[0]?.[0])).map(e => e.id)\n const isLinusEntity = linusDeviceIds.includes(entity.device_id ?? \"\") || entity.platform === DOMAIN\n const entityLinked = this.area.area_id === \"undisclosed\"\n // Undisclosed area;\n // nor the entity itself, neither the entity's linked device (if any) is linked to any area.\n ? !entity.area_id && (this.areaDeviceIds.includes(entity.device_id ?? \"\") || !entity.device_id)\n // Area is a hass entity;\n // The entity's linked device or the entity itself is linked to the given area.\n : this.areaDeviceIds.includes(entity.device_id ?? \"\") || entity.area_id === this.area.area_id;\n\n return (!isLinusEntity && entityUnhidden && domainMatches && entityLinked);\n }\n\n /**\n * Get the keys of nested objects by its property value.\n *\n * @param {Object} object An object of objects.\n * @param {string|number} property The name of the property to evaluate.\n * @param {*} value The value which the property should match.\n *\n * @return {string[]} An array with keys.\n */\n static #getObjectKeysByPropertyValue(\n object: { [k: string]: any },\n property: string, value: any\n ): string[] {\n const keys: string[] = [];\n\n for (const key of Object.keys(object)) {\n if (object[key][property] === value) {\n keys.push(key);\n }\n }\n\n return keys;\n }\n\n /**\n * Logs an error message to the console.\n *\n * @param {string} userMessage - The error message to display.\n * @param {unknown} [e] - (Optional) The error object or additional information.\n *\n * @return {void}\n */\n static logError(userMessage: string, e?: unknown): void {\n if (Helper.debug) {\n console.error(userMessage, e);\n\n return;\n }\n\n console.error(userMessage);\n }\n\n /**\n * Get entity state.\n *\n * @return {HassEntity}\n */\n static getEntityState(entity_id: string): HassEntity {\n return this.#hassStates[entity_id]\n }\n\n /**\n * Get entity domain.\n *\n * @return {string}\n */\n static getEntityDomain(entityId: string): string {\n return entityId.split(\".\")[0];\n }\n\n /**\n * Get translation.\n *\n * @return {string}\n */\n static localize(translationKey: string): string | undefined {\n return this.#hassLocalize(translationKey);\n }\n\n /**\n * Get valid entity.\n *\n * @return {EntityRegistryEntry}\n */\n static getValidEntity(entity: EntityRegistryEntry): Boolean {\n return entity.disabled_by === null && entity.hidden_by === null\n }\n\n /**\n * Get Main Alarm entity.\n *\n * @return {EntityRegistryEntry}\n */\n static getAlarmEntity(): EntityRegistryEntry | undefined {\n return Helper.#entities.find(\n (entity) => entity.entity_id.startsWith(\"alarm_control_panel.\") && Helper.getValidEntity(entity),\n )\n }\n\n /**\n * Get Persons entity.\n *\n * @return {EntityRegistryEntry}\n */\n static getPersonsEntity(): EntityRegistryEntry[] | undefined {\n return Helper.#entities.filter(\n (entity) => entity.entity_id.startsWith(\"person.\") && Helper.getValidEntity(entity),\n )\n }\n\n /**\n * Get Cameras entity.\n *\n * @return {EntityRegistryEntry}\n */\n static getCamerasEntity(): EntityRegistryEntry[] | undefined {\n return Helper.#entities.filter(\n (entity) => entity.entity_id.startsWith(\"camera.\") && Helper.getValidEntity(entity),\n )\n }\n}\n\nexport { Helper };\n","import {Helper} from \"../Helper\";\nimport {cards} from \"../types/strategy/cards\";\nimport {generic} from \"../types/strategy/generic\";\nimport {EntityCardConfig} from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n/**\n * Abstract Card Class\n *\n * To create a new card, extend the new class with this one.\n *\n * @class\n * @abstract\n */\nabstract class AbstractCard {\n /**\n * Entity to create the card for.\n *\n * @type {generic.RegistryEntry}\n */\n entity: generic.RegistryEntry;\n\n /**\n * Configuration of the card.\n *\n * @type {EntityCardConfig}\n */\n config: EntityCardConfig = {\n type: \"custom:mushroom-entity-card\",\n icon: \"mdi:help-circle\",\n };\n\n /**\n * Class constructor.\n *\n * @param {generic.RegistryEntry} entity The hass entity to create a card for.\n * @throws {Error} If the Helper module isn't initialized.\n */\n protected constructor(entity: generic.RegistryEntry) {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n\n this.entity = entity;\n }\n\n /**\n * Get a card.\n *\n * @return {cards.AbstractCardConfig} A card object.\n */\n getCard(): cards.AbstractCardConfig {\n return {\n ...this.config,\n entity: \"entity_id\" in this.entity ? this.entity.entity_id : undefined,\n };\n }\n}\n\nexport {AbstractCard};\n","import { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig } from \"../types/homeassistant/data/lovelace\";\nimport { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport { getAggregateEntity, getStateContent, groupBy } from \"../utils\";\nimport { Helper } from \"../Helper\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\n\ninterface AggregateCardConfig {\n title?: string;\n subtitle?: string;\n device_name?: string;\n device_class?: string | string[];\n}\n\n/**\n * Aggregate Card class.\n *\n * Used for creating a Title Card with controls.\n *\n * @class\n */\nclass AggregateCard {\n /**\n * @type {string} The domain to control the entities of.\n * @private\n */\n readonly #domain: string;\n\n /**\n * Default configuration of the card.\n *\n * @type {AggregateCardConfig}\n * @private\n */\n readonly #defaultConfig: AggregateCardConfig = {\n device_name: \"Global\",\n };\n\n /**\n * Class constructor.\n *\n * @param {string} domain The domain to control the entities of.\n * @param {AggregateCardConfig} options Aggregate Card options.\n */\n constructor(domain: string, options: AggregateCardConfig = {}) {\n this.#domain = domain;\n this.#defaultConfig = {\n ...this.#defaultConfig,\n ...options,\n };\n }\n\n /**\n * Create a Aggregate card.\n *\n * @return {StackCardConfig} A Aggregate card.\n */\n createCard(): StackCardConfig {\n\n const domains = typeof (this.#domain) === \"string\" ? [this.#domain] : this.#domain;\n const deviceClasses = this.#defaultConfig.device_class && typeof (this.#defaultConfig.device_class) === \"string\" ? [this.#defaultConfig.device_class] : this.#defaultConfig.device_class;\n\n const cards: LovelaceCardConfig[] = [];\n\n const globalEntities = getAggregateEntity(Helper.magicAreasDevices[\"global\"], domains, deviceClasses)[0] ?? false\n\n if (globalEntities) {\n cards.push({\n type: \"tile\",\n entity: globalEntities.entity_id,\n state_content: getStateContent(globalEntities.entity_id),\n color: globalEntities.entity_id.startsWith('binary_sensor.') ? 'red' : false,\n icon_tap_action: this.#domain === \"light\" ? \"more-info\" : \"toggle\",\n });\n }\n\n const areasByFloor = groupBy(Helper.areas, (e) => e.floor_id ?? \"undisclosed\");\n\n for (const floor of [...Helper.floors, Helper.strategyOptions.floors.undisclosed]) {\n\n if (!(floor.floor_id in areasByFloor) || areasByFloor[floor.floor_id].length === 0) continue\n\n let floorCards: (TemplateCardConfig)[] = [];\n floorCards.push({\n type: \"custom:mushroom-title-card\",\n subtitle: floor.name,\n card_mod: {\n style: `\n ha-card.header {\n padding-top: 8px;\n }\n `,\n }\n });\n\n let areaCards: (TemplateCardConfig)[] = [];\n\n for (const [i, area] of areasByFloor[floor.floor_id].entries()) {\n\n if (Helper.strategyOptions.areas[area.area_id]?.hidden) continue\n\n if (area.area_id !== \"undisclosed\") {\n const areaEntities = getAggregateEntity(Helper.magicAreasDevices[area.name], domains, deviceClasses).map(e => e.entity_id).filter(Boolean)\n\n for (const areaEntity of areaEntities) {\n areaCards.push({\n type: \"tile\",\n entity: areaEntity,\n primary: area.name,\n state_content: getStateContent(areaEntity),\n color: areaEntity.startsWith('binary_sensor.') ? 'red' : false,\n });\n }\n }\n\n // Horizontally group every two area cards if all cards are created.\n if (i === areasByFloor[floor.floor_id].length - 1) {\n for (let i = 0; i < areaCards.length; i += 2) {\n floorCards.push({\n type: \"horizontal-stack\",\n cards: areaCards.slice(i, i + 2),\n });\n }\n }\n\n }\n\n if (areaCards.length === 0) floorCards.pop()\n\n if (floorCards.length > 1) cards.push(...floorCards)\n\n }\n\n return {\n type: \"vertical-stack\",\n cards: cards,\n };\n }\n}\n\nexport { AggregateCard };\n","import { AbstractCard } from \"./AbstractCard\";\nimport { EntityRegistryEntry } from \"../types/homeassistant/data/entity_registry\";\nimport { TileCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Alarm Card Class\n *\n * Used to create a card for controlling an entity of the fan domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass AlarmCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {TileCardConfig}\n * @private\n */\n #defaultConfig: TileCardConfig = {\n type: \"tile\",\n entity: undefined,\n icon: undefined,\n features: [\n {\n type: \"alarm-modes\",\n modes: [\"armed_home\", \"armed_away\", \"armed_night\", \"armed_vacation\", \"armed_custom_bypass\", \"disarmed\"]\n }\n ]\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig);\n }\n}\n\nexport { AlarmCard };\n","import { AbstractCard } from \"./AbstractCard\";\nimport { cards } from \"../types/strategy/cards\";\nimport { AreaRegistryEntry } from \"../types/homeassistant/data/area_registry\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { Helper } from \"../Helper\";\nimport { LightControlChip } from \"../chips/LightControlChip\";\nimport { LinusLightChip } from \"../chips/LinusLightChip\";\nimport { LinusClimateChip } from \"../chips/LinusClimateChip\";\nimport { LinusAggregateChip } from \"../chips/LinusAggregateChip\";\nimport { AreaStateChip } from \"../chips/AreaStateChip\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\n\n// Utility function to generate badge icon and color\nconst getBadgeIcon = (entityId: string) => `\n {% set bl = states('${entityId}') %}\n {% if bl == 'unknown' or bl == 'unavailable' %}\n {% elif bl | int() < 10 %} mdi:battery-outline\n {% elif bl | int() < 20 %} mdi:battery-10\n {% elif bl | int() < 30 %} mdi:battery-20\n {% elif bl | int() < 40 %} mdi:battery-30\n {% elif bl | int() < 50 %} mdi:battery-40\n {% elif bl | int() < 60 %} mdi:battery-50\n {% elif bl | int() < 70 %} mdi:battery-60\n {% elif bl | int() < 80 %} mdi:battery-70\n {% elif bl | int() < 90 %} mdi:battery-80\n {% elif bl | int() < 100 %} mdi:battery-90\n {% elif bl | int() == 100 %} mdi:battery\n {% else %} mdi:battery-unknown\n {% endif %}\n`;\n\nconst getBadgeColor = (entityId: string) => `\n {% set bl = states('${entityId}') %}\n {% if bl == 'unknown' or bl == 'unavailable' %} disabled\n {% elif bl | int() < 10 %} red\n {% elif bl | int() < 20 %} red\n {% elif bl | int() < 30 %} red\n {% elif bl | int() < 40 %} orange\n {% elif bl | int() < 50 %} orange\n {% elif bl | int() < 60 %} green\n {% elif bl | int() < 70 %} green\n {% elif bl | int() < 80 %} green\n {% elif bl | int() < 90 %} green\n {% elif bl | int() == 100 %} green\n {% else %} disabled\n {% endif %}\n`;\n\nclass AreaCard extends AbstractCard {\n constructor(area: AreaRegistryEntry, options: cards.TemplateCardOptions = {}) {\n super(area);\n const device = Helper.magicAreasDevices[area.area_id];\n const defaultConfig = this.getDefaultConfig(area, device);\n this.config = { ...this.config, ...defaultConfig, ...options };\n }\n\n getDefaultConfig(area: AreaRegistryEntry, device: MagicAreaRegistryEntry): TemplateCardConfig {\n if (area.area_id === \"undisclosed\") {\n return this.getUndisclosedAreaConfig(area);\n }\n\n const { area_state, all_lights, aggregate_temperature, aggregate_battery, aggregate_health, aggregate_window, aggregate_door, aggregate_cover, aggregate_climate, light_control } = device?.entities || {};\n const icon = area.icon || \"mdi:home-outline\";\n\n return {\n type: \"vertical-stack\",\n cards: [\n this.getMainCard(area, icon, aggregate_temperature, aggregate_battery, area_state),\n this.getChipsCard(area, device, area_state, aggregate_health, aggregate_window, aggregate_door, aggregate_cover, aggregate_climate, all_lights, light_control),\n this.getLightCard(all_lights)\n ]\n };\n }\n\n getUndisclosedAreaConfig(area: AreaRegistryEntry): TemplateCardConfig {\n return {\n type: \"custom:mushroom-template-card\",\n primary: area.name,\n icon: \"mdi:devices\",\n icon_color: \"grey\",\n fill_container: true,\n layout: \"horizontal\",\n tap_action: { action: \"navigate\", navigation_path: area.area_id },\n card_mod: { style: this.getCardModStyle() }\n };\n }\n\n getMainCard(area: AreaRegistryEntry, icon: string, aggregate_temperature: any, aggregate_battery: any, area_state: any): any {\n return {\n type: \"custom:mushroom-template-card\",\n primary: area.name,\n secondary: this.getTemperatureTemplate(aggregate_temperature),\n icon: icon,\n icon_color: this.getIconColorTemplate(area_state),\n fill_container: true,\n layout: \"horizontal\",\n badge_icon: getBadgeIcon(aggregate_battery?.entity_id),\n badge_color: getBadgeColor(aggregate_battery?.entity_id),\n tap_action: { action: \"navigate\", navigation_path: area.area_id },\n card_mod: { style: this.getCardModStyle() }\n };\n }\n\n getChipsCard(area: AreaRegistryEntry, device: MagicAreaRegistryEntry, area_state: any, aggregate_health: any, aggregate_window: any, aggregate_door: any, aggregate_cover: any, aggregate_climate: any, all_lights: any, light_control: any): any {\n return {\n type: \"custom:mushroom-chips-card\",\n alignment: \"end\",\n chips: [\n this.getConditionalChip(area_state?.entity_id, \"unavailable\", new AreaStateChip(device).getChip()),\n this.getConditionalChip(aggregate_health?.entity_id, \"on\", new LinusAggregateChip(device, \"health\").getChip()),\n this.getConditionalChip(aggregate_window?.entity_id, \"on\", new LinusAggregateChip(device, \"window\").getChip()),\n this.getConditionalChip(aggregate_door?.entity_id, \"on\", new LinusAggregateChip(device, \"door\").getChip()),\n this.getConditionalChip(aggregate_cover?.entity_id, \"on\", new LinusAggregateChip(device, \"cover\").getChip()),\n this.getConditionalChip(aggregate_climate?.entity_id, \"unavailable\", new LinusClimateChip(device).getChip()),\n this.getConditionalChip(all_lights?.entity_id, \"unavailable\", new LinusLightChip(device, area.area_id).getChip()),\n this.getConditionalChip(all_lights?.entity_id, \"unavailable\", new LightControlChip(light_control?.entity_id).getChip())\n ].filter(Boolean),\n card_mod: { style: this.getChipsCardModStyle() }\n };\n }\n\n getLightCard(all_lights: any): any {\n return {\n type: \"custom:mushroom-light-card\",\n entity: all_lights?.entity_id,\n show_brightness_control: true,\n icon_type: \"none\",\n primary_info: \"none\",\n secondary_info: \"none\",\n use_light_color: true,\n card_mod: { style: this.getLightCardModStyle() }\n };\n }\n\n getTemperatureTemplate(aggregate_temperature: any): string {\n if (!aggregate_temperature) return Helper.getAverageStateTemplate(\"temperature\");\n return `\n {% set t = states('${aggregate_temperature?.entity_id}') %}\n {% if t != 'unknown' and t != 'unavailable' %}\n {{ t | float | round(1) }}{{ state_attr('${aggregate_temperature?.entity_id}', 'unit_of_measurement')}}\n {% endif %}\n `;\n }\n\n getIconColorTemplate(area_state: any): string {\n return `\n {{ \"indigo\" if \"dark\" in state_attr('${area_state?.entity_id}', 'states') else \"amber\" }}\n `;\n }\n\n getConditionalChip(entityId: string, state: string, chip: any): any {\n return entityId && {\n type: \"conditional\",\n conditions: [{ entity: entityId, state_not: state }],\n chip: chip\n };\n }\n\n getCardModStyle(): string {\n return `\n :host {\n background: #1f1f1f;\n height: 66px;\n }\n mushroom-badge-icon {\n left: 178px;\n top: 17px;\n }\n ha-card {\n box-shadow: none!important;\n border: none;\n }\n ha-state-icon {\n --icon-symbol-size: 30px;\n }\n\n `;\n }\n\n getChipsCardModStyle(): string {\n return `\n ha-card {\n --chip-box-shadow: none;\n --chip-spacing: 0px;\n width: -webkit-fill-available;\n }\n `;\n }\n\n getLightCardModStyle(): string {\n return `\n ha-card {\n box-shadow: none!important;\n border: none;\n }\n\n #TODO: Fix this\n mushroom-light-brightness-control$:\n mushroom-slider$: |\n .slider {\n width: 16px !important;\n height: 16px !important;\n }\n mushroom-light-color-control$:\n mushroom-slider$: |\n .slider {\n width: 16px !important;\n height: 16px !important;\n }\n mushroom-light-color-temp-control$:\n mushroom-slider$: |\n .slider {\n width: 16px !important;\n height: 16px !important;\n }\n .: |\n mushroom-light-brightness-control {\n height: 16px;\n }\n mushroom-light-color-control {\n height: 16px;\n }\n mushroom-light-color-temp-control {\n height: 16px;\n }\n }\n\n\n `;\n }\n}\n\nexport { AreaCard };\n","import { SensorCard } from \"./SensorCard\";\nimport { cards } from \"../types/strategy/cards\";\nimport { EntityRegistryEntry } from \"../types/homeassistant/data/entity_registry\";\nimport { EntityCardConfig } from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Sensor Card Class\n *\n * Used to create a card for controlling an entity of the binary_sensor domain.\n *\n * @class\n * @extends SensorCard\n */\nclass BinarySensorCard extends SensorCard {\n /**\n * Default configuration of the card.\n *\n * @type {EntityCardConfig}\n * @private\n */\n #defaultConfig: EntityCardConfig = {\n type: \"tile\",\n icon: undefined,\n state_content: \"last_changed\",\n vertical: false,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.EntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.EntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { BinarySensorCard };\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {PictureEntityCardConfig} from \"../types/homeassistant/panels/lovelave/cards/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Camera Card Class\n *\n * Used to create a card for controlling an entity of the camera domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass CameraCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {PictureEntityCardConfig}\n * @private\n */\n #defaultConfig: PictureEntityCardConfig = {\n entity: \"\",\n type: \"picture-entity\",\n show_name: false,\n show_state: false,\n camera_view: \"live\",\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.PictureEntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.PictureEntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {CameraCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {ClimateCardConfig} from \"../types/lovelace-mushroom/cards/climate-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Card Class\n *\n * Used to create a card for controlling an entity of the climate domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass ClimateCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {ClimateCardConfig}\n * @private\n */\n #defaultConfig: ClimateCardConfig = {\n type: \"thermostat\",\n icon: undefined,\n vertical: false,\n features: [\n {\n type: \"target-temperature\"\n },\n {\n type: \"climate-preset-modes\",\n style: \"icons\",\n preset_modes: [\"home\",\"eco\", \"comfort\", \"away\", \"boost\"]\n },\n {\n type: \"climate-hvac-modes\",\n hvac_modes: [\n \"auto\",\n \"heat_cool\",\n \"heat\",\n \"cool\",\n \"dry\",\n \"fan_only\",\n \"off\",\n ]\n },\n {\n type: \"climate-fan-modes\",\n style: \"icons\",\n fan_modes: [\n \"off\",\n \"low\",\n \"medium\",\n \"high\",\n ]\n }\n ],\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.ClimateCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.ClimateCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {ClimateCard};\n","import { cards } from \"../types/strategy/cards\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig } from \"../types/homeassistant/data/lovelace\";\nimport { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport { Helper } from \"../Helper\";\n\n/**\n * Controller Card class.\n *\n * Used for creating a Title Card with controls.\n *\n * @class\n */\nclass ControllerCard {\n /**\n * @type {HassServiceTarget} The target to control the entities of.\n * @private\n */\n readonly #target: HassServiceTarget;\n\n /**\n * Default configuration of the card.\n *\n * @type {cards.ControllerCardConfig}\n * @private\n */\n readonly #defaultConfig: cards.ControllerCardConfig = {\n type: \"custom:mushroom-title-card\",\n showControls: true,\n iconOn: \"mdi:power-on\",\n iconOff: \"mdi:power-off\",\n onService: \"none\",\n offService: \"none\",\n };\n\n /**\n * Class constructor.\n *\n * @param {HassServiceTarget} target The target to control the entities of.\n * @param {cards.ControllerCardOptions} options Controller Card options.\n */\n constructor(target: HassServiceTarget, options: cards.ControllerCardOptions = {}) {\n this.#target = target;\n this.#defaultConfig = {\n ...this.#defaultConfig,\n ...options,\n };\n }\n\n /**\n * Create a Controller card.\n *\n * @return {StackCardConfig} A Controller card.\n */\n createCard(): StackCardConfig {\n const cards: LovelaceCardConfig[] = [\n {\n type: \"custom:mushroom-title-card\",\n title: this.#defaultConfig.title,\n subtitle: this.#defaultConfig.subtitle,\n },\n ];\n\n if (this.#defaultConfig.showControls || this.#defaultConfig.extraControls) {\n const areaId = Array.isArray(this.#target.area_id) ? this.#target.area_id[0] : this.#target.area_id;\n const linusDevice = areaId ? Helper.magicAreasDevices[areaId] : undefined;\n\n cards.push({\n type: \"custom:mushroom-chips-card\",\n alignment: \"end\",\n chips: [\n (this.#defaultConfig.showControls &&\n (this.#target.entity_id && typeof this.#target.entity_id === \"string\" ?\n {\n type: \"template\",\n entity: this.#target.entity_id,\n icon: `{{ '${this.#defaultConfig.iconOn}' if states(entity) == 'on' else '${this.#defaultConfig.iconOff}' }}`,\n icon_color: `{{ 'amber' if states(entity) == 'on' else 'red' }}`,\n tap_action: {\n action: \"toggle\"\n },\n hold_action: {\n action: \"more-info\"\n }\n } :\n {\n type: \"template\",\n entity: this.#target.entity_id,\n icon: this.#defaultConfig.iconOff,\n tap_action: {\n action: \"call-service\",\n service: this.#defaultConfig.offService,\n target: this.#target,\n data: {},\n },\n })\n ),\n ...(this.#defaultConfig.extraControls && this.#target ? this.#defaultConfig.extraControls(linusDevice) : [])\n ],\n card_mod: {\n style: `ha-card {padding: var(--title-padding);}`\n }\n });\n }\n\n return {\n type: \"horizontal-stack\",\n cards: cards,\n };\n }\n}\n\nexport { ControllerCard };\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {CoverCardConfig} from \"../types/lovelace-mushroom/cards/cover-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Cover Card Class\n *\n * Used to create a card for controlling an entity of the cover domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass CoverCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {CoverCardConfig}\n * @private\n */\n #defaultConfig: CoverCardConfig = {\n type: \"tile\",\n icon: undefined,\n features: [\n {\n type: \"cover-open-close\"\n }\n ]\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.CoverCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.CoverCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {CoverCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {FanCardConfig} from \"../types/lovelace-mushroom/cards/fan-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Fan Card Class\n *\n * Used to create a card for controlling an entity of the fan domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass FanCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {FanCardConfig}\n * @private\n */\n #defaultConfig: FanCardConfig = {\n type: \"tile\",\n icon: undefined,\n features:[\n {\n type: \"fan-speed\"\n }\n ]\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.FanCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.FanCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {FanCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {AreaRegistryEntry} from \"../types/homeassistant/data/area_registry\";\nimport {AreaCardConfig} from \"../types/homeassistant/lovelace/cards/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * HA Area Card Class\n *\n * Used to create a card for an entity of the area domain using the built-in type 'area'.\n *\n * @class\n * @extends AbstractCard\n */\nclass AreaCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {AreaCardConfig}\n * @private\n */\n #defaultConfig: AreaCardConfig = {\n type: \"area\",\n area: \"\",\n };\n\n /**\n * Class constructor.\n *\n * @param {AreaRegistryEntry} area The area entity to create a card for.\n * @param {cards.AreaCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n\n constructor(area: AreaRegistryEntry, options: cards.AreaCardOptions = {}) {\n super(area);\n\n // Initialize the default configuration.\n this.#defaultConfig.area = area.area_id;\n this.#defaultConfig.navigation_path = this.#defaultConfig.area;\n\n // Enforce the card type.\n delete options.type;\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {AreaCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {LightCardConfig} from \"../types/lovelace-mushroom/cards/light-card-config\";\nimport {generic} from \"../types/strategy/generic\";\nimport isCallServiceActionConfig = generic.isCallServiceActionConfig;\nimport isCallServiceActionTarget = generic.isCallServiceActionTarget;\n\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Card Class\n *\n * Used to create a card for controlling an entity of the light domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass LightCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {LightCardConfig}\n * @private\n */\n #defaultConfig: LightCardConfig = {\n type: \"tile\",\n icon: undefined,\n vertical: false,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.LightCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.LightCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {LightCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {LockCardConfig} from \"../types/lovelace-mushroom/cards/lock-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Lock Card Class\n *\n * Used to create a card for controlling an entity of the lock domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass LockCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {LockCardConfig}\n * @private\n */\n #defaultConfig: LockCardConfig = {\n type: \"custom:mushroom-lock-card\",\n icon: undefined,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.LockCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.LockCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {LockCard};\n","import { AbstractCard } from \"./AbstractCard\";\nimport { cards } from \"../types/strategy/cards\";\nimport { AreaRegistryEntry } from \"../types/homeassistant/data/area_registry\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { Helper } from \"../Helper\";\nimport { LinusAggregateChip } from \"../chips/LinusAggregateChip\";\nimport { AreaStateChip } from \"../chips/AreaStateChip\";\n\nimport { AreaScenesChips } from \"../chips/AreaScenesChips\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Area Card Class\n *\n * Used to create a card for an entity of the area domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass MainAreaCard extends AbstractCard {\n\n getDefaultConfig(area: AreaRegistryEntry): TemplateCardConfig {\n\n const device = Helper.magicAreasDevices[area.area_id];\n\n if (!device) {\n return {\n type: \"custom:layout-card\",\n cards: [{ type: \"markdown\", content: `Area ${area.name} is empty.` }]\n }\n }\n\n const {\n area_state,\n aggregate_temperature,\n aggregate_humidity,\n aggregate_illuminance,\n aggregate_window,\n aggregate_door,\n aggregate_health,\n aggregate_cover,\n } = device?.entities ?? {}\n\n return {\n type: \"custom:layout-card\",\n layout_type: \"custom:masonry-layout\",\n card_mod: {\n },\n cards: [\n {\n type: \"custom:mod-card\",\n style: `\n ha-card {\n position: relative;\n }\n .card-content {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n `,\n card: {\n type: \"vertical-stack\",\n cards: [\n\n {\n type: \"custom:mushroom-chips-card\",\n alignment: \"end\",\n chips: [\n aggregate_temperature?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_temperature?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"temperature\", true, true).getChip(),\n },\n aggregate_humidity?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_humidity?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"humidity\", true, true).getChip(),\n },\n aggregate_illuminance?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_illuminance?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"illuminance\", true, true).getChip(),\n },\n ].filter(Boolean),\n card_mod: {\n style: `\n ha-card {\n position: absolute;\n top: 24px;\n left: 0px;\n right: 8px;\n z-index: 2;\n }\n `\n }\n },\n {\n type: \"custom:mushroom-chips-card\",\n alignment: \"end\",\n chips: [\n aggregate_window?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_window?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"window\", true, true).getChip(),\n },\n aggregate_door?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_door?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"door\", true, true).getChip(),\n },\n aggregate_health?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_health?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"health\", true, true).getChip(),\n },\n aggregate_cover?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: aggregate_cover?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new LinusAggregateChip(device, \"cover\", true, true).getChip(),\n },\n area_state?.entity_id && {\n type: \"conditional\",\n conditions: [\n {\n entity: area_state?.entity_id,\n state_not: \"unavailable\"\n }\n ],\n chip: new AreaStateChip(device, true).getChip(),\n },\n ].filter(Boolean),\n card_mod: {\n style: `\n ha-card {\n position: absolute;\n bottom: 8px;\n left: 0px;\n right: 8px;\n z-index: 2;\n }\n `\n }\n },\n\n {\n type: \"area\",\n area: area.area_id,\n show_camera: true,\n alert_classes: [],\n sensor_classes: [],\n aspect_ratio: \"16:9\",\n\n card_mod: {\n style: `\n ha-card {\n position: relative;\n z-index: 1;\n }\n .sensors {\n display: none;\n }\n .buttons {\n display: none;\n }\n `\n }\n }\n ]\n }\n },\n (device?.entities.all_lights && device?.entities.all_lights.entity_id !== \"unavailable\" ? {\n type: \"custom:mushroom-chips-card\",\n alignment: \"center\",\n chips: new AreaScenesChips(device, area).getChips()\n } : undefined)\n ].filter(Boolean)\n }\n }\n\n /**\n * Class constructor.\n *\n * @param {AreaRegistryEntry} area The area entity to create a card for.\n * @param {cards.TemplateCardOptions} [options={}] Options for the card.\n *\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(area: AreaRegistryEntry, options: cards.TemplateCardOptions = {}) {\n super(area);\n\n // Don't override the default card type if default is set in the strategy options.\n if (options.type === \"LinusMainAreaCard\") {\n delete options.type;\n }\n\n const defaultConfig = this.getDefaultConfig(area)\n\n this.config = Object.assign(this.config, defaultConfig, options);\n }\n}\n\nexport { MainAreaCard };\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {MediaPlayerCardConfig} from \"../types/lovelace-mushroom/cards/media-player-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Mediaplayer Card Class\n *\n * Used to create a card for controlling an entity of the media_player domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass MediaPlayerCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {MediaPlayerCardConfig}\n * @private\n */\n #defaultConfig: MediaPlayerCardConfig = {\n type: \"custom:mushroom-media-player-card\",\n use_media_info: true,\n media_controls: [\n \"on_off\",\n \"play_pause_stop\",\n ],\n show_volume_level: true,\n volume_controls: [\n \"volume_mute\",\n \"volume_set\",\n \"volume_buttons\",\n ],\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.MediaPlayerCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.MediaPlayerCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {MediaPlayerCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {EntityCardConfig} from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n/**\n * Miscellaneous Card Class\n *\n * Used to create a card an entity of any domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass MiscellaneousCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {EntityCardConfig}\n * @private\n */\n #defaultConfig: EntityCardConfig = {\n type: \"tile\",\n icon: undefined,\n vertical: false,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.EntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.EntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {MiscellaneousCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {NumberCardConfig} from \"../types/lovelace-mushroom/cards/number-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported\n/**\n * Number Card Class\n *\n * Used to create a card for controlling an entity of the number domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass NumberCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {NumberCardConfig}\n * @private\n */\n #defaultConfig: NumberCardConfig = {\n type: \"custom:mushroom-number-card\",\n icon: undefined,\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.NumberCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.NumberCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {NumberCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {PersonCardConfig} from \"../types/lovelace-mushroom/cards/person-card-config\";\n\n/**\n * Person Card Class\n *\n * Used to create a card for an entity of the Person domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass PersonCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {PersonCardConfig}\n * @private\n */\n #defaultConfig: PersonCardConfig = {\n type: \"custom:mushroom-person-card\",\n layout: \"vertical\",\n primary_info: \"none\",\n secondary_info: \"none\",\n icon_type: \"entity-picture\",\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.PersonCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.PersonCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {PersonCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport { SceneCardConfig } from \"../types/lovelace-mushroom/cards/scene-card-config\";\n\n/**\n * Scene Card Class\n *\n * Used to create a card for an entity of the Scene domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass SceneCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {SceneCardConfig}\n * @private\n */\n #defaultConfig: SceneCardConfig = {\n type: \"tile\",\n icon: undefined,\n vertical: false,\n icon_type: \"entity-picture\",\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.SceneCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.SceneCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {SceneCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {EntityCardConfig} from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n/**\n * Sensor Card Class\n *\n * Used to create a card for controlling an entity of the sensor domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass SensorCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {EntityCardConfig}\n * @private\n */\n #defaultConfig: EntityCardConfig = {\n type: \"custom:mushroom-entity-card\",\n icon: \"mdi:information\",\n animate: true,\n line_color: \"green\",\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.EntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.EntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {SensorCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport { SwipeCardConfig } from \"../types/lovelace-mushroom/cards/swipe-card-config\";\nimport { SwiperOptions } from \"swiper/types/swiper-options\";\nimport { EntityCardConfig } from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Swipe Card Class\n *\n * Used to create a card for controlling an entity of the light domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass SwipeCard {\n\n /**\n * Configuration of the card.\n *\n * @type {SwipeCardConfig}\n */\n config: SwipeCardConfig = {\n type: \"custom:swipe-card\",\n start_card: 1,\n parameters: {\n centeredSlides: false,\n followFinger: true,\n spaceBetween: 16,\n grabCursor: true,\n },\n cards: [],\n };\n\n /**\n * Class constructor.\n *\n * @param {AbstractCard[]} cards The hass entity to create a card for.\n * @param {SwiperOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(cards: (AbstractCard | EntityCardConfig)[], options?: SwiperOptions) {\n\n this.config.cards = cards;\n\n const multipleSlicesPerView = 2.2\n const slidesPerView = cards.length > 2 ? multipleSlicesPerView : cards.length ?? 1\n\n this.config.parameters = {...this.config.parameters, slidesPerView, ...options};\n }\n\n /**\n * Get a card.\n *\n * @return {SwipeCardConfig} A card object.\n */\n getCard(): SwipeCardConfig {\n return {\n ...this.config,\n };\n }\n}\n\nexport {SwipeCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {EntityCardConfig} from \"../types/lovelace-mushroom/cards/entity-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Switch Card Class\n *\n * Used to create a card for controlling an entity of the switch domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass SwitchCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {EntityCardConfig}\n * @private\n */\n #defaultConfig: EntityCardConfig = {\n type: \"tile\",\n icon: undefined,\n vertical: false,\n tap_action: {\n action: \"toggle\",\n },\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.EntityCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.EntityCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {SwitchCard};\n","import {AbstractCard} from \"./AbstractCard\";\nimport {cards} from \"../types/strategy/cards\";\nimport {EntityRegistryEntry} from \"../types/homeassistant/data/entity_registry\";\nimport {VACUUM_COMMANDS, VacuumCardConfig} from \"../types/lovelace-mushroom/cards/vacuum-card-config\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Vacuum Card Class\n *\n * Used to create a card for controlling an entity of the vacuum domain.\n *\n * @class\n * @extends AbstractCard\n */\nclass VacuumCard extends AbstractCard {\n /**\n * Default configuration of the card.\n *\n * @type {VacuumCardConfig}\n * @private\n */\n #defaultConfig: VacuumCardConfig = {\n type: \"custom:mushroom-vacuum-card\",\n icon: undefined,\n icon_animation: true,\n commands: [...VACUUM_COMMANDS],\n tap_action: {\n action: \"more-info\",\n }\n };\n\n /**\n * Class constructor.\n *\n * @param {EntityRegistryEntry} entity The hass entity to create a card for.\n * @param {cards.VacuumCardOptions} [options={}] Options for the card.\n * @throws {Error} If the Helper module isn't initialized.\n */\n constructor(entity: EntityRegistryEntry, options: cards.VacuumCardOptions = {}) {\n super(entity);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {VacuumCard};\n","import { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport { LovelaceChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { Helper } from \"../Helper\";\nimport { generic } from \"../types/strategy/generic\";\nimport isCallServiceActionConfig = generic.isCallServiceActionConfig;\n\n/**\n * Abstract Chip class.\n *\n * To create a new chip, extend this one.\n *\n * @class\n * @abstract\n */\nabstract class AbstractChip {\n /**\n * Configuration of the chip.\n *\n * @type {LovelaceChipConfig}\n */\n config: LovelaceChipConfig = {\n type: \"template\"\n };\n\n /**\n * Class Constructor.\n */\n protected constructor() {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n }\n\n // noinspection JSUnusedGlobalSymbols Method is called on dymanically imported classes.\n /**\n * Get the chip.\n *\n * @returns {LovelaceChipConfig} A chip.\n */\n getChip(): LovelaceChipConfig {\n return this.config;\n }\n\n /**\n * Set the target to switch.\n *\n * @param {HassServiceTarget} target Target to switch.\n */\n setTapActionTarget(target: HassServiceTarget) {\n if (\"tap_action\" in this.config && isCallServiceActionConfig(this.config.tap_action)) {\n this.config.tap_action.target = target;\n\n return;\n }\n\n if (Helper.debug) {\n console.warn(\n this.constructor.name\n + \" - Target not set: Invalid target or tap action.\");\n }\n }\n}\n\nexport { AbstractChip };\n","import { chips } from \"../types/strategy/chips\";\nimport { AlarmChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { navigateTo } from \"../utils\";\n\n// noinspection JSUnusedGlobalSymbols False positive.\n/**\n * Alarm Chip class.\n *\n * Used to create a chip for showing the alarm.\n */\nclass AlarmChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @private\n * @readonly\n */\n readonly #defaultConfig: AlarmChipConfig = {\n type: \"alarm-control-panel\",\n tap_action: navigateTo('security')\n };\n\n /**\n * Class Constructor.\n *\n * @param {string} entityId Id of a alarm entity.\n * @param {chips.AlarmChipOptions} options Alarm Chip options.\n */\n constructor(entityId: string, options: chips.AlarmChipOptions = {}) {\n super();\n this.#defaultConfig = {\n ...this.#defaultConfig,\n ...{ entity: entityId },\n ...options,\n };\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { AlarmChip };\n","import { shiftIterator } from \"superstruct/dist/utils\";\nimport { Helper } from \"../Helper\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { LovelaceChipConfig, TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN, todOrder } from \"../variables\";\nimport { slugify } from \"../utils\";\nimport { AreaRegistryEntry } from \"../types/homeassistant/data/area_registry\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Area selects Chips class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass AreaScenesChips {\n /**\n * Configuration of the chip.\n *\n * @type {LovelaceChipConfig[]}\n */\n config: LovelaceChipConfig[] = [];\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry, area: AreaRegistryEntry): TemplateChipConfig[] {\n\n const selects = todOrder.map(tod => Helper.getEntityState(device?.entities[`scene_${tod as 'morning'}`]?.entity_id)).filter(Boolean)\n\n const chips = [] as TemplateChipConfig[]\n\n if (selects.find(scene => scene?.state == \"Adaptive lighting\")) {\n chips.push({\n type: \"template\",\n icon: \"mdi:theme-light-dark\",\n content: \"AD\",\n tap_action: {\n action: \"call-service\",\n service: `${DOMAIN}.area_light_adapt`,\n data: {\n area: slugify(device.name),\n }\n },\n })\n }\n\n selects.forEach((scene, index) => {\n if (scene?.state === \"Scène instantanée\") {\n const entity_id = `scene.${slugify(device.name)}_${todOrder[index]}_snapshot_scene`\n chips.push({\n type: \"template\",\n entity: scene?.entity_id,\n icon: scene?.attributes.icon,\n content: todOrder[index],\n tap_action: {\n action: \"call-service\",\n service: \"scene.turn_on\",\n data: { entity_id }\n },\n hold_action: {\n action: \"more-info\"\n }\n })\n } else if (scene?.state !== \"Adaptive lighting\") {\n const sceneEntity_id = Helper.getStateEntities(area, \"scene\").find(s => s.attributes.friendly_name === scene?.state)?.entity_id\n chips.push({\n type: \"template\",\n entity: scene?.entity_id,\n icon: scene?.attributes.icon,\n content: todOrder[index],\n tap_action: {\n action: \"call-service\",\n service: \"scene.turn_on\",\n data: {\n entity_id: sceneEntity_id,\n }\n },\n hold_action: {\n action: \"more-info\"\n }\n })\n }\n })\n\n return chips\n\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, area: AreaRegistryEntry) {\n\n this.config = this.getDefaultConfig(device, area);\n\n }\n\n\n // noinspection JSUnusedGlobalSymbols Method is called on dymanically imported classes.\n /**\n * Get the chip.\n *\n * @returns {LovelaceChipConfig} A chip.\n */\n getChips(): LovelaceChipConfig[] {\n return this.config;\n }\n}\n\nexport { AreaScenesChips };\n","import { AreaInformations } from \"../popups/AreaInformationsPopup\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { ConditionalChipConfig, TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AREA_STATE_ICONS, DEVICE_ICONS, DOMAIN_ICONS } from \"../variables\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Area state Chip class.\n *\n * Used to create a chip to indicate area state.\n */\nclass AreaStateChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry, showContent: boolean = false): TemplateChipConfig {\n\n const { area_state, presence_hold, all_media_players, aggregate_motion } = device?.entities ?? {}\n return {\n \"type\": \"template\",\n \"entity\": area_state?.entity_id,\n \"icon_color\": `\n {% set presence_hold = states('${presence_hold?.entity_id}')%}\n {% set motion = states('${aggregate_motion?.entity_id}')%}\n {% set media_player = states('${all_media_players?.entity_id}')%}\n {% set bl = state_attr('${area_state?.entity_id}', 'states')%}\n {% if motion == 'on' %}\n red\n {% elif media_player in ['on', 'playing'] %}\n blue\n {% elif presence_hold == 'on' %}\n red\n {% elif 'sleep' in bl %}\n blue\n {% elif 'extended' in bl %}\n orange\n {% elif 'occupied' in bl %}\n grey\n {% else %}\n transparent\n {% endif %}\n `,\n \"icon\": `\n {% set presence_hold = states('${presence_hold?.entity_id}')%}\n {% set motion = states('${aggregate_motion?.entity_id}')%}\n {% set media_player = states('${all_media_players?.entity_id}')%}\n {% set bl = state_attr('${area_state?.entity_id}', 'states')%}\n {% if motion == 'on' %}\n ${DOMAIN_ICONS.motion}\n {% elif media_player in ['on', 'playing'] %}\n ${DOMAIN_ICONS.media_player}\n {% elif presence_hold == 'on' %}\n ${DEVICE_ICONS.presence_hold}\n {% elif 'sleep' in bl %}\n ${AREA_STATE_ICONS.sleep}\n {% elif 'extended' in bl %}\n ${AREA_STATE_ICONS.extended}\n {% elif 'occupied' in bl %}\n ${AREA_STATE_ICONS.occupied}\n {% else %}\n ${AREA_STATE_ICONS.clear}\n {% endif %}`,\n \"content\": showContent ? `\n {% set presence_hold = states('${presence_hold?.entity_id}')%}\n {% set bl = state_attr('${area_state?.entity_id}', 'states')%}\n {% if presence_hold == 'on' %}\n presence_hold\n {% elif 'sleep' in bl %}\n sleep\n {% elif 'extended' in bl %}\n extended\n {% elif 'occupied' in bl %}\n occupied\n {% else %}\n clear\n {% endif %}` : \"\",\n \"tap_action\": new AreaInformations(device, true).getPopup() as any\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, showContent: boolean = false) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device, showContent)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { AreaStateChip };\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate how many climates are operating.\n */\nclass ClimateChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:thermostat\",\n icon_color: \"orange\",\n content: Helper.getCountTemplate(\"climate\", \"ne\", \"off\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"climates\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { ClimateChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Cover Chip class.\n *\n * Used to create a chip to indicate how many covers aren't closed.\n */\nclass CoverChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:window-open\",\n icon_color: \"cyan\",\n content: Helper.getCountTemplate(\"cover\", \"eq\", \"open\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"covers\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { CoverChip };\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_STATE_ICONS } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Door Chip class.\n *\n * Used to create a chip to indicate how many doors are operating.\n */\nclass DoorChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: DOMAIN_STATE_ICONS.binary_sensor.door.on,\n icon_color: \"grey\",\n content: Helper.getDeviceClassCountTemplate(\"binary_sensor\", \"door\", \"ne\", \"off\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"doors\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { DoorChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Fan Chip class.\n *\n * Used to create a chip to indicate how many fans are on and to turn all off.\n */\nclass FanChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:fan\",\n icon_color: \"green\",\n content: Helper.getCountTemplate(\"fan\", \"eq\", \"on\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"fans\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { FanChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LightChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:lightbulb-group\",\n icon_color: \"amber\",\n content: Helper.getCountTemplate(\"light\", \"eq\", \"on\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"lights\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(areaId: string, options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n }\n}\n\nexport { LightChip };\n","import {AbstractChip} from \"./AbstractChip\";\nimport {TemplateChipConfig} from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LightControlChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n entity: undefined,\n icon: \"mdi:lightbulb-auto\",\n icon_color: \"{% if is_state(config.entity, 'on') %}green{% else %}red{% endif %}\",\n tap_action: {\n action: \"more-info\"\n },\n // double_tap_action: {\n // action: \"call-service\",\n // service: \"switch.toggle\",\n // data: {\n // entity_id: undefined\n // }\n // }\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(entity_id: string) {\n super();\n\n this.#defaultConfig.entity = entity_id\n this.config = Object.assign(this.config, this.#defaultConfig);\n\n }\n}\n\nexport {LightControlChip};\n","import { AggregateAreaListPopup } from \"../popups/AggregateAreaListPopup\";\nimport { AggregateListPopup } from \"../popups/AggregateListPopup\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { ConditionalChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_ICONS } from \"../variables\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass LinusAggregateChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig | undefined}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry, deviceClass: string, showContent: boolean, by_area: boolean = false): ConditionalChipConfig | undefined {\n\n const entity = device?.entities[`aggregate_${deviceClass}`]\n\n if (!entity?.entity_id) return undefined\n\n const domain = entity?.entity_id.split(\".\")[0]\n\n let icon = DOMAIN_ICONS[deviceClass as \"motion\"]\n let icon_color = ''\n let content = ''\n\n if (domain === \"binary_sensor\") {\n icon_color = `{{ 'red' if expand(states.${entity?.entity_id}.attributes.sensors is defined and states.${entity?.entity_id}.attributes.sensors) | selectattr( 'state', 'eq', 'on') | list | count > 0 else 'grey' }}`\n content = showContent ? `{{ expand(states.${entity?.entity_id}.attributes.sensors is defined and states.${entity?.entity_id}.attributes.sensors) | selectattr( 'state', 'eq', 'on') | list | count }}` : \"\"\n }\n\n if (domain === \"sensor\") {\n if (deviceClass === \"battery\") {\n icon_color = `{% set bl = states('${entity?.entity_id}') %}\n {% if bl == 'unknown' or bl == 'unavailable' %}\n {% elif bl | int() < 30 %} red\n {% elif bl | int() < 50 %} orange\n {% elif bl | int() <= 100 %} green\n {% else %} disabled{% endif %}`\n icon = `{% set bl = states('${entity?.entity_id}') %}\n {% if bl == 'unknown' or bl == 'unavailable' %}\n {% elif bl | int() < 10 %}mdi:battery-outline\n {% elif bl | int() < 20 %} mdi:battery1\n {% elif bl | int() < 30 %} mdi:battery-20\n {% elif bl | int() < 40 %} mdi:battery-30\n {% elif bl | int() < 50 %} mdi:battery-40\n {% elif bl | int() < 60 %} mdi:battery-50\n {% elif bl | int() < 70 %} mdi:battery-60\n {% elif bl | int() < 80 %} mdi:battery-70\n {% elif bl | int() < 90 %} mdi:battery-80\n {% elif bl | int() < 100 %} mdi:battery-90\n {% elif bl | int() == 100 %} mdi:battery\n {% else %} mdi:battery{% endif %} `\n content = showContent ? `{{ states('${entity?.entity_id}') | int | round(1) }} %` : \"\"\n }\n if (deviceClass === \"temperature\") icon_color = `{% set bl = states('${entity?.entity_id}') | int() %} {% if bl < 20 %} blue\n {% elif bl < 30 %} orange\n {% elif bl >= 30 %} red{% else %} disabled{% endif %}`\n if (deviceClass === \"illuminance\") icon_color = `{{ 'blue' if 'dark' in state_attr('${device?.entities.area_state?.entity_id}', 'states') else 'amber' }}`\n\n content = showContent ? `{{ states.${entity?.entity_id}.state | float | round(1) }} {{ states.${entity?.entity_id}.attributes.unit_of_measurement }}` : \"\"\n }\n\n if (deviceClass === \"cover\") {\n icon_color = `{{ 'red' if is_state('${entity?.entity_id}', 'open') else 'grey' }}`\n content = showContent ? `{{ expand(states.${entity?.entity_id}.attributes.entity_id) | selectattr( 'state', 'eq', 'open') | list | count }}` : \"\"\n }\n\n if (deviceClass === \"health\") {\n icon_color = `{{ 'red' if is_state(entity, 'on') else 'green' }}`\n }\n\n const tap_action = by_area ? new AggregateAreaListPopup(entity?.entity_id, deviceClass).getPopup() : new AggregateListPopup(entity?.entity_id, deviceClass).getPopup()\n\n return {\n type: \"conditional\",\n conditions: [\n {\n entity: entity?.entity_id ?? \"\",\n state_not: \"unavailable\"\n }\n ],\n chip: {\n type: \"template\",\n entity: entity?.entity_id,\n icon_color: icon_color,\n icon: icon,\n content: content,\n tap_action: tap_action\n },\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, deviceClass: string, showContent: boolean = false, by_area: boolean = false) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device, deviceClass, showContent, by_area)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { LinusAggregateChip };\n","import { AlarmChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport {AbstractChip} from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass LinusAlarmChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(entity_id: any): AlarmChipConfig {\n return {\n type: \"alarm-control-panel\",\n entity: entity_id,\n tap_action: {\n action: \"more-info\"\n },\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(entityId: string) {\n super();\n\n const defaultConfig = this.getDefaultConfig(entityId)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport {LinusAlarmChip};\n","import { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass LinusClimateChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry, showContent: boolean): TemplateChipConfig {\n return {\n \"type\": \"template\",\n \"entity\": device?.entities.aggregate_climate?.entity_id,\n \"icon_color\": `{{ 'orange' if is_state('${device?.entities.aggregate_climate?.entity_id}', 'heat') else 'grey' }}`,\n \"icon\": \"mdi:thermostat\",\n \"content\": showContent ? `{{ states.${device?.entities.aggregate_climate?.entity_id}.attributes.preset_mode }}` : \"\",\n // \"tap_action\": climateList(hass, area)\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, showContent: boolean = false) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device, showContent)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { LinusClimateChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AggregateListPopup } from \"../popups/AggregateListPopup\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { DOMAIN } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LinusLightChip extends AbstractChip {\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, area_id: string, show_content?: boolean, show_group?: boolean) {\n super();\n\n const defaultConfig: TemplateChipConfig = {\n type: \"template\",\n entity: device?.entities.all_lights?.entity_id,\n icon_color: `{{ 'amber' if expand(states.${device?.entities.all_lights?.entity_id}.attributes.entity_id) | selectattr( 'state', 'eq', 'on') | list | count > 0 else 'grey' }}`,\n icon: \"mdi:lightbulb-group\",\n content: show_content ? `{{ expand(states.${device?.entities.all_lights?.entity_id}.attributes.entity_id) | selectattr( 'state', 'eq', 'on') | list | count }}` : \"\",\n tap_action: show_group ? new AggregateListPopup(device?.entities.all_lights?.entity_id, \"light\").getPopup() : {\n action: \"call-service\",\n service: `${DOMAIN}.area_light_toggle`,\n data: {\n area: area_id\n }\n }\n }\n\n this.config = Object.assign(this.config, defaultConfig);\n }\n}\n\nexport { LinusLightChip };\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_STATE_ICONS } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Motion Chip class.\n *\n * Used to create a chip to indicate how many motions are operating.\n */\nclass MotionChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: DOMAIN_STATE_ICONS.binary_sensor.motion.on,\n icon_color: \"grey\",\n content: Helper.getDeviceClassCountTemplate(\"binary_sensor\", \"motion\", \"ne\", \"off\"),\n tap_action: {\n action: \"none\",\n },\n hold_action: {\n action: \"navigate\",\n navigation_path: \"motions\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { MotionChip };\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_STATE_ICONS } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Safety Chip class.\n *\n * Used to create a chip to indicate how many safetys are operating.\n */\nclass SafetyChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: DOMAIN_STATE_ICONS.binary_sensor.safety.on,\n icon_color: \"grey\",\n content: Helper.getDeviceClassCountTemplate(\"binary_sensor\", \"safety\", \"ne\", \"off\"),\n tap_action: {\n action: \"none\",\n },\n hold_action: {\n action: \"navigate\",\n navigation_path: \"safety\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { SafetyChip };\n","import {Helper} from \"../Helper\";\nimport {chips} from \"../types/strategy/chips\";\nimport {AbstractChip} from \"./AbstractChip\";\nimport {TemplateChipConfig} from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Settings Chip class.\n *\n * Used to create a chip to indicate how many fans are on and to turn all off.\n */\nclass SettingsChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n \"type\": \"template\",\n \"icon\": \"mdi:cog\",\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {SettingsChip};\n","import { Helper } from \"../Helper\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Spotify Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass SpotifyChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(entityId: string): TemplateChipConfig {\n\n return {\n type: \"template\",\n entity: entityId,\n icon_color: `{{ 'green' if is_state('${entityId}', 'playing') else 'grey' }}`,\n content: '{{ states(entity) }}',\n icon: \"mdi:spotify\",\n // content: show_content ? `{{ states('${entityId}') if not states('${entityId}') == 'on' else '' }}` : \"\",\n tap_action: {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Spotify\",\n \"content\":\n {\n type: \"vertical-stack\",\n cards: [\n ...([entityId].map(x => {\n\n const entity = Helper.getEntityState(x)\n const source_list = entity.attributes.source_list\n const chunkSize = 3;\n const source_cards_chunk = []\n\n for (let i = 0; i < source_list.length; i += chunkSize) {\n const chunk = source_list.slice(i, i + chunkSize);\n source_cards_chunk.push(chunk)\n }\n\n return {\n type: \"custom:stack-in-card\",\n cards: [\n {\n type: \"custom:mushroom-media-player-card\",\n entity: \"media_player.spotify_juicy\",\n icon: \"mdi:spotify\",\n icon_color: \"green\",\n use_media_info: true,\n use_media_artwork: false,\n show_volume_level: false,\n media_controls: [\n \"play_pause_stop\",\n \"previous\",\n \"next\"\n ],\n volume_controls: [\n \"volume_buttons\",\n \"volume_set\"\n ],\n fill_container: false,\n card_mod: {\n style: \"ha-card {\\n --rgb-state-media-player: var(--rgb-green);\\n}\\n\"\n }\n },\n {\n type: \"custom:swipe-card\",\n parameters: null,\n spaceBetween: 8,\n scrollbar: null,\n start_card: 1,\n hide: false,\n draggable: true,\n snapOnRelease: true,\n slidesPerView: 2.2,\n cards: [\n ...(source_cards_chunk.map(source_cards => (\n {\n type: \"horizontal-stack\",\n cards: [\n ...(source_cards.map((source: string) => (\n {\n type: \"custom:mushroom-template-card\",\n icon: \"mdi:speaker-play\",\n icon_color: `{% if states[entity].attributes.source == '${source}' %}\\namber\\n{% else %}\\ngrey\\n{% endif %}`,\n primary: null,\n secondary: source,\n entity: entity.entity_id,\n multiline_secondary: false,\n tap_action: {\n action: \"call-service\",\n service: \"spotcast.start\",\n data: {\n device_name: source,\n force_playback: true\n }\n },\n layout: \"vertical\",\n style: \"mushroom-card \\n background-size: 42px 32px;\\nmushroom-shape-icon {\\n --shape-color: none !important;\\n} \\n ha-card { \\n background: rgba(#1a1a2a;, 1.25);\\n {% if is_state('media_player.cuisine_media_players', 'playing') %}\\n {% else %}\\n background: rgba(var(--rgb-primary-background-color), 0.8);\\n {% endif %} \\n width: 115px;\\n border-radius: 30px;\\n margin-top: 10px;\\n margin-left: auto;\\n margin-right: auto;\\n margin-bottom: 20px;\\n }\\n\",\n card_mode: {\n style: \":host {\\n background: rgba(var(--rgb-primary-background-color), 0.8);\\n border-radius: 50px;!important\\n} \\n\"\n },\n line_width: 8,\n line_color: \"#FF6384\",\n card_mod: {\n style: `\n :host {\n --mush-icon-symbol-size: 0.75em;\n }\n `\n }\n\n }))\n ).filter(Boolean),\n ]\n }))\n ).filter(Boolean),\n ]\n },\n {\n type: \"custom:spotify-card\",\n always_play_random_song: true,\n hide_currently_playing: true,\n hide_playback_controls: true,\n hide_top_header: true,\n hide_warning: true,\n hide_chromecast_devices: true,\n display_style: \"Grid\",\n grid_covers_per_row: 5,\n limit: 20\n }\n ],\n card_mod: {\n style: \"ha-card {\\n {% if not is_state('media_player.spotify_juicy', 'off') and not is_state('media_player.spotify_juicy', 'idle') %}\\n background: url( '{{ state_attr(\\\"media_player.spotify_juicy\\\", \\\"entity_picture\\\") }}' ), linear-gradient(to left, transparent, rgb(var(--rgb-card-background-color)) 100%);\\n\\n {% if state_attr('media_player.spotify_juicy', 'media_content_type') == 'tvshow' %}\\n background-size: auto 100%, cover;\\n {% else %}\\n background-size: 130% auto, cover;\\n {% endif %}\\n\\n background-position: top right;\\n background-repeat: no-repeat;\\n background-blend-mode: saturation;\\n {% endif %}\\n}\\n\"\n }\n }\n })\n ).filter(Boolean),\n ],\n card_mod: {\n style: \"ha-card {\\n background:#4a1a1a;\\n}\\n\"\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(entityId: string) {\n super();\n\n const defaultConfig = this.getDefaultConfig(entityId)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { SpotifyChip };\n","import { Helper } from \"../Helper\";\nimport { chips } from \"../types/strategy/chips\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Switch Chip class.\n *\n * Used to create a chip to indicate how many switches are on and to turn all off.\n */\nclass SwitchChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: \"mdi:dip-switch\",\n icon_color: \"blue\",\n content: Helper.getCountTemplate(\"switch\", \"eq\", \"on\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"switches\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { SwitchChip };\n","import { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN } from \"../variables\";\nimport { AbstractChip } from \"./AbstractChip\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate Chip class.\n *\n * Used to create a chip to indicate climate level.\n */\nclass ToggleSceneChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {ConditionalChipConfig}\n *\n */\n getDefaultConfig(device: MagicAreaRegistryEntry): TemplateChipConfig {\n return {\n type: \"template\",\n entity: device?.entities.light_control?.entity_id,\n icon: \"mdi:recycle-variant\",\n // icon_color: \"{% if is_state(config.entity, 'on') %}green{% else %}red{% endif %}\",\n tap_action: {\n action: \"call-service\",\n service: `${DOMAIN}.area_scene_toggle`,\n data: {\n area: device?.name,\n }\n },\n hold_action: {\n action: \"more-info\"\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { ToggleSceneChip };\n","import { GroupListPopup } from \"../popups/GroupListPopup\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { EntityRegistryEntry } from '../types/homeassistant/data/entity_registry';\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Unavailable Chip class.\n *\n * Used to create a chip to indicate unable entities.\n */\nclass UnavailableChip extends AbstractChip {\n getDefaultConfig(entities: EntityRegistryEntry[]) {\n return {\n type: \"template\",\n icon_color: \"orange\",\n icon: 'mdi:help',\n tap_action: new GroupListPopup(entities, \"Unavailable entities\").getPopup()\n };\n }\n /**\n * Class Constructor.\n *\n * @param {EntityRegistryEntry[]} entities The chip entities.\n */\n constructor(entities: EntityRegistryEntry[]) {\n super();\n const defaultConfig = this.getDefaultConfig(entities);\n this.config = Object.assign(this.config, defaultConfig);\n }\n}\n\nexport { UnavailableChip };\n","import {chips} from \"../types/strategy/chips\";\nimport {WeatherChipConfig} from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport {AbstractChip} from \"./AbstractChip\";\nimport { WeatherPopup } from \"../popups/WeatherPopup\";\n\n// noinspection JSUnusedGlobalSymbols False positive.\n/**\n * Weather Chip class.\n *\n * Used to create a chip for showing the weather.\n */\nclass WeatherChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @private\n * @readonly\n */\n readonly #defaultConfig: WeatherChipConfig = {\n type: \"weather\",\n show_temperature: true,\n show_conditions: true,\n };\n\n /**\n * Class Constructor.\n *\n * @param {string} entityId Id of a weather entity.\n * @param {chips.WeatherChipOptions} options Weather Chip options.\n */\n constructor(entityId: string, options: chips.WeatherChipOptions = {}) {\n super();\n this.#defaultConfig = {\n ...this.#defaultConfig,\n tap_action: new WeatherPopup(entityId).getPopup() as any,\n ...{entity: entityId},\n ...options,\n };\n\n this.#defaultConfig.tap_action = new WeatherPopup(entityId).getPopup()\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport {WeatherChip};\n","import { Helper } from \"../Helper\";\nimport { AbstractChip } from \"./AbstractChip\";\nimport { chips } from \"../types/strategy/chips\";\nimport { TemplateChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { DOMAIN_STATE_ICONS } from \"../variables\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Window Chip class.\n *\n * Used to create a chip to indicate how many windows are operating.\n */\nclass WindowChip extends AbstractChip {\n /**\n * Default configuration of the chip.\n *\n * @type {TemplateChipConfig}\n *\n * @readonly\n * @private\n */\n readonly #defaultConfig: TemplateChipConfig = {\n type: \"template\",\n icon: DOMAIN_STATE_ICONS.binary_sensor.window.on,\n icon_color: \"grey\",\n content: Helper.getDeviceClassCountTemplate(\"binary_sensor\", \"window\", \"ne\", \"off\"),\n tap_action: {\n action: \"navigate\",\n navigation_path: \"windows\",\n },\n };\n\n /**\n * Class Constructor.\n *\n * @param {chips.TemplateChipOptions} options The chip options.\n */\n constructor(options: chips.TemplateChipOptions = {}) {\n super();\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n }\n}\n\nexport { WindowChip };\n","import { generic } from \"./types/strategy/generic\";\nimport StrategyDefaults = generic.StrategyDefaults;\nimport { LightControlChip } from \"./chips/LightControlChip\";\nimport { SettingsChip } from \"./chips/SettingsChip\";\nimport { LightSettings } from \"./popups/LightSettingsPopup\";\nimport { ToggleSceneChip } from \"./chips/ToggleSceneChip\";\nimport { SceneSettings } from \"./popups/SceneSettingsPopup\";\nimport { MagicAreaRegistryEntry } from \"./types/homeassistant/data/device_registry\";\n\n/**\n * Default configuration for the mushroom strategy.\n */\nexport const configurationDefaults: StrategyDefaults = {\n areas: {\n undisclosed: {\n aliases: [],\n area_id: \"undisclosed\",\n name: \"Non assigné\",\n picture: null,\n hidden: false,\n }\n },\n floors: {\n undisclosed: {\n aliases: [],\n floor_id: \"undisclosed\",\n name: \"Non assigné\",\n hidden: false,\n }\n },\n debug: true,\n domains: {\n _: {\n hide_config_entities: false,\n },\n default: {\n title: \"Divers\",\n showControls: false,\n hidden: false,\n },\n light: {\n // title: \"Lights\",\n showControls: true,\n extraControls: (device: MagicAreaRegistryEntry) => {\n return [\n new LightControlChip(device?.entities.light_control?.entity_id).getChip(),\n new SettingsChip({ tap_action: new LightSettings(device).getPopup() }).getChip()\n ]\n },\n iconOn: \"mdi:lightbulb\",\n iconOff: \"mdi:lightbulb-off\",\n onService: \"light.turn_on\",\n offService: \"light.turn_off\",\n hidden: false,\n order: 1\n },\n scene: {\n title: \"Scènes\",\n showControls: false,\n extraControls: (device: MagicAreaRegistryEntry) => {\n\n return [\n {\n type: \"conditional\",\n conditions: [{\n entity: device?.entities.all_lights?.entity_id,\n state_not: \"unavailable\"\n }],\n chip: new ToggleSceneChip(device).getChip(),\n },\n new SettingsChip({ tap_action: new SceneSettings(device).getPopup() }).getChip()\n ]\n },\n iconOn: \"mdi:lightbulb\",\n iconOff: \"mdi:lightbulb-off\",\n onService: \"scene.turn_on\",\n hidden: false,\n order: 2\n },\n fan: {\n title: \"Fans\",\n showControls: true,\n iconOn: \"mdi:fan\",\n iconOff: \"mdi:fan-off\",\n onService: \"fan.turn_on\",\n offService: \"fan.turn_off\",\n hidden: false,\n order: 4\n },\n cover: {\n title: \"Covers\",\n showControls: true,\n iconOn: \"mdi:arrow-up\",\n iconOff: \"mdi:arrow-down\",\n onService: \"cover.open_cover\",\n offService: \"cover.close_cover\",\n hidden: false,\n order: 8\n },\n switch: {\n title: \"Switches\",\n showControls: true,\n iconOn: \"mdi:power-plug\",\n iconOff: \"mdi:power-plug-off\",\n onService: \"switch.turn_on\",\n offService: \"switch.turn_off\",\n hidden: false,\n order: 5\n },\n camera: {\n title: \"Cameras\",\n showControls: false,\n hidden: false,\n order: 6\n },\n lock: {\n title: \"Locks\",\n showControls: false,\n hidden: false,\n order: 7\n },\n climate: {\n title: \"Climates\",\n showControls: true,\n hidden: false,\n order: 3\n },\n media_player: {\n title: \"Media Players\",\n showControls: true,\n hidden: false,\n order: 9\n },\n sensor: {\n title: \"Sensors\",\n showControls: false,\n hidden: false,\n },\n binary_sensor: {\n title: \"Binary Sensors\",\n showControls: false,\n hidden: false,\n },\n number: {\n title: \"Numbers\",\n showControls: false,\n hidden: false,\n },\n vacuum: {\n title: \"Vacuums\",\n showControls: true,\n hidden: false,\n order: 10\n },\n },\n home_view: {\n hidden: [],\n },\n views: {\n home: {\n order: 1,\n hidden: false,\n },\n security: {\n order: 2,\n hidden: false,\n },\n light: {\n order: 3,\n hidden: false,\n },\n media_player: {\n order: 4,\n hidden: false,\n },\n climate: {\n order: 5,\n hidden: false,\n },\n fan: {\n order: 6,\n hidden: false,\n },\n cover: {\n order: 7,\n hidden: false,\n },\n camera: {\n order: 8,\n hidden: false,\n },\n switch: {\n order: 9,\n hidden: false,\n },\n vacuum: {\n order: 10,\n hidden: false,\n },\n scene: {\n order: 11,\n hidden: false,\n },\n securityDetails: {\n hidden: false,\n },\n }\n};\n","import { Helper } from \"./Helper\";\nimport { SensorCard } from \"./cards/SensorCard\";\nimport { ControllerCard } from \"./cards/ControllerCard\";\nimport { generic } from \"./types/strategy/generic\";\nimport { LovelaceCardConfig, LovelaceConfig, LovelaceViewConfig } from \"./types/homeassistant/data/lovelace\";\nimport { StackCardConfig } from \"./types/homeassistant/lovelace/cards/types\";\nimport { EntityCardConfig } from \"./types/lovelace-mushroom/cards/entity-card-config\";\nimport { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport StrategyArea = generic.StrategyArea;\nimport { SwipeCard } from \"./cards/SwipeCard\";\nimport { MainAreaCard } from \"./cards/MainAreaCard\";\nimport { SwipeCardConfig } from \"./types/lovelace-mushroom/cards/swipe-card-config\";\nimport { slugify } from \"./utils\";\nimport { MAGIC_AREAS_DOMAINS } from \"./variables\";\n\n/**\n * Mushroom Dashboard Strategy.
\n *
\n * Mushroom dashboard strategy provides a strategy for Home-Assistant to create a dashboard automatically.
\n * The strategy makes use Mushroom and Mini Graph cards to represent your entities.
\n *
\n * Features:
\n * 🛠 Automatically create dashboard with three lines of yaml.
\n * 😍 Built-in Views for several standard domains.
\n * 🎨 Many options to customize to your needs.
\n *
\n * Check the [Repository]{@link https://github.com/AalianKhan/linus-strategy} for more information.\n */\nclass MushroomStrategy extends HTMLTemplateElement {\n /**\n * Generate a dashboard.\n *\n * Called when opening a dashboard.\n *\n * @param {generic.DashBoardInfo} info Dashboard strategy information object.\n * @return {Promise}\n */\n static async generateDashboard(info: generic.DashBoardInfo): Promise {\n await Helper.initialize(info);\n\n // Create views.\n const views: LovelaceViewConfig[] = info.config?.views ?? [];\n\n let viewModule;\n\n\n // Create a view for each exposed domain.\n for (let viewId of Helper.getExposedViewIds()) {\n if (MAGIC_AREAS_DOMAINS.includes(viewId) && (Helper.domains[viewId] ?? []).length === 0) continue\n try {\n const viewType = Helper.sanitizeClassName(viewId + \"View\");\n viewModule = await import(`./views/${viewType}`);\n const view: LovelaceViewConfig = await new viewModule[viewType](Helper.strategyOptions.views[viewId]).getView();\n\n if (view.cards?.length || view.sections?.length) {\n views.push(view);\n }\n } catch (e) {\n Helper.logError(`View '${viewId}' couldn't be loaded!`, e);\n }\n }\n\n // Create subviews for each area.\n for (let area of Helper.areas) {\n if (!area.hidden) {\n views.push({\n title: area.name,\n path: area.area_id ?? area.name,\n subview: true,\n strategy: {\n type: \"custom:linus-strategy\",\n options: {\n area,\n },\n },\n });\n }\n }\n\n // Add custom views.\n if (Helper.strategyOptions.extra_views) {\n views.push(...Helper.strategyOptions.extra_views);\n }\n\n // Return the created views.\n return {\n views: views,\n };\n }\n\n /**\n * Generate a view.\n *\n * Called when opening a subview.\n *\n * @param {generic.ViewInfo} info The view's strategy information object.\n * @return {Promise}\n */\n static async generateView(info: generic.ViewInfo): Promise {\n const exposedDomainIds = Helper.getExposedDomainIds();\n const area = info.view.strategy?.options?.area ?? {} as StrategyArea;\n const viewCards: LovelaceCardConfig[] = [...(area.extra_cards ?? [])];\n\n\n if (area.area_id !== \"undisclosed\")\n viewCards.push(new MainAreaCard(area).getCard());\n\n // Set the target for controller cards to the current area.\n let target: HassServiceTarget = {\n area_id: [area.area_id],\n };\n\n // Create cards for each domain.\n for (const domain of exposedDomainIds) {\n if (domain === \"default\") {\n continue;\n }\n\n const className = Helper.sanitizeClassName(domain + \"Card\");\n\n let domainCards = [];\n\n try {\n domainCards = await import(`./cards/${className}`).then(cardModule => {\n let domainCards = [] as any[];\n const entities = Helper.getDeviceEntities(area, domain);\n let configEntityHidden =\n Helper.strategyOptions.domains[domain ?? \"_\"].hide_config_entities\n || Helper.strategyOptions.domains[\"_\"].hide_config_entities;\n\n const magicAreasDevice = Helper.magicAreasDevices[area.name];\n const magicAreasKey = domain === \"light\" ? 'all_lights' : `${domain}_group`;\n\n // Set the target for controller cards to linus aggregate entity if exist.\n target[\"entity_id\"] = magicAreasDevice?.entities[magicAreasKey]?.entity_id;\n // Set the target for controller cards to entities without an area.\n if (area.area_id === \"undisclosed\") {\n target = {\n entity_id: entities.map(entity => entity.entity_id),\n }\n }\n\n if (entities.length) {\n // Create a Controller card for the current domain.\n\n const title = Helper.localize(domain === 'scene' ? 'ui.dialogs.quick-bar.commands.navigation.scene' : `component.${domain}.entity_component._.name`);\n const titleCard = new ControllerCard(\n target,\n { ...Helper.strategyOptions.domains[domain], domain, title },\n ).createCard();\n\n if (domain === \"sensor\") {\n // Create a card for each entity-sensor of the current area.\n const sensorStates = Helper.getStateEntities(area, \"sensor\");\n const sensorCards: EntityCardConfig[] = [];\n\n for (const sensor of entities) {\n // Find the state of the current sensor.\n const sensorState = sensorStates.find(state => state.entity_id === sensor.entity_id);\n let cardOptions = Helper.strategyOptions.card_options?.[sensor.entity_id];\n let deviceOptions = Helper.strategyOptions.card_options?.[sensor.device_id ?? \"null\"];\n\n if (!cardOptions?.hidden && !deviceOptions?.hidden) {\n if (sensorState?.attributes.unit_of_measurement) {\n cardOptions = {\n ...{\n type: \"custom:mini-graph-card\",\n entities: [sensor.entity_id],\n },\n ...cardOptions,\n };\n }\n\n sensorCards.push(new SensorCard(sensor, cardOptions).getCard());\n }\n }\n\n if (sensorCards.length) {\n domainCards.push(new SwipeCard(sensorCards).getCard())\n\n domainCards.unshift(titleCard);\n }\n\n return domainCards;\n }\n\n // Create a card for each other domain-entity of the current area.\n for (const entity of entities) {\n let deviceOptions;\n let cardOptions = Helper.strategyOptions.card_options?.[entity.entity_id];\n\n if (entity.device_id) {\n deviceOptions = Helper.strategyOptions.card_options?.[entity.device_id];\n }\n\n // Don't include the entity if hidden in the strategy options.\n if (cardOptions?.hidden || deviceOptions?.hidden) {\n continue;\n }\n\n // Don't include the config-entity if hidden in the strategy options.\n if (entity.entity_category === \"config\" && configEntityHidden) {\n continue;\n }\n\n domainCards.push(new cardModule[className](entity, cardOptions).getCard());\n }\n\n domainCards = [new SwipeCard(domainCards).getCard()];\n\n if (domainCards.length) {\n domainCards.unshift(titleCard);\n }\n }\n\n return domainCards;\n });\n } catch (e) {\n Helper.logError(\"An error occurred while creating the domain cards!\", e);\n }\n\n if (domainCards.length) {\n viewCards.push({\n type: \"vertical-stack\",\n cards: domainCards,\n });\n }\n }\n\n if (!Helper.strategyOptions.domains.default.hidden) {\n // Create cards for any other domain.\n // Collect device entities of the current area.\n const areaDevices = Helper.devices.filter((device) => device.area_id === area.area_id)\n .map((device) => device.id);\n\n // Collect the remaining entities of which all conditions below are met:\n // 1. The entity is not hidden.\n // 2. The entity's domain isn't exposed (entities of exposed domains are already included).\n // 3. The entity is linked to a device which is linked to the current area,\n // or the entity itself is linked to the current area.\n const miscellaneousEntities = Helper.entities.filter((entity) => {\n const entityLinked = areaDevices.includes(entity.device_id ?? \"null\") || entity.area_id === area.area_id;\n const entityUnhidden = entity.hidden_by === null && entity.disabled_by === null;\n const domainExposed = exposedDomainIds.includes(entity.entity_id.split(\".\", 1)[0]);\n\n return entityUnhidden && !domainExposed && entityLinked;\n });\n\n // Create a column of miscellaneous entity cards.\n if (miscellaneousEntities.length) {\n let miscellaneousCards: (StackCardConfig | EntityCardConfig | SwipeCardConfig)[] = [];\n\n try {\n miscellaneousCards = await import(\"./cards/MiscellaneousCard\").then(cardModule => {\n const miscellaneousCards: (StackCardConfig | EntityCardConfig)[] = [\n new ControllerCard(target, Helper.strategyOptions.domains.default).createCard(),\n ];\n\n const swipeCard = []\n\n for (const entity of miscellaneousEntities) {\n let cardOptions = Helper.strategyOptions.card_options?.[entity.entity_id];\n let deviceOptions = Helper.strategyOptions.card_options?.[entity.device_id ?? \"null\"];\n\n // Don't include the entity if hidden in the strategy options.\n if (cardOptions?.hidden || deviceOptions?.hidden) {\n continue;\n }\n\n // Don't include the config-entity if hidden in the strategy options\n if (entity.entity_category === \"config\" && Helper.strategyOptions.domains[\"_\"].hide_config_entities) {\n continue;\n }\n\n swipeCard.push(new cardModule.MiscellaneousCard(entity, cardOptions).getCard());\n\n }\n\n return [...miscellaneousCards, new SwipeCard(swipeCard).getCard()];\n });\n } catch (e) {\n Helper.logError(\"An error occurred while creating the domain cards!\", e);\n }\n\n viewCards.push({\n type: \"vertical-stack\",\n cards: miscellaneousCards,\n });\n }\n }\n\n // Return cards.\n return {\n cards: viewCards,\n };\n }\n}\n\ncustomElements.define(\"ll-strategy-linus-strategy\", MushroomStrategy);\n\nexport const version = \"v4.0.1\";\nconsole.info(\n \"%c Linus Strategy %c \".concat(version, \" \"),\n \"color: white; background: coral; font-weight: 700;\", \"color: coral; background: white; font-weight: 700;\"\n);\n","import {Helper} from \"../Helper\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\n\n/**\n * Abstract Popup class.\n *\n * To create a new Popup, extend this one.\n *\n * @class\n * @abstract\n */\nabstract class AbstractPopup {\n /**\n * Configuration of the Popup.\n *\n * @type {PopupActionConfig}\n */\n config: PopupActionConfig = {\n action: \"fire-dom-event\",\n browser_mod: {}\n };\n\n /**\n * Class Constructor.\n */\n protected constructor() {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n }\n\n // noinspection JSUnusedGlobalSymbols Method is called on dymanically imported classes.\n /**\n * Get the Popup.\n *\n * @returns {PopupActionConfig} A Popup.\n */\n getPopup(): PopupActionConfig {\n return this.config;\n }\n}\n\nexport {AbstractPopup};\n","import { Helper } from \"../Helper\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { groupBy } from \"../utils\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass AggregateAreaListPopup extends AbstractPopup {\n\n getDefaultConfig(aggregate_entity: any, deviceClass: string, is_binary_sensor: boolean): PopupActionConfig {\n\n const groupedCards: (TitleCardConfig | StackCardConfig)[] = [];\n\n\n let areaCards: (TemplateCardConfig)[] = [];\n\n for (const [i, entity_id] of aggregate_entity.attributes.entity_id?.entries() ?? []) {\n\n // Get a card for the area.\n if (entity_id) {\n\n areaCards.push({\n type: \"tile\",\n entity: entity_id,\n // primary: area.name,\n state_content: is_binary_sensor ? 'last-changed' : 'state',\n color: is_binary_sensor ? 'red' : false,\n // badge_icon: \"mdi:numeric-9\",\n // badge_color: \"red\",\n });\n }\n \n // Horizontally group every two area cards if all cards are created.\n if (i === aggregate_entity.attributes.entity_id.length - 1) {\n for (let i = 0; i < areaCards.length; i += 2) {\n groupedCards.push({\n type: \"horizontal-stack\",\n cards: areaCards.slice(i, i + 2),\n } as StackCardConfig);\n }\n }\n\n }\n\n return {\n \"action\": \"fire-dom-event\",\n \"browser_mod\": {\n \"service\": \"browser_mod.popup\",\n \"data\": {\n \"title\": aggregate_entity?.attributes?.friendly_name,\n \"content\": {\n \"type\": \"vertical-stack\",\n \"cards\": [\n {\n type: \"custom:mushroom-entity-card\",\n entity: aggregate_entity.entity_id,\n color: is_binary_sensor ? 'red' : false,\n secondary_info: is_binary_sensor ? 'last-changed' : 'state',\n },\n {\n \"type\": \"history-graph\",\n \"hours_to_show\": 10,\n \"show_names\": false,\n \"entities\": [\n {\n \"entity\": aggregate_entity.entity_id,\n \"name\": \" \"\n }\n ]\n },\n ...groupedCards,\n ]\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(entity_id: string, type: string) {\n super();\n\n const aggregate_entity = Helper.getEntityState(entity_id)\n\n if (aggregate_entity) {\n const is_binary_sensor = [\"motion\", \"window\", \"door\", \"health\"].includes(type)\n\n const defaultConfig = this.getDefaultConfig(aggregate_entity, type, is_binary_sensor)\n\n this.config = Object.assign(this.config, defaultConfig);\n }\n\n }\n}\n\nexport { AggregateAreaListPopup };\n","import { Helper } from \"../Helper\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { groupBy } from \"../utils\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass AggregateListPopup extends AbstractPopup {\n\n getDefaultConfig(aggregate_entity: any, deviceClass: string, is_binary_sensor: boolean): PopupActionConfig {\n\n const groupedCards: (TitleCardConfig | StackCardConfig)[] = [];\n\n const areasByFloor = groupBy(Helper.areas, (e) => e.floor_id ?? \"undisclosed\");\n\n for (const floor of [...Helper.floors, Helper.strategyOptions.floors.undisclosed]) {\n\n if (!(floor.floor_id in areasByFloor) || areasByFloor[floor.floor_id].length === 0) continue\n\n groupedCards.push({\n type: \"custom:mushroom-title-card\",\n subtitle: floor.name,\n card_mod: {\n style: `\n ha-card.header {\n padding-top: 8px;\n }\n `,\n }\n });\n\n let areaCards: (TemplateCardConfig)[] = [];\n\n for (const [i, area] of areasByFloor[floor.floor_id].entries()) {\n\n const entity = Helper.magicAreasDevices[area.name]?.entities[`aggregate_${aggregate_entity.attributes?.device_class}`]\n\n // Get a card for the area.\n if (entity && !Helper.strategyOptions.areas[area.area_id]?.hidden) {\n\n areaCards.push({\n type: \"tile\",\n entity: entity?.entity_id,\n primary: area.name,\n state_content: is_binary_sensor ? 'last-changed' : 'state',\n color: is_binary_sensor ? 'red' : false,\n // badge_icon: \"mdi:numeric-9\",\n // badge_color: \"red\",\n });\n }\n \n // Horizontally group every two area cards if all cards are created.\n if (i === areasByFloor[floor.floor_id].length - 1) {\n for (let i = 0; i < areaCards.length; i += 2) {\n groupedCards.push({\n type: \"horizontal-stack\",\n cards: areaCards.slice(i, i + 2),\n } as StackCardConfig);\n }\n }\n\n }\n\n if(areaCards.length === 0) groupedCards.pop()\n \n }\n\n return {\n \"action\": \"fire-dom-event\",\n \"browser_mod\": {\n \"service\": \"browser_mod.popup\",\n \"data\": {\n \"title\": aggregate_entity?.attributes?.friendly_name,\n \"content\": {\n \"type\": \"vertical-stack\",\n \"cards\": [\n {\n type: \"custom:mushroom-entity-card\",\n entity: aggregate_entity.entity_id,\n color: is_binary_sensor ? 'red' : false,\n secondary_info: is_binary_sensor ? 'last-changed' : 'state',\n },\n {\n \"type\": \"history-graph\",\n \"hours_to_show\": 10,\n \"show_names\": false,\n \"entities\": [\n {\n \"entity\": aggregate_entity.entity_id,\n \"name\": \" \"\n }\n ]\n },\n ...groupedCards,\n ]\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(entity_id: string, type: string) {\n super();\n\n const aggregate_entity = Helper.getEntityState(entity_id)\n\n if (aggregate_entity) {\n const is_binary_sensor = [\"motion\", \"window\", \"door\", \"health\"].includes(type)\n\n const defaultConfig = this.getDefaultConfig(aggregate_entity, type, is_binary_sensor)\n\n this.config = Object.assign(this.config, defaultConfig);\n }\n\n }\n}\n\nexport { AggregateListPopup };\n","import { Helper } from \"../Helper\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { slugify } from \"../utils\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass AreaInformations extends AbstractPopup {\n\n getDefaultConfig(device: MagicAreaRegistryEntry, minimalist: boolean): PopupActionConfig {\n\n const { area_state } = device?.entities ?? {}\n\n const { friendly_name, adjoining_areas, features, states, presence_sensors, on_states } = Helper.getEntityState(area_state?.entity_id)?.attributes ?? {}\n\n presence_sensors?.sort((a: string, b: string) => {\n const aState = Helper.getEntityState(a);\n const bState = Helper.getEntityState(b);\n const lastChangeA = new Date(aState?.last_changed).getTime();\n const lastChangeB = new Date(bState?.last_changed).getTime();\n if (a === `switch.magic_areas_presence_hold_${slugify(device?.name)}`) {\n return -1;\n } else if (b === `switch.magic_areas_presence_hold_${slugify(device?.name)}`) {\n return 1;\n } else {\n return lastChangeB - lastChangeA;\n }\n });\n\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: friendly_name,\n content: {\n type: \"vertical-stack\",\n cards: [\n {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"custom:mushroom-entity-card\",\n entity: area_state?.entity_id,\n name: \"Présence\",\n secondary_info: \"last-changed\",\n color: \"red\",\n tap_action: device?.id ? {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.sequence\",\n data: {\n sequence: [\n {\n service: \"browser_mod.close_popup\",\n data: {}\n },\n {\n service: \"browser_mod.navigate\",\n data: { path: `/config/devices/device/${device?.id}` }\n }\n ]\n }\n }\n } : \"more-info\"\n },\n {\n type: \"custom:mushroom-template-card\",\n primary: \"Recharger la pièce\",\n icon: \"mdi:refresh\",\n icon_color: \"blue\",\n tap_action: {\n action: \"call-service\",\n service: `homeassistant.reload_config_entry`,\n target: { \"device_id\": device?.id },\n }\n },\n ]\n },\n // {\n // type: \"horizontal-stack\",\n // cards: [\n // {\n // type: \"custom:mushroom-chips-card\",\n // alignment: \"end\",\n // chips: currentStateChip(states),\n // },\n // ]\n // },\n ...(!minimalist ? [\n {\n type: \"custom:mushroom-template-card\",\n primary: `Configuration de la pièce :`,\n card_mod: {\n style: `ha-card {padding: 4px 12px!important;}`\n }\n },\n {\n type: \"custom:mushroom-chips-card\",\n chips: [\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Type : {{ state_attr('${area_state?.entity_id}', 'type') }}`,\n icon: `\n {% set type = state_attr('${area_state?.entity_id}', 'type') %}\n {% if type == \"interior\" %}\n mdi:home-import-outline\n {% elif type == \"exterior\" %}\n mdi:home-import-outline\n {% else %}\n mdi:home-alert\n {% endif %}\n `,\n },\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Étage : {{ state_attr('${area_state?.entity_id}', 'floor') }}`,\n icon: `\n {% set floor = state_attr('${area_state?.entity_id}', 'floor') %}\n {% if floor == \"third\" %}\n mdi:home-floor-3\n {% elif floor == \"second\" %}\n mdi:home-floor-2\n {% elif floor == \"first\" %}\n mdi:home-floor-1\n {% elif floor == \"ground\" %}\n mdi:home-floor-g\n {% elif floor == \"basement\" %}\n mdi:home-floor-b\n {% else %}\n mdi:home-alert\n {% endif %}\n `,\n },\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Délai pièce vide : {{ state_attr('${area_state?.entity_id}', 'clear_timeout') }}s`,\n icon: `mdi:camera-timer`,\n },\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Interval mise à jour : {{ state_attr('${area_state?.entity_id}', 'update_interval') }}s`,\n icon: `mdi:update`,\n },\n {\n type: \"template\",\n entity: area_state?.entity_id,\n content: `Pièces adjacentes : ${adjoining_areas?.length ? adjoining_areas.join(' ') : 'Non défini'}`,\n icon: `mdi:view-dashboard-variant`,\n },\n ],\n card_mod: {\n style: `ha-card .chip-container * {margin-bottom: 0px!important;}`\n }\n }\n ] : []),\n {\n type: \"custom:mushroom-template-card\",\n primary: `Capteurs utilisé pour la détection de présence :`,\n card_mod: {\n style: `ha-card {padding: 4px 12px!important;}`\n }\n },\n (minimalist ? {\n type: \"vertical-stack\",\n cards: presence_sensors?.map((sensor: string) => ({\n type: \"custom:mushroom-entity-card\",\n entity: sensor,\n content_info: \"name\",\n secondary_info: \"last-changed\",\n icon_color: sensor.includes('media_player.') ? \"blue\" : \"red\",\n }))\n } :\n {\n type: \"custom:mushroom-chips-card\",\n chips: presence_sensors?.map((sensor: string) => ({\n type: \"entity\",\n entity: sensor,\n content_info: \"name\",\n icon_color: sensor.includes('media_player.') ? \"blue\" : \"red\",\n tap_action: {\n action: \"more-info\"\n }\n })),\n card_mod: {\n style: `ha-card .chip-container * {margin-bottom: 0px!important;}`\n }\n }),\n ...(!minimalist ? [\n {\n type: \"custom:mushroom-template-card\",\n primary: `Présence détecté pour les états :`,\n card_mod: {\n style: `ha-card {padding: 4px 12px!important;}`\n }\n },\n {\n type: \"custom:mushroom-chips-card\",\n chips: on_states?.map((sensor: string) => ({\n type: \"template\",\n content: sensor,\n })),\n card_mod: {\n style: `ha-card .chip-container * {margin-bottom: 0px!important;}`\n }\n },\n {\n type: \"custom:mushroom-template-card\",\n primary: `Fonctionnalitées disponibles :`,\n card_mod: {\n style: `ha-card {padding: 4px 12px!important;}`\n }\n },\n {\n type: \"custom:mushroom-chips-card\",\n chips: features?.map((sensor: string) => ({\n type: \"template\",\n content: sensor,\n })),\n card_mod: {\n style: `ha-card .chip-container * {margin-bottom: 0px!important;}`\n }\n },\n ] : [])\n ].filter(Boolean)\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry, minimalist: boolean = false) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device, minimalist)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { AreaInformations };\n","import { Helper } from \"../Helper\";\nimport { EntityRegistryEntry } from \"../types/homeassistant/data/entity_registry\";\nimport { groupBy } from \"../utils\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass GroupListPopup extends AbstractPopup {\n getDefaultConfig(entities: EntityRegistryEntry[], title: string) {\n const entitiesByArea = groupBy(entities, (e) => e.area_id ?? \"undisclosed\");\n \n return {\n \"action\": \"fire-dom-event\",\n \"browser_mod\": {\n \"service\": \"browser_mod.popup\",\n \"data\": {\n \"title\": title,\n \"content\": {\n \"type\": \"vertical-stack\",\n \"cards\": Object.entries(entitiesByArea).map(([area_id, entities]) => ([\n {\n type: \"markdown\",\n content: `${Helper.areas.find(a => a.area_id === area_id)?.name}`,\n },\n {\n type: \"custom:layout-card\",\n layout_type: \"custom:horizontal-layout\",\n layout: {\n width: 150,\n },\n cards: entities?.map((entity) => ({\n type: \"custom:mushroom-entity-card\",\n vertical: true,\n entity: entity.entity_id,\n secondary_info: 'last-changed',\n })),\n }\n ])).flat()\n }\n }\n }\n };\n }\n /**\n * Class Constructor.\n *\n * @param {EntityRegistryEntry[]} entities The chip entities.\n * @param {string} title The chip title.\n */\n constructor(entities: EntityRegistryEntry[], title: string) {\n super();\n const defaultConfig = this.getDefaultConfig(entities, title);\n this.config = Object.assign(this.config, defaultConfig);\n }\n}\n\nexport {GroupListPopup};\n","import { Helper } from \"../Helper\";\nimport { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { slugify } from \"../utils\";\nimport { DOMAIN } from \"../variables\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LightSettings extends AbstractPopup {\n\n getDefaultConfig(device: MagicAreaRegistryEntry): PopupActionConfig {\n\n const { aggregate_illuminance, adaptive_lighting_range, minimum_brightness, maximum_brightness, maximum_lighting_level } = device?.entities ?? {}\n\n const device_slug = slugify(device?.name ?? \"\")\n\n const OPTIONS_ADAPTIVE_LIGHTING_RANGE = {\n \"\": 1,\n \"Small\": 10,\n \"Medium\": 25,\n \"Large\": 50,\n \"Extra large\": 100,\n } as Record\n\n const adaptive_lighting_range_state = Helper.getEntityState(adaptive_lighting_range?.entity_id)?.state\n\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Configurer l'éclairage adaptatif\",\n content: {\n type: \"vertical-stack\",\n cards: [\n {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"tile\",\n entity: `switch.adaptive_lighting_${device_slug}`,\n vertical: \"true\",\n },\n {\n type: \"tile\",\n entity: `switch.adaptive_lighting_adapt_brightness_${device_slug}`,\n vertical: \"true\",\n },\n {\n type: \"tile\",\n entity: `switch.adaptive_lighting_adapt_color_${device_slug}`,\n vertical: \"true\",\n },\n {\n type: \"tile\",\n entity: `switch.adaptive_lighting_sleep_mode_${device_slug}`,\n vertical: \"true\",\n }\n ]\n },\n {\n type: \"custom:mushroom-select-card\",\n entity: adaptive_lighting_range?.entity_id,\n secondary_info: \"last-changed\",\n icon_color: \"blue\",\n },\n {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"custom:mushroom-number-card\",\n entity: maximum_lighting_level?.entity_id,\n icon_color: \"red\",\n card_mod: {\n style: `\n :host {\n --mush-control-height: 20px;\n }\n `\n }\n },\n {\n type: \"custom:mushroom-template-card\",\n primary: \"Utiliser la valeur actuelle\",\n icon: \"mdi:pencil\",\n layout: \"vertical\",\n tap_action: {\n action: \"call-service\",\n service: `${DOMAIN}.area_lux_for_lighting_max`,\n data: {\n area: device?.name\n }\n },\n },\n ],\n },\n {\n type: \"custom:mushroom-number-card\",\n entity: minimum_brightness?.entity_id,\n icon_color: \"green\",\n card_mod: {\n style: \":host {--mush-control-height: 10px;}\"\n }\n },\n {\n type: \"custom:mushroom-number-card\",\n entity: maximum_brightness?.entity_id,\n icon_color: \"green\",\n card_mod: {\n style: \":host {--mush-control-height: 10px;}\"\n }\n },\n {\n type: \"custom:apexcharts-card\",\n graph_span: \"15h\",\n header: {\n show: true,\n title: \"Luminosité en fonction du temps\",\n show_states: true,\n colorize_states: true\n },\n yaxis: [\n {\n id: \"illuminance\",\n min: 0,\n apex_config: {\n tickAmount: 4\n }\n },\n {\n id: \"brightness\",\n opposite: true,\n min: 0,\n max: 100,\n apex_config: {\n tickAmount: 4\n }\n }\n ],\n series: [\n (aggregate_illuminance?.entity_id ? {\n entity: aggregate_illuminance?.entity_id,\n yaxis_id: \"illuminance\",\n color: \"orange\",\n name: \"Luminosité ambiante (lx)\",\n type: \"line\",\n group_by: {\n func: \"last\",\n duration: \"30m\"\n }\n } : undefined),\n {\n entity: adaptive_lighting_range?.entity_id,\n type: \"area\",\n yaxis_id: \"illuminance\",\n show: {\n in_header: false\n },\n color: \"blue\",\n name: \"Zone d'éclairage adaptatif\",\n unit: \"lx\",\n transform: `return parseInt(hass.states['${maximum_lighting_level?.entity_id}'].state) + ${OPTIONS_ADAPTIVE_LIGHTING_RANGE[adaptive_lighting_range_state]};`,\n group_by: {\n func: \"last\",\n }\n },\n {\n entity: maximum_lighting_level?.entity_id,\n type: \"area\",\n yaxis_id: \"illuminance\",\n name: \"Zone d'éclairage à 100%\",\n color: \"red\",\n show: {\n in_header: false\n },\n group_by: {\n func: \"last\",\n }\n },\n ].filter(Boolean)\n },\n ]\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {PopupActionConfig} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n }\n}\n\nexport { LightSettings };\n","import { Helper } from \"../Helper\";\nimport { version } from \"../linus-strategy\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Linus Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass LinusSettings extends AbstractPopup {\n\n getDefaultConfig(): PopupActionConfig {\n\n const linusDeviceIds = Object.values(Helper.magicAreasDevices).map((area) => area?.id).flat()\n\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Paramètre de Linus\",\n content: {\n type: \"vertical-stack\",\n cards: [\n {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"custom:mushroom-template-card\",\n primary: \"Recharger Magic Areas\",\n icon: \"mdi:refresh\",\n icon_color: \"blue\",\n tap_action: {\n action: \"call-service\",\n service: `homeassistant.reload_config_entry`,\n target: { \"device_id\": linusDeviceIds },\n }\n },\n {\n type: \"custom:mushroom-template-card\",\n primary: \"Redémarrer HA\",\n icon: \"mdi:restart\",\n icon_color: \"red\",\n tap_action: {\n action: \"call-service\",\n service: \"homeassistant.restart\",\n }\n },\n ]\n },\n {\n type: \"markdown\",\n content: `Linus dashboard est en version ${version}.`,\n },\n ].filter(Boolean)\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor() {\n super();\n\n const defaultConfig = this.getDefaultConfig()\n\n this.config = Object.assign(this.config, defaultConfig);\n\n\n }\n}\n\nexport { LinusSettings };\n","import { MagicAreaRegistryEntry } from \"../types/homeassistant/data/device_registry\";\nimport { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { slugify } from \"../utils\";\nimport { DOMAIN, todOrder } from \"../variables\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Scene Chip class.\n *\n * Used to create a chip to indicate how many lights are on and to turn all off.\n */\nclass SceneSettings extends AbstractPopup {\n\n getDefaultConfig(device: MagicAreaRegistryEntry): PopupActionConfig {\n\n const { scene_morning, scene_daytime, scene_evening, scene_night } = device?.entities\n const selectControl = [scene_morning, scene_daytime, scene_evening, scene_night].filter(Boolean)\n\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Configurer les scènes\",\n content: {\n type: \"vertical-stack\",\n cards: [\n ...(selectControl.length ? todOrder.map(tod => (\n {\n type: \"custom:config-template-card\",\n variables: {\n SCENE_STATE: `states['${device?.entities[('scene_' + tod) as \"scene_morning\"]?.entity_id}'].state`\n },\n entities: [device?.entities[('scene_' + tod) as \"scene_morning\"]?.entity_id],\n card: {\n type: \"horizontal-stack\",\n cards: [\n {\n type: \"entities\",\n entities: [device?.entities[('scene_' + tod) as \"scene_morning\"]?.entity_id]\n },\n {\n type: \"conditional\",\n conditions: [\n {\n entity: \"${SCENE_STATE}\",\n state: \"on\"\n },\n // {\n // entity: \"${SCENE_STATE}\",\n // state: \"off\"\n // }\n ],\n card:\n {\n type: \"tile\",\n entity: \"${SCENE_STATE}\",\n show_entity_picture: true,\n tap_action: {\n action: \"toggle\"\n },\n }\n },\n {\n type: \"conditional\",\n conditions: [\n {\n entity: \"${SCENE_STATE}\",\n state: \"unavailable\"\n },\n // {\n // entity: \"${SCENE_STATE}\",\n // state: \"off\"\n // }\n ],\n card:\n\n {\n type: \"custom:mushroom-template-card\",\n secondary: \"Utiliser l'éclairage actuel\",\n multiline_secondary: true,\n icon: \"mdi:pencil\",\n layout: \"vertical\",\n tap_action: {\n action: \"call-service\",\n service: `${DOMAIN}.snapshot_lights_as_tod_scene`,\n data: {\n area: slugify(device.name),\n tod\n }\n },\n },\n }\n ]\n }\n }\n )\n ) : [{\n type: \"custom:mushroom-template-card\",\n primary: \"Ajouter une nouvelle scène\",\n secondary: `Cliquer ici pour vous rendre sur la page des scènes`,\n multiline_secondary: true,\n icon: `mdi:palette`,\n tap_action: {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.sequence\",\n data: {\n sequence: [\n {\n service: \"browser_mod.navigate\",\n data: { path: `/config/scene/dashboard` }\n },\n {\n service: \"browser_mod.close_popup\",\n data: {}\n }\n ]\n }\n }\n },\n card_mod: {\n style: `\n ha-card {\n box-shadow: none!important;\n }\n `\n }\n }])\n ].filter(Boolean)\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(device: MagicAreaRegistryEntry) {\n super();\n\n const defaultConfig = this.getDefaultConfig(device)\n\n this.config = Object.assign(this.config, defaultConfig);\n\n\n }\n}\n\nexport { SceneSettings };\n","import { PopupActionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { AbstractPopup } from \"./AbstractPopup\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Weather Chip class.\n *\n * Used to create a chip to indicate how many Weathers are on and to turn all off.\n */\nclass WeatherPopup extends AbstractPopup {\n\n getDefaultConfig(entityId: string): PopupActionConfig {\n return {\n action: \"fire-dom-event\",\n browser_mod: {\n service: \"browser_mod.popup\",\n data: {\n title: \"Météo\",\n content: {\n type: \"vertical-stack\",\n cards: [\n {\n type: \"weather-forecast\",\n entity: entityId,\n show_current: true,\n show_forecast: true\n },\n ]\n }\n }\n }\n }\n }\n\n /**\n * Class Constructor.\n *\n * @param {chips.PopupActionConfig} options The chip options.\n */\n constructor(entity_id: string) {\n super();\n\n this.config = Object.assign(this.config, this.getDefaultConfig(entity_id));\n\n\n }\n}\n\nexport {WeatherPopup};\n","import {ActionsSharedConfig} from \"../shared/config/actions-config\";\nimport {LovelaceCardConfig} from \"../../homeassistant/data/lovelace\";\nimport {EntitySharedConfig} from \"../shared/config/entity-config\";\nimport {AppearanceSharedConfig} from \"../shared/config/appearance-config\";\n\nexport const VACUUM_COMMANDS = [\n \"on_off\",\n \"start_pause\",\n \"stop\",\n \"locate\",\n \"clean_spot\",\n \"return_home\",\n] as const;\n\nexport type VacuumCommand = (typeof VACUUM_COMMANDS)[number];\n\n/**\n * Vacuum Card Config.\n *\n * @param {boolean} icon_animation Animate the icon when vacuum is cleaning.\n * @param {VacuumCommand[]} commands List of commands to display (start_pause, stop, locate, clean_spot, return_home).\n *\n * @see https://github.com/piitaya/lovelace-mushroom/blob/main/docs/cards/vacuum.md\n */\nexport type VacuumCardConfig = LovelaceCardConfig &\n EntitySharedConfig &\n AppearanceSharedConfig &\n ActionsSharedConfig & {\n icon_animation?: boolean;\n commands?: VacuumCommand[];\n};\n","import {\n CallServiceActionConfig,\n LovelaceCardConfig,\n LovelaceConfig,\n LovelaceViewConfig\n} from \"../homeassistant/data/lovelace\";\nimport {HomeAssistant} from \"../homeassistant/types\";\nimport {AreaRegistryEntry} from \"../homeassistant/data/area_registry\";\nimport {cards} from \"./cards\";\nimport {EntityRegistryEntry} from \"../homeassistant/data/entity_registry\";\nimport {LovelaceChipConfig} from \"../lovelace-mushroom/utils/lovelace/chip/types\";\nimport {HassServiceTarget} from \"home-assistant-js-websocket\";\nimport { FloorRegistryEntry } from \"../homeassistant/data/floor_registry\";\n\nexport namespace generic {\n /**\n * An entry out of a Home Assistant Register.\n */\n export type RegistryEntry =\n | AreaRegistryEntry\n | DataTransfer\n | EntityRegistryEntry\n\n /**\n * View Entity.\n *\n * @property {number} [order] Ordering position of the entity in the list of available views.\n * @property {boolean} [hidden] True if the entity should be hidden from the dashboard.\n */\n export interface ViewConfig extends LovelaceViewConfig {\n hidden?: boolean;\n order?: number;\n }\n\n /**\n * Domain Configuration.\n *\n * @property {number} [order] Ordering position of the entity in the list of available views.\n * @property {boolean} [hidden] True if the entity should be hidden from the dashboard.\n * @property {boolean} [hide_config_entities] True if the entity's categorie is \"config\" and should be hidden from the\n * dashboard.\n */\n export interface DomainConfig extends Partial {\n hidden?: boolean;\n order?: number;\n hide_config_entities?: boolean\n }\n\n /**\n * Dashboard Information Object.\n *\n * Home Assistant passes this object to the Dashboard Generator method.\n *\n * @property {LovelaceConfig} config Dashboard configuration.\n * @property {HomeAssistant} hass The Home Assistant object.\n *\n * @see https://developers.home-assistant.io/docs/frontend/custom-ui/custom-strategy/#dashboard-strategies\n */\n export interface DashBoardInfo {\n config?: LovelaceConfig & {\n strategy: {\n options?: StrategyConfig\n }\n };\n hass: HomeAssistant;\n }\n\n /**\n * View Information Object.\n *\n * Home Assistant passes this object to the View Generator method.\n *\n * @property {LovelaceViewConfig} view View configuration.\n * @property {LovelaceConfig} config Dashboard configuration.\n * @property {HomeAssistant} hass The Home Assistant object.\n *\n * @see https://developers.home-assistant.io/docs/frontend/custom-ui/custom-strategy/#view-strategies\n */\n export interface ViewInfo {\n view: LovelaceViewConfig & {\n strategy?: {\n options?: StrategyConfig & { area: StrategyArea }\n }\n };\n config: LovelaceConfig\n hass: HomeAssistant;\n }\n\n /**\n * Strategy Configuration.\n *\n * @property {Object.} areas List of areas.\n * @property {Object.} [card_options] Card options for entities.\n * @property {chips} [chips] List of chips to show in the Home view.\n * @property {boolean} [debug] Set to true for more verbose debugging info.\n * @property {Object.} domains List of domains.\n * @property {object[]} [extra_cards] List of cards to show below room cards.\n * @property {object[]} [extra_views] List of views to add to the dashboard.\n * @property {object[]} [quick_access_cards] List of cards to show between welcome card and rooms cards.\n * @property {Object.} views List of views.\n */\n export interface StrategyConfig {\n areas: { [k: string]: StrategyArea };\n floors: { [k: string]: StrategyFloor };\n card_options?: { [k: string]: CustomCardConfig };\n chips?: Chips;\n debug: boolean;\n domains: { [k: string]: DomainConfig };\n extra_cards?: LovelaceCardConfig[];\n extra_views?: ViewConfig[];\n home_view: {\n hidden: HiddenSectionType[]\n }\n quick_access_cards?: LovelaceCardConfig[];\n views: { [k: string]: ViewConfig };\n }\n\n const hiddenSectionList = [\"chips\", \"persons\", \"greeting\", \"areas\", \"areasTitle\"] as const;\n export type HiddenSectionType = typeof hiddenSectionList[number];\n\n /**\n * Represents the default configuration for a strategy.\n */\n export interface StrategyDefaults extends StrategyConfig {\n areas: {\n undisclosed: StrategyArea & {\n area_id: \"undisclosed\",\n },\n [k: string]: StrategyArea,\n },\n floors: {\n undisclosed: StrategyFloor & {\n floor_id: \"undisclosed\",\n },\n [k: string]: StrategyFloor,\n },\n domains: {\n default: DomainConfig,\n [k: string]: DomainConfig,\n }\n }\n\n /**\n * Strategy Area.\n *\n * @property {number} [order] Ordering position of the area in the list of available areas.\n * @property {boolean} [hidden] True if the entity should be hidden from the dashboard.\n * @property {object[]} [extra_cards] An array of card configurations.\n * The configured cards are added to the dashboard.\n * @property {string} [type=default] The type of area card.\n */\n export interface StrategyArea extends AreaRegistryEntry {\n order?: number;\n hidden?: boolean;\n extra_cards?: LovelaceCardConfig[];\n type?: string;\n }\n\n /**\n * Strategy Floor.\n *\n * @property {number} [order] Ordering position of the area in the list of available areas.\n * @property {boolean} [hidden] True if the entity should be hidden from the dashboard.\n */\n export interface StrategyFloor extends FloorRegistryEntry {\n order?: number;\n hidden?: boolean;\n type?: string;\n }\n\n /**\n * A list of chips to show in the Home view.\n *\n * @property {boolean} light_count Chip to display the number of lights on.\n * @property {boolean} fan_count Chip to display the number of fans on.\n * @property {boolean} cover_count Chip to display the number of unclosed covers.\n * @property {boolean} switch_count Chip to display the number of switches on.\n * @property {boolean} climate_count Chip to display the number of climates which are not off.\n * @property {string} weather_entity Entity ID for the weather chip to use, accepts `weather.` only.\n * @property {object[]} extra_chips List of extra chips.\n */\n export interface Chips {\n extra_chips: LovelaceChipConfig[];\n\n light_count: boolean;\n fan_count: boolean;\n cover_count: boolean;\n switch_count: boolean;\n climate_count: boolean;\n weather_entity: string;\n alarm_entity: string;\n\n [key: string]: any;\n }\n\n /**\n * Custom Card Configuration for an entity.\n *\n * @property {boolean} hidden True if the entity should be hidden from the dashboard.\n */\n export interface CustomCardConfig extends LovelaceCardConfig {\n hidden?: boolean;\n }\n\n /**\n * Area Filter Context.\n *\n * @property {AreaRegistryEntry} area Area Entity.\n * @property {string[]} areaDeviceIds The id of devices which are linked to the area entity.\n * @property {string} domain Domain of the entity.\n * Example: `light`.\n */\n export interface AreaFilterContext {\n area: AreaRegistryEntry;\n areaDeviceIds: string[];\n domain: string;\n }\n\n /**\n * Checks if the given object is an instance of CallServiceActionConfig.\n *\n * @param {any} obj - The object to be checked.\n * @return {boolean} - Returns true if the object is an instance of CallServiceActionConfig, otherwise false.\n */\n export function isCallServiceActionConfig(obj: any): obj is CallServiceActionConfig {\n return obj && obj.action === \"call-service\" && [\"action\", \"service\"].every(key => key in obj);\n }\n\n /**\n * Checks if the given object is an instance of HassServiceTarget.\n *\n * @param {any} obj - The object to check.\n * @return {boolean} - True if the object is an instance of HassServiceTarget, false otherwise.\n */\n export function isCallServiceActionTarget(obj: any): obj is HassServiceTarget {\n return obj && [\"entity_id\", \"device_id\", \"area_id\"].some(key => key in obj);\n }\n}\n","import { MagicAreaRegistryEntry } from \"./types/homeassistant/data/device_registry\";\nimport { EntityRegistryEntry } from \"./types/homeassistant/data/entity_registry\";\nimport { ActionConfig } from \"./types/homeassistant/data/lovelace\";\nimport { MAGIC_AREAS_AGGREGATE_DOMAINS, MAGIC_AREAS_GROUP_DOMAINS } from \"./variables\";\n\n/**\n * Groups the elements of an array based on a provided function\n * @param {T[]} array - The array to group\n * @param {(item: T) => K} fn - The function to determine the group key for each element\n * @returns {Record} - An object where the keys are the group identifiers and the values are arrays of grouped elements\n */\nexport function groupBy(array: T[], fn: (item: T) => K): Record {\n return array.reduce((result, item) => {\n // Determine the group key for the current item\n const key = fn(item);\n\n // If the group key does not exist in the result, create an array for it\n if (!result[key]) {\n result[key] = [];\n }\n\n // Add the current item to the group\n result[key].push(item);\n\n return result;\n }, {} as Record);\n}\n\n\nexport function slugify(name: string | null): string {\n if (name === null) {\n return \"\";\n }\n return name.toLowerCase().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").replace(/\\s+/g, \"_\");\n}\n\nexport function getStateContent(entity_id: string): string {\n return entity_id.startsWith('binary_sensor.') ? 'last-changed' : 'state'\n}\n\nexport function navigateTo(path: string): ActionConfig {\n return {\n action: \"navigate\",\n navigation_path: `/dashboard/${path}`,\n }\n}\n\nexport function getAggregateEntity(device: MagicAreaRegistryEntry, domains: string | string[], deviceClasses?: string | string[]): EntityRegistryEntry[] {\n\n const aggregateKeys = []\n\n for (const domain of Array.isArray(domains) ? domains : [domains]) {\n\n if (domain === \"light\") {\n Object.values(device?.entities ?? {})?.map(entity => {\n if (entity.entity_id.endsWith('_lights')) {\n aggregateKeys.push(entity)\n }\n })\n }\n\n if (MAGIC_AREAS_GROUP_DOMAINS.includes(domain)) {\n aggregateKeys.push(device?.entities[`${domain}_group` as 'cover_group'])\n }\n\n if (MAGIC_AREAS_AGGREGATE_DOMAINS.includes(domain)) {\n for (const deviceClass of Array.isArray(deviceClasses) ? deviceClasses : [deviceClasses]) {\n aggregateKeys.push(device?.entities[`aggregate_${deviceClass}` as 'aggregate_motion'])\n }\n\n }\n }\n\n return aggregateKeys.filter(Boolean)\n}","export const DOMAIN = \"magic_areas\";\n\nexport const UNAVAILABLE = \"unavailable\";\nexport const UNKNOWN = \"unknown\";\n\n\nexport const todOrder = [\"morning\", \"daytime\", \"evening\", \"night\"];\n\n\nexport const STATES_OFF = [\"closed\", \"locked\", \"off\", \"docked\", \"idle\", \"standby\", \"paused\", \"auto\", \"ok\"];\n\nexport const UNAVAILABLE_STATES = [\"unavailable\", \"unknown\"];\n\nexport const MAGIC_AREAS_LIGHT_DOMAINS = \"light\";\nexport const MAGIC_AREAS_GROUP_DOMAINS = [\"cover\", \"climate\", \"media_player\"];\nexport const MAGIC_AREAS_AGGREGATE_DOMAINS = [\"binary_sensor\", \"sensor\"];\n\nexport const MAGIC_AREAS_DOMAINS = [MAGIC_AREAS_LIGHT_DOMAINS, ...MAGIC_AREAS_GROUP_DOMAINS, ...MAGIC_AREAS_AGGREGATE_DOMAINS];\n\nexport const SENSOR_DOMAINS = [\"sensor\"];\n\nexport const ALERT_DOMAINS = [\"binary_sensor\", \"health\"];\n\nexport const TOGGLE_DOMAINS = [\"light\", \"switch\"];\n\nexport const CLIMATE_DOMAINS = [\"climate\", \"fan\"];\n\nexport const HOUSE_INFORMATION_DOMAINS = [\"camera\", \"cover\", \"vacuum\", \"media_player\", \"lock\", \"plant\"];\n\nexport const OTHER_DOMAINS = [\"camera\", \"cover\", \"vacuum\", \"media_player\", \"lock\", \"scene\", \"plant\"];\n\nexport const AREA_CARDS_DOMAINS = [...TOGGLE_DOMAINS, ...CLIMATE_DOMAINS, ...OTHER_DOMAINS, \"binary_sensor\", \"sensor\"];\n\nexport const DEVICE_CLASSES = {\n sensor: [\"illuminance\", \"temperature\", \"humidity\", \"battery\", \"energy\", \"power\"],\n binary_sensor: [\"motion\", \"door\", \"window\", \"vibration\", \"moisture\", \"smoke\"],\n};\n\nexport const AREA_CARD_SENSORS_CLASS = [\"temperature\"];\n\nexport const DEVICE_ICONS = {\n presence_hold: 'mdi:car-brake-hold'\n};\n\nexport const DOMAIN_STATE_ICONS = {\n light: { on: \"mdi:lightbulb\", off: \"mdi:lightbulb-outline\" },\n switch: { on: \"mdi:power-plug\", off: \"mdi:power-plug\" },\n fan: { on: \"mdi:fan\", off: \"mdi:fan-off\" },\n sensor: { humidity: \"mdi:water-percent\", temperature: \"mdi:thermometer\", pressure: \"mdi:gauge\" },\n binary_sensor: {\n motion: { on: \"mdi:motion-sensor\", off: \"mdi:motion-sensor-off\" },\n door: { on: \"mdi:door-open\", off: \"mdi:door-closed\" },\n window: { on: \"mdi:window-open-variant\", off: \"mdi:window-closed-variant\" },\n safety: { on: \"mdi:alert-circle\", off: \"mdi:check-circle\" },\n vibration: \"mdi:vibrate\",\n moisture: \"mdi:water-alert\",\n smoke: \"mdi:smoke-detector-variant-alert\",\n },\n vacuum: { on: \"mdi:robot-vacuum\" },\n media_player: { on: \"mdi:cast-connected\" },\n lock: { on: \"mdi:lock-open\" },\n climate: { on: \"mdi:thermostat\" },\n camera: { on: \"mdi:video\" },\n cover: { on: \"mdi:window-shutter-open\", off: \"mdi:window-shutter\" },\n plant: { on: \"mdi:flower\", off: \"mdi:flower\" },\n};\n\nexport const DOMAIN_ICONS = {\n light: \"mdi:lightbulb\",\n climate: \"mdi:thermostat\",\n switch: \"mdi:power-plug\",\n fan: \"mdi:fan\",\n sensor: \"mdi:eye\",\n humidity: \"mdi:water-percent\",\n pressure: \"mdi:gauge\",\n illuminance: \"mdi:brightness-5\",\n temperature: \"mdi:thermometer\",\n energy: \"mdi:lightning-bolt\",\n power: \"mdi:flash\",\n binary_sensor: \"mdi:radiobox-blank\",\n motion: \"mdi:motion-sensor\",\n door: \"mdi:door-open\",\n window: \"mdi:window-open-variant\",\n vibration: \"mdi:vibrate\",\n moisture: \"mdi:water-alert\",\n vacuum: \"mdi:robot-vacuum\",\n media_player: \"mdi:cast-connected\",\n camera: \"mdi:video\",\n cover: \"mdi:window-shutter\",\n remote: \"mdi:remote\",\n scene: \"mdi:palette\",\n number: \"mdi:ray-vertex\",\n button: \"mdi:gesture-tap-button\",\n water_heater: \"mdi:thermometer\",\n select: \"mdi:format-list-bulleted\",\n lock: \"mdi:lock\",\n device_tracker: \"mdi:radar\",\n person: \"mdi:account-multiple\",\n weather: \"mdi:weather-cloudy\",\n automation: \"mdi:robot-outline\",\n alarm_control_panel: \"mdi:shield-home\",\n plant: 'mdi:flower',\n input_boolean: 'mdi:toggle-switch',\n health: 'mdi:shield-check-outline',\n};\n\nexport const AREA_STATE_ICONS = {\n occupied: \"mdi:account\",\n extended: \"mdi:account-clock\",\n clear: \"mdi:account-off\",\n bright: \"mdi:brightness-2\",\n dark: \"mdi:brightness-5\",\n sleep: \"mdi:bed\",\n};\n\n","import { MAGIC_AREAS_DOMAINS } from './../variables';\nimport { Helper } from \"../Helper\";\nimport { ControllerCard } from \"../cards/ControllerCard\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig, LovelaceSectionConfig, LovelaceViewConfig } from \"../types/homeassistant/data/lovelace\";\nimport { cards } from \"../types/strategy/cards\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { HassServiceTarget } from \"home-assistant-js-websocket\";\nimport abstractCardConfig = cards.AbstractCardConfig;\nimport { SwipeCard } from \"../cards/SwipeCard\";\nimport { groupBy } from \"../utils\";\nimport { AggregateCard } from \"../cards/AggregateCard\";\nimport { TemplateCardConfig } from '../types/lovelace-mushroom/cards/template-card-config';\n\n/**\n * Abstract View Class.\n *\n * To create a new view, extend the new class with this one.\n *\n * @class\n * @abstract\n */\nabstract class AbstractView {\n /**\n * Configuration of the view.\n *\n * @type {LovelaceViewConfig}\n */\n config: LovelaceViewConfig = {\n icon: \"mdi:view-dashboard\",\n subview: false,\n };\n\n /**\n * A card to switch all entities in the view.\n *\n * @type {StackCardConfig}\n */\n viewControllerCard: StackCardConfig = {\n cards: [],\n type: \"\",\n };\n\n /**\n * The domain of which we operate the devices.\n *\n * @private\n * @readonly\n */\n readonly #domain?: string;\n\n /**\n * Class constructor.\n *\n * @param {string} [domain] The domain which the view is representing.\n *\n * @throws {Error} If trying to instantiate this class.\n * @throws {Error} If the Helper module isn't initialized.\n */\n protected constructor(domain: string = \"\") {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n\n if (domain) {\n this.#domain = domain;\n }\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TitleCardConfig)[]>} An array of card objects.\n */\n async createViewCards(): Promise<(StackCardConfig | TitleCardConfig)[]> {\n const viewCards: LovelaceCardConfig[] = [];\n const configEntityHidden =\n Helper.strategyOptions.domains[this.#domain ?? \"_\"].hide_config_entities\n || Helper.strategyOptions.domains[\"_\"].hide_config_entities;\n\n\n if (this.#domain && MAGIC_AREAS_DOMAINS.includes(this.#domain)) {\n viewCards.push(new AggregateCard(this.#domain).createCard())\n }\n\n const areasByFloor = groupBy(Helper.areas, (e) => e.floor_id ?? \"undisclosed\");\n\n\n for (const floor of [...Helper.floors, Helper.strategyOptions.floors.undisclosed]) {\n\n if (this.#domain && MAGIC_AREAS_DOMAINS.includes(this.#domain) && floor.floor_id !== \"undisclosed\") continue\n if (!(floor.floor_id in areasByFloor) || areasByFloor[floor.floor_id].length === 0) continue\n\n\n let floorCards: (TemplateCardConfig)[] = [];\n\n if (floor.floor_id !== \"undisclosed\") {\n floorCards.push(\n {\n type: \"heading\",\n heading: floor.name,\n heading_style: \"title\",\n }\n );\n }\n\n\n let areaCards: abstractCardConfig[] = [];\n\n // Create cards for each area.\n for (const [i, area] of areasByFloor[floor.floor_id].entries()) {\n\n areaCards = [];\n\n if (this.#domain && !MAGIC_AREAS_DOMAINS.includes(this.#domain) && area.area_id !== \"undisclosed\") continue\n\n const entities = Helper.getDeviceEntities(area, this.#domain ?? \"\");\n const className = Helper.sanitizeClassName(this.#domain + \"Card\");\n const cardModule = await import(`../cards/${className}`);\n\n // Set the target for controller cards to the current area.\n let target: HassServiceTarget = {\n area_id: [area.area_id],\n };\n\n // Set the target for controller cards to entities without an area.\n if (area.area_id === \"undisclosed\") {\n\n if (this.#domain === 'light')\n target = {\n entity_id: entities.map(entity => entity.entity_id),\n }\n }\n\n const swipeCard = []\n\n // Create a card for each domain-entity of the current area.\n for (const entity of entities) {\n let cardOptions = Helper.strategyOptions.card_options?.[entity.entity_id];\n let deviceOptions = Helper.strategyOptions.card_options?.[entity.device_id ?? \"null\"];\n\n if (cardOptions?.hidden || deviceOptions?.hidden) {\n continue;\n }\n\n if (entity.entity_category === \"config\" && configEntityHidden) {\n continue;\n }\n swipeCard.push(new cardModule[className](entity, cardOptions).getCard());\n }\n if (swipeCard.length) {\n areaCards.push(new SwipeCard(swipeCard).getCard())\n }\n\n // Vertical stack the area cards if it has entities.\n if (areaCards.length) {\n\n const titleCardOptions = (\"controllerCardOptions\" in this.config) ? this.config.controllerCardOptions : {};\n\n // Create and insert a Controller card.\n areaCards.unshift(new ControllerCard(target, Object.assign({ subtitle: area.name }, titleCardOptions)).createCard());\n\n floorCards.push({\n type: \"vertical-stack\",\n cards: areaCards,\n } as StackCardConfig);\n }\n }\n\n if (floorCards.length > 0) viewCards.push(...floorCards)\n }\n\n // Add a Controller Card for all the entities in the view.\n if (viewCards.length) {\n viewCards.unshift(this.viewControllerCard);\n }\n\n return viewCards;\n }\n\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TitleCardConfig)[]>} An array of card objects.\n */\n async createSectionCards(): Promise<(StackCardConfig | TitleCardConfig)[]> {\n\n return [];\n }\n\n /**\n * Get a view object.\n *\n * The view includes the cards which are created by method createViewCards().\n *\n * @returns {Promise} The view object.\n */\n async getView(): Promise {\n return {\n ...this.config,\n cards: await this.createViewCards(),\n sections: await this.createSectionCards(),\n };\n }\n\n /**\n * Get a target of entity IDs for the given domain.\n *\n * @param {string} domain - The target domain to retrieve entity IDs from.\n * @return {HassServiceTarget} - A target for a service call.\n */\n targetDomain(domain: string): HassServiceTarget {\n return {\n entity_id: Helper.entities.filter(\n entity =>\n entity.entity_id.startsWith(domain + \".\")\n && !entity.hidden_by\n && !Helper.strategyOptions.card_options?.[entity.entity_id]?.hidden\n ).map(entity => entity.entity_id),\n };\n }\n}\n\nexport { AbstractView };\n","import {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\nimport {Helper} from \"../Helper\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Camera View Class.\n *\n * Used to create a view for entities of the camera domain.\n *\n * @class CameraView\n * @extends AbstractView\n */\nclass CameraView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"camera\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Cameras\",\n path: \"cameras\",\n icon: \"mdi:cctv\",\n subview: false,\n controllerCardOptions: {\n showControls: false,\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.camera.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(CameraView.#domain, \"ne\", \"off\") + ` ${Helper.localize(\"component.light.entity_component._.state.on\")}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(CameraView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n {},\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {CameraView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Climate View Class.\n *\n * Used to create a view for entities of the climate domain.\n *\n * @class ClimateView\n * @extends AbstractView\n */\nclass ClimateView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"climate\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Climates\",\n path: \"climates\",\n icon: \"mdi:thermostat\",\n subview: false,\n controllerCardOptions: {\n showControls: false,\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.climate.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(ClimateView.#domain, \"ne\", \"off\") + ` ${Helper.localize(`component.fan.entity_component._.state.on`)}s`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(ClimateView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(ClimateView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {ClimateView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Cover View Class.\n *\n * Used to create a view for entities of the cover domain.\n *\n * @class CoverView\n * @extends AbstractView\n */\nclass CoverView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"cover\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Covers\",\n path: \"covers\",\n icon: \"mdi:window-open\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:arrow-up\",\n iconOff: \"mdi:arrow-down\",\n onService: \"cover.open_cover\",\n offService: \"cover.close_cover\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.cover.entity_component._.name`)}`,\n subtitle: Helper.getCountTemplate(CoverView.#domain, \"eq\", \"open\") + ` ${Helper.localize(`component.cover.entity_component._.state.open`)}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(CoverView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(CoverView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {CoverView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Fan View Class.\n *\n * Used to create a view for entities of the fan domain.\n *\n * @class FanView\n * @extends AbstractView\n */\nclass FanView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"fan\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Fans\",\n path: \"fans\",\n icon: \"mdi:fan\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:fan\",\n iconOff: \"mdi:fan-off\",\n onService: \"fan.turn_on\",\n offService: \"fan.turn_off\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.fan.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(FanView.#domain, \"eq\", \"on\") + ` ${Helper.localize(`component.fan.entity_component._.state.on`)}s`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(FanView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(FanView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {FanView};\n","import { Helper } from \"../Helper\";\nimport { AbstractView } from \"./AbstractView\";\nimport { views } from \"../types/strategy/views\";\nimport { LovelaceChipConfig } from \"../types/lovelace-mushroom/utils/lovelace/chip/types\";\nimport { ChipsCardConfig } from \"../types/lovelace-mushroom/cards/chips-card\";\nimport { AreaCardConfig, StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { TemplateCardConfig } from \"../types/lovelace-mushroom/cards/template-card-config\";\nimport { ActionConfig, LovelaceSectionConfig } from \"../types/homeassistant/data/lovelace\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { PersonCardConfig } from \"../types/lovelace-mushroom/cards/person-card-config\";\nimport { SettingsChip } from \"../chips/SettingsChip\";\nimport { LinusSettings } from \"../popups/LinusSettingsPopup\";\nimport { UnavailableChip } from \"../chips/UnavailableChip\";\nimport { UNAVAILABLE_STATES } from \"../variables\";\nimport { groupBy } from \"../utils\";\nimport { generic } from \"../types/strategy/generic\";\nimport isCallServiceActionConfig = generic.isCallServiceActionConfig;\n\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Home View Class.\n *\n * Used to create a Home view.\n *\n * @class HomeView\n * @extends AbstractView\n */\nclass HomeView extends AbstractView {\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Home\",\n icon: \"mdi:home-assistant\",\n type: \"sections\",\n path: \"home\",\n subview: false,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super();\n\n this.config = { ...this.config, ...this.#defaultConfig, ...options };\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TemplateCardConfig | ChipsCardConfig)[]>} Promise a View Card array.\n * @override\n */\n async createViewCards(): Promise<(StackCardConfig | TemplateCardConfig | ChipsCardConfig)[]> {\n return []\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TemplateCardConfig | ChipsCardConfig)[]>} Promise a View Card array.\n * @override\n */\n async createSectionCards(): Promise<(StackCardConfig | TemplateCardConfig | ChipsCardConfig)[]> {\n return await Promise.all([\n this.#createChips(),\n this.#createPersonCards(),\n this.#createAreaSection(),\n ]).then(([chips, personCards, areaCards]) => {\n const options = Helper.strategyOptions;\n const firstSection: LovelaceSectionConfig = {\n type: \"grid\",\n column_span: 1,\n cards: []\n };\n\n if (chips.length) {\n // TODO: Create the Chip card at this.#createChips()\n firstSection.cards.push({\n type: \"custom:mushroom-chips-card\",\n alignment: \"center\",\n chips: chips,\n } as ChipsCardConfig)\n }\n\n if (personCards.length) {\n // TODO: Create the stack at this.#createPersonCards()\n firstSection.cards.push({\n type: \"horizontal-stack\",\n cards: personCards,\n } as StackCardConfig);\n }\n\n if (!Helper.strategyOptions.home_view.hidden.includes(\"greeting\")) {\n const tod = Helper.magicAreasDevices.global?.entities.time_of_the_day;\n\n firstSection.cards.push({\n type: \"custom:mushroom-template-card\",\n primary: `\n {% set tod = states(\"${tod?.entity_id}\") %}\n {% if (tod == \"evening\") %} Bonne soirée, {{user}} !\n {% elif (tod == \"daytime\") %} Bonne après-midi, {{user}} !\n {% elif (tod == \"night\") %} Bonne nuit, {{user}} !\n {% else %} Bonjour, {{user}} !\n {% endif %}`,\n icon: \"mdi:hand-wave\",\n icon_color: \"orange\",\n tap_action: {\n action: \"none\",\n } as ActionConfig,\n double_tap_action: {\n action: \"none\",\n } as ActionConfig,\n hold_action: {\n action: \"none\",\n } as ActionConfig,\n } as TemplateCardConfig);\n }\n\n\n // Add quick access cards.\n if (options.quick_access_cards) {\n firstSection.cards.push(...options.quick_access_cards);\n }\n\n // Add custom cards.\n if (options.extra_cards) {\n firstSection.cards.push(...options.extra_cards);\n }\n\n // Add area cards.\n const secondSection: LovelaceSectionConfig = {\n type: \"grid\",\n column_span: 1,\n cards: areaCards,\n };\n\n return [firstSection, secondSection];\n });\n }\n\n /**\n * Create the chips to include in the view.\n *\n * @return {Promise} Promise a chip array.\n */\n async #createChips(): Promise {\n if (Helper.strategyOptions.home_view.hidden.includes(\"chips\")) {\n // Chips section is hidden.\n\n return [];\n }\n\n const chips: LovelaceChipConfig[] = [];\n const chipOptions = Helper.strategyOptions.chips;\n\n // TODO: Get domains from config.\n const exposedChips = [\"light\", \"fan\", \"cover\", \"switch\", \"climate\", \"safety\", \"motion\", \"door\", \"window\"];\n // Create a list of area-ids, used for switching all devices via chips\n const areaIds = Helper.areas.map(area => area.area_id ?? \"\");\n\n let chipModule;\n\n // Weather chip.\n const weatherEntityId = chipOptions?.weather_entity ?? Helper.entities.find(\n (entity) => entity.entity_id.startsWith(\"weather.\") && entity.disabled_by === null && entity.hidden_by === null,\n )?.entity_id;\n\n if (weatherEntityId) {\n try {\n chipModule = await import(\"../chips/WeatherChip\");\n const weatherChip = new chipModule.WeatherChip(weatherEntityId);\n\n chips.push(weatherChip.getChip());\n } catch (e) {\n Helper.logError(\"An error occurred while creating the weather chip!\", e);\n }\n }\n\n // Alarm chip.\n const alarmEntityId = chipOptions?.alarm_entity ?? Helper.getAlarmEntity()?.entity_id;\n\n if (alarmEntityId) {\n try {\n chipModule = await import(\"../chips/AlarmChip\");\n const alarmChip = new chipModule.AlarmChip(alarmEntityId);\n\n chips.push(alarmChip.getChip());\n } catch (e) {\n Helper.logError(\"An error occurred while creating the alarm chip!\", e);\n }\n }\n\n // Spotify chip.\n const spotifyEntityId = chipOptions?.spotify_entity ?? Helper.entities.find(\n (entity) => entity.entity_id.startsWith(\"media_player.spotify_\") && entity.disabled_by === null && entity.hidden_by === null,\n )?.entity_id;\n\n if (spotifyEntityId) {\n try {\n chipModule = await import(\"../chips/SpotifyChip\");\n const spotifyChip = new chipModule.SpotifyChip(spotifyEntityId);\n\n chips.push(spotifyChip.getChip());\n } catch (e) {\n Helper.logError(\"An error occurred while creating the spotify chip!\", e);\n }\n }\n\n // Numeric chips.\n for (let chipType of exposedChips) {\n if (chipOptions?.[`${chipType}_count` as string] ?? true) {\n const className = Helper.sanitizeClassName(chipType + \"Chip\");\n try {\n chipModule = await import((`../chips/${className}`));\n const chip = new chipModule[className](Helper.magicAreasDevices[\"global\"]);\n\n if (\"tap_action\" in this.config && isCallServiceActionConfig(this.config.tap_action)) {\n chip.setTapActionTarget({ area_id: areaIds });\n }\n chips.push(chip.getChip());\n } catch (e) {\n Helper.logError(`An error occurred while creating the ${chipType} chip!`, e);\n }\n }\n }\n\n // Extra chips.\n if (chipOptions?.extra_chips) {\n chips.push(...chipOptions.extra_chips);\n }\n\n // Unavailable chip.\n const unavailableEntities = Object.values(Helper.magicAreasDevices[\"global\"]?.entities ?? [])?.filter((e) => {\n const entityState = Helper.getEntityState(e.entity_id);\n return (exposedChips.includes(e.entity_id.split(\".\", 1)[0]) || exposedChips.includes(entityState?.attributes.device_class || '')) &&\n UNAVAILABLE_STATES.includes(entityState?.state);\n });\n\n\n if (unavailableEntities.length) {\n const unavailableChip = new UnavailableChip(unavailableEntities);\n chips.push(unavailableChip.getChip());\n }\n\n const linusSettings = new SettingsChip({ tap_action: new LinusSettings().getPopup() })\n\n chips.push(linusSettings.getChip());\n\n return chips;\n }\n\n /**\n * Create the person cards to include in the view.\n *\n * @return {PersonCardConfig[]} A Person Card array.\n */\n #createPersonCards(): PersonCardConfig[] {\n if (Helper.strategyOptions.home_view.hidden.includes(\"persons\")) {\n // Person section is hidden.\n\n return [];\n }\n\n const cards: PersonCardConfig[] = [];\n\n import(\"../cards/PersonCard\").then(personModule => {\n for (const person of Helper.entities.filter((entity) => {\n return entity.entity_id.startsWith(\"person.\")\n && entity.hidden_by == null\n && entity.disabled_by == null;\n })) {\n cards.push(new personModule.PersonCard(person).getCard());\n }\n });\n\n return cards;\n }\n\n /**\n * Create the area cards to include in the view.\n *\n * Area cards are grouped into two areas per row.\n *\n * @return {Promise<(TitleCardConfig | StackCardConfig)[]>} Promise an Area Card Section.\n */\n async #createAreaSection(): Promise<(TitleCardConfig | StackCardConfig)[]> {\n if (Helper.strategyOptions.home_view.hidden.includes(\"areas\")) {\n // Areas section is hidden.\n\n return [];\n }\n\n const groupedCards: (TitleCardConfig | StackCardConfig)[] = [];\n\n if (!Helper.strategyOptions.home_view.hidden.includes(\"areasTitle\")) {\n groupedCards.push(\n {\n type: \"heading\",\n heading: `${Helper.localize(\"ui.components.area-picker.area\")}s`,\n heading_style: \"title\",\n },\n );\n }\n\n const areasByFloor = groupBy(Helper.areas, (e) => e.floor_id ?? \"undisclosed\");\n\n for (const floor of [...Helper.floors, Helper.strategyOptions.floors.undisclosed]) {\n if (!(floor.floor_id in areasByFloor)) continue\n\n groupedCards.push(\n {\n type: \"heading\",\n heading: floor.name,\n heading_style: \"subtitle\",\n }\n );\n\n for (const [i, area] of areasByFloor[floor.floor_id].entries()) {\n\n type ModuleType = typeof import(\"../cards/AreaCard\");\n\n let module: ModuleType;\n let moduleName =\n Helper.strategyOptions.areas[area.area_id]?.type ??\n Helper.strategyOptions.areas[\"_\"]?.type ??\n \"default\";\n\n // Load module by type in strategy options.\n try {\n module = await import((`../cards/${moduleName}`));\n } catch (e) {\n // Fallback to the default strategy card.\n module = await import(\"../cards/AreaCard\");\n\n if (Helper.strategyOptions.debug && moduleName !== \"default\") {\n console.error(e);\n }\n }\n\n // Get a card for the area.\n if (!Helper.strategyOptions.areas[area.area_id as string]?.hidden) {\n let options = {\n ...Helper.strategyOptions.areas[\"_\"],\n ...Helper.strategyOptions.areas[area.area_id],\n };\n\n groupedCards.push({\n ...new module.AreaCard(area, options).getCard(),\n layout_options: {\n grid_columns: 2\n }\n });\n }\n }\n }\n\n groupedCards.push({\n type: \"custom:mushroom-template-card\",\n primary: \"Ajouter une nouvelle pièce\",\n secondary: `Cliquer ici pour vous rendre sur la page des pièces`,\n multiline_secondary: true,\n icon: `mdi:view-dashboard-variant`,\n fill_container: true,\n tap_action: {\n action: \"navigate\",\n navigation_path: '/config/areas/dashboard'\n },\n } as any)\n\n return groupedCards;\n }\n}\n\nexport { HomeView };\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Light View Class.\n *\n * Used to create a view for entities of the light domain.\n *\n * @class LightView\n * @extends AbstractView\n */\nclass LightView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"light\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n path: \"lights\",\n icon: \"mdi:lightbulb-group\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:lightbulb\",\n iconOff: \"mdi:lightbulb-off\",\n onService: \"light.turn_on\",\n offService: \"light.turn_off\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.light.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(LightView.#domain, \"eq\", \"on\") + ` ${Helper.localize(\"component.light.entity_component._.state.on\")}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(LightView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(LightView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {LightView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * MediaPlayer View Class.\n *\n * Used to create a view for entities of the media_player domain.\n *\n * @class MediaPlayerView\n * @extends AbstractView\n */\nclass MediaPlayerView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"media_player\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"MediaPlayers\",\n path: \"media_players\",\n icon: \"mdi:cast\",\n subview: false,\n controllerCardOptions: {\n showControls: false,\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.media_player.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(MediaPlayerView.#domain, \"ne\", \"off\") + \" media players on\",\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(MediaPlayerView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(MediaPlayerView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {MediaPlayerView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Scene View Class.\n *\n * Used to create a view for entities of the scene domain.\n *\n * @class SceneView\n * @extends AbstractView\n */\nclass SceneView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"scene\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Scenes\",\n path: \"scenes\",\n icon: \"mdi:palette\",\n subview: false,\n controllerCardOptions: {\n showControls: false,\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`ui.dialogs.quick-bar.commands.navigation.scene`)}`,\n subtitle: Helper.getCountTemplate(SceneView.#domain, \"ne\", \"on\") + ` ${Helper.localize(`ui.dialogs.quick-bar.commands.navigation.scene`)}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(SceneView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to scene all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(SceneView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {SceneView};\n","import { Helper } from \"../Helper\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig, LovelaceViewConfig } from \"../types/homeassistant/data/lovelace\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { AggregateCard } from \"../cards/AggregateCard\";\n\n/**\n * Security View Class.\n *\n * To create a new view, extend the new class with this one.\n *\n * @class\n * @abstract\n */\nabstract class SecurityDetailsView {\n /**\n * Configuration of the view.\n *\n * @type {LovelaceViewConfig}\n */\n config: LovelaceViewConfig = {\n title: Helper.localize(\"component.binary_sensor.entity_component.safety.name\"),\n path: \"security-details\",\n icon: \"mdi:security\",\n subview: true,\n };\n\n /**\n * A card to switch all entities in the view.\n *\n * @type {StackCardConfig}\n */\n viewControllerCard: StackCardConfig = {\n cards: [],\n type: \"\",\n };\n\n /**\n * Class constructor.\n *\n * @throws {Error} If trying to instantiate this class.\n * @throws {Error} If the Helper module isn't initialized.\n */\n protected constructor() {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TitleCardConfig)[]>} An array of card objects.\n */\n async createViewCards(): Promise<(StackCardConfig | TitleCardConfig)[]> {\n const viewCards: LovelaceCardConfig[] = [];\n\n const globalDevice = Helper.magicAreasDevices[\"global\"];\n\n if (!globalDevice) return [];\n\n const {\n aggregate_motion,\n aggregate_door,\n aggregate_window,\n } = globalDevice?.entities;\n\n\n if (aggregate_motion?.entity_id) {\n viewCards.push(new AggregateCard('binary_sensor', { device_class: 'motion', title: Helper.localize(\"component.binary_sensor.entity_component.motion.name\") }).createCard())\n // viewCards.push(new AggregateCard({ entity_id: aggregate_motion.entity_id }, { title: `${Helper.localize(\"component.binary_sensor.entity_component.motion.name\")}s` }).createCard())\n }\n\n if (aggregate_door?.entity_id || aggregate_window?.entity_id) {\n viewCards.push(new AggregateCard('binary_sensor', { device_class: ['door', 'window'], title: Helper.localize(\"component.binary_sensor.entity_component.opening.name\") }).createCard())\n // viewCards.push(new AggregateCard({ entity_id: [aggregate_door?.entity_id, aggregate_window?.entity_id] }, { title: `${Helper.localize(\"component.binary_sensor.entity_component.opening.name\")}s` }).createCard())\n }\n\n return viewCards;\n }\n\n /**\n * Get a view object.\n *\n * The view includes the cards which are created by method createViewCards().\n *\n * @returns {Promise} The view object.\n */\n async getView(): Promise {\n return {\n ...this.config,\n cards: await this.createViewCards(),\n };\n }\n}\n\nexport { SecurityDetailsView };\n","import { Helper } from \"../Helper\";\nimport { StackCardConfig } from \"../types/homeassistant/lovelace/cards/types\";\nimport { LovelaceCardConfig, LovelaceSectionConfig, LovelaceViewConfig } from \"../types/homeassistant/data/lovelace\";\nimport { TitleCardConfig } from \"../types/lovelace-mushroom/cards/title-card-config\";\nimport { AlarmCard } from \"../cards/AlarmCard\";\nimport { PersonCard } from \"../cards/PersonCard\";\nimport { BinarySensorCard } from \"../cards/BinarySensorCard\";\nimport { navigateTo } from \"../utils\";\n\n/**\n * Security View Class.\n *\n * To create a new view, extend the new class with this one.\n *\n * @class\n * @abstract\n */\nabstract class SecurityView {\n /**\n * Configuration of the view.\n *\n * @type {LovelaceViewConfig}\n */\n config: LovelaceViewConfig = {\n title: Helper.localize(\"component.binary_sensor.entity_component.safety.name\"),\n path: \"security\",\n type: \"sections\",\n icon: \"mdi:security\",\n };\n\n /**\n * A card to switch all entities in the view.\n *\n * @type {StackCardConfig}\n */\n viewControllerCard: StackCardConfig = {\n cards: [],\n type: \"\",\n };\n\n /**\n * Class constructor.\n *\n * @throws {Error} If trying to instantiate this class.\n * @throws {Error} If the Helper module isn't initialized.\n */\n protected constructor() {\n if (!Helper.isInitialized()) {\n throw new Error(\"The Helper module must be initialized before using this one.\");\n }\n }\n\n /**\n * Create the cards to include in the view.\n *\n * @return {Promise<(StackCardConfig | TitleCardConfig)[]>} An array of card objects.\n */\n async createSectionCards(): Promise<(StackCardConfig | TitleCardConfig)[]> {\n const globalSection: LovelaceSectionConfig = {\n type: \"grid\",\n column_span: 1,\n cards: []\n };\n\n const alarmEntity = Helper.getAlarmEntity();\n if (alarmEntity?.entity_id) {\n globalSection.cards.push(\n {\n type: \"heading\",\n heading: \"Sécurité\",\n heading_style: \"title\",\n }\n )\n globalSection.cards.push(\n {\n type: \"heading\",\n heading: \"Alarme\",\n heading_style: \"subtitle\",\n })\n globalSection.cards.push(new AlarmCard(alarmEntity).getCard())\n }\n\n const persons = Helper.getPersonsEntity()\n if (persons?.length) {\n globalSection.cards.push(\n {\n type: \"heading\",\n heading: \"Personnes\",\n heading_style: \"subtitle\",\n })\n\n for (const person of persons) {\n globalSection.cards.push(new PersonCard(person, {\n layout: \"horizontal\",\n primary_info: \"name\",\n secondary_info: \"state\"\n }).getCard())\n }\n }\n\n const globalDevice = Helper.magicAreasDevices[\"global\"];\n\n if (!globalDevice) {\n console.debug(\"Security view : Global device not found\");\n return [];\n }\n\n const {\n aggregate_motion,\n aggregate_door,\n aggregate_window,\n } = globalDevice?.entities;\n\n if (aggregate_motion || aggregate_door || aggregate_window) {\n globalSection.cards.push(\n {\n type: \"heading\",\n heading: \"Capteurs\",\n heading_style: \"subtitle\",\n })\n if (aggregate_motion?.entity_id) globalSection.cards.push(new BinarySensorCard(aggregate_motion, { tap_action: navigateTo('security-details') }).getCard());\n if (aggregate_door?.entity_id) globalSection.cards.push(new BinarySensorCard(aggregate_door, { tap_action: navigateTo('security-details') }).getCard());\n if (aggregate_window?.entity_id) globalSection.cards.push(new BinarySensorCard(aggregate_window, { tap_action: navigateTo('security-details') }).getCard());\n }\n\n return [globalSection];\n }\n\n /**\n * Get a view object.\n *\n * The view includes the cards which are created by method createSectionCards().\n *\n * @returns {Promise} The view object.\n */\n async getView(): Promise {\n return {\n ...this.config,\n sections: await this.createSectionCards(),\n };\n }\n}\n\nexport { SecurityView };\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Switch View Class.\n *\n * Used to create a view for entities of the switch domain.\n *\n * @class SwitchView\n * @extends AbstractView\n */\nclass SwitchView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"switch\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Switches\",\n path: \"switches\",\n icon: \"mdi:dip-switch\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:power-plug\",\n iconOff: \"mdi:power-plug-off\",\n onService: \"switch.turn_on\",\n offService: \"switch.turn_off\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.switch.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(SwitchView.#domain, \"eq\", \"on\") + \" switches on\",\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(SwitchView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(SwitchView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {SwitchView};\n","import {Helper} from \"../Helper\";\nimport {ControllerCard} from \"../cards/ControllerCard\";\nimport {AbstractView} from \"./AbstractView\";\nimport {views} from \"../types/strategy/views\";\nimport {cards} from \"../types/strategy/cards\";\n\n// noinspection JSUnusedGlobalSymbols Class is dynamically imported.\n/**\n * Vacuum View Class.\n *\n * Used to create a view for entities of the vacuum domain.\n *\n * @class VacuumView\n * @extends AbstractView\n */\nclass VacuumView extends AbstractView {\n /**\n * Domain of the view's entities.\n *\n * @type {string}\n * @static\n * @private\n */\n static #domain: string = \"vacuum\";\n\n /**\n * Default configuration of the view.\n *\n * @type {views.ViewConfig}\n * @private\n */\n #defaultConfig: views.ViewConfig = {\n title: \"Vacuums\",\n path: \"vacuums\",\n icon: \"mdi:robot-vacuum\",\n subview: false,\n controllerCardOptions: {\n iconOn: \"mdi:robot-vacuum\",\n iconOff: \"mdi:robot-vacuum-off\",\n onService: \"vacuum.start\",\n offService: \"vacuum.stop\",\n },\n };\n\n /**\n * Default configuration of the view's Controller card.\n *\n * @type {cards.ControllerCardOptions}\n * @private\n */\n #viewControllerCardConfig: cards.ControllerCardOptions = {\n title: `${Helper.localize(`component.vacuum.entity_component._.name`)}s`,\n subtitle: Helper.getCountTemplate(VacuumView.#domain, \"ne\", \"off\") + ` ${Helper.localize(`component.vacuum.entity_component._.state.on`)}`,\n };\n\n /**\n * Class constructor.\n *\n * @param {views.ViewConfig} [options={}] Options for the view.\n */\n constructor(options: views.ViewConfig = {}) {\n super(VacuumView.#domain);\n\n this.config = Object.assign(this.config, this.#defaultConfig, options);\n\n // Create a Controller card to switch all entities of the domain.\n this.viewControllerCard = new ControllerCard(\n this.targetDomain(VacuumView.#domain),\n {\n ...this.#viewControllerCardConfig,\n ...(\"controllerCardOptions\" in this.config ? this.config.controllerCardOptions : {}) as cards.ControllerCardConfig,\n }).createCard();\n }\n}\n\nexport {VacuumView};\n","var map = {\n\t\"./AbstractCard\": [\n\t\t\"./src/cards/AbstractCard.ts\"\n\t],\n\t\"./AbstractCard.ts\": [\n\t\t\"./src/cards/AbstractCard.ts\"\n\t],\n\t\"./AggregateCard\": [\n\t\t\"./src/cards/AggregateCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AggregateCard.ts\": [\n\t\t\"./src/cards/AggregateCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AlarmCard\": [\n\t\t\"./src/cards/AlarmCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AlarmCard.ts\": [\n\t\t\"./src/cards/AlarmCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AreaCard\": [\n\t\t\"./src/cards/AreaCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./AreaCard.ts\": [\n\t\t\"./src/cards/AreaCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./BinarySensorCard\": [\n\t\t\"./src/cards/BinarySensorCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./BinarySensorCard.ts\": [\n\t\t\"./src/cards/BinarySensorCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./CameraCard\": [\n\t\t\"./src/cards/CameraCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./CameraCard.ts\": [\n\t\t\"./src/cards/CameraCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateCard\": [\n\t\t\"./src/cards/ClimateCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateCard.ts\": [\n\t\t\"./src/cards/ClimateCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./ControllerCard\": [\n\t\t\"./src/cards/ControllerCard.ts\"\n\t],\n\t\"./ControllerCard.ts\": [\n\t\t\"./src/cards/ControllerCard.ts\"\n\t],\n\t\"./CoverCard\": [\n\t\t\"./src/cards/CoverCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverCard.ts\": [\n\t\t\"./src/cards/CoverCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanCard\": [\n\t\t\"./src/cards/FanCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanCard.ts\": [\n\t\t\"./src/cards/FanCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./HaAreaCard\": [\n\t\t\"./src/cards/HaAreaCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./HaAreaCard.ts\": [\n\t\t\"./src/cards/HaAreaCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightCard\": [\n\t\t\"./src/cards/LightCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightCard.ts\": [\n\t\t\"./src/cards/LightCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./LockCard\": [\n\t\t\"./src/cards/LockCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./LockCard.ts\": [\n\t\t\"./src/cards/LockCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./MainAreaCard\": [\n\t\t\"./src/cards/MainAreaCard.ts\"\n\t],\n\t\"./MainAreaCard.ts\": [\n\t\t\"./src/cards/MainAreaCard.ts\"\n\t],\n\t\"./MediaPlayerCard\": [\n\t\t\"./src/cards/MediaPlayerCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./MediaPlayerCard.ts\": [\n\t\t\"./src/cards/MediaPlayerCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./MiscellaneousCard\": [\n\t\t\"./src/cards/MiscellaneousCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./MiscellaneousCard.ts\": [\n\t\t\"./src/cards/MiscellaneousCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./NumberCard\": [\n\t\t\"./src/cards/NumberCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./NumberCard.ts\": [\n\t\t\"./src/cards/NumberCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./PersonCard\": [\n\t\t\"./src/cards/PersonCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./PersonCard.ts\": [\n\t\t\"./src/cards/PersonCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./SceneCard\": [\n\t\t\"./src/cards/SceneCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./SceneCard.ts\": [\n\t\t\"./src/cards/SceneCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./SensorCard\": [\n\t\t\"./src/cards/SensorCard.ts\"\n\t],\n\t\"./SensorCard.ts\": [\n\t\t\"./src/cards/SensorCard.ts\"\n\t],\n\t\"./SwipeCard\": [\n\t\t\"./src/cards/SwipeCard.ts\"\n\t],\n\t\"./SwipeCard.ts\": [\n\t\t\"./src/cards/SwipeCard.ts\"\n\t],\n\t\"./SwitchCard\": [\n\t\t\"./src/cards/SwitchCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchCard.ts\": [\n\t\t\"./src/cards/SwitchCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./VacuumCard\": [\n\t\t\"./src/cards/VacuumCard.ts\",\n\t\t\"main\"\n\t],\n\t\"./VacuumCard.ts\": [\n\t\t\"./src/cards/VacuumCard.ts\",\n\t\t\"main\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./src/cards lazy recursive ^\\\\.\\\\/.*$\";\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./AbstractChip\": [\n\t\t\"./src/chips/AbstractChip.ts\"\n\t],\n\t\"./AbstractChip.ts\": [\n\t\t\"./src/chips/AbstractChip.ts\"\n\t],\n\t\"./AlarmChip\": [\n\t\t\"./src/chips/AlarmChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./AlarmChip.ts\": [\n\t\t\"./src/chips/AlarmChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./AreaScenesChips\": [\n\t\t\"./src/chips/AreaScenesChips.ts\"\n\t],\n\t\"./AreaScenesChips.ts\": [\n\t\t\"./src/chips/AreaScenesChips.ts\"\n\t],\n\t\"./AreaStateChip\": [\n\t\t\"./src/chips/AreaStateChip.ts\"\n\t],\n\t\"./AreaStateChip.ts\": [\n\t\t\"./src/chips/AreaStateChip.ts\"\n\t],\n\t\"./ClimateChip\": [\n\t\t\"./src/chips/ClimateChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateChip.ts\": [\n\t\t\"./src/chips/ClimateChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverChip\": [\n\t\t\"./src/chips/CoverChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverChip.ts\": [\n\t\t\"./src/chips/CoverChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./DoorChip\": [\n\t\t\"./src/chips/DoorChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./DoorChip.ts\": [\n\t\t\"./src/chips/DoorChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanChip\": [\n\t\t\"./src/chips/FanChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanChip.ts\": [\n\t\t\"./src/chips/FanChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightChip\": [\n\t\t\"./src/chips/LightChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightChip.ts\": [\n\t\t\"./src/chips/LightChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightControlChip\": [\n\t\t\"./src/chips/LightControlChip.ts\"\n\t],\n\t\"./LightControlChip.ts\": [\n\t\t\"./src/chips/LightControlChip.ts\"\n\t],\n\t\"./LinusAggregateChip\": [\n\t\t\"./src/chips/LinusAggregateChip.ts\"\n\t],\n\t\"./LinusAggregateChip.ts\": [\n\t\t\"./src/chips/LinusAggregateChip.ts\"\n\t],\n\t\"./LinusAlarmChip\": [\n\t\t\"./src/chips/LinusAlarmChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusAlarmChip.ts\": [\n\t\t\"./src/chips/LinusAlarmChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusClimateChip\": [\n\t\t\"./src/chips/LinusClimateChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusClimateChip.ts\": [\n\t\t\"./src/chips/LinusClimateChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusLightChip\": [\n\t\t\"./src/chips/LinusLightChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./LinusLightChip.ts\": [\n\t\t\"./src/chips/LinusLightChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./MotionChip\": [\n\t\t\"./src/chips/MotionChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./MotionChip.ts\": [\n\t\t\"./src/chips/MotionChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SafetyChip\": [\n\t\t\"./src/chips/SafetyChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SafetyChip.ts\": [\n\t\t\"./src/chips/SafetyChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SettingsChip\": [\n\t\t\"./src/chips/SettingsChip.ts\"\n\t],\n\t\"./SettingsChip.ts\": [\n\t\t\"./src/chips/SettingsChip.ts\"\n\t],\n\t\"./SpotifyChip\": [\n\t\t\"./src/chips/SpotifyChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SpotifyChip.ts\": [\n\t\t\"./src/chips/SpotifyChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchChip\": [\n\t\t\"./src/chips/SwitchChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchChip.ts\": [\n\t\t\"./src/chips/SwitchChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./ToggleSceneChip\": [\n\t\t\"./src/chips/ToggleSceneChip.ts\"\n\t],\n\t\"./ToggleSceneChip.ts\": [\n\t\t\"./src/chips/ToggleSceneChip.ts\"\n\t],\n\t\"./UnavailableChip\": [\n\t\t\"./src/chips/UnavailableChip.ts\"\n\t],\n\t\"./UnavailableChip.ts\": [\n\t\t\"./src/chips/UnavailableChip.ts\"\n\t],\n\t\"./WeatherChip\": [\n\t\t\"./src/chips/WeatherChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./WeatherChip.ts\": [\n\t\t\"./src/chips/WeatherChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./WindowChip\": [\n\t\t\"./src/chips/WindowChip.ts\",\n\t\t\"main\"\n\t],\n\t\"./WindowChip.ts\": [\n\t\t\"./src/chips/WindowChip.ts\",\n\t\t\"main\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./src/chips lazy recursive ^\\\\.\\\\/.*$\";\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./AbstractView\": [\n\t\t\"./src/views/AbstractView.ts\",\n\t\t\"main\"\n\t],\n\t\"./AbstractView.ts\": [\n\t\t\"./src/views/AbstractView.ts\",\n\t\t\"main\"\n\t],\n\t\"./CameraView\": [\n\t\t\"./src/views/CameraView.ts\",\n\t\t\"main\"\n\t],\n\t\"./CameraView.ts\": [\n\t\t\"./src/views/CameraView.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateView\": [\n\t\t\"./src/views/ClimateView.ts\",\n\t\t\"main\"\n\t],\n\t\"./ClimateView.ts\": [\n\t\t\"./src/views/ClimateView.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverView\": [\n\t\t\"./src/views/CoverView.ts\",\n\t\t\"main\"\n\t],\n\t\"./CoverView.ts\": [\n\t\t\"./src/views/CoverView.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanView\": [\n\t\t\"./src/views/FanView.ts\",\n\t\t\"main\"\n\t],\n\t\"./FanView.ts\": [\n\t\t\"./src/views/FanView.ts\",\n\t\t\"main\"\n\t],\n\t\"./HomeView\": [\n\t\t\"./src/views/HomeView.ts\",\n\t\t\"main\"\n\t],\n\t\"./HomeView.ts\": [\n\t\t\"./src/views/HomeView.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightView\": [\n\t\t\"./src/views/LightView.ts\",\n\t\t\"main\"\n\t],\n\t\"./LightView.ts\": [\n\t\t\"./src/views/LightView.ts\",\n\t\t\"main\"\n\t],\n\t\"./MediaPlayerView\": [\n\t\t\"./src/views/MediaPlayerView.ts\",\n\t\t\"main\"\n\t],\n\t\"./MediaPlayerView.ts\": [\n\t\t\"./src/views/MediaPlayerView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SceneView\": [\n\t\t\"./src/views/SceneView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SceneView.ts\": [\n\t\t\"./src/views/SceneView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SecurityDetailsView\": [\n\t\t\"./src/views/SecurityDetailsView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SecurityDetailsView.ts\": [\n\t\t\"./src/views/SecurityDetailsView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SecurityView\": [\n\t\t\"./src/views/SecurityView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SecurityView.ts\": [\n\t\t\"./src/views/SecurityView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchView\": [\n\t\t\"./src/views/SwitchView.ts\",\n\t\t\"main\"\n\t],\n\t\"./SwitchView.ts\": [\n\t\t\"./src/views/SwitchView.ts\",\n\t\t\"main\"\n\t],\n\t\"./VacuumView\": [\n\t\t\"./src/views/VacuumView.ts\",\n\t\t\"main\"\n\t],\n\t\"./VacuumView.ts\": [\n\t\t\"./src/views/VacuumView.ts\",\n\t\t\"main\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./src/views lazy recursive ^\\\\.\\\\/.*$\";\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/linus-strategy.ts\");\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/src/cards/AreaCard.ts b/src/cards/AreaCard.ts index d8c0fcb..d088447 100644 --- a/src/cards/AreaCard.ts +++ b/src/cards/AreaCard.ts @@ -63,7 +63,7 @@ class AreaCard extends AbstractCard { const icon = area.icon || "mdi:home-outline"; return { - type: "custom:stack-in-card", + type: "vertical-stack", cards: [ this.getMainCard(area, icon, aggregate_temperature, aggregate_battery, area_state), this.getChipsCard(area, device, area_state, aggregate_health, aggregate_window, aggregate_door, aggregate_cover, aggregate_climate, all_lights, light_control),