diff --git a/.prettierrc b/.prettierrc index 79627dd6..3197f35c 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,18 +1,21 @@ { - "singleQuote": true, - "endOfLine": "lf", - "tabWidth": 2, - "trailingComma": "all", - "semi": true, - "importOrder": [ - "^@core/(.*)$", - "", - "^@server/(.*)$", - "^@ui/(.*)$", - "^[./]" - ], - "importOrderSeparation": true, - "importOrderSortSpecifiers": true, - "importOrderParserPlugins": ["typescript", "decorators-legacy"], - "plugins": ["@trivago/prettier-plugin-sort-imports"] + "singleQuote": true, + "endOfLine": "lf", + "tabWidth": 2, + "trailingComma": "all", + "semi": true, + "importOrder": [ + "^@core/(.*)$", + "", + "^@server/(.*)$", + "^@ui/(.*)$", + "^[./]" + ], + "importOrderSeparation": true, + "importOrderSortSpecifiers": true, + "importOrderParserPlugins": ["typescript", "decorators-legacy"], + "plugins": [ + "@trivago/prettier-plugin-sort-imports", + "prettier-plugin-organize-imports" + ] } diff --git a/package-lock.json b/package-lock.json index 1c323b6d..19d5bbf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,8 @@ "@parcel/transformer-inline-string": "^2.8.3", "@trivago/prettier-plugin-sort-imports": "^5.2.1", "parcel": "^2.8.3", - "prettier": "3.4.2" + "prettier": "3.4.2", + "prettier-plugin-organize-imports": "^4.1.0" } }, "node_modules/@babel/code-frame": { @@ -3524,6 +3525,23 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prettier-plugin-organize-imports": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.1.0.tgz", + "integrity": "sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": ">=2.0", + "typescript": ">=2.9", + "vue-tsc": "^2.1.0" + }, + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } + } + }, "node_modules/react-error-overlay": { "version": "6.0.9", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", @@ -3673,6 +3691,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/update-browserslist-db": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", diff --git a/package.json b/package.json index 0d9fe273..6d11976e 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "@parcel/transformer-inline-string": "^2.8.3", "@trivago/prettier-plugin-sort-imports": "^5.2.1", "parcel": "^2.8.3", - "prettier": "3.4.2" + "prettier": "3.4.2", + "prettier-plugin-organize-imports": "^4.1.0" }, "dependencies": { "@lit/task": "^1.0.1", diff --git a/src/action-handler.ts b/src/action-handler.ts index 34cf46ca..93b33759 100644 --- a/src/action-handler.ts +++ b/src/action-handler.ts @@ -10,7 +10,6 @@ import type { ActionHandlerElement, ActionHandlerOptions, ActionHandlerType, - EntityConfig, EntityInformation, } from './types'; diff --git a/src/card.ts b/src/card.ts index 17319e63..8040ac40 100644 --- a/src/card.ts +++ b/src/card.ts @@ -5,8 +5,8 @@ import { state } from 'lit/decorators.js'; import { version } from '../package.json'; import { actionHandler } from './action-handler'; import { handleClickAction } from './handle-action'; -import { createStateIcon } from './helpers'; import { + createStateIcon, getDevice, getEntity, getIconEntities, diff --git a/src/helpers.ts b/src/helpers.ts index 5eb422a6..821f153e 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -166,7 +166,7 @@ export const getRoomEntity = (hass: HomeAssistant, config: Config) => { icon: getArea(hass, config.area)?.icon, tap_action: { action: 'navigate', - navigation_path: config.area.replace('_', '-'), + navigation_path: config.navigate ?? config.area.replace('_', '-'), }, hold_action: { action: 'more-info' }, double_tap_action: { action: 'none' }, diff --git a/src/types.ts b/src/types.ts index 5518c76d..3b8f76da 100644 --- a/src/types.ts +++ b/src/types.ts @@ -3,11 +3,12 @@ */ export interface Config { area: string; - entity: EntityConfig | string; - entities: (EntityConfig | string)[]; - problem_entities: string[]; - remove_fan: boolean; - skip_climate_colors: boolean; + entity?: EntityConfig | string; + entities?: (EntityConfig | string)[]; + problem_entities?: string[]; + remove_fan?: boolean; + skip_climate_colors?: boolean; + navigate?: string; } export interface EntityConfig {