release: promote v1.77.0 from beta line
Полные бенчмарки производительности / Бенчмарки рендера и геометрии (blend) (push) Failing after 2m8s
Полные бенчмарки производительности / Бенчмарки рендера и геометрии (interaction) (push) Failing after 2m7s
Полные бенчмарки производительности / Бенчмарки рендера и геометрии (isometric) (push) Failing after 2m5s
Полные бенчмарки производительности / Бенчмарки рендера и геометрии (isometric-stage3) (push) Failing after 2m2s
Полные бенчмарки производительности / Бенчмарки рендера и геометрии (overlay) (push) Failing after 1m54s
Полные бенчмарки производительности / Бенчмарки рендера и геометрии (large-house) (push) Failing after 1m57s
Полные бенчмарки производительности / Бенчмарки рендера и геометрии (space-default) (push) Failing after 1m51s
Полные бенчмарки производительности / Бенчмарки рендера и геометрии (plan-snap) (push) Failing after 1m53s
Полные бенчмарки производительности / Бенчмарки рендера и геометрии (space-glow) (push) Failing after 2m4s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 7m24s
Проверка (CI) / Предполёт: документация, провенанс, процесс (push) Successful in 1m3s
Проверка (CI) / Классификация изменённых файлов (push) Successful in 28s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Failing after 33s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 24s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 22s
Проверка (CI) / Мутанты по диффу (1/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (2/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (3/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (4/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (5/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (6/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Смоки в браузере (шард 1 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 2 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 3 из 3) (push) Skipped
Проверка (CI) / Смоки: все шарды зелёные (push) Skipped
Проверка (CI) / Golden-кадры против принятых эталонов (push) Skipped
Проверка (CI) / Перф-смок: бюджет времени кадра (push) Skipped
Проверка (CI) / Геометрия: TS/Python parity исполнена (push) Skipped
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Skipped
Проверка (CI) / Доказательство выполненных проверок (push) Failing after 18s

Promote the tested 1.77 beta line without new product behavior. Aggregate the stable notes since v1.76.0 and sync all version authorities and installable bundles.

Issue: #584
Issue: #588
Issue: #593
Issue: #594
Issue: #598
Issue: #600
User-Visible: yes
Release: v1.77.0
This commit is contained in:
Claude
2026-09-21 17:21:30 +03:00
parent d7a1156233
commit 61d51dd934
52 changed files with 476 additions and 444 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ SCHEDULED_GRACE_S = 30 * 24 * 3600
FILES_DIR = "houseplan/files"
ASSETS_DIR = "houseplan/assets"
CONF_ADMIN_ONLY = "admin_only"
VERSION = "1.77.0-beta.5"
VERSION = "1.77.0"
DECOR_ASSETS_API_VERSION = 1
SUMMARY_PANEL_API_VERSION = 1
@@ -1,109 +1,109 @@
{
"schema": 1,
"fingerprint": "f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1",
"fingerprint": "5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362",
"entry": "houseplan-card.js",
"panelEntry": "houseplan-panel.js",
"initialViewFiles": [
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-card.js"
],
"initialViewGzipBytes": 290093,
"initialViewGzipBytes": 290095,
"initialPanelFiles": [
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-panel.js"
],
"initialPanelGzipBytes": 291614,
"initialPanelGzipBytes": 291618,
"initialPanelOnlyFiles": [
"houseplan-panel.js"
],
"initialPanelOnlyGzipBytes": 2322,
"initialPanelOnlyGzipBytes": 2325,
"lazyFiles": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/de-C8B7T49G.js",
"houseplan-assets/editor-BUN-RFAH.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/fr-PXVNl3Uu.js",
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-editor-runtime-CT9cqrs7.js",
"houseplan-assets/houseplan-onboarding-runtime-3I5MiX0d.js",
"houseplan-assets/hp-zigbee-topology-overlay-Cf7CfDap.js",
"houseplan-assets/iso-scene-render-CbFj_0Dp.js",
"houseplan-assets/live-interaction-runtime-Zm_H08W_.js",
"houseplan-assets/pdf-export-DIWj3ITi.js",
"houseplan-assets/summary-panel-runtime-loaded-Biy-bpfH.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js",
"houseplan-assets/zigbee-topology-runtime-D1YiRFZ4.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/de-DSAbt10z.js",
"houseplan-assets/editor-DuEZ_blF.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/fr-Dqa7XXi8.js",
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-editor-runtime-dcfYk9Ux.js",
"houseplan-assets/houseplan-onboarding-runtime-DO5YuA8C.js",
"houseplan-assets/hp-zigbee-topology-overlay-Fybk76vu.js",
"houseplan-assets/iso-scene-render-DrqMFlnw.js",
"houseplan-assets/live-interaction-runtime-CY4BdkFz.js",
"houseplan-assets/pdf-export-uvcL70gX.js",
"houseplan-assets/summary-panel-runtime-loaded-CGySQMOD.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js",
"houseplan-assets/zigbee-topology-runtime-BK3ECo6u.js"
],
"lazyGzipBytes": 459907,
"lazyGzipBytes": 459921,
"lazyEditorFiles": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/editor-BUN-RFAH.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-editor-runtime-CT9cqrs7.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/editor-DuEZ_blF.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-editor-runtime-dcfYk9Ux.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js"
],
"lazyEditorGzipBytes": 243370,
"lazyEditorGzipBytes": 243369,
"lazyOnboardingFiles": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-onboarding-runtime-3I5MiX0d.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-onboarding-runtime-DO5YuA8C.js"
],
"lazyOnboardingGzipBytes": 33813,
"lazyOnboardingGzipBytes": 33816,
"lazyLocaleFiles": [
"houseplan-assets/de-C8B7T49G.js",
"houseplan-assets/fr-PXVNl3Uu.js"
"houseplan-assets/de-DSAbt10z.js",
"houseplan-assets/fr-Dqa7XXi8.js"
],
"lazyLocaleGzipBytes": 55358,
"lazyLocaleGzipBytes": 55370,
"lazyIsometricFiles": [
"houseplan-assets/iso-scene-render-CbFj_0Dp.js"
"houseplan-assets/iso-scene-render-DrqMFlnw.js"
],
"lazyIsometricGzipBytes": 17642,
"lazyFurnitureArtFiles": [
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js"
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js"
],
"lazyFurnitureArtGzipBytes": 16943,
"lazyFurnitureArtGzipBytes": 16940,
"lazyPdfFiles": [
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/pdf-export-DIWj3ITi.js"
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/pdf-export-uvcL70gX.js"
],
"lazyPdfGzipBytes": 126831,
"lazyPdfGzipBytes": 126825,
"files": [
{
"path": "houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"sha256": "bd5c30c2b521efad092dfc825fcf52cd8cb4480936a0a76e933a45ba7545d309",
"path": "houseplan-assets/backdrop-pick-Cghq1scc.js",
"sha256": "a3c6643d8fa86b46c0b14d6464331ac722fb2de5f76090f2415c394c2b45830d",
"rawBytes": 74076,
"gzipBytes": 23929,
"gzipBytes": 23932,
"isEntry": false,
"imports": [
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/de-C8B7T49G.js",
"sha256": "54dfaff247c64b2d30d25c40851378f48f85454d51c7e40d87b4af3f4b80ab92",
"path": "houseplan-assets/de-DSAbt10z.js",
"sha256": "00b04a9346c92a955a778fd765078a17e164f038ae93e8bf8980c047cc5c5eae",
"rawBytes": 92496,
"gzipBytes": 27921,
"gzipBytes": 27928,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/editor-BUN-RFAH.js",
"sha256": "79b993552e62447d7283e0f5545b4e18b4e9fbd2a24b1c269935dec97b87b719",
"path": "houseplan-assets/editor-DuEZ_blF.js",
"sha256": "ffbfb66c07157e20053fd287e8e423b967322de5f633ba57ed3bdc9b6ab3f353",
"rawBytes": 3833,
"gzipBytes": 1581,
"gzipBytes": 1583,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/form-kit.styles-B_wstbUM.js",
"sha256": "2b1e9b7bf2bcd424ff324322675d5281531ad25ecd7404f9f02b715d3287521f",
"path": "houseplan-assets/form-kit.styles-CfB4DWMs.js",
"sha256": "551efa002ff77410c8ecd04f0b1e8eebba295e8f04f1de1c0f5973bc60343cba",
"rawBytes": 25600,
"gzipBytes": 5056,
"isEntry": false,
@@ -111,202 +111,202 @@
"dynamicImports": []
},
{
"path": "houseplan-assets/fr-PXVNl3Uu.js",
"sha256": "04cf2578260bf47c0b3c5329c23f08860bdd5951a45964ae2e0308ff1b696330",
"path": "houseplan-assets/fr-Dqa7XXi8.js",
"sha256": "6e339f8074d2ad2325b5c93161a251f89ab4041f5bda8a90a491c165dd6aec31",
"rawBytes": 94813,
"gzipBytes": 27437,
"gzipBytes": 27442,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"sha256": "a478512cc61f30b2aafe0c674111f39fd5b050b8449e5185de12c4c0bcd70503",
"path": "houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"sha256": "4e2e255541baab68c9a71b8996f7db842cd2fcbd1466984acda21423b2279be7",
"rawBytes": 52035,
"gzipBytes": 16943,
"gzipBytes": 16940,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/houseplan-card-BeanMXov.js",
"sha256": "c63710c224ddc0e75348a2b7a08c146286bec95cc3e6c918c1755306adb2cd7a",
"rawBytes": 1028799,
"gzipBytes": 289292,
"path": "houseplan-assets/houseplan-card-BGma7Zjs.js",
"sha256": "020967c47a73d107ac522a4dc2e458154324779405cdddc60e3548f72939e7b4",
"rawBytes": 1028792,
"gzipBytes": 289293,
"isEntry": false,
"imports": [],
"dynamicImports": [
"houseplan-assets/de-C8B7T49G.js",
"houseplan-assets/editor-BUN-RFAH.js",
"houseplan-assets/fr-PXVNl3Uu.js",
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-editor-runtime-CT9cqrs7.js",
"houseplan-assets/houseplan-onboarding-runtime-3I5MiX0d.js",
"houseplan-assets/hp-zigbee-topology-overlay-Cf7CfDap.js",
"houseplan-assets/iso-scene-render-CbFj_0Dp.js",
"houseplan-assets/live-interaction-runtime-Zm_H08W_.js",
"houseplan-assets/pdf-export-DIWj3ITi.js",
"houseplan-assets/summary-panel-runtime-loaded-Biy-bpfH.js"
"houseplan-assets/de-DSAbt10z.js",
"houseplan-assets/editor-DuEZ_blF.js",
"houseplan-assets/fr-Dqa7XXi8.js",
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-editor-runtime-dcfYk9Ux.js",
"houseplan-assets/houseplan-onboarding-runtime-DO5YuA8C.js",
"houseplan-assets/hp-zigbee-topology-overlay-Fybk76vu.js",
"houseplan-assets/iso-scene-render-DrqMFlnw.js",
"houseplan-assets/live-interaction-runtime-CY4BdkFz.js",
"houseplan-assets/pdf-export-uvcL70gX.js",
"houseplan-assets/summary-panel-runtime-loaded-CGySQMOD.js"
]
},
{
"path": "houseplan-assets/houseplan-editor-runtime-CT9cqrs7.js",
"sha256": "3c982dafecc8873e31cb1fb389f629690bd911b966917d7fe2f0cc6c823560ab",
"rawBytes": 677712,
"gzipBytes": 188438,
"path": "houseplan-assets/houseplan-editor-runtime-dcfYk9Ux.js",
"sha256": "a594bdfea7e0eaac7be0e513cf316d28503194dd4cc156f832271ac3b4f91f2b",
"rawBytes": 677705,
"gzipBytes": 188432,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js"
],
"dynamicImports": [
"houseplan-assets/zigbee-topology-runtime-D1YiRFZ4.js"
"houseplan-assets/zigbee-topology-runtime-BK3ECo6u.js"
]
},
{
"path": "houseplan-assets/houseplan-onboarding-runtime-3I5MiX0d.js",
"sha256": "0ce74cd0bdf4be421fc6b9426c87af6de13b5c7c015aeed088ea54bbe155c976",
"path": "houseplan-assets/houseplan-onboarding-runtime-DO5YuA8C.js",
"sha256": "2341b680e95085a18f3a4258ef54d76de360d8eb7f62c22d0bbbeb9e552a3776",
"rawBytes": 15667,
"gzipBytes": 4828,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/hp-zigbee-topology-overlay-Cf7CfDap.js",
"sha256": "33d9fa50c5e402b391927983c65b975d658570ee72143988e480b4a32a66ae96",
"path": "houseplan-assets/hp-zigbee-topology-overlay-Fybk76vu.js",
"sha256": "9a79675b2b08e08e69f48268134b052111cdbaa804b6b270dfc3c66857c475fa",
"rawBytes": 10759,
"gzipBytes": 3684,
"gzipBytes": 3685,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js",
"houseplan-assets/zigbee-topology-runtime-D1YiRFZ4.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js",
"houseplan-assets/zigbee-topology-runtime-BK3ECo6u.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/iso-scene-render-CbFj_0Dp.js",
"sha256": "45443570502f426de9da8e06810f7db97e35470375e4ce17fbbc840db02398d4",
"path": "houseplan-assets/iso-scene-render-DrqMFlnw.js",
"sha256": "516d5176c89713778220ea37910af126ac49deec11bca4835628acb9234a7c5b",
"rawBytes": 51983,
"gzipBytes": 17642,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/live-interaction-runtime-Zm_H08W_.js",
"sha256": "46c89d531d433536b3f508a480758001c12f5dce2b767f88f9ebf6ae32955e54",
"path": "houseplan-assets/live-interaction-runtime-CY4BdkFz.js",
"sha256": "4dcf38616ab83f5a2914558399c3852b7afa6ba5878fee9f75cf406cc746dda1",
"rawBytes": 8216,
"gzipBytes": 3205,
"gzipBytes": 3209,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/pdf-export-DIWj3ITi.js",
"sha256": "8b185f1dfa4b7e70e7a8ab1fe547ef926f09ff3fb492233e652af5128bbd2165",
"path": "houseplan-assets/pdf-export-uvcL70gX.js",
"sha256": "206bebb97b82857af0143431a63ef1cf81cc7e869daa807278ef474cc91a57c6",
"rawBytes": 236264,
"gzipBytes": 109888,
"gzipBytes": 109885,
"isEntry": false,
"imports": [
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-editor-CdmJQ4ZP.js",
"sha256": "b82df7c441df958fd4e799f770521e5bd602308b82c95cb6324fd7c93d68bf57",
"path": "houseplan-assets/summary-panel-editor-CMasQ4vg.js",
"sha256": "4b34a8e5ddd9ddf67aa84d27b93a345cfca03b693f1f2513e2e046054465d817",
"rawBytes": 14862,
"gzipBytes": 3418,
"gzipBytes": 3426,
"isEntry": false,
"imports": [
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/summary-panel-runtime-loaded-Biy-bpfH.js"
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-assets/summary-panel-runtime-loaded-CGySQMOD.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-metrics-CQXeTtCl.js",
"sha256": "8c96db3e31a71f629b7573120870c48e7ad03205b501ec4365029f6752064e30",
"path": "houseplan-assets/summary-panel-metrics-BeGWlYtn.js",
"sha256": "d3b46ab20f1de0a48a16737e7456c0318e9903b79df2c5f9f78082bf378e5c93",
"rawBytes": 2611,
"gzipBytes": 1304,
"gzipBytes": 1307,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-runtime-loaded-Biy-bpfH.js",
"sha256": "2f75b67c9a6615d11ab2838ef78428d273a06fbd0011e3018b530a9f60078a6e",
"path": "houseplan-assets/summary-panel-runtime-loaded-CGySQMOD.js",
"sha256": "70932d7306193061fed10ac47812d912c3a59a7417f95e240f37b61457bf09a8",
"rawBytes": 72733,
"gzipBytes": 20172,
"gzipBytes": 20171,
"isEntry": false,
"imports": [
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": [
"houseplan-assets/summary-panel-editor-CdmJQ4ZP.js",
"houseplan-assets/summary-panel-metrics-CQXeTtCl.js"
"houseplan-assets/summary-panel-editor-CMasQ4vg.js",
"houseplan-assets/summary-panel-metrics-BeGWlYtn.js"
]
},
{
"path": "houseplan-assets/zigbee-topology-CC5zdgR2.js",
"sha256": "fe8b761dbbf286400fd76357dfad5ac4efb42b0f426d5045fbc28903eeb43c36",
"path": "houseplan-assets/zigbee-topology-DmwpO4_X.js",
"sha256": "a5f74e545476fb0048e5ae34d3e6aba6ca56d4774699b437f8400e40069a988e",
"rawBytes": 18962,
"gzipBytes": 7423,
"gzipBytes": 7426,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/zigbee-topology-runtime-D1YiRFZ4.js",
"sha256": "0cc6de4caae6077311c0606f27276cf53c21759439fea69d10d78afa549306b9",
"path": "houseplan-assets/zigbee-topology-runtime-BK3ECo6u.js",
"sha256": "aa8b20e637d9d66b0affee0d0efee1bfd7defa9285d92d1bd496777fe5f3432b",
"rawBytes": 3942,
"gzipBytes": 1760,
"gzipBytes": 1762,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js"
],
"dynamicImports": []
},
{
"path": "houseplan-card.js",
"sha256": "6360cc0964d4eb0e46865760edbf926d4aae2f206eaa24ef5075e12ed16e1ba0",
"sha256": "d0b270ebad646accee58fd8cf7a130875da8b505b596f0e05ada91fffb41bb02",
"rawBytes": 1205,
"gzipBytes": 801,
"gzipBytes": 802,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-panel.js",
"sha256": "d2ebfb69eab8cf2ac929ea58d5a1d78ee3627ae3d25b7b4a2a7ead3bec52f8b1",
"sha256": "4150cfd182db03e56a9e4b4b680ad72ace418f9882528e526de2579e32944606",
"rawBytes": 6165,
"gzipBytes": 2322,
"gzipBytes": 2325,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
}
File diff suppressed because one or more lines are too long
@@ -1,14 +1,14 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";import{az as e,l as o,aC as t,e8 as s,A as a,e9 as i,ea as l,eb as n,E as r,c}from"./houseplan-card-BeanMXov.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
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";import{az as e,l as o,aC as t,e8 as s,A as a,e9 as i,ea as l,eb as n,E as r,c}from"./houseplan-card-BGma7Zjs.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
.hass=${this.hass}
.data=${this._formData}
.schema=${e}
.computeLabel=${e=>f[e.name]||e.name}
.computeLabel=${e=>h[e.name]||e.name}
@value-changed=${this._valueChanged}
></ha-form>`;return c`
${d(h.slice(0,3))}
${d(f.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(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);
${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);
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";import{c as a,A as e}from"./houseplan-card-BeanMXov.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-Biy-bpfH.js";import"./form-kit.styles-B_wstbUM.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__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";import{c as a,A as e}from"./houseplan-card-BGma7Zjs.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-CGySQMOD.js";import"./form-kit.styles-CfB4DWMs.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__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";import{ee as e,J as t,aX as n,H as i,aa as o,a8 as r,bP as s,bO as a,aW as c,aV as l,aY as d,ef as u,eg as f,bR as m,eh as g}from"./houseplan-card-BeanMXov.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=d(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),s=i.binding.slice(o+1),a="device"===r?e.registry.devices?.[s]:null,c="entity"===r?e.registry.entities?.[s]:null,l="device"===r?s:c?.device_id,d="device"===r?a?.area_id:c?.area_id||l&&e.registry.devices?.[l]?.area_id,u="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||d||"",f=u&&e.areaToSpace[u]||i.space||e.firstSpaceId;l&&e.registry.devices?.[l]&&e.spaceIds.has(f)&&(!n.devices.has(l)||"entity"===r&&n.liveEntities.has(s))&&t.add(l)}return t}function y(e,t){return e?.length?t?.length?g(e,t):e:t}function _(e,t){const n=c(e.rooms,t.walls,t.openCuts,[],i,t.cellCm,o,r);return{roomGeom:"ok"===n.status||"degraded-extra"===n.status?n.roomGeom:void 0,multiWallNodes:l(e.rooms,t.walls,t.openCuts,i,t.cellCm,o,r)}}function*h(c,l,d=_){try{let u=0;for(const f of l){const l=c.spaces.find(e=>String(e?.id)===f.id);if(!l)continue;const m=e(l,f),g=d(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const a=t(e);if(!a)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||a;v=y(v,s(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=a(v)*_*_/1e4}return u}catch{return null}}function p(e,t,n=_){const i=h(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function b(e,t,n,i){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:m(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(i||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function S(e,t){const n=e?.states?.[t];if(!n)return null;const i=u(e,t);return i?f(i,String(n.attributes?.unit_of_measurement||"")):null}export{h as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,b as summarySystemValue,p as totalCleanFloorAreaM2};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";import{ee as e,J as t,aX as n,H as i,aa as o,a8 as r,bP as s,bO as a,aW as c,aV as l,aY as d,ef as u,eg as f,bR as m,eh as g}from"./houseplan-card-BGma7Zjs.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=d(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),s=i.binding.slice(o+1),a="device"===r?e.registry.devices?.[s]:null,c="entity"===r?e.registry.entities?.[s]:null,l="device"===r?s:c?.device_id,d="device"===r?a?.area_id:c?.area_id||l&&e.registry.devices?.[l]?.area_id,u="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||d||"",f=u&&e.areaToSpace[u]||i.space||e.firstSpaceId;l&&e.registry.devices?.[l]&&e.spaceIds.has(f)&&(!n.devices.has(l)||"entity"===r&&n.liveEntities.has(s))&&t.add(l)}return t}function y(e,t){return e?.length?t?.length?g(e,t):e:t}function _(e,t){const n=c(e.rooms,t.walls,t.openCuts,[],i,t.cellCm,o,r);return{roomGeom:"ok"===n.status||"degraded-extra"===n.status?n.roomGeom:void 0,multiWallNodes:l(e.rooms,t.walls,t.openCuts,i,t.cellCm,o,r)}}function*h(c,l,d=_){try{let u=0;for(const f of l){const l=c.spaces.find(e=>String(e?.id)===f.id);if(!l)continue;const m=e(l,f),g=d(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const a=t(e);if(!a)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||a;v=y(v,s(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=a(v)*_*_/1e4}return u}catch{return null}}function p(e,t,n=_){const i=h(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function b(e,t,n,i){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:m(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(i||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function S(e,t){const n=e?.states?.[t];if(!n)return null;const i=u(e,t);return i?f(i,String(n.attributes?.unit_of_measurement||"")):null}export{h as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,b as summarySystemValue,p as totalCleanFloorAreaM2};
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";import{n as t,b as n}from"./zigbee-topology-CC5zdgR2.js";import{aI as e}from"./houseplan-card-BeanMXov.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 m(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 g(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,g=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,g=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&&g?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await m(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 m(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,g as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";import{n as t,b as n}from"./zigbee-topology-DmwpO4_X.js";import{aI as e}from"./houseplan-card-BGma7Zjs.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 p(t){if(!0!==t?.user?.is_admin)throw a("permission")}function f(n){const e=i(n);return e?c(e,"zha",async()=>{if(p(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 m(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 g(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(p(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,f=null,g=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,g=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 p=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&&f?.(n):c&&g?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await m(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 m(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{f as readZhaTopology,g as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";try{await import("./houseplan-assets/houseplan-card-BeanMXov.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__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";try{await import("./houseplan-assets/houseplan-card-BGma7Zjs.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
+1 -1
View File
@@ -20,5 +20,5 @@
"issue_tracker": "https://github.com/Matysh/houseplan-card/issues",
"requirements": [],
"single_config_entry": true,
"version": "1.77.0-beta.5"
"version": "1.77.0"
}
+142 -142
View File
@@ -1,109 +1,109 @@
{
"schema": 1,
"fingerprint": "f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1",
"fingerprint": "5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362",
"entry": "houseplan-card.js",
"panelEntry": "houseplan-panel.js",
"initialViewFiles": [
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-card.js"
],
"initialViewGzipBytes": 290093,
"initialViewGzipBytes": 290095,
"initialPanelFiles": [
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-panel.js"
],
"initialPanelGzipBytes": 291614,
"initialPanelGzipBytes": 291618,
"initialPanelOnlyFiles": [
"houseplan-panel.js"
],
"initialPanelOnlyGzipBytes": 2322,
"initialPanelOnlyGzipBytes": 2325,
"lazyFiles": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/de-C8B7T49G.js",
"houseplan-assets/editor-BUN-RFAH.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/fr-PXVNl3Uu.js",
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-editor-runtime-CT9cqrs7.js",
"houseplan-assets/houseplan-onboarding-runtime-3I5MiX0d.js",
"houseplan-assets/hp-zigbee-topology-overlay-Cf7CfDap.js",
"houseplan-assets/iso-scene-render-CbFj_0Dp.js",
"houseplan-assets/live-interaction-runtime-Zm_H08W_.js",
"houseplan-assets/pdf-export-DIWj3ITi.js",
"houseplan-assets/summary-panel-runtime-loaded-Biy-bpfH.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js",
"houseplan-assets/zigbee-topology-runtime-D1YiRFZ4.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/de-DSAbt10z.js",
"houseplan-assets/editor-DuEZ_blF.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/fr-Dqa7XXi8.js",
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-editor-runtime-dcfYk9Ux.js",
"houseplan-assets/houseplan-onboarding-runtime-DO5YuA8C.js",
"houseplan-assets/hp-zigbee-topology-overlay-Fybk76vu.js",
"houseplan-assets/iso-scene-render-DrqMFlnw.js",
"houseplan-assets/live-interaction-runtime-CY4BdkFz.js",
"houseplan-assets/pdf-export-uvcL70gX.js",
"houseplan-assets/summary-panel-runtime-loaded-CGySQMOD.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js",
"houseplan-assets/zigbee-topology-runtime-BK3ECo6u.js"
],
"lazyGzipBytes": 459907,
"lazyGzipBytes": 459921,
"lazyEditorFiles": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/editor-BUN-RFAH.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-editor-runtime-CT9cqrs7.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/editor-DuEZ_blF.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-editor-runtime-dcfYk9Ux.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js"
],
"lazyEditorGzipBytes": 243370,
"lazyEditorGzipBytes": 243369,
"lazyOnboardingFiles": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-onboarding-runtime-3I5MiX0d.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-onboarding-runtime-DO5YuA8C.js"
],
"lazyOnboardingGzipBytes": 33813,
"lazyOnboardingGzipBytes": 33816,
"lazyLocaleFiles": [
"houseplan-assets/de-C8B7T49G.js",
"houseplan-assets/fr-PXVNl3Uu.js"
"houseplan-assets/de-DSAbt10z.js",
"houseplan-assets/fr-Dqa7XXi8.js"
],
"lazyLocaleGzipBytes": 55358,
"lazyLocaleGzipBytes": 55370,
"lazyIsometricFiles": [
"houseplan-assets/iso-scene-render-CbFj_0Dp.js"
"houseplan-assets/iso-scene-render-DrqMFlnw.js"
],
"lazyIsometricGzipBytes": 17642,
"lazyFurnitureArtFiles": [
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js"
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js"
],
"lazyFurnitureArtGzipBytes": 16943,
"lazyFurnitureArtGzipBytes": 16940,
"lazyPdfFiles": [
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/pdf-export-DIWj3ITi.js"
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/pdf-export-uvcL70gX.js"
],
"lazyPdfGzipBytes": 126831,
"lazyPdfGzipBytes": 126825,
"files": [
{
"path": "houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"sha256": "bd5c30c2b521efad092dfc825fcf52cd8cb4480936a0a76e933a45ba7545d309",
"path": "houseplan-assets/backdrop-pick-Cghq1scc.js",
"sha256": "a3c6643d8fa86b46c0b14d6464331ac722fb2de5f76090f2415c394c2b45830d",
"rawBytes": 74076,
"gzipBytes": 23929,
"gzipBytes": 23932,
"isEntry": false,
"imports": [
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/de-C8B7T49G.js",
"sha256": "54dfaff247c64b2d30d25c40851378f48f85454d51c7e40d87b4af3f4b80ab92",
"path": "houseplan-assets/de-DSAbt10z.js",
"sha256": "00b04a9346c92a955a778fd765078a17e164f038ae93e8bf8980c047cc5c5eae",
"rawBytes": 92496,
"gzipBytes": 27921,
"gzipBytes": 27928,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/editor-BUN-RFAH.js",
"sha256": "79b993552e62447d7283e0f5545b4e18b4e9fbd2a24b1c269935dec97b87b719",
"path": "houseplan-assets/editor-DuEZ_blF.js",
"sha256": "ffbfb66c07157e20053fd287e8e423b967322de5f633ba57ed3bdc9b6ab3f353",
"rawBytes": 3833,
"gzipBytes": 1581,
"gzipBytes": 1583,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/form-kit.styles-B_wstbUM.js",
"sha256": "2b1e9b7bf2bcd424ff324322675d5281531ad25ecd7404f9f02b715d3287521f",
"path": "houseplan-assets/form-kit.styles-CfB4DWMs.js",
"sha256": "551efa002ff77410c8ecd04f0b1e8eebba295e8f04f1de1c0f5973bc60343cba",
"rawBytes": 25600,
"gzipBytes": 5056,
"isEntry": false,
@@ -111,202 +111,202 @@
"dynamicImports": []
},
{
"path": "houseplan-assets/fr-PXVNl3Uu.js",
"sha256": "04cf2578260bf47c0b3c5329c23f08860bdd5951a45964ae2e0308ff1b696330",
"path": "houseplan-assets/fr-Dqa7XXi8.js",
"sha256": "6e339f8074d2ad2325b5c93161a251f89ab4041f5bda8a90a491c165dd6aec31",
"rawBytes": 94813,
"gzipBytes": 27437,
"gzipBytes": 27442,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"sha256": "a478512cc61f30b2aafe0c674111f39fd5b050b8449e5185de12c4c0bcd70503",
"path": "houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"sha256": "4e2e255541baab68c9a71b8996f7db842cd2fcbd1466984acda21423b2279be7",
"rawBytes": 52035,
"gzipBytes": 16943,
"gzipBytes": 16940,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/houseplan-card-BeanMXov.js",
"sha256": "c63710c224ddc0e75348a2b7a08c146286bec95cc3e6c918c1755306adb2cd7a",
"rawBytes": 1028799,
"gzipBytes": 289292,
"path": "houseplan-assets/houseplan-card-BGma7Zjs.js",
"sha256": "020967c47a73d107ac522a4dc2e458154324779405cdddc60e3548f72939e7b4",
"rawBytes": 1028792,
"gzipBytes": 289293,
"isEntry": false,
"imports": [],
"dynamicImports": [
"houseplan-assets/de-C8B7T49G.js",
"houseplan-assets/editor-BUN-RFAH.js",
"houseplan-assets/fr-PXVNl3Uu.js",
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-editor-runtime-CT9cqrs7.js",
"houseplan-assets/houseplan-onboarding-runtime-3I5MiX0d.js",
"houseplan-assets/hp-zigbee-topology-overlay-Cf7CfDap.js",
"houseplan-assets/iso-scene-render-CbFj_0Dp.js",
"houseplan-assets/live-interaction-runtime-Zm_H08W_.js",
"houseplan-assets/pdf-export-DIWj3ITi.js",
"houseplan-assets/summary-panel-runtime-loaded-Biy-bpfH.js"
"houseplan-assets/de-DSAbt10z.js",
"houseplan-assets/editor-DuEZ_blF.js",
"houseplan-assets/fr-Dqa7XXi8.js",
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-editor-runtime-dcfYk9Ux.js",
"houseplan-assets/houseplan-onboarding-runtime-DO5YuA8C.js",
"houseplan-assets/hp-zigbee-topology-overlay-Fybk76vu.js",
"houseplan-assets/iso-scene-render-DrqMFlnw.js",
"houseplan-assets/live-interaction-runtime-CY4BdkFz.js",
"houseplan-assets/pdf-export-uvcL70gX.js",
"houseplan-assets/summary-panel-runtime-loaded-CGySQMOD.js"
]
},
{
"path": "houseplan-assets/houseplan-editor-runtime-CT9cqrs7.js",
"sha256": "3c982dafecc8873e31cb1fb389f629690bd911b966917d7fe2f0cc6c823560ab",
"rawBytes": 677712,
"gzipBytes": 188438,
"path": "houseplan-assets/houseplan-editor-runtime-dcfYk9Ux.js",
"sha256": "a594bdfea7e0eaac7be0e513cf316d28503194dd4cc156f832271ac3b4f91f2b",
"rawBytes": 677705,
"gzipBytes": 188432,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js"
],
"dynamicImports": [
"houseplan-assets/zigbee-topology-runtime-D1YiRFZ4.js"
"houseplan-assets/zigbee-topology-runtime-BK3ECo6u.js"
]
},
{
"path": "houseplan-assets/houseplan-onboarding-runtime-3I5MiX0d.js",
"sha256": "0ce74cd0bdf4be421fc6b9426c87af6de13b5c7c015aeed088ea54bbe155c976",
"path": "houseplan-assets/houseplan-onboarding-runtime-DO5YuA8C.js",
"sha256": "2341b680e95085a18f3a4258ef54d76de360d8eb7f62c22d0bbbeb9e552a3776",
"rawBytes": 15667,
"gzipBytes": 4828,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-BX4FJMxJ.js",
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/backdrop-pick-Cghq1scc.js",
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/hp-zigbee-topology-overlay-Cf7CfDap.js",
"sha256": "33d9fa50c5e402b391927983c65b975d658570ee72143988e480b4a32a66ae96",
"path": "houseplan-assets/hp-zigbee-topology-overlay-Fybk76vu.js",
"sha256": "9a79675b2b08e08e69f48268134b052111cdbaa804b6b270dfc3c66857c475fa",
"rawBytes": 10759,
"gzipBytes": 3684,
"gzipBytes": 3685,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js",
"houseplan-assets/zigbee-topology-runtime-D1YiRFZ4.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js",
"houseplan-assets/zigbee-topology-runtime-BK3ECo6u.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/iso-scene-render-CbFj_0Dp.js",
"sha256": "45443570502f426de9da8e06810f7db97e35470375e4ce17fbbc840db02398d4",
"path": "houseplan-assets/iso-scene-render-DrqMFlnw.js",
"sha256": "516d5176c89713778220ea37910af126ac49deec11bca4835628acb9234a7c5b",
"rawBytes": 51983,
"gzipBytes": 17642,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/live-interaction-runtime-Zm_H08W_.js",
"sha256": "46c89d531d433536b3f508a480758001c12f5dce2b767f88f9ebf6ae32955e54",
"path": "houseplan-assets/live-interaction-runtime-CY4BdkFz.js",
"sha256": "4dcf38616ab83f5a2914558399c3852b7afa6ba5878fee9f75cf406cc746dda1",
"rawBytes": 8216,
"gzipBytes": 3205,
"gzipBytes": 3209,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/pdf-export-DIWj3ITi.js",
"sha256": "8b185f1dfa4b7e70e7a8ab1fe547ef926f09ff3fb492233e652af5128bbd2165",
"path": "houseplan-assets/pdf-export-uvcL70gX.js",
"sha256": "206bebb97b82857af0143431a63ef1cf81cc7e869daa807278ef474cc91a57c6",
"rawBytes": 236264,
"gzipBytes": 109888,
"gzipBytes": 109885,
"isEntry": false,
"imports": [
"houseplan-assets/furniture-plan-art.generated-CTyOm-PB.js",
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/furniture-plan-art.generated-DvOAO0uu.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-editor-CdmJQ4ZP.js",
"sha256": "b82df7c441df958fd4e799f770521e5bd602308b82c95cb6324fd7c93d68bf57",
"path": "houseplan-assets/summary-panel-editor-CMasQ4vg.js",
"sha256": "4b34a8e5ddd9ddf67aa84d27b93a345cfca03b693f1f2513e2e046054465d817",
"rawBytes": 14862,
"gzipBytes": 3418,
"gzipBytes": 3426,
"isEntry": false,
"imports": [
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/summary-panel-runtime-loaded-Biy-bpfH.js"
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-assets/summary-panel-runtime-loaded-CGySQMOD.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-metrics-CQXeTtCl.js",
"sha256": "8c96db3e31a71f629b7573120870c48e7ad03205b501ec4365029f6752064e30",
"path": "houseplan-assets/summary-panel-metrics-BeGWlYtn.js",
"sha256": "d3b46ab20f1de0a48a16737e7456c0318e9903b79df2c5f9f78082bf378e5c93",
"rawBytes": 2611,
"gzipBytes": 1304,
"gzipBytes": 1307,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-runtime-loaded-Biy-bpfH.js",
"sha256": "2f75b67c9a6615d11ab2838ef78428d273a06fbd0011e3018b530a9f60078a6e",
"path": "houseplan-assets/summary-panel-runtime-loaded-CGySQMOD.js",
"sha256": "70932d7306193061fed10ac47812d912c3a59a7417f95e240f37b61457bf09a8",
"rawBytes": 72733,
"gzipBytes": 20172,
"gzipBytes": 20171,
"isEntry": false,
"imports": [
"houseplan-assets/form-kit.styles-B_wstbUM.js",
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/form-kit.styles-CfB4DWMs.js",
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": [
"houseplan-assets/summary-panel-editor-CdmJQ4ZP.js",
"houseplan-assets/summary-panel-metrics-CQXeTtCl.js"
"houseplan-assets/summary-panel-editor-CMasQ4vg.js",
"houseplan-assets/summary-panel-metrics-BeGWlYtn.js"
]
},
{
"path": "houseplan-assets/zigbee-topology-CC5zdgR2.js",
"sha256": "fe8b761dbbf286400fd76357dfad5ac4efb42b0f426d5045fbc28903eeb43c36",
"path": "houseplan-assets/zigbee-topology-DmwpO4_X.js",
"sha256": "a5f74e545476fb0048e5ae34d3e6aba6ca56d4774699b437f8400e40069a988e",
"rawBytes": 18962,
"gzipBytes": 7423,
"gzipBytes": 7426,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/zigbee-topology-runtime-D1YiRFZ4.js",
"sha256": "0cc6de4caae6077311c0606f27276cf53c21759439fea69d10d78afa549306b9",
"path": "houseplan-assets/zigbee-topology-runtime-BK3ECo6u.js",
"sha256": "aa8b20e637d9d66b0affee0d0efee1bfd7defa9285d92d1bd496777fe5f3432b",
"rawBytes": 3942,
"gzipBytes": 1760,
"gzipBytes": 1762,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js",
"houseplan-assets/zigbee-topology-CC5zdgR2.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js",
"houseplan-assets/zigbee-topology-DmwpO4_X.js"
],
"dynamicImports": []
},
{
"path": "houseplan-card.js",
"sha256": "6360cc0964d4eb0e46865760edbf926d4aae2f206eaa24ef5075e12ed16e1ba0",
"sha256": "d0b270ebad646accee58fd8cf7a130875da8b505b596f0e05ada91fffb41bb02",
"rawBytes": 1205,
"gzipBytes": 801,
"gzipBytes": 802,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
},
{
"path": "houseplan-panel.js",
"sha256": "d2ebfb69eab8cf2ac929ea58d5a1d78ee3627ae3d25b7b4a2a7ead3bec52f8b1",
"sha256": "4150cfd182db03e56a9e4b4b680ad72ace418f9882528e526de2579e32944606",
"rawBytes": 6165,
"gzipBytes": 2322,
"gzipBytes": 2325,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-BeanMXov.js"
"houseplan-assets/houseplan-card-BGma7Zjs.js"
],
"dynamicImports": []
}
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__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";import{az as e,l as o,aC as t,e8 as s,A as a,e9 as i,ea as l,eb as n,E as r,c}from"./houseplan-card-BeanMXov.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
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";import{az as e,l as o,aC as t,e8 as s,A as a,e9 as i,ea as l,eb as n,E as r,c}from"./houseplan-card-BGma7Zjs.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
.hass=${this.hass}
.data=${this._formData}
.schema=${e}
.computeLabel=${e=>f[e.name]||e.name}
.computeLabel=${e=>h[e.name]||e.name}
@value-changed=${this._valueChanged}
></ha-form>`;return c`
${d(h.slice(0,3))}
${d(f.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(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);
${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);
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
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";import{c as a,A as e}from"./houseplan-card-BeanMXov.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-Biy-bpfH.js";import"./form-kit.styles-B_wstbUM.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__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";import{c as a,A as e}from"./houseplan-card-BGma7Zjs.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-CGySQMOD.js";import"./form-kit.styles-CfB4DWMs.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__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";import{ee as e,J as t,aX as n,H as i,aa as o,a8 as r,bP as s,bO as a,aW as c,aV as l,aY as d,ef as u,eg as f,bR as m,eh as g}from"./houseplan-card-BeanMXov.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=d(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),s=i.binding.slice(o+1),a="device"===r?e.registry.devices?.[s]:null,c="entity"===r?e.registry.entities?.[s]:null,l="device"===r?s:c?.device_id,d="device"===r?a?.area_id:c?.area_id||l&&e.registry.devices?.[l]?.area_id,u="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||d||"",f=u&&e.areaToSpace[u]||i.space||e.firstSpaceId;l&&e.registry.devices?.[l]&&e.spaceIds.has(f)&&(!n.devices.has(l)||"entity"===r&&n.liveEntities.has(s))&&t.add(l)}return t}function y(e,t){return e?.length?t?.length?g(e,t):e:t}function _(e,t){const n=c(e.rooms,t.walls,t.openCuts,[],i,t.cellCm,o,r);return{roomGeom:"ok"===n.status||"degraded-extra"===n.status?n.roomGeom:void 0,multiWallNodes:l(e.rooms,t.walls,t.openCuts,i,t.cellCm,o,r)}}function*h(c,l,d=_){try{let u=0;for(const f of l){const l=c.spaces.find(e=>String(e?.id)===f.id);if(!l)continue;const m=e(l,f),g=d(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const a=t(e);if(!a)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||a;v=y(v,s(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=a(v)*_*_/1e4}return u}catch{return null}}function p(e,t,n=_){const i=h(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function b(e,t,n,i){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:m(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(i||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function S(e,t){const n=e?.states?.[t];if(!n)return null;const i=u(e,t);return i?f(i,String(n.attributes?.unit_of_measurement||"")):null}export{h as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,b as summarySystemValue,p as totalCleanFloorAreaM2};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";import{ee as e,J as t,aX as n,H as i,aa as o,a8 as r,bP as s,bO as a,aW as c,aV as l,aY as d,ef as u,eg as f,bR as m,eh as g}from"./houseplan-card-BGma7Zjs.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=d(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),s=i.binding.slice(o+1),a="device"===r?e.registry.devices?.[s]:null,c="entity"===r?e.registry.entities?.[s]:null,l="device"===r?s:c?.device_id,d="device"===r?a?.area_id:c?.area_id||l&&e.registry.devices?.[l]?.area_id,u="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||d||"",f=u&&e.areaToSpace[u]||i.space||e.firstSpaceId;l&&e.registry.devices?.[l]&&e.spaceIds.has(f)&&(!n.devices.has(l)||"entity"===r&&n.liveEntities.has(s))&&t.add(l)}return t}function y(e,t){return e?.length?t?.length?g(e,t):e:t}function _(e,t){const n=c(e.rooms,t.walls,t.openCuts,[],i,t.cellCm,o,r);return{roomGeom:"ok"===n.status||"degraded-extra"===n.status?n.roomGeom:void 0,multiWallNodes:l(e.rooms,t.walls,t.openCuts,i,t.cellCm,o,r)}}function*h(c,l,d=_){try{let u=0;for(const f of l){const l=c.spaces.find(e=>String(e?.id)===f.id);if(!l)continue;const m=e(l,f),g=d(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const a=t(e);if(!a)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||a;v=y(v,s(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=a(v)*_*_/1e4}return u}catch{return null}}function p(e,t,n=_){const i=h(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function b(e,t,n,i){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:m(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(i||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function S(e,t){const n=e?.states?.[t];if(!n)return null;const i=u(e,t);return i?f(i,String(n.attributes?.unit_of_measurement||"")):null}export{h as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,b as summarySystemValue,p as totalCleanFloorAreaM2};
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";import{n as t,b as n}from"./zigbee-topology-CC5zdgR2.js";import{aI as e}from"./houseplan-card-BeanMXov.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 m(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 g(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,g=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,g=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&&g?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await m(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 m(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,g as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";import{n as t,b as n}from"./zigbee-topology-DmwpO4_X.js";import{aI as e}from"./houseplan-card-BGma7Zjs.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 p(t){if(!0!==t?.user?.is_admin)throw a("permission")}function f(n){const e=i(n);return e?c(e,"zha",async()=>{if(p(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 m(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 g(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(p(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,f=null,g=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,g=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 p=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&&f?.(n):c&&g?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await m(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 m(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{f as readZhaTopology,g as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
+1 -1
View File
@@ -1 +1 @@
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f375b46ff4913dd2e476de3df2bc2e8ce6fd586b5c580aded9b2e6ce431e9cf1";try{await import("./houseplan-assets/houseplan-card-BeanMXov.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__="5e6b797362146dcb25e3ad594eca3a115b92cc4df3101d718fe7950b0ebfc362";try{await import("./houseplan-assets/houseplan-card-BGma7Zjs.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
+15
View File
@@ -2,6 +2,21 @@
## Unreleased
## v1.77.0 — 2026-09-21
- Refreshed the furniture library with 60 consistently styled symbols, new
items, and artwork matching visible dimensions without changing saved sizes
or placement ([#593](https://github.com/Matysh/houseplan-card/issues/593),
[#584](https://github.com/Matysh/houseplan-card/issues/584)).
- Redesigned four settings dialogs as grouped cards with contextual help,
clearer controls and field validation while preserving saved settings
([#594](https://github.com/Matysh/houseplan-card/issues/594),
[#598](https://github.com/Matysh/houseplan-card/issues/598),
[#600](https://github.com/Matysh/houseplan-card/issues/600)).
- Added “Value + static icon” for devices: the value or state remains visible
without icon recolouring or pulsing
([#588](https://github.com/Matysh/houseplan-card/issues/588)).
## v1.77.0-beta.5 — 2026-09-21
- Corrected the furniture library: Exercise equipment is available under Other,
+15
View File
@@ -8,6 +8,21 @@
## Не выпущено
## v1.77.0 — 2026-09-21
- Обновлена библиотека мебели: 60 символов в едином стиле, новые предметы и
точные видимые габариты при прежних сохранённых размерах и расположении
([#593](https://github.com/Matysh/houseplan-card/issues/593),
[#584](https://github.com/Matysh/houseplan-card/issues/584)).
- Четыре диалога настроек переработаны в карточки с контекстными подсказками,
понятными переключателями и проверкой полей без изменения сохранённых
настроек ([#594](https://github.com/Matysh/houseplan-card/issues/594),
[#598](https://github.com/Matysh/houseplan-card/issues/598),
[#600](https://github.com/Matysh/houseplan-card/issues/600)).
- Для устройств добавлен режим «Значение + статичный значок»: число или
состояние видно, значок не перекрашивается и не пульсирует
([#588](https://github.com/Matysh/houseplan-card/issues/588)).
## v1.77.0-beta.5 — 2026-09-21
- Исправлена библиотека мебели: в «Прочем» доступен тренажёр, в «Растении»
+9 -7
View File
@@ -1,18 +1,20 @@
<!-- release: v1.77.0-beta.5 -->
<!-- release: v1.77.0 -->
## Основное
- Исправлена библиотека мебели: тренажёр доступен в «Прочем», а книжный шкаф и напольный стеллаж получили подходящие рисунки; ранее размещённый «Кактус» остаётся видимым ([#606](https://github.com/Matysh/houseplan-card/issues/606)).
- Доработаны диалоги настроек: кнопки подтверждения и переключатели выровнены, убраны лишние подписи, а цветовые поля и действия больше не обрезаются ([#603](https://github.com/Matysh/houseplan-card/issues/603), [#605](https://github.com/Matysh/houseplan-card/issues/605)).
- Обновлена библиотека мебели: 60 символов в едином стиле, новые предметы и визуальный размер, соответствующий заданным габаритам ([#593](https://github.com/Matysh/houseplan-card/issues/593), [#584](https://github.com/Matysh/houseplan-card/issues/584)).
- Переработаны диалоги настроек пространства, комнаты, устройства и общих параметров: карточки, понятные подсказки, удобные переключатели и проверка полей без изменения сохранённых настроек ([#594](https://github.com/Matysh/houseplan-card/issues/594), [#598](https://github.com/Matysh/houseplan-card/issues/598), [#600](https://github.com/Matysh/houseplan-card/issues/600)).
- В настройках устройства доступно «Значение + статичный значок»: значение видно, но значок не меняет цвет и не пульсирует ([#588](https://github.com/Matysh/houseplan-card/issues/588)).
- Мелкие исправления и улучшения.
## Highlights
- Corrected the furniture library: Exercise equipment is under Other, Bookcase and Floor shelving have matching artwork, and previously placed Cactus objects remain visible ([#606](https://github.com/Matysh/houseplan-card/issues/606)).
- Refined the settings dialogs: confirmation buttons and switches align, redundant labels are gone, and colour fields and actions no longer clip ([#603](https://github.com/Matysh/houseplan-card/issues/603), [#605](https://github.com/Matysh/houseplan-card/issues/605)).
- Refreshed the furniture library with 60 consistently styled symbols, new items, and artwork that matches the specified dimensions ([#593](https://github.com/Matysh/houseplan-card/issues/593), [#584](https://github.com/Matysh/houseplan-card/issues/584)).
- Redesigned Space, Room, Device and General settings dialogs with grouped cards, contextual help, clearer controls and field validation, without changing saved settings ([#594](https://github.com/Matysh/houseplan-card/issues/594), [#598](https://github.com/Matysh/houseplan-card/issues/598), [#600](https://github.com/Matysh/houseplan-card/issues/600)).
- Added “Value + static icon” for devices: the value remains visible while the icon neither changes colour nor pulses ([#588](https://github.com/Matysh/houseplan-card/issues/588)).
- Small fixes and improvements.
Сообщество / Community: [Telegram](https://t.me/ha_houseplan)
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.77.0-beta.5/docs/CHANGELOG.ru.md)
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.77.0-beta.5/docs/CHANGELOG.md)
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.77.0/docs/CHANGELOG.ru.md)
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.77.0/docs/CHANGELOG.md)
+2 -2
View File
@@ -21,8 +21,8 @@ metadata). Only an explicit owner-approved emergency hotfix may skip this gate.
| Item | State |
|---|---|
| Version | **v1.77.0-beta.5** everywhere (manifest, const.py, package.json, package-lock in both places, CARD_VERSION in the card and the editor runtime) |
| Current local cycle | **Beta v1.77.0-beta.5 candidate** — prepared from the exact integrated `dev` tree; `main` stays on v1.76.0. User-visible: corrected furniture catalog artwork and Exercise placement (#606), and further dialog polish for the discard prompt, switches, room settings, colour controls and device fields (#603, #605). Internal: nightly mutation-gate shards now run as six bounded jobs and reject incomplete shard evidence (#604). |
| Version | **v1.77.0** everywhere (manifest, const.py, package.json, package-lock in both places, CARD_VERSION in the card and the editor runtime) |
| Current local cycle | **Stable v1.77.0 candidate** — promotion of the published beta line from v1.76.0. The line delivers a 60-symbol furniture library and dimension parity (#593, #584), redesigned settings dialogs (#594, #598, #600), and a value plus static icon mode (#588). Beta-only polish (#602, #603, #605, #606) is included without presenting it as a new stable feature. Internal CI mutation-gate shards are bounded and evidence-checked (#604). The exact SHA still requires Validate, Full Performance and stable release gates before publication. |
| 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; #570 adds the Stage 4 designer handoff and #583 refines it on `dev`: only the building ambient shadow remains, door/gate volumes pivot on the selected host face without strokes, and devices/lock badges receive deterministic mutual collision correction while room labels remain passive below them. The same hidden `iso` view uses a fixed 0°/20° camera and scale-aware wall height 84, low screen-facing device/room/lock overlays without tethers or ground dots, neutral full-height window frames with blue glass, and bounded theme materials. 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 4 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 stable release is produced by `release.yml` (`workflow_dispatch` on `main` with the tag) — the only publisher of installable assets since #540: gates on the exact SHA (Validate, Full Performance, E2E on the candidate commit), one build, `houseplan.zip` archived from the committed tree, `SHA256SUMS`, draft → publish → read-back verification; a release published by hand in the GitHub form is turned back into a draft and walked through the same path, and a re-dispatch on a public tag is a repair that adds only missing assets. 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) |
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "houseplan-card",
"version": "1.77.0-beta.5",
"version": "1.77.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "houseplan-card",
"version": "1.77.0-beta.5",
"version": "1.77.0",
"license": "MIT",
"dependencies": {
"lit": "^3.1.3",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "houseplan-card",
"version": "1.77.0-beta.5",
"version": "1.77.0",
"description": "Interactive house plan Lovelace card for Home Assistant",
"license": "MIT",
"type": "module",
+1 -1
View File
@@ -427,7 +427,7 @@ import type { MarkerRoomReferenceSnapshot } from './room-reference-transaction';
import { SummaryRuntimeSlot, summaryRuntimeLoader } from './summary-runtime-loader';
import { displayVersion } from './card-version';
const CARD_VERSION = '1.77.0-beta.5';
const CARD_VERSION = '1.77.0';
const ENTRY_BUILD_FINGERPRINT = '__HOUSEPLAN_SOURCE_FINGERPRINT__';
const EDITOR_RETRY_ASSET = '__HOUSEPLAN_EDITOR_RETRY_ASSET__';
const ISO_RETRY_ASSET = '__HOUSEPLAN_ISO_RETRY_ASSET__';
+1 -1
View File
@@ -397,7 +397,7 @@ import {
rewriteMarkerRoomReferences, type MarkerRoomReferenceSnapshot,
} from './room-reference-transaction';
const CARD_VERSION = '1.77.0-beta.5';
const CARD_VERSION = '1.77.0';
// #474: the editor imports the furniture artwork statically and hands it to
// the page runtime the moment this chunk evaluates — before the loader's