From a820ca1e90d9c77b95687ef0c5965b8ddb3985cf Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Wed, 6 Dec 2023 08:03:44 -0800 Subject: [PATCH 01/13] Fix number selector display for 0 (#18927) --- src/components/ha-selector/ha-selector-number.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ha-selector/ha-selector-number.ts b/src/components/ha-selector/ha-selector-number.ts index 1e913e09b4..3bc9451e18 100644 --- a/src/components/ha-selector/ha-selector-number.ts +++ b/src/components/ha-selector/ha-selector-number.ts @@ -30,9 +30,9 @@ export class HaNumberSelector extends LitElement { protected willUpdate(changedProps: PropertyValues) { if (changedProps.has("value")) { - if (this.value !== Number(this._valueStr)) { + if (this._valueStr === "" || this.value !== Number(this._valueStr)) { this._valueStr = - !this.value || isNaN(this.value) ? "" : this.value.toString(); + this.value == null || isNaN(this.value) ? "" : this.value.toString(); } } } From 76d3c6e237dd754e13e9538274b7e5bc84a3debb Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Thu, 7 Dec 2023 09:31:34 +0100 Subject: [PATCH 02/13] Revert fetching config flow after subscribe for progress (#18939) --- src/dialogs/config-flow/dialog-data-entry-flow.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/dialogs/config-flow/dialog-data-entry-flow.ts b/src/dialogs/config-flow/dialog-data-entry-flow.ts index e80eedd321..8fd26b47cb 100644 --- a/src/dialogs/config-flow/dialog-data-entry-flow.ts +++ b/src/dialogs/config-flow/dialog-data-entry-flow.ts @@ -425,13 +425,6 @@ class DataEntryFlowDialog extends LitElement { ); } ); - if (this._step?.flow_id) { - await this._unsubDataEntryFlowProgressed; - // fetch flow after we subscribe to the event, so we don't miss the first event - this._processStep( - this._params!.flowConfig.fetchFlow(this.hass, this._step.flow_id) - ); - } } static get styles(): CSSResultGroup { From eebcab435d40b8b8bcc51f2b3ed30c68fe805cf2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 11:15:26 +0100 Subject: [PATCH 03/13] Update dependency rollup-plugin-visualizer to v5.10.0 (#18936) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 2a2a12d83b..ff105cb0f3 100644 --- a/package.json +++ b/package.json @@ -229,7 +229,7 @@ "rollup": "2.79.1", "rollup-plugin-string": "3.0.0", "rollup-plugin-terser": "7.0.2", - "rollup-plugin-visualizer": "5.9.3", + "rollup-plugin-visualizer": "5.10.0", "serve-handler": "6.1.5", "sinon": "17.0.1", "source-map-url": "0.4.1", diff --git a/yarn.lock b/yarn.lock index 0bfea07630..ca250e682b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9765,7 +9765,7 @@ __metadata: rollup: "npm:2.79.1" rollup-plugin-string: "npm:3.0.0" rollup-plugin-terser: "npm:7.0.2" - rollup-plugin-visualizer: "npm:5.9.3" + rollup-plugin-visualizer: "npm:5.10.0" rrule: "npm:2.8.1" serve-handler: "npm:6.1.5" sinon: "npm:17.0.1" @@ -13921,9 +13921,9 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-visualizer@npm:5.9.3": - version: 5.9.3 - resolution: "rollup-plugin-visualizer@npm:5.9.3" +"rollup-plugin-visualizer@npm:5.10.0": + version: 5.10.0 + resolution: "rollup-plugin-visualizer@npm:5.10.0" dependencies: open: "npm:^8.4.0" picomatch: "npm:^2.3.1" @@ -13936,7 +13936,7 @@ __metadata: optional: true bin: rollup-plugin-visualizer: dist/bin/cli.js - checksum: 569acbdf9401fb5e23456d889b1094e95a003331c63428732f94418eda59850fd74994587353f58c833a535cc24cdef56c06872996f76f98802ff22939ebbf0d + checksum: aa4ef8d2aae064b50a50168094db1337762d91bd0cd06206cfbc96a97adca45b7036dc1871eab7e70878111eeedb8164fe267f5cc56cd9eb4225ed71c8966aa6 languageName: node linkType: hard From 8d08aa8c793b8bc6ce0dcdf6c4c056944ca4d649 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Thu, 7 Dec 2023 14:40:23 +0100 Subject: [PATCH 04/13] Fix tile card interaction when border width is set to 0 (#18941) --- src/panels/lovelace/cards/hui-tile-card.ts | 154 ++++++++++----------- 1 file changed, 75 insertions(+), 79 deletions(-) diff --git a/src/panels/lovelace/cards/hui-tile-card.ts b/src/panels/lovelace/cards/hui-tile-card.ts index 101c983eeb..f20eb2ecde 100644 --- a/src/panels/lovelace/cards/hui-tile-card.ts +++ b/src/panels/lovelace/cards/hui-tile-card.ts @@ -310,24 +310,22 @@ export class HuiTileCard extends LitElement implements LovelaceCard { if (!stateObj) { return html` -
-
-
- - -
- +
+
+ +
+
`; @@ -359,73 +357,71 @@ export class HuiTileCard extends LitElement implements LovelaceCard { return html` -
+
+ ${this._shouldRenderRipple + ? html`` + : nothing} +
+
- ${this._shouldRenderRipple - ? html`` + ${imageUrl + ? html` + + ` + : html` + + `} + ${badge + ? html` + + ` : nothing}
-
-
- ${imageUrl - ? html` - - ` - : html` - - `} - ${badge - ? html` - - ` - : nothing} -
- -
+
Date: Thu, 7 Dec 2023 14:45:05 +0100 Subject: [PATCH 05/13] Center login content for every screen size (#18943) --- src/html/authorize.html.template | 9 ++------- src/html/onboarding.html.template | 9 ++------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/html/authorize.html.template b/src/html/authorize.html.template index 11724890bf..d4275d3381 100644 --- a/src/html/authorize.html.template +++ b/src/html/authorize.html.template @@ -26,7 +26,8 @@ width: 100%; max-width: 400px; margin: 0 auto; - box-sizing: border-box; + padding: 0 16px; + box-sizing: content-box; } .header { @@ -40,12 +41,6 @@ height: 56px; width: 56px; } - - @media (max-width: 592px) { - .content { - margin: 0 16px; - } - } diff --git a/src/html/onboarding.html.template b/src/html/onboarding.html.template index 9f89da79f0..cac5129033 100644 --- a/src/html/onboarding.html.template +++ b/src/html/onboarding.html.template @@ -22,7 +22,8 @@ .content { max-width: 560px; margin: 0 auto; - box-sizing: border-box; + padding: 0 16px; + box-sizing: content-box; } .header { @@ -36,12 +37,6 @@ height: 56px; width: 56px; } - - @media (max-width: 592px) { - .content { - margin: 0 16px; - } - } From cca1183ee3e38cc64cc707b118b2ccf249617d61 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Thu, 7 Dec 2023 16:53:07 +0100 Subject: [PATCH 06/13] Revert "Remove card features for humidifier and climate on default dashboard" (#18944) * Revert "Remove card features for humidifier and climate on default dashboard (#18747)" This reverts commit 2afd2788e2db6f59f8b97560e43883a95f51b646. * Rename humidifier feature --- .../lovelace/common/generate-lovelace-config.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/panels/lovelace/common/generate-lovelace-config.ts b/src/panels/lovelace/common/generate-lovelace-config.ts index 43de72c3ff..02e0f970ba 100644 --- a/src/panels/lovelace/common/generate-lovelace-config.ts +++ b/src/panels/lovelace/common/generate-lovelace-config.ts @@ -143,12 +143,23 @@ export const computeCards = ( const cardConfig: ThermostatCardConfig = { type: "thermostat", entity: entityId, + features: [ + { + type: "climate-hvac-modes", + hvac_modes: states[entityId]?.attributes?.hvac_modes, + }, + ], }; cards.push(cardConfig); } else if (domain === "humidifier") { const cardConfig: HumidifierCardConfig = { type: "humidifier", entity: entityId, + features: [ + { + type: "humidifier-toggle", + }, + ], }; cards.push(cardConfig); } else if (domain === "media_player") { From caa6ea531c2d1fa1ec4c2edf22c1340c0cbd23da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:28:26 -0500 Subject: [PATCH 07/13] Update dependency @types/luxon to v3.3.7 (#18956) --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ff105cb0f3..467f77870f 100644 --- a/package.json +++ b/package.json @@ -176,7 +176,7 @@ "@types/js-yaml": "4.0.9", "@types/leaflet": "1.9.8", "@types/leaflet-draw": "1.0.11", - "@types/luxon": "3.3.6", + "@types/luxon": "3.3.7", "@types/mocha": "10.0.6", "@types/qrcode": "1.5.5", "@types/serve-handler": "6.1.4", diff --git a/yarn.lock b/yarn.lock index ca250e682b..8b9a5e9fb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4322,10 +4322,10 @@ __metadata: languageName: node linkType: hard -"@types/luxon@npm:3.3.6": - version: 3.3.6 - resolution: "@types/luxon@npm:3.3.6" - checksum: e44e9d856b69d6832572d136cc3ae9e859828be1bea076f78c3f5f3163ec52adfaecf3b2b4ed2b27139fd64e8baaeef7a1425051767b66bc46ea60356bbc1282 +"@types/luxon@npm:3.3.7": + version: 3.3.7 + resolution: "@types/luxon@npm:3.3.7" + checksum: 282ac72fd55da0c9d57f376ba9061ce83506cf6239c32259dacde0800964089f6183d2e449ef2ddd89b079fb8bfdffd7e5dbf187eb5c9f106aeaeca2aa60ed09 languageName: node linkType: hard @@ -9675,7 +9675,7 @@ __metadata: "@types/js-yaml": "npm:4.0.9" "@types/leaflet": "npm:1.9.8" "@types/leaflet-draw": "npm:1.0.11" - "@types/luxon": "npm:3.3.6" + "@types/luxon": "npm:3.3.7" "@types/mocha": "npm:10.0.6" "@types/qrcode": "npm:1.5.5" "@types/serve-handler": "npm:6.1.4" From 9ce8684abac757d247bc9cc8dd9446cef5c792e4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:32:47 -0500 Subject: [PATCH 08/13] Update dependency lint-staged to v15.2.0 (#18930) --- package.json | 2 +- yarn.lock | 138 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 94 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index 467f77870f..3d95f5e925 100644 --- a/package.json +++ b/package.json @@ -216,7 +216,7 @@ "husky": "8.0.3", "instant-mocha": "1.5.2", "jszip": "3.10.1", - "lint-staged": "15.1.0", + "lint-staged": "15.2.0", "lit-analyzer": "2.0.1", "lodash.template": "4.5.0", "magic-string": "0.30.5", diff --git a/yarn.lock b/yarn.lock index 8b9a5e9fb3..ae6d899fdc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5480,12 +5480,12 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^5.0.0": - version: 5.0.0 - resolution: "ansi-escapes@npm:5.0.0" +"ansi-escapes@npm:^6.2.0": + version: 6.2.0 + resolution: "ansi-escapes@npm:6.2.0" dependencies: - type-fest: "npm:^1.0.2" - checksum: cbfb95f9f6d8a1ffc89f50fcda3313effae2d9ac2f357f89f626815b4d95fdc3f10f74e0887614ff850d01f805b7505eb1e7ebfdd26144bbfc26c5de08e19195 + type-fest: "npm:^3.0.0" + checksum: 442f91b04650b35bc4815f47c20412d69ddbba5d4bf22f72ec03be352fca2de6819c7e3f4dfd17816ee4e0c6c965fe85e6f1b3f09683996a8d12fd366afd924e languageName: node linkType: hard @@ -5555,7 +5555,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0": +"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" checksum: 70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32 @@ -6634,13 +6634,13 @@ __metadata: languageName: node linkType: hard -"cli-truncate@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-truncate@npm:3.1.0" +"cli-truncate@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-truncate@npm:4.0.0" dependencies: slice-ansi: "npm:^5.0.0" - string-width: "npm:^5.0.0" - checksum: c3243e41974445691c63f8b405df1d5a24049dc33d324fe448dc572e561a7b772ae982692900b1a5960901cc4fc7def25a629b9c69a4208ee89d12ab3332617a + string-width: "npm:^7.0.0" + checksum: d5149175fd25ca985731bdeec46a55ec237475cf74c1a5e103baea696aceb45e372ac4acbaabf1316f06bd62e348123060f8191ffadfeedebd2a70a2a7fb199d languageName: node linkType: hard @@ -7612,7 +7612,7 @@ __metadata: languageName: node linkType: hard -"emoji-regex@npm:^10.2.1": +"emoji-regex@npm:^10.2.1, emoji-regex@npm:^10.3.0": version: 10.3.0 resolution: "emoji-regex@npm:10.3.0" checksum: b9b084ebe904f13bb4b66ee4c29fb41a7a4a1165adcc33c1ce8056c0194b882cc91ebdc782f1a779b5d7ea7375c5064643a7734893d7c657b44c5c6b9d7bf1e7 @@ -9023,6 +9023,13 @@ __metadata: languageName: node linkType: hard +"get-east-asian-width@npm:^1.0.0": + version: 1.2.0 + resolution: "get-east-asian-width@npm:1.2.0" + checksum: c9b280e7c7c67fb89fa17e867c4a9d1c9f1321aba2a9ee27bff37fb6ca9552bccda328c70a80c1f83a0e39ba1b7e3427e60f47823402d19e7a41b83417ec047a + languageName: node + linkType: hard + "get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": version: 2.0.2 resolution: "get-func-name@npm:2.0.2" @@ -9742,7 +9749,7 @@ __metadata: jszip: "npm:3.10.1" leaflet: "npm:1.9.4" leaflet-draw: "npm:1.0.4" - lint-staged: "npm:15.1.0" + lint-staged: "npm:15.2.0" lit: "npm:2.8.0" lit-analyzer: "npm:2.0.1" lodash.template: "npm:4.5.0" @@ -10494,6 +10501,15 @@ __metadata: languageName: node linkType: hard +"is-fullwidth-code-point@npm:^5.0.0": + version: 5.0.0 + resolution: "is-fullwidth-code-point@npm:5.0.0" + dependencies: + get-east-asian-width: "npm:^1.0.0" + checksum: 8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 + languageName: node + linkType: hard + "is-function@npm:^1.0.1": version: 1.0.2 resolution: "is-function@npm:1.0.2" @@ -11332,44 +11348,44 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:2.1.0": - version: 2.1.0 - resolution: "lilconfig@npm:2.1.0" - checksum: b1314a2e55319013d5e7d7d08be39015829d2764a1eaee130129545d40388499d81b1c31b0f9b3417d4db12775a88008b72ec33dd06e0184cf7503b32ca7cc0b +"lilconfig@npm:3.0.0": + version: 3.0.0 + resolution: "lilconfig@npm:3.0.0" + checksum: 55f60f4f9f7b41358cc33875e3696919412683a35aec30c6c60c4f6ecb16fb6d11f7ac856b8458b9b82b21d5f4629649fbfca1de034e8d5b0cc7a70836266db6 languageName: node linkType: hard -"lint-staged@npm:15.1.0": - version: 15.1.0 - resolution: "lint-staged@npm:15.1.0" +"lint-staged@npm:15.2.0": + version: 15.2.0 + resolution: "lint-staged@npm:15.2.0" dependencies: chalk: "npm:5.3.0" commander: "npm:11.1.0" debug: "npm:4.3.4" execa: "npm:8.0.1" - lilconfig: "npm:2.1.0" - listr2: "npm:7.0.2" + lilconfig: "npm:3.0.0" + listr2: "npm:8.0.0" micromatch: "npm:4.0.5" pidtree: "npm:0.6.0" string-argv: "npm:0.3.2" yaml: "npm:2.3.4" bin: lint-staged: bin/lint-staged.js - checksum: 77aacab303ebab8ef6781833d35d82405b73f0e3e8f8c585cdd95b0e1f42a638a12e853d7ef6227a85d77ed2ba233f92b0499124696a6872569c508e04d25ce3 + checksum: 2a20e9b15f7e7419e92a2014afb01feb58798341a4a56aa1b9c8570297681cf54919f645df3c221e4348fd262df38c1e711a245a645d477bf870841e27c604f2 languageName: node linkType: hard -"listr2@npm:7.0.2": - version: 7.0.2 - resolution: "listr2@npm:7.0.2" +"listr2@npm:8.0.0": + version: 8.0.0 + resolution: "listr2@npm:8.0.0" dependencies: - cli-truncate: "npm:^3.1.0" + cli-truncate: "npm:^4.0.0" colorette: "npm:^2.0.20" eventemitter3: "npm:^5.0.1" - log-update: "npm:^5.0.1" + log-update: "npm:^6.0.0" rfdc: "npm:^1.3.0" - wrap-ansi: "npm:^8.1.0" - checksum: 42cda5764906f9d298e3b0b0a684e71a3737533b2aef66f361265a3b938c4bc8f49bcea91536a8daa956833658d14108469b00c565c8e93ce4079795f6a06e07 + wrap-ansi: "npm:^9.0.0" + checksum: d5a53b6d5feaa3a45c3750ebf10d242d42f11741b890edf8de7d68a002c36f15d0683f25742a0eb055763f04c005210a5cd61ef6c24ebac099d597cb21b06f29 languageName: node linkType: hard @@ -11596,16 +11612,16 @@ __metadata: languageName: node linkType: hard -"log-update@npm:^5.0.1": - version: 5.0.1 - resolution: "log-update@npm:5.0.1" +"log-update@npm:^6.0.0": + version: 6.0.0 + resolution: "log-update@npm:6.0.0" dependencies: - ansi-escapes: "npm:^5.0.0" + ansi-escapes: "npm:^6.2.0" cli-cursor: "npm:^4.0.0" - slice-ansi: "npm:^5.0.0" - strip-ansi: "npm:^7.0.1" - wrap-ansi: "npm:^8.0.1" - checksum: 0e154e46744125b6d20c30289e90091794d58b83c2f01d7676da2afa2411c6ec2c3ee2c99753b9c6b896b9ee496a9a403a563330a2d5914a3bdb30e836f17cfb + slice-ansi: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + wrap-ansi: "npm:^9.0.0" + checksum: b345f392c356087290918f1bdaae84ee38699c89c9274fafbb6f4cee2fe6f89f9737000111279a40e651fbe0e9c08803b0457c2a4800d8a405752804f73058a8 languageName: node linkType: hard @@ -14376,6 +14392,16 @@ __metadata: languageName: node linkType: hard +"slice-ansi@npm:^7.0.0": + version: 7.1.0 + resolution: "slice-ansi@npm:7.1.0" + dependencies: + ansi-styles: "npm:^6.2.1" + is-fullwidth-code-point: "npm:^5.0.0" + checksum: 10313dd3cf7a2e4b265f527b1684c7c568210b09743fd1bd74f2194715ed13ffba653dc93a5fa79e3b1711518b8990a732cb7143aa01ddafe626e99dfa6474b2 + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -14766,7 +14792,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^5.0.0, string-width@npm:^5.0.1, string-width@npm:^5.1.2": +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": version: 5.1.2 resolution: "string-width@npm:5.1.2" dependencies: @@ -14777,6 +14803,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^7.0.0": + version: 7.0.0 + resolution: "string-width@npm:7.0.0" + dependencies: + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: bc0de5700a2690895169fce447ec4ed44bc62de80312c2093d5606bfd48319bb88e48a99e97f269dff2bc9577448b91c26b3804c16e7d9b389699795e4655c3b + languageName: node + linkType: hard + "string.prototype.matchall@npm:^4.0.6": version: 4.0.10 resolution: "string.prototype.matchall@npm:4.0.10" @@ -14874,7 +14911,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.0.1": +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: @@ -15489,10 +15526,10 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^1.0.2": - version: 1.4.0 - resolution: "type-fest@npm:1.4.0" - checksum: 89875c247564601c2650bacad5ff80b859007fbdb6c9e43713ae3ffa3f584552eea60f33711dd762e16496a1ab4debd409822627be14097d9a17e39c49db591a +"type-fest@npm:^3.0.0": + version: 3.13.1 + resolution: "type-fest@npm:3.13.1" + checksum: 9a8a2359ada34c9b3affcaf3a8f73ee14c52779e89950db337ce66fb74c3399776c697c99f2532e9b16e10e61cfdba3b1c19daffb93b338b742f0acd0117ce12 languageName: node linkType: hard @@ -16713,7 +16750,7 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^8.0.1, wrap-ansi@npm:^8.1.0": +"wrap-ansi@npm:^8.1.0": version: 8.1.0 resolution: "wrap-ansi@npm:8.1.0" dependencies: @@ -16724,6 +16761,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^9.0.0": + version: 9.0.0 + resolution: "wrap-ansi@npm:9.0.0" + dependencies: + ansi-styles: "npm:^6.2.1" + string-width: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + checksum: b9d91564c091cf3978a7c18ca0f3e4d4606e83549dbe59cf76f5e77feefdd5ec91443155e8102630524d10a8c275efac8a7082c0f26fa43e6b989dc150d176ce + languageName: node + linkType: hard + "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" From f366e287b1805cdda846f7f18787e8c0166bde94 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:34:08 -0500 Subject: [PATCH 09/13] Update typescript-eslint monorepo to v6.13.2 (#18953) --- package.json | 4 +- yarn.lock | 104 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 3d95f5e925..c17a6b3600 100644 --- a/package.json +++ b/package.json @@ -184,8 +184,8 @@ "@types/tar": "6.1.10", "@types/ua-parser-js": "0.7.39", "@types/webspeechapi": "0.0.29", - "@typescript-eslint/eslint-plugin": "6.13.1", - "@typescript-eslint/parser": "6.13.1", + "@typescript-eslint/eslint-plugin": "6.13.2", + "@typescript-eslint/parser": "6.13.2", "@web/dev-server": "0.1.38", "@web/dev-server-rollup": "0.4.1", "babel-loader": "9.1.3", diff --git a/yarn.lock b/yarn.lock index ae6d899fdc..733a4d93d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4567,15 +4567,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/eslint-plugin@npm:6.13.1" +"@typescript-eslint/eslint-plugin@npm:6.13.2": + version: 6.13.2 + resolution: "@typescript-eslint/eslint-plugin@npm:6.13.2" dependencies: "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:6.13.1" - "@typescript-eslint/type-utils": "npm:6.13.1" - "@typescript-eslint/utils": "npm:6.13.1" - "@typescript-eslint/visitor-keys": "npm:6.13.1" + "@typescript-eslint/scope-manager": "npm:6.13.2" + "@typescript-eslint/type-utils": "npm:6.13.2" + "@typescript-eslint/utils": "npm:6.13.2" + "@typescript-eslint/visitor-keys": "npm:6.13.2" debug: "npm:^4.3.4" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.4" @@ -4588,44 +4588,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: cae42c77404d8e6c149d68aca75bb3ce83cff5de8713d82e87e93bafae2839f29d261bc75b68f315b6b23858a85ea2f22ed8468cf5c7331e8330f7cee2129522 + checksum: e6665fc5de0ae2b7ada9150d3d119157521a04208b8da385a4c39538b9471871efe6eef272dbcee4c76f599e09453b6f7317f3b3b80d89291f6b2ace4125c51b languageName: node linkType: hard -"@typescript-eslint/parser@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/parser@npm:6.13.1" +"@typescript-eslint/parser@npm:6.13.2": + version: 6.13.2 + resolution: "@typescript-eslint/parser@npm:6.13.2" dependencies: - "@typescript-eslint/scope-manager": "npm:6.13.1" - "@typescript-eslint/types": "npm:6.13.1" - "@typescript-eslint/typescript-estree": "npm:6.13.1" - "@typescript-eslint/visitor-keys": "npm:6.13.1" + "@typescript-eslint/scope-manager": "npm:6.13.2" + "@typescript-eslint/types": "npm:6.13.2" + "@typescript-eslint/typescript-estree": "npm:6.13.2" + "@typescript-eslint/visitor-keys": "npm:6.13.2" debug: "npm:^4.3.4" peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: cdc328d157a8b8a6babad88360451c177ea41666e2150f3822a474ed287a12336517dccf9f475f75a007d4aa622cb74f1442f17d17b87e19cc2c839784742351 + checksum: a2b32d2ad1aa12ce31790e80e059fd5b0699265541f3799b58f2e5c8b40f2e21ac7010519802bc406f4b74c14a1f52081570fa6119b949f68392d0968628b3b8 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/scope-manager@npm:6.13.1" +"@typescript-eslint/scope-manager@npm:6.13.2": + version: 6.13.2 + resolution: "@typescript-eslint/scope-manager@npm:6.13.2" dependencies: - "@typescript-eslint/types": "npm:6.13.1" - "@typescript-eslint/visitor-keys": "npm:6.13.1" - checksum: f728dbd995c58fadfc390411fe31b1b8a729b1c85ecf0ae2fe70f97f613298feab78c05bc180e03612f595b24cf0090476a0b8234c617b3edf1dae568342a7cf + "@typescript-eslint/types": "npm:6.13.2" + "@typescript-eslint/visitor-keys": "npm:6.13.2" + checksum: a6505cc73e90dfed3b9b03816213610f05be58548f468ce24c05ce49a3c6d029ef02233db51cff3b780aa8d040a0c7b3268ea28244c704932c9ee6ef82088509 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/type-utils@npm:6.13.1" +"@typescript-eslint/type-utils@npm:6.13.2": + version: 6.13.2 + resolution: "@typescript-eslint/type-utils@npm:6.13.2" dependencies: - "@typescript-eslint/typescript-estree": "npm:6.13.1" - "@typescript-eslint/utils": "npm:6.13.1" + "@typescript-eslint/typescript-estree": "npm:6.13.2" + "@typescript-eslint/utils": "npm:6.13.2" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.0.1" peerDependencies: @@ -4633,23 +4633,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 484e5f74fc604b24687fe6426e650f40f679d62216ee5e45bf6d1f91edd60cd8deef747ca43f7dc3c22b2b76f030477603c82559e44c3f2fb5c8877a0c65aefa + checksum: c8de5ab94295980a378e4f22dd51dedb3838761969ad1a355386a801c9bc332837651747cdc2edf7f399c88d0bbd787d2233d09e14e4e2849fb01a57bd0cab00 languageName: node linkType: hard -"@typescript-eslint/types@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/types@npm:6.13.1" - checksum: 350c7f847052f7c24629d41645c02be152c512f3e5c21a79f53c04821b1fff3019416b18d9b72e5ca5c3c5f62f210301f2bb69080b84e67fe83af27751a7af18 +"@typescript-eslint/types@npm:6.13.2": + version: 6.13.2 + resolution: "@typescript-eslint/types@npm:6.13.2" + checksum: 3ed2622468b2c61bff0828a3675357b498360bada85740dd72e4ec3c80ee112bce8808d7688aa0104b9d0a655a30e2deb0fee69468474c7e046fc9285f549fe6 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/typescript-estree@npm:6.13.1" +"@typescript-eslint/typescript-estree@npm:6.13.2": + version: 6.13.2 + resolution: "@typescript-eslint/typescript-estree@npm:6.13.2" dependencies: - "@typescript-eslint/types": "npm:6.13.1" - "@typescript-eslint/visitor-keys": "npm:6.13.1" + "@typescript-eslint/types": "npm:6.13.2" + "@typescript-eslint/visitor-keys": "npm:6.13.2" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -4658,34 +4658,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 1df965c5b202664da1a4a1ffc51bda3d85e581d8c206cd4be63653e2558775104258f6071e1f35a269619ebfb81bd18ee74e3fcb724fed15d3a2577d0ee5a34f + checksum: 8fa1344228858fa8171a9660e11eb0d5ed88de2ada343bce4a02a957724ccbeb9b67da1083eada29247f444aeba6908a4145d1758b528d320928abbb4e48dca7 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/utils@npm:6.13.1" +"@typescript-eslint/utils@npm:6.13.2": + version: 6.13.2 + resolution: "@typescript-eslint/utils@npm:6.13.2" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" "@types/json-schema": "npm:^7.0.12" "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:6.13.1" - "@typescript-eslint/types": "npm:6.13.1" - "@typescript-eslint/typescript-estree": "npm:6.13.1" + "@typescript-eslint/scope-manager": "npm:6.13.2" + "@typescript-eslint/types": "npm:6.13.2" + "@typescript-eslint/typescript-estree": "npm:6.13.2" semver: "npm:^7.5.4" peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 6fab1122071c7a2da959dcf16cdd723a65bd8ba8e55af9cea11bb1707c4d047e94c3daaed2ab504cdbd2ca0d052f2a33de5290b28de0277ba00210569673ac9b + checksum: 934282b612e5f78423bc375122258c5aec65fcdf9c25fd0521e3984686d1e5b950500f093c5f1c21a267be164bc7025d8f629dcfaa60573ad98c6e3861092076 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.13.1": - version: 6.13.1 - resolution: "@typescript-eslint/visitor-keys@npm:6.13.1" +"@typescript-eslint/visitor-keys@npm:6.13.2": + version: 6.13.2 + resolution: "@typescript-eslint/visitor-keys@npm:6.13.2" dependencies: - "@typescript-eslint/types": "npm:6.13.1" + "@typescript-eslint/types": "npm:6.13.2" eslint-visitor-keys: "npm:^3.4.1" - checksum: 27ccc4bfe940e50b0977838356b7feda95b68754fa544a988588a159a2619eb04d07c67e55d16bfea1b0dc6184a7fb5daff1366b266c9f5fd19d72831dea6163 + checksum: eb6f3a3fa4dae6003533eac41bd2a8181a0353f352640e92b619e353b4bd5a5cd4c076018cbdf4b1ba45b826be0c1d15293d87e956fc9a8aa2fb8d8aa04a7c98 languageName: node linkType: hard @@ -9690,8 +9690,8 @@ __metadata: "@types/tar": "npm:6.1.10" "@types/ua-parser-js": "npm:0.7.39" "@types/webspeechapi": "npm:0.0.29" - "@typescript-eslint/eslint-plugin": "npm:6.13.1" - "@typescript-eslint/parser": "npm:6.13.1" + "@typescript-eslint/eslint-plugin": "npm:6.13.2" + "@typescript-eslint/parser": "npm:6.13.2" "@vaadin/combo-box": "npm:24.2.5" "@vaadin/vaadin-themable-mixin": "npm:24.2.5" "@vibrant/color": "npm:3.2.1-alpha.1" From 80edeebab9e6dfcd13751b5ed8ff005452826118 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:38:49 -0500 Subject: [PATCH 10/13] Update dependency chart.js to v4.4.1 (#18957) --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c17a6b3600..581e6eb9d8 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ "@webcomponents/scoped-custom-element-registry": "0.0.9", "@webcomponents/webcomponentsjs": "2.8.0", "app-datepicker": "5.1.1", - "chart.js": "4.4.0", + "chart.js": "4.4.1", "comlink": "4.4.1", "core-js": "3.33.3", "cropperjs": "1.6.1", diff --git a/yarn.lock b/yarn.lock index 733a4d93d7..57be66b958 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6514,12 +6514,12 @@ __metadata: languageName: node linkType: hard -"chart.js@npm:4.4.0": - version: 4.4.0 - resolution: "chart.js@npm:4.4.0" +"chart.js@npm:4.4.1": + version: 4.4.1 + resolution: "chart.js@npm:4.4.1" dependencies: "@kurkle/color": "npm:^0.3.0" - checksum: 5d60ae67e2ad7ba1026531be3c965a83f4b4213146b131aa041fcac846bd98bdfc38aeadc0d19c58f3a3ef689fb6acc014b8687665d38d4776b38351bf991de1 + checksum: bb58247349ed04b6a38c4c4b45d953d87dab40ecd70dd796da302cbcebf866dfc1ecf7bd32d95ecb44b89dccf9a4cfc6ff84f74ba69b024be9b5bd19b2930fbc languageName: node linkType: hard @@ -9706,7 +9706,7 @@ __metadata: babel-loader: "npm:9.1.3" babel-plugin-template-html-minifier: "npm:4.1.0" chai: "npm:4.3.10" - chart.js: "npm:4.4.0" + chart.js: "npm:4.4.1" comlink: "npm:4.4.1" core-js: "npm:3.33.3" cropperjs: "npm:1.6.1" From b855b3e1034c0df9b8f41f11097f869b257d701c Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Fri, 8 Dec 2023 10:14:55 +0100 Subject: [PATCH 11/13] Format number attribute for media player (#18949) --- .../entity/compute_attribute_display.ts | 17 +++++++------- src/data/entity_attributes.ts | 22 +++++++++++++++++++ 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/common/entity/compute_attribute_display.ts b/src/common/entity/compute_attribute_display.ts index bfb394a2d0..77bc61bbd4 100644 --- a/src/common/entity/compute_attribute_display.ts +++ b/src/common/entity/compute_attribute_display.ts @@ -1,5 +1,6 @@ import { HassConfig, HassEntity } from "home-assistant-js-websocket"; import { + DOMAIN_ATTRIBUTES_FORMATERS, DOMAIN_ATTRIBUTES_UNITS, TEMPERATURE_ATTRIBUTES, } from "../../data/entity_attributes"; @@ -14,11 +15,10 @@ import { formatNumber } from "../number/format_number"; import { capitalizeFirstLetter } from "../string/capitalize-first-letter"; import { isDate } from "../string/is_date"; import { isTimestamp } from "../string/is_timestamp"; -import { blankBeforePercent } from "../translations/blank_before_percent"; +import { blankBeforeUnit } from "../translations/blank_before_unit"; import { LocalizeFunc } from "../translations/localize"; import { computeDomain } from "./compute_domain"; import { computeStateDomain } from "./compute_state_domain"; -import { blankBeforeUnit } from "../translations/blank_before_unit"; export const computeAttributeValueDisplay = ( localize: LocalizeFunc, @@ -39,19 +39,18 @@ export const computeAttributeValueDisplay = ( // Number value, return formatted number if (typeof attributeValue === "number") { - const formattedValue = formatNumber(attributeValue, locale); - const domain = computeStateDomain(stateObj); + const formatter = DOMAIN_ATTRIBUTES_FORMATERS[domain]?.[attribute]; + + const formattedValue = formatter + ? formatter(attributeValue, locale) + : formatNumber(attributeValue, locale); + let unit = DOMAIN_ATTRIBUTES_UNITS[domain]?.[attribute] as | string | undefined; - if (domain === "light" && attribute === "brightness") { - const percentage = Math.round((attributeValue / 255) * 100); - return `${percentage}${blankBeforePercent(locale)}%`; - } - if (domain === "weather") { unit = getWeatherUnit(config, stateObj as WeatherEntity, attribute); } diff --git a/src/data/entity_attributes.ts b/src/data/entity_attributes.ts index 00e2e6d3dc..3a07ae022a 100644 --- a/src/data/entity_attributes.ts +++ b/src/data/entity_attributes.ts @@ -1,3 +1,6 @@ +import { formatDuration } from "../common/datetime/duration"; +import { FrontendLocaleData } from "./translation"; + export const STATE_ATTRIBUTES = [ "entity_id", "assumed_state", @@ -64,6 +67,7 @@ export const DOMAIN_ATTRIBUTES_UNITS = { color_temp_kelvin: "K", min_color_temp_kelvin: "K", max_color_temp_kelvin: "K", + brightness: "%", }, sun: { elevation: "°", @@ -74,4 +78,22 @@ export const DOMAIN_ATTRIBUTES_UNITS = { sensor: { battery_level: "%", }, + media_player: { + volume_level: "%", + }, } as const satisfies Record>; + +type Formatter = (value: number, locale: FrontendLocaleData) => string; + +export const DOMAIN_ATTRIBUTES_FORMATERS: Record< + string, + Record +> = { + light: { + brightness: (value) => Math.round((value / 255) * 100).toString(), + }, + media_player: { + volume_level: (value) => Math.round(value * 100).toString(), + media_duration: (value) => formatDuration(value.toString(), "s"), + }, +}; From 86a3c3284483bd270eb874d796412ec0b7f9cf28 Mon Sep 17 00:00:00 2001 From: Simon Lamon <32477463+silamon@users.noreply.github.com> Date: Fri, 8 Dec 2023 10:17:40 +0100 Subject: [PATCH 12/13] Fix area in device picker (#18955) Co-authored-by: Bram Kragten --- src/components/device/ha-device-picker.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/components/device/ha-device-picker.ts b/src/components/device/ha-device-picker.ts index dd64cf68c2..35e16fd4ea 100644 --- a/src/components/device/ha-device-picker.ts +++ b/src/components/device/ha-device-picker.ts @@ -10,7 +10,6 @@ import { ScorableTextItem, fuzzyFilterSort, } from "../../common/string/filter/sequence-matching"; -import { AreaRegistryEntry } from "../../data/area_registry"; import { DeviceEntityDisplayLookup, DeviceRegistryEntry, @@ -102,7 +101,7 @@ export class HaDevicePicker extends LitElement { private _getDevices = memoizeOne( ( devices: DeviceRegistryEntry[], - areas: AreaRegistryEntry[], + areas: HomeAssistant["areas"], entities: EntityRegistryDisplayEntry[], includeDomains: this["includeDomains"], excludeDomains: this["excludeDomains"], @@ -133,8 +132,6 @@ export class HaDevicePicker extends LitElement { deviceEntityLookup = getDeviceEntityDisplayLookup(entities); } - const areaLookup = areas; - let inputDevices = devices.filter( (device) => device.id === this.value || !device.disabled_by ); @@ -224,8 +221,8 @@ export class HaDevicePicker extends LitElement { id: device.id, name: name, area: - device.area_id && areaLookup[device.area_id] - ? areaLookup[device.area_id].name + device.area_id && areas[device.area_id] + ? areas[device.area_id].name : this.hass.localize("ui.components.device-picker.no_area"), strings: [name || ""], }; @@ -267,7 +264,7 @@ export class HaDevicePicker extends LitElement { this._init = true; const devices = this._getDevices( Object.values(this.hass.devices), - Object.values(this.hass.areas), + this.hass.areas, Object.values(this.hass.entities), this.includeDomains, this.excludeDomains, From 61117bb34f9db940587fa4a08e152bd09e823ffe Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Fri, 8 Dec 2023 10:30:33 +0100 Subject: [PATCH 13/13] Bumped version to 20231208.1 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 72f8dec3af..6267bdc101 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "home-assistant-frontend" -version = "20231206.0" +version = "20231208.1" license = {text = "Apache-2.0"} description = "The Home Assistant frontend" readme = "README.md"