Keep footer documentation out of the shipped CSS

Move the explanatory comment to TypeScript without changing styles; preserve the existing bundle-budget noise margin. Include independently accepted #498 in the release status.

Issue: #505
Issue: #498
User-Visible: no
This commit is contained in:
Matysh
2026-09-09 10:21:48 +03:00
parent 6fe01ecc1f
commit 3d2bfe9f6d
44 changed files with 422 additions and 423 deletions
@@ -1,309 +1,309 @@
{
"schema": 1,
"fingerprint": "7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb",
"fingerprint": "4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575",
"entry": "houseplan-card.js",
"panelEntry": "houseplan-panel.js",
"initialViewFiles": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-card.js"
],
"initialViewGzipBytes": 298629,
"initialViewGzipBytes": 298581,
"initialPanelFiles": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-card.js",
"houseplan-panel.js"
],
"initialPanelGzipBytes": 300934,
"initialPanelGzipBytes": 300883,
"initialPanelOnlyFiles": [
"houseplan-panel.js"
],
"initialPanelOnlyGzipBytes": 2305,
"initialPanelOnlyGzipBytes": 2302,
"lazyFiles": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/de-BsefHUSw.js",
"houseplan-assets/editor-CoUfn86L.js",
"houseplan-assets/fr-e39xJFBJ.js",
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/houseplan-editor-runtime-OamJbma6.js",
"houseplan-assets/houseplan-onboarding-runtime-CF3GOAef.js",
"houseplan-assets/hp-zigbee-topology-overlay-B446qM7D.js",
"houseplan-assets/iso-scene-render-B9sLW6kk.js",
"houseplan-assets/live-interaction-runtime-CfryAmdG.js",
"houseplan-assets/pdf-export-C5wOvdYa.js",
"houseplan-assets/summary-panel-runtime-loaded-CkGmm79D.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js",
"houseplan-assets/zigbee-topology-runtime-D4BHgtep.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/de-Ca2zS-Tw.js",
"houseplan-assets/editor-W2o7Dn-g.js",
"houseplan-assets/fr-DJM-kqNh.js",
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/houseplan-editor-runtime-D-oKNVtj.js",
"houseplan-assets/houseplan-onboarding-runtime-B30IfBfx.js",
"houseplan-assets/hp-zigbee-topology-overlay-aYygDVQZ.js",
"houseplan-assets/iso-scene-render-DH9iLerT.js",
"houseplan-assets/live-interaction-runtime-CJemFdgc.js",
"houseplan-assets/pdf-export-7GKW_zQO.js",
"houseplan-assets/summary-panel-runtime-loaded-D2yd1q4n.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js",
"houseplan-assets/zigbee-topology-runtime-CyJsrZEY.js"
],
"lazyGzipBytes": 417358,
"lazyGzipBytes": 417341,
"lazyEditorFiles": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/editor-CoUfn86L.js",
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/houseplan-editor-runtime-OamJbma6.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/editor-W2o7Dn-g.js",
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/houseplan-editor-runtime-D-oKNVtj.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js"
],
"lazyEditorGzipBytes": 205651,
"lazyEditorGzipBytes": 205645,
"lazyOnboardingFiles": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/houseplan-onboarding-runtime-CF3GOAef.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/houseplan-onboarding-runtime-B30IfBfx.js"
],
"lazyOnboardingGzipBytes": 14149,
"lazyOnboardingGzipBytes": 14147,
"lazyLocaleFiles": [
"houseplan-assets/de-BsefHUSw.js",
"houseplan-assets/fr-e39xJFBJ.js"
"houseplan-assets/de-Ca2zS-Tw.js",
"houseplan-assets/fr-DJM-kqNh.js"
],
"lazyLocaleGzipBytes": 54851,
"lazyLocaleGzipBytes": 54844,
"lazyIsometricFiles": [
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/iso-scene-render-B9sLW6kk.js"
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/iso-scene-render-DH9iLerT.js"
],
"lazyIsometricGzipBytes": 13455,
"lazyIsometricGzipBytes": 13454,
"lazyFurnitureArtFiles": [
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js"
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js"
],
"lazyFurnitureArtGzipBytes": 10253,
"lazyFurnitureArtGzipBytes": 10254,
"lazyPdfFiles": [
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/pdf-export-C5wOvdYa.js"
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/pdf-export-7GKW_zQO.js"
],
"lazyPdfGzipBytes": 120368,
"lazyPdfGzipBytes": 120369,
"files": [
{
"path": "houseplan-assets/backdrop-pick-BLUd8cDA.js",
"sha256": "3ebab0c26f7550548561d43a9f74c68b7b57a07dfb847d0d450015f838034f7f",
"path": "houseplan-assets/backdrop-pick-CwadwWPw.js",
"sha256": "2e328f67a24ca37a17e9893fc409ec07059fa88ae3a6fb21f5863ba6f89d4090",
"rawBytes": 21134,
"gzipBytes": 7145,
"gzipBytes": 7146,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/de-BsefHUSw.js",
"sha256": "9095c3da1f92bfaa20446b45c5c6127faa0de2015ff9267546c56df012776511",
"path": "houseplan-assets/de-Ca2zS-Tw.js",
"sha256": "e85cfc9cc9d6c1ad6040c8b00d6101160f55ee15c355ba7b41a6a2b92542ef27",
"rawBytes": 91441,
"gzipBytes": 27709,
"gzipBytes": 27707,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/editor-CoUfn86L.js",
"sha256": "9f9dc123f7fb2df718fbfb3535832c6652de67efdb56551dfea01342bf4a0cd3",
"path": "houseplan-assets/editor-W2o7Dn-g.js",
"sha256": "e681dc33c5c444bff668f670a9556d80df8990df7d94d51185825d5ebe2fed36",
"rawBytes": 3837,
"gzipBytes": 1586,
"gzipBytes": 1584,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/fr-e39xJFBJ.js",
"sha256": "52e6d716d228997f765b481430090f019f787ed185194dc1b2056d20a3e4b2a5",
"path": "houseplan-assets/fr-DJM-kqNh.js",
"sha256": "e66cdcb758adae07ede97bc1a641e6c818a82e69483f1e9384a19d929dba3925",
"rawBytes": 93719,
"gzipBytes": 27142,
"gzipBytes": 27137,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"sha256": "3472ee68e4c04600730629c7a35d0d5e085ca9035066b91f645519a54b3b9e13",
"path": "houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"sha256": "40613e8ae66251a6727d5570d89fc541228494e3edf6356f67b42fc01b18f1e5",
"rawBytes": 33655,
"gzipBytes": 10253,
"gzipBytes": 10254,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/guard-Bph2SWa8.js",
"sha256": "e1e12564b592a854542aeda8139eb37dfd8a7ca72cb78823e87761883bedaf66",
"path": "houseplan-assets/guard-Cnk6ijtT.js",
"sha256": "b6f404fa3444217e5cf3db0de73ba45e532f63830fd0b42d1429d7befbfab533",
"rawBytes": 518,
"gzipBytes": 369,
"gzipBytes": 368,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/houseplan-card-7tfK7ibx.js",
"sha256": "259da7454641d80fb81efd65eaac296c572a260304bb45f61e2d519a32069e13",
"rawBytes": 1075481,
"gzipBytes": 297827,
"path": "houseplan-assets/houseplan-card-CcuyI-r4.js",
"sha256": "9d5a72062970d4a61cb48695b47d1bf86e1bcb2015ddf3779dd54df9a733ca78",
"rawBytes": 1075395,
"gzipBytes": 297780,
"isEntry": false,
"imports": [],
"dynamicImports": [
"houseplan-assets/de-BsefHUSw.js",
"houseplan-assets/editor-CoUfn86L.js",
"houseplan-assets/fr-e39xJFBJ.js",
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/houseplan-editor-runtime-OamJbma6.js",
"houseplan-assets/houseplan-onboarding-runtime-CF3GOAef.js",
"houseplan-assets/hp-zigbee-topology-overlay-B446qM7D.js",
"houseplan-assets/iso-scene-render-B9sLW6kk.js",
"houseplan-assets/live-interaction-runtime-CfryAmdG.js",
"houseplan-assets/pdf-export-C5wOvdYa.js",
"houseplan-assets/summary-panel-runtime-loaded-CkGmm79D.js"
"houseplan-assets/de-Ca2zS-Tw.js",
"houseplan-assets/editor-W2o7Dn-g.js",
"houseplan-assets/fr-DJM-kqNh.js",
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/houseplan-editor-runtime-D-oKNVtj.js",
"houseplan-assets/houseplan-onboarding-runtime-B30IfBfx.js",
"houseplan-assets/hp-zigbee-topology-overlay-aYygDVQZ.js",
"houseplan-assets/iso-scene-render-DH9iLerT.js",
"houseplan-assets/live-interaction-runtime-CJemFdgc.js",
"houseplan-assets/pdf-export-7GKW_zQO.js",
"houseplan-assets/summary-panel-runtime-loaded-D2yd1q4n.js"
]
},
{
"path": "houseplan-assets/houseplan-editor-runtime-OamJbma6.js",
"sha256": "f07b1e01304f9aea21ebd59556756f433556193e883689e047dfb875a184b16a",
"path": "houseplan-assets/houseplan-editor-runtime-D-oKNVtj.js",
"sha256": "de651a6b8cd99d06fb5f8c422f02d6b7a01f6cfe1a32c310267da8036e714cbf",
"rawBytes": 671979,
"gzipBytes": 178870,
"gzipBytes": 178867,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js"
],
"dynamicImports": [
"houseplan-assets/zigbee-topology-runtime-D4BHgtep.js"
"houseplan-assets/zigbee-topology-runtime-CyJsrZEY.js"
]
},
{
"path": "houseplan-assets/houseplan-onboarding-runtime-CF3GOAef.js",
"sha256": "394525c30c272e196dbb2b8e6a9135bf9163aef8196574eda4aa99537b1a8675",
"path": "houseplan-assets/houseplan-onboarding-runtime-B30IfBfx.js",
"sha256": "cb9e998022ca8cf4844ca19806d587e61fcf3d71a2ba02c5897eecfb8209ba50",
"rawBytes": 28237,
"gzipBytes": 7004,
"gzipBytes": 7001,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/hp-zigbee-topology-overlay-B446qM7D.js",
"sha256": "e186ff6b426c32f1c348a63c7ccf3074eca7759caa690ab357d27faa0d16abb0",
"path": "houseplan-assets/hp-zigbee-topology-overlay-aYygDVQZ.js",
"sha256": "d5cfc4368022da2122b30e2129d457f47b02764bb1b40865d5785ed65030ffd4",
"rawBytes": 11034,
"gzipBytes": 3726,
"gzipBytes": 3728,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js",
"houseplan-assets/zigbee-topology-runtime-D4BHgtep.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js",
"houseplan-assets/zigbee-topology-runtime-CyJsrZEY.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/iso-scene-render-B9sLW6kk.js",
"sha256": "aa3ce6a50fbf804809af54e7333f8bc0b71d3fd0f4c81fd5e7ca84f2c9a69a0b",
"path": "houseplan-assets/iso-scene-render-DH9iLerT.js",
"sha256": "36b6e0690dcd20bfa625b5cc51f173052d7fc082f9101f3f827545308af80e3b",
"rawBytes": 38562,
"gzipBytes": 13086,
"isEntry": false,
"imports": [
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/live-interaction-runtime-CfryAmdG.js",
"sha256": "9dc28132268bcde69a9fb3f5c1c4bcedac389f1ed083f6e304b4f548486d71b1",
"path": "houseplan-assets/live-interaction-runtime-CJemFdgc.js",
"sha256": "57b4ca4e814764f8a836c62c4868dad0c6a2c4560dbfa8fe439189721d9464c0",
"rawBytes": 5196,
"gzipBytes": 2127,
"gzipBytes": 2125,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/pdf-export-C5wOvdYa.js",
"sha256": "464b4781c0a217a1c4c5bd4e8754b11a533e0a547a0de38ffceb3d9ade95a720",
"path": "houseplan-assets/pdf-export-7GKW_zQO.js",
"sha256": "bb3ff46017c926c0fc0818015c5f957d533011096535c5a101130593c9f14a2f",
"rawBytes": 237254,
"gzipBytes": 110115,
"isEntry": false,
"imports": [
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-editor-DY4TSVl8.js",
"sha256": "cc4ea4ec66f3c0d5edde8bbc5895e05246e31b25cf7c162f1a1332fd9327830b",
"path": "houseplan-assets/summary-panel-editor-C2BhNB7f.js",
"sha256": "c00bac66fdcfd86f4d34f2e95c330880594108f593e1130de61ff7d0dc1995ae",
"rawBytes": 14811,
"gzipBytes": 3389,
"gzipBytes": 3387,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/summary-panel-runtime-loaded-CkGmm79D.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-assets/summary-panel-runtime-loaded-D2yd1q4n.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-metrics-S_B1B5Jq.js",
"sha256": "8f0dcfdc679c421a1bedf07238870a20be0b866cba30a56e8e8984ab967b27cd",
"path": "houseplan-assets/summary-panel-metrics-4QsBXToe.js",
"sha256": "554204c7e694484d7acb7ac3fd870c6525b64e251b2e7944c5460cbc35a42403",
"rawBytes": 2195,
"gzipBytes": 1122,
"gzipBytes": 1119,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-runtime-loaded-CkGmm79D.js",
"sha256": "c539fb790f7da3a931e33ead8a64755022592534dac8c71b62a8efe8d778fda9",
"path": "houseplan-assets/summary-panel-runtime-loaded-D2yd1q4n.js",
"sha256": "9a7471286f3e718bc5485e31761f0fa06aa76a1cc329a21e1c64ff5fc912c988",
"rawBytes": 69530,
"gzipBytes": 19036,
"gzipBytes": 19034,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": [
"houseplan-assets/summary-panel-editor-DY4TSVl8.js",
"houseplan-assets/summary-panel-metrics-S_B1B5Jq.js"
"houseplan-assets/summary-panel-editor-C2BhNB7f.js",
"houseplan-assets/summary-panel-metrics-4QsBXToe.js"
]
},
{
"path": "houseplan-assets/zigbee-topology-CBe1sd7h.js",
"sha256": "6d13e6bfadafe5e499357b1809e5ddd9342f895e282cf1a928b264790f80bcdb",
"path": "houseplan-assets/zigbee-topology-jlevIGKY.js",
"sha256": "9c3fad6386c2ac4234b35df437542aa40a64cdc79388fe694b15e38756e4e223",
"rawBytes": 18961,
"gzipBytes": 7428,
"gzipBytes": 7426,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/zigbee-topology-runtime-D4BHgtep.js",
"sha256": "087bd29ef94d830b315f66b25411ac329851cda893ea4dbe553033f05296c968",
"path": "houseplan-assets/zigbee-topology-runtime-CyJsrZEY.js",
"sha256": "04648841aced409a412f775c41e05dcd3844dff99c070ef7f2e056d6cd622b0d",
"rawBytes": 3941,
"gzipBytes": 1762,
"gzipBytes": 1763,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js"
],
"dynamicImports": []
},
{
"path": "houseplan-card.js",
"sha256": "1ae0da3c613ee4cdcc85cf1a35b02548aae90cc542c0acc3bb65dca046e2a4f3",
"sha256": "e58fba5c1a4d6159125805526cb1df145b5dd0e08b3b771edaccff4534787b88",
"rawBytes": 1205,
"gzipBytes": 802,
"gzipBytes": 801,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-panel.js",
"sha256": "0f1190a51d01980a3fb2133e1988744207de54347ac1a8dd3c773bf924b400d9",
"sha256": "8ac8aa855eec35b1ef04c591d91a0f17f74e0debe57905439237370465d082a6",
"rawBytes": 6124,
"gzipBytes": 2305,
"gzipBytes": 2302,
"isEntry": true,
"imports": [
"houseplan-card.js"
@@ -1,14 +1,14 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{t as e,l as o,x as t,e5 as s,A as a,e6 as i,e7 as l,e8 as n,dV as r,b as c}from"./houseplan-card-7tfK7ibx.js";class h extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,h={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},f=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{t as e,l as o,x as t,e5 as s,A as a,e6 as i,e7 as l,e8 as n,dV as r,b as c}from"./houseplan-card-CcuyI-r4.js";class f extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,f={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},h=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
.hass=${this.hass}
.data=${this._formData}
.schema=${e}
.computeLabel=${e=>h[e.name]||e.name}
.computeLabel=${e=>f[e.name]||e.name}
@value-changed=${this._valueChanged}
></ha-form>`;return c`
${d(f.slice(0,3))}
${d(h.slice(0,3))}
${_?c`<div class="default-floor-error" role="alert"
style="color:var(--error-color,#db4437);margin:-4px 0 12px;overflow-wrap:anywhere">
${t(s,"editor.default_floor_missing",{id:_})}
</div>`:a}
${d(f.slice(3))}
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}h.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",h);
${d(h.slice(3))}
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}f.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",f);
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{dT as r,dU as t,dV as s}from"./houseplan-card-7tfK7ibx.js";const e={},a=r(class extends t{constructor(){super(...arguments),this.ot=e}render(r,t){return t()}update(r,[t,e]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return s}else if(this.ot===t)return s;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,e)}});export{a as i};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{dT as r,dU as t,dV as s}from"./houseplan-card-CcuyI-r4.js";const e={},a=r(class extends t{constructor(){super(...arguments),this.ot=e}render(r,t){return t()}update(r,[t,e]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return s}else if(this.ot===t)return s;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,e)}});export{a as i};
@@ -1,4 +1,4 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{b as a,A as e}from"./houseplan-card-7tfK7ibx.js";import{s,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-CkGmm79D.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{b as a,A as e}from"./houseplan-card-CcuyI-r4.js";import{s,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-D2yd1q4n.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
<span class="summary-switch-caption"><strong>${b("summary.show_local")}</strong>
<small id="summary-local-show-hint">${b("summary.show_local_hint")}</small></span>
<input id="summary-local-show" data-summary-local-show type="checkbox"
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{az as e,ea as t,eb as n,bs as i,ec as r,P as a,a5 as s,M as o,aq as c,N as l,bq as d,bp as u,ed as f}from"./houseplan-card-7tfK7ibx.js";function g(t){if(!t.registry.authoritative)return null;const n=new Set,i=e(t.markers);for(const e of Object.values(t.registry.devices||{}))e?.id&&"service"!==e.entry_type&&!i.devices.has(e.id)&&e.area_id&&t.areaToSpace[e.area_id]&&n.add(e.id);for(const e of t.markers||[]){if(e.removed||"virtual"===e.binding)continue;const r=String(e.binding||"").indexOf(":");if(r<1)continue;const a=e.binding.slice(0,r),s=e.binding.slice(r+1),o="device"===a?t.registry.devices?.[s]:null,c="entity"===a?t.registry.entities?.[s]:null,l="device"===a?s:c?.device_id,d="device"===a?o?.area_id:c?.area_id||l&&t.registry.devices?.[l]?.area_id,u="string"==typeof e.room_id&&e.room_id.length>0&&null===e.area?"":e.area||d||"",f=u&&t.areaToSpace[u]||e.space||t.firstSpaceId;l&&t.registry.devices?.[l]&&t.spaceIds.has(f)&&(!i.devices.has(l)||"entity"===a&&i.liveEntities.has(s))&&n.add(l)}return n}function m(e,t){return e?.length?t?.length?f(e,t):e:t}function v(e,t){try{let n=0;for(const i of t){const t=e.spaces.find(e=>String(e?.id)===i.id);if(!t)continue;const f=r(t,i);let g=null;for(const e of i.rooms){if(!e.id)continue;const t=a(e);if(!t)continue;const n=s(i.rooms,e.id,f.walls,f.openCuts,o,f.cellCm,c,l)||t;g=m(g,d(n,f.physicalBodies))}const v=f.cellCm/c;n+=u(g)*v*v/1e4}return n}catch{return null}}function y(e,t,n,r){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:i(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(r||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function _(e,i){const r=e?.states?.[i];if(!r)return null;const a=t(e,i);return a?n(a,String(r.attributes?.unit_of_measurement||"")):null}export{g as representedHaDeviceIds,_ as summaryEntityValue,y as summarySystemValue,v as totalCleanFloorAreaM2};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{az as e,ea as t,eb as n,bs as i,ec as r,P as a,a5 as s,M as o,aq as c,N as d,bq as l,bp as u,ed as f}from"./houseplan-card-CcuyI-r4.js";function g(t){if(!t.registry.authoritative)return null;const n=new Set,i=e(t.markers);for(const e of Object.values(t.registry.devices||{}))e?.id&&"service"!==e.entry_type&&!i.devices.has(e.id)&&e.area_id&&t.areaToSpace[e.area_id]&&n.add(e.id);for(const e of t.markers||[]){if(e.removed||"virtual"===e.binding)continue;const r=String(e.binding||"").indexOf(":");if(r<1)continue;const a=e.binding.slice(0,r),s=e.binding.slice(r+1),o="device"===a?t.registry.devices?.[s]:null,c="entity"===a?t.registry.entities?.[s]:null,d="device"===a?s:c?.device_id,l="device"===a?o?.area_id:c?.area_id||d&&t.registry.devices?.[d]?.area_id,u="string"==typeof e.room_id&&e.room_id.length>0&&null===e.area?"":e.area||l||"",f=u&&t.areaToSpace[u]||e.space||t.firstSpaceId;d&&t.registry.devices?.[d]&&t.spaceIds.has(f)&&(!i.devices.has(d)||"entity"===a&&i.liveEntities.has(s))&&n.add(d)}return n}function m(e,t){return e?.length?t?.length?f(e,t):e:t}function v(e,t){try{let n=0;for(const i of t){const t=e.spaces.find(e=>String(e?.id)===i.id);if(!t)continue;const f=r(t,i);let g=null;for(const e of i.rooms){if(!e.id)continue;const t=a(e);if(!t)continue;const n=s(i.rooms,e.id,f.walls,f.openCuts,o,f.cellCm,c,d)||t;g=m(g,l(n,f.physicalBodies))}const v=f.cellCm/c;n+=u(g)*v*v/1e4}return n}catch{return null}}function y(e,t,n,r){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:i(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(r||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function _(e,i){const r=e?.states?.[i];if(!r)return null;const a=t(e,i);return a?n(a,String(r.attributes?.unit_of_measurement||"")):null}export{g as representedHaDeviceIds,_ as summaryEntityValue,y as summarySystemValue,v as totalCleanFloorAreaM2};
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{n as t,b as n}from"./zigbee-topology-CBe1sd7h.js";import{F as e}from"./houseplan-card-7tfK7ibx.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function f(t){if(!0!==t?.user?.is_admin)throw a("permission")}function p(n){const e=i(n);return e?c(e,"zha",async()=>{if(f(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(f(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,p=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const f=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&p?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{p as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{n as t,b as n}from"./zigbee-topology-jlevIGKY.js";import{F as e}from"./houseplan-card-CcuyI-r4.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function f(t){if(!0!==t?.user?.is_admin)throw a("permission")}function p(n){const e=i(n);return e?c(e,"zha",async()=>{if(f(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(f(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,p=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const f=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&p?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{p as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";try{await import("./houseplan-assets/houseplan-card-7tfK7ibx.js")}catch(e){if(!customElements.get("houseplan-card")){const l=String(navigator.language||"en").toLowerCase();const m=l.startsWith("ru")?"House Plan обновился — перезагрузите страницу (Ctrl+F5).":l.startsWith("de")?"House Plan wurde aktualisiert — bitte laden Sie die Seite neu (Strg+F5).":l.startsWith("fr")?"House Plan a été mis à jour — veuillez recharger la page (Ctrl+F5).":"House Plan was updated — please reload the page (Ctrl+F5).";customElements.define("houseplan-card",class extends HTMLElement{setConfig(){}getCardSize(){return 1}connectedCallback(){this.style.cssText="display:block;box-sizing:border-box;padding:16px;border:1px solid var(--divider-color,#e0e0e0);border-radius:var(--ha-card-border-radius,12px);background:var(--card-background-color,#fff);color:var(--primary-text-color,#212121);font:14px/1.4 var(--paper-font-body1_-_font-family,sans-serif)";this.textContent=m}})}console.error("[houseplan] stale houseplan-card.js: the implementation chunk is unavailable",e)}
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";try{await import("./houseplan-assets/houseplan-card-CcuyI-r4.js")}catch(e){if(!customElements.get("houseplan-card")){const l=String(navigator.language||"en").toLowerCase();const m=l.startsWith("ru")?"House Plan обновился — перезагрузите страницу (Ctrl+F5).":l.startsWith("de")?"House Plan wurde aktualisiert — bitte laden Sie die Seite neu (Strg+F5).":l.startsWith("fr")?"House Plan a été mis à jour — veuillez recharger la page (Ctrl+F5).":"House Plan was updated — please reload the page (Ctrl+F5).";customElements.define("houseplan-card",class extends HTMLElement{setConfig(){}getCardSize(){return 1}connectedCallback(){this.style.cssText="display:block;box-sizing:border-box;padding:16px;border:1px solid var(--divider-color,#e0e0e0);border-radius:var(--ha-card-border-radius,12px);background:var(--card-background-color,#fff);color:var(--primary-text-color,#212121);font:14px/1.4 var(--paper-font-body1_-_font-family,sans-serif)";this.textContent=m}})}console.error("[houseplan] stale houseplan-card.js: the implementation chunk is unavailable",e)}
File diff suppressed because one or more lines are too long
+140 -140
View File
@@ -1,309 +1,309 @@
{
"schema": 1,
"fingerprint": "7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb",
"fingerprint": "4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575",
"entry": "houseplan-card.js",
"panelEntry": "houseplan-panel.js",
"initialViewFiles": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-card.js"
],
"initialViewGzipBytes": 298629,
"initialViewGzipBytes": 298581,
"initialPanelFiles": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-card.js",
"houseplan-panel.js"
],
"initialPanelGzipBytes": 300934,
"initialPanelGzipBytes": 300883,
"initialPanelOnlyFiles": [
"houseplan-panel.js"
],
"initialPanelOnlyGzipBytes": 2305,
"initialPanelOnlyGzipBytes": 2302,
"lazyFiles": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/de-BsefHUSw.js",
"houseplan-assets/editor-CoUfn86L.js",
"houseplan-assets/fr-e39xJFBJ.js",
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/houseplan-editor-runtime-OamJbma6.js",
"houseplan-assets/houseplan-onboarding-runtime-CF3GOAef.js",
"houseplan-assets/hp-zigbee-topology-overlay-B446qM7D.js",
"houseplan-assets/iso-scene-render-B9sLW6kk.js",
"houseplan-assets/live-interaction-runtime-CfryAmdG.js",
"houseplan-assets/pdf-export-C5wOvdYa.js",
"houseplan-assets/summary-panel-runtime-loaded-CkGmm79D.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js",
"houseplan-assets/zigbee-topology-runtime-D4BHgtep.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/de-Ca2zS-Tw.js",
"houseplan-assets/editor-W2o7Dn-g.js",
"houseplan-assets/fr-DJM-kqNh.js",
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/houseplan-editor-runtime-D-oKNVtj.js",
"houseplan-assets/houseplan-onboarding-runtime-B30IfBfx.js",
"houseplan-assets/hp-zigbee-topology-overlay-aYygDVQZ.js",
"houseplan-assets/iso-scene-render-DH9iLerT.js",
"houseplan-assets/live-interaction-runtime-CJemFdgc.js",
"houseplan-assets/pdf-export-7GKW_zQO.js",
"houseplan-assets/summary-panel-runtime-loaded-D2yd1q4n.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js",
"houseplan-assets/zigbee-topology-runtime-CyJsrZEY.js"
],
"lazyGzipBytes": 417358,
"lazyGzipBytes": 417341,
"lazyEditorFiles": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/editor-CoUfn86L.js",
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/houseplan-editor-runtime-OamJbma6.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/editor-W2o7Dn-g.js",
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/houseplan-editor-runtime-D-oKNVtj.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js"
],
"lazyEditorGzipBytes": 205651,
"lazyEditorGzipBytes": 205645,
"lazyOnboardingFiles": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/houseplan-onboarding-runtime-CF3GOAef.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/houseplan-onboarding-runtime-B30IfBfx.js"
],
"lazyOnboardingGzipBytes": 14149,
"lazyOnboardingGzipBytes": 14147,
"lazyLocaleFiles": [
"houseplan-assets/de-BsefHUSw.js",
"houseplan-assets/fr-e39xJFBJ.js"
"houseplan-assets/de-Ca2zS-Tw.js",
"houseplan-assets/fr-DJM-kqNh.js"
],
"lazyLocaleGzipBytes": 54851,
"lazyLocaleGzipBytes": 54844,
"lazyIsometricFiles": [
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/iso-scene-render-B9sLW6kk.js"
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/iso-scene-render-DH9iLerT.js"
],
"lazyIsometricGzipBytes": 13455,
"lazyIsometricGzipBytes": 13454,
"lazyFurnitureArtFiles": [
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js"
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js"
],
"lazyFurnitureArtGzipBytes": 10253,
"lazyFurnitureArtGzipBytes": 10254,
"lazyPdfFiles": [
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/pdf-export-C5wOvdYa.js"
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/pdf-export-7GKW_zQO.js"
],
"lazyPdfGzipBytes": 120368,
"lazyPdfGzipBytes": 120369,
"files": [
{
"path": "houseplan-assets/backdrop-pick-BLUd8cDA.js",
"sha256": "3ebab0c26f7550548561d43a9f74c68b7b57a07dfb847d0d450015f838034f7f",
"path": "houseplan-assets/backdrop-pick-CwadwWPw.js",
"sha256": "2e328f67a24ca37a17e9893fc409ec07059fa88ae3a6fb21f5863ba6f89d4090",
"rawBytes": 21134,
"gzipBytes": 7145,
"gzipBytes": 7146,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/de-BsefHUSw.js",
"sha256": "9095c3da1f92bfaa20446b45c5c6127faa0de2015ff9267546c56df012776511",
"path": "houseplan-assets/de-Ca2zS-Tw.js",
"sha256": "e85cfc9cc9d6c1ad6040c8b00d6101160f55ee15c355ba7b41a6a2b92542ef27",
"rawBytes": 91441,
"gzipBytes": 27709,
"gzipBytes": 27707,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/editor-CoUfn86L.js",
"sha256": "9f9dc123f7fb2df718fbfb3535832c6652de67efdb56551dfea01342bf4a0cd3",
"path": "houseplan-assets/editor-W2o7Dn-g.js",
"sha256": "e681dc33c5c444bff668f670a9556d80df8990df7d94d51185825d5ebe2fed36",
"rawBytes": 3837,
"gzipBytes": 1586,
"gzipBytes": 1584,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/fr-e39xJFBJ.js",
"sha256": "52e6d716d228997f765b481430090f019f787ed185194dc1b2056d20a3e4b2a5",
"path": "houseplan-assets/fr-DJM-kqNh.js",
"sha256": "e66cdcb758adae07ede97bc1a641e6c818a82e69483f1e9384a19d929dba3925",
"rawBytes": 93719,
"gzipBytes": 27142,
"gzipBytes": 27137,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"sha256": "3472ee68e4c04600730629c7a35d0d5e085ca9035066b91f645519a54b3b9e13",
"path": "houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"sha256": "40613e8ae66251a6727d5570d89fc541228494e3edf6356f67b42fc01b18f1e5",
"rawBytes": 33655,
"gzipBytes": 10253,
"gzipBytes": 10254,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/guard-Bph2SWa8.js",
"sha256": "e1e12564b592a854542aeda8139eb37dfd8a7ca72cb78823e87761883bedaf66",
"path": "houseplan-assets/guard-Cnk6ijtT.js",
"sha256": "b6f404fa3444217e5cf3db0de73ba45e532f63830fd0b42d1429d7befbfab533",
"rawBytes": 518,
"gzipBytes": 369,
"gzipBytes": 368,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/houseplan-card-7tfK7ibx.js",
"sha256": "259da7454641d80fb81efd65eaac296c572a260304bb45f61e2d519a32069e13",
"rawBytes": 1075481,
"gzipBytes": 297827,
"path": "houseplan-assets/houseplan-card-CcuyI-r4.js",
"sha256": "9d5a72062970d4a61cb48695b47d1bf86e1bcb2015ddf3779dd54df9a733ca78",
"rawBytes": 1075395,
"gzipBytes": 297780,
"isEntry": false,
"imports": [],
"dynamicImports": [
"houseplan-assets/de-BsefHUSw.js",
"houseplan-assets/editor-CoUfn86L.js",
"houseplan-assets/fr-e39xJFBJ.js",
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/houseplan-editor-runtime-OamJbma6.js",
"houseplan-assets/houseplan-onboarding-runtime-CF3GOAef.js",
"houseplan-assets/hp-zigbee-topology-overlay-B446qM7D.js",
"houseplan-assets/iso-scene-render-B9sLW6kk.js",
"houseplan-assets/live-interaction-runtime-CfryAmdG.js",
"houseplan-assets/pdf-export-C5wOvdYa.js",
"houseplan-assets/summary-panel-runtime-loaded-CkGmm79D.js"
"houseplan-assets/de-Ca2zS-Tw.js",
"houseplan-assets/editor-W2o7Dn-g.js",
"houseplan-assets/fr-DJM-kqNh.js",
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/houseplan-editor-runtime-D-oKNVtj.js",
"houseplan-assets/houseplan-onboarding-runtime-B30IfBfx.js",
"houseplan-assets/hp-zigbee-topology-overlay-aYygDVQZ.js",
"houseplan-assets/iso-scene-render-DH9iLerT.js",
"houseplan-assets/live-interaction-runtime-CJemFdgc.js",
"houseplan-assets/pdf-export-7GKW_zQO.js",
"houseplan-assets/summary-panel-runtime-loaded-D2yd1q4n.js"
]
},
{
"path": "houseplan-assets/houseplan-editor-runtime-OamJbma6.js",
"sha256": "f07b1e01304f9aea21ebd59556756f433556193e883689e047dfb875a184b16a",
"path": "houseplan-assets/houseplan-editor-runtime-D-oKNVtj.js",
"sha256": "de651a6b8cd99d06fb5f8c422f02d6b7a01f6cfe1a32c310267da8036e714cbf",
"rawBytes": 671979,
"gzipBytes": 178870,
"gzipBytes": 178867,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js"
],
"dynamicImports": [
"houseplan-assets/zigbee-topology-runtime-D4BHgtep.js"
"houseplan-assets/zigbee-topology-runtime-CyJsrZEY.js"
]
},
{
"path": "houseplan-assets/houseplan-onboarding-runtime-CF3GOAef.js",
"sha256": "394525c30c272e196dbb2b8e6a9135bf9163aef8196574eda4aa99537b1a8675",
"path": "houseplan-assets/houseplan-onboarding-runtime-B30IfBfx.js",
"sha256": "cb9e998022ca8cf4844ca19806d587e61fcf3d71a2ba02c5897eecfb8209ba50",
"rawBytes": 28237,
"gzipBytes": 7004,
"gzipBytes": 7001,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-BLUd8cDA.js",
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/backdrop-pick-CwadwWPw.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/hp-zigbee-topology-overlay-B446qM7D.js",
"sha256": "e186ff6b426c32f1c348a63c7ccf3074eca7759caa690ab357d27faa0d16abb0",
"path": "houseplan-assets/hp-zigbee-topology-overlay-aYygDVQZ.js",
"sha256": "d5cfc4368022da2122b30e2129d457f47b02764bb1b40865d5785ed65030ffd4",
"rawBytes": 11034,
"gzipBytes": 3726,
"gzipBytes": 3728,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js",
"houseplan-assets/zigbee-topology-runtime-D4BHgtep.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js",
"houseplan-assets/zigbee-topology-runtime-CyJsrZEY.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/iso-scene-render-B9sLW6kk.js",
"sha256": "aa3ce6a50fbf804809af54e7333f8bc0b71d3fd0f4c81fd5e7ca84f2c9a69a0b",
"path": "houseplan-assets/iso-scene-render-DH9iLerT.js",
"sha256": "36b6e0690dcd20bfa625b5cc51f173052d7fc082f9101f3f827545308af80e3b",
"rawBytes": 38562,
"gzipBytes": 13086,
"isEntry": false,
"imports": [
"houseplan-assets/guard-Bph2SWa8.js",
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/guard-Cnk6ijtT.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/live-interaction-runtime-CfryAmdG.js",
"sha256": "9dc28132268bcde69a9fb3f5c1c4bcedac389f1ed083f6e304b4f548486d71b1",
"path": "houseplan-assets/live-interaction-runtime-CJemFdgc.js",
"sha256": "57b4ca4e814764f8a836c62c4868dad0c6a2c4560dbfa8fe439189721d9464c0",
"rawBytes": 5196,
"gzipBytes": 2127,
"gzipBytes": 2125,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/pdf-export-C5wOvdYa.js",
"sha256": "464b4781c0a217a1c4c5bd4e8754b11a533e0a547a0de38ffceb3d9ade95a720",
"path": "houseplan-assets/pdf-export-7GKW_zQO.js",
"sha256": "bb3ff46017c926c0fc0818015c5f957d533011096535c5a101130593c9f14a2f",
"rawBytes": 237254,
"gzipBytes": 110115,
"isEntry": false,
"imports": [
"houseplan-assets/furniture-plan-art.generated-CqvStOCL.js",
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/furniture-plan-art.generated-YYgsMIln.js",
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-editor-DY4TSVl8.js",
"sha256": "cc4ea4ec66f3c0d5edde8bbc5895e05246e31b25cf7c162f1a1332fd9327830b",
"path": "houseplan-assets/summary-panel-editor-C2BhNB7f.js",
"sha256": "c00bac66fdcfd86f4d34f2e95c330880594108f593e1130de61ff7d0dc1995ae",
"rawBytes": 14811,
"gzipBytes": 3389,
"gzipBytes": 3387,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/summary-panel-runtime-loaded-CkGmm79D.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-assets/summary-panel-runtime-loaded-D2yd1q4n.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-metrics-S_B1B5Jq.js",
"sha256": "8f0dcfdc679c421a1bedf07238870a20be0b866cba30a56e8e8984ab967b27cd",
"path": "houseplan-assets/summary-panel-metrics-4QsBXToe.js",
"sha256": "554204c7e694484d7acb7ac3fd870c6525b64e251b2e7944c5460cbc35a42403",
"rawBytes": 2195,
"gzipBytes": 1122,
"gzipBytes": 1119,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-runtime-loaded-CkGmm79D.js",
"sha256": "c539fb790f7da3a931e33ead8a64755022592534dac8c71b62a8efe8d778fda9",
"path": "houseplan-assets/summary-panel-runtime-loaded-D2yd1q4n.js",
"sha256": "9a7471286f3e718bc5485e31761f0fa06aa76a1cc329a21e1c64ff5fc912c988",
"rawBytes": 69530,
"gzipBytes": 19036,
"gzipBytes": 19034,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": [
"houseplan-assets/summary-panel-editor-DY4TSVl8.js",
"houseplan-assets/summary-panel-metrics-S_B1B5Jq.js"
"houseplan-assets/summary-panel-editor-C2BhNB7f.js",
"houseplan-assets/summary-panel-metrics-4QsBXToe.js"
]
},
{
"path": "houseplan-assets/zigbee-topology-CBe1sd7h.js",
"sha256": "6d13e6bfadafe5e499357b1809e5ddd9342f895e282cf1a928b264790f80bcdb",
"path": "houseplan-assets/zigbee-topology-jlevIGKY.js",
"sha256": "9c3fad6386c2ac4234b35df437542aa40a64cdc79388fe694b15e38756e4e223",
"rawBytes": 18961,
"gzipBytes": 7428,
"gzipBytes": 7426,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/zigbee-topology-runtime-D4BHgtep.js",
"sha256": "087bd29ef94d830b315f66b25411ac329851cda893ea4dbe553033f05296c968",
"path": "houseplan-assets/zigbee-topology-runtime-CyJsrZEY.js",
"sha256": "04648841aced409a412f775c41e05dcd3844dff99c070ef7f2e056d6cd622b0d",
"rawBytes": 3941,
"gzipBytes": 1762,
"gzipBytes": 1763,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js",
"houseplan-assets/zigbee-topology-CBe1sd7h.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js",
"houseplan-assets/zigbee-topology-jlevIGKY.js"
],
"dynamicImports": []
},
{
"path": "houseplan-card.js",
"sha256": "1ae0da3c613ee4cdcc85cf1a35b02548aae90cc542c0acc3bb65dca046e2a4f3",
"sha256": "e58fba5c1a4d6159125805526cb1df145b5dd0e08b3b771edaccff4534787b88",
"rawBytes": 1205,
"gzipBytes": 802,
"gzipBytes": 801,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-7tfK7ibx.js"
"houseplan-assets/houseplan-card-CcuyI-r4.js"
],
"dynamicImports": []
},
{
"path": "houseplan-panel.js",
"sha256": "0f1190a51d01980a3fb2133e1988744207de54347ac1a8dd3c773bf924b400d9",
"sha256": "8ac8aa855eec35b1ef04c591d91a0f17f74e0debe57905439237370465d082a6",
"rawBytes": 6124,
"gzipBytes": 2305,
"gzipBytes": 2302,
"isEntry": true,
"imports": [
"houseplan-card.js"
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,14 +1,14 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{t as e,l as o,x as t,e5 as s,A as a,e6 as i,e7 as l,e8 as n,dV as r,b as c}from"./houseplan-card-7tfK7ibx.js";class h extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,h={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},f=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{t as e,l as o,x as t,e5 as s,A as a,e6 as i,e7 as l,e8 as n,dV as r,b as c}from"./houseplan-card-CcuyI-r4.js";class f extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,f={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},h=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
.hass=${this.hass}
.data=${this._formData}
.schema=${e}
.computeLabel=${e=>h[e.name]||e.name}
.computeLabel=${e=>f[e.name]||e.name}
@value-changed=${this._valueChanged}
></ha-form>`;return c`
${d(f.slice(0,3))}
${d(h.slice(0,3))}
${_?c`<div class="default-floor-error" role="alert"
style="color:var(--error-color,#db4437);margin:-4px 0 12px;overflow-wrap:anywhere">
${t(s,"editor.default_floor_missing",{id:_})}
</div>`:a}
${d(f.slice(3))}
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}h.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",h);
${d(h.slice(3))}
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}f.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",f);
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{dT as r,dU as t,dV as s}from"./houseplan-card-7tfK7ibx.js";const e={},a=r(class extends t{constructor(){super(...arguments),this.ot=e}render(r,t){return t()}update(r,[t,e]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return s}else if(this.ot===t)return s;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,e)}});export{a as i};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{dT as r,dU as t,dV as s}from"./houseplan-card-CcuyI-r4.js";const e={},a=r(class extends t{constructor(){super(...arguments),this.ot=e}render(r,t){return t()}update(r,[t,e]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return s}else if(this.ot===t)return s;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,e)}});export{a as i};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{b as a,A as e}from"./houseplan-card-7tfK7ibx.js";import{s,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-CkGmm79D.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{b as a,A as e}from"./houseplan-card-CcuyI-r4.js";import{s,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-D2yd1q4n.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
<span class="summary-switch-caption"><strong>${b("summary.show_local")}</strong>
<small id="summary-local-show-hint">${b("summary.show_local_hint")}</small></span>
<input id="summary-local-show" data-summary-local-show type="checkbox"
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{az as e,ea as t,eb as n,bs as i,ec as r,P as a,a5 as s,M as o,aq as c,N as l,bq as d,bp as u,ed as f}from"./houseplan-card-7tfK7ibx.js";function g(t){if(!t.registry.authoritative)return null;const n=new Set,i=e(t.markers);for(const e of Object.values(t.registry.devices||{}))e?.id&&"service"!==e.entry_type&&!i.devices.has(e.id)&&e.area_id&&t.areaToSpace[e.area_id]&&n.add(e.id);for(const e of t.markers||[]){if(e.removed||"virtual"===e.binding)continue;const r=String(e.binding||"").indexOf(":");if(r<1)continue;const a=e.binding.slice(0,r),s=e.binding.slice(r+1),o="device"===a?t.registry.devices?.[s]:null,c="entity"===a?t.registry.entities?.[s]:null,l="device"===a?s:c?.device_id,d="device"===a?o?.area_id:c?.area_id||l&&t.registry.devices?.[l]?.area_id,u="string"==typeof e.room_id&&e.room_id.length>0&&null===e.area?"":e.area||d||"",f=u&&t.areaToSpace[u]||e.space||t.firstSpaceId;l&&t.registry.devices?.[l]&&t.spaceIds.has(f)&&(!i.devices.has(l)||"entity"===a&&i.liveEntities.has(s))&&n.add(l)}return n}function m(e,t){return e?.length?t?.length?f(e,t):e:t}function v(e,t){try{let n=0;for(const i of t){const t=e.spaces.find(e=>String(e?.id)===i.id);if(!t)continue;const f=r(t,i);let g=null;for(const e of i.rooms){if(!e.id)continue;const t=a(e);if(!t)continue;const n=s(i.rooms,e.id,f.walls,f.openCuts,o,f.cellCm,c,l)||t;g=m(g,d(n,f.physicalBodies))}const v=f.cellCm/c;n+=u(g)*v*v/1e4}return n}catch{return null}}function y(e,t,n,r){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:i(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(r||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function _(e,i){const r=e?.states?.[i];if(!r)return null;const a=t(e,i);return a?n(a,String(r.attributes?.unit_of_measurement||"")):null}export{g as representedHaDeviceIds,_ as summaryEntityValue,y as summarySystemValue,v as totalCleanFloorAreaM2};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{az as e,ea as t,eb as n,bs as i,ec as r,P as a,a5 as s,M as o,aq as c,N as d,bq as l,bp as u,ed as f}from"./houseplan-card-CcuyI-r4.js";function g(t){if(!t.registry.authoritative)return null;const n=new Set,i=e(t.markers);for(const e of Object.values(t.registry.devices||{}))e?.id&&"service"!==e.entry_type&&!i.devices.has(e.id)&&e.area_id&&t.areaToSpace[e.area_id]&&n.add(e.id);for(const e of t.markers||[]){if(e.removed||"virtual"===e.binding)continue;const r=String(e.binding||"").indexOf(":");if(r<1)continue;const a=e.binding.slice(0,r),s=e.binding.slice(r+1),o="device"===a?t.registry.devices?.[s]:null,c="entity"===a?t.registry.entities?.[s]:null,d="device"===a?s:c?.device_id,l="device"===a?o?.area_id:c?.area_id||d&&t.registry.devices?.[d]?.area_id,u="string"==typeof e.room_id&&e.room_id.length>0&&null===e.area?"":e.area||l||"",f=u&&t.areaToSpace[u]||e.space||t.firstSpaceId;d&&t.registry.devices?.[d]&&t.spaceIds.has(f)&&(!i.devices.has(d)||"entity"===a&&i.liveEntities.has(s))&&n.add(d)}return n}function m(e,t){return e?.length?t?.length?f(e,t):e:t}function v(e,t){try{let n=0;for(const i of t){const t=e.spaces.find(e=>String(e?.id)===i.id);if(!t)continue;const f=r(t,i);let g=null;for(const e of i.rooms){if(!e.id)continue;const t=a(e);if(!t)continue;const n=s(i.rooms,e.id,f.walls,f.openCuts,o,f.cellCm,c,d)||t;g=m(g,l(n,f.physicalBodies))}const v=f.cellCm/c;n+=u(g)*v*v/1e4}return n}catch{return null}}function y(e,t,n,r){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:i(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(r||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function _(e,i){const r=e?.states?.[i];if(!r)return null;const a=t(e,i);return a?n(a,String(r.attributes?.unit_of_measurement||"")):null}export{g as representedHaDeviceIds,_ as summaryEntityValue,y as summarySystemValue,v as totalCleanFloorAreaM2};
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";import{n as t,b as n}from"./zigbee-topology-CBe1sd7h.js";import{F as e}from"./houseplan-card-7tfK7ibx.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function f(t){if(!0!==t?.user?.is_admin)throw a("permission")}function p(n){const e=i(n);return e?c(e,"zha",async()=>{if(f(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(f(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,p=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const f=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&p?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{p as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";import{n as t,b as n}from"./zigbee-topology-jlevIGKY.js";import{F as e}from"./houseplan-card-CcuyI-r4.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function f(t){if(!0!==t?.user?.is_admin)throw a("permission")}function p(n){const e=i(n);return e?c(e,"zha",async()=>{if(f(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(f(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,p=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const f=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&p?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{p as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
+1 -1
View File
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="7516d96aaa361028e61fc778bf10c0ca76f2283f98d75b7d1e9fb43625a96acb";try{await import("./houseplan-assets/houseplan-card-7tfK7ibx.js")}catch(e){if(!customElements.get("houseplan-card")){const l=String(navigator.language||"en").toLowerCase();const m=l.startsWith("ru")?"House Plan обновился — перезагрузите страницу (Ctrl+F5).":l.startsWith("de")?"House Plan wurde aktualisiert — bitte laden Sie die Seite neu (Strg+F5).":l.startsWith("fr")?"House Plan a été mis à jour — veuillez recharger la page (Ctrl+F5).":"House Plan was updated — please reload the page (Ctrl+F5).";customElements.define("houseplan-card",class extends HTMLElement{setConfig(){}getCardSize(){return 1}connectedCallback(){this.style.cssText="display:block;box-sizing:border-box;padding:16px;border:1px solid var(--divider-color,#e0e0e0);border-radius:var(--ha-card-border-radius,12px);background:var(--card-background-color,#fff);color:var(--primary-text-color,#212121);font:14px/1.4 var(--paper-font-body1_-_font-family,sans-serif)";this.textContent=m}})}console.error("[houseplan] stale houseplan-card.js: the implementation chunk is unavailable",e)}
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="4c289ff2fbf0a2df9cd9ca8f6f3c286d9d2c67019a1ced4be717a7d101800575";try{await import("./houseplan-assets/houseplan-card-CcuyI-r4.js")}catch(e){if(!customElements.get("houseplan-card")){const l=String(navigator.language||"en").toLowerCase();const m=l.startsWith("ru")?"House Plan обновился — перезагрузите страницу (Ctrl+F5).":l.startsWith("de")?"House Plan wurde aktualisiert — bitte laden Sie die Seite neu (Strg+F5).":l.startsWith("fr")?"House Plan a été mis à jour — veuillez recharger la page (Ctrl+F5).":"House Plan was updated — please reload the page (Ctrl+F5).";customElements.define("houseplan-card",class extends HTMLElement{setConfig(){}getCardSize(){return 1}connectedCallback(){this.style.cssText="display:block;box-sizing:border-box;padding:16px;border:1px solid var(--divider-color,#e0e0e0);border-radius:var(--ha-card-border-radius,12px);background:var(--card-background-color,#fff);color:var(--primary-text-color,#212121);font:14px/1.4 var(--paper-font-body1_-_font-family,sans-serif)";this.textContent=m}})}console.error("[houseplan] stale houseplan-card.js: the implementation chunk is unavailable",e)}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -22,7 +22,7 @@ metadata). Only an explicit owner-approved emergency hotfix may skip this gate.
| Item | State |
|---|---|
| Version | **v1.73.0-beta.8** everywhere (manifest, const.py, package.json, CARD_VERSION) |
| Current local cycle | v1.73.0-beta.8 aligns the summary panel, split header control and wide settings dialog with the designer prototype, adds smooth hiding, removes redundant size controls and links mobile visibility to local panel visibility (#505). Backup imports report committed results reliably, and removed or re-targeted robot map routes no longer restore deleted runs after restart (#495). Both issues passed independent review and are merged into `dev`. Publication requires fresh reviewed documentation screenshots and green exact-SHA Validate; `main` remains at v1.72.0. |
| Current local cycle | v1.73.0-beta.8 aligns the summary panel, split header control and wide settings dialog with the designer prototype, adds smooth hiding, removes redundant size controls and links mobile visibility to local panel visibility (#505). Backup imports report committed results reliably, and removed or re-targeted robot map routes no longer restore deleted runs after restart (#495). Upload quota accounting, SVG reference-depth limits and support-package palette privacy are hardened (#498). All three issues passed independent review and are merged into `dev`. Publication requires fresh reviewed documentation screenshots and green exact-SHA Validate; `main` remains at v1.72.0. |
| Hidden Alpha Stage | #89 Stage 1 ships in v1.63.0-beta.1, #122 Stage 2 in v1.64.0 and #160 Stage 3 in v1.73.0-beta.1. The same hidden `iso` view uses the fixed 4° camera, raised/tethered device-room-lock overlays, deeper openings and bounded theme materials; #471 removes the overlay plates from paint while retaining their safety geometry. Since #448 the experiment is enabled only through the single indefinite browser-local `hp_alpha` gate; it is not expiring and has no per-stage key. Flat remains default; editors, `houseplan-space-card`, floor effects, stored coordinates and HA actions remain unchanged. Stage 3 stays internal and is absent from public changelog/user documentation. |
| Workflow | Superseded 2026-08-12: the pre-1.62 rule of "local edits without tests or commits" is **dead** — since release 1.62 every product change follows `PROCESS.md` (issue in `S5-ready`+, branch `issue/<NN>-slug`, trailers on every commit, review pipeline; `AGENTS.md` is the summary). Release mechanics below remain current. A requested pre-release gets a production build plus the smallest targeted unit/smoke set covering the changed surfaces, one tested `dev` commit/tag and a GitHub Release with `prerelease=true`; `main` stays untouched. The complete local frontend/backend/smoke gate runs only before a stable release, after which `main` is fast-forwarded to the exact tested `dev` SHA and the GitHub Release uses `prerelease=false`. Release bodies are short and bilingual (Russian first); every bullet links its GitHub issue (#NN) so the #328 rules stay machine-checkable. A STABLE body aggregates the changelog since the PREVIOUS STABLE release (never since the last beta): features/fixes described across the line's beta changelogs must appear, while bugs that were introduced and fixed strictly inside the beta line (never shipped in any stable) are excluded — draft with `npm run release:notes -- <tag>`, curate by hand, then `npm run release:notes -- <tag> --verify` must pass. `Мелкие исправления и улучшения` / `Small fixes and improvements` is allowed only when the range really contains user-visible work not itemised in the body; a single-issue hotfix ships without it (the verifier enforces this). Every body ends with separate links to the Russian and English changelogs. Open or partially delivered issues are never presented as shipped. Telegram announcements are sent only for stable releases; beta and RC publication is silent. `docs/RELEASE-NOTES.md` is the current canonical body instance; `npm run release:prerelease -- <tag> --issues=… --yes` is the primary local publication path and the manual `Publish prerelease` workflow is its GitHub-only equivalent once present on `main`. Nothing is copied to the home instance by hand |
| GitHub | https://github.com/Matysh/houseplan-card — [Issues](https://github.com/Matysh/houseplan-card/issues) are the canonical task records; their labels carry priority and workflow status (`PROCESS.md` §9). GitHub Projects is no longer used. `main` carries stable releases; pre-release tags may point directly at `dev`. Work lands on `dev` and is merged into `main` for a stable release, so `dev` is normally equal to or ahead of `main`, never behind. Push via SSH key `ha_jb` (remote git@github.com:…); API releases via the fine-grained PAT in `~/.git-credentials` (Contents R/W, issued 2026-07-23) |
+3 -2
View File
@@ -1,4 +1,6 @@
/** Dialogs, forms, buttons and pickers (#266, split from styles.ts). */
/** Dialogs, forms, buttons and pickers (#266, split from styles.ts).
* Footer hit targets belong here, not in lazy summary-panel styles (#505).
*/
import { css } from 'lit';
export const dialogsStyles = css`
@@ -1514,7 +1516,6 @@ export const dialogsStyles = css`
padding: var(--sp-5) var(--sp-6);
border-top: 1px solid var(--hp-line);
}
/* Shared footer target size, independent of lazy summary-panel styles (#505). */
hp-dialog > .row[slot='footer'] button {
min-height: 44px;
}