mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-30 03:38:47 +00:00
fix(dialogs): короткие подписи сегментов заливки по референсу — общие ключи fill.seg_* (#600)
Продолжение r1 M1: полные fill.* в RU («По силе зигби-сигнала», «По температуре») не входили одной строкой в четыре колонки сегмента пространства и переносились на вторую строку кнопками. Референс (§4.2 reference/app.js fillOptions, §6.1) даёт короткие подписи Custom | Zigbee | Lights | Temperature — они и стоят в обоих сегментах общими ключами ленивого словаря fill.seg_* (en/ru/de/fr); room.fill_seg_* удалены. USER-GUIDE ru/en, ACCEPTANCE.md и smoke_ux_fixes обновлены; changelog называет короткие подписи. Три эталона меняются к лучшему и требуют повторной приёмки: device-dialog-desktop-en и toggle-entity-dialog-desktop-en («Colour and brightness» одной строкой вместо двух), space-room-color-popover-desktop-ru (сегмент RU без разорванных слов); остальные десять сцен — passed на этом дереве диагностически. Issue: #600 User-Visible: yes
This commit is contained in:
@@ -1,312 +1,312 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32",
|
||||
"fingerprint": "0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82",
|
||||
"entry": "houseplan-card.js",
|
||||
"panelEntry": "houseplan-panel.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 289852,
|
||||
"initialViewGzipBytes": 289826,
|
||||
"initialPanelFiles": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelGzipBytes": 291374,
|
||||
"initialPanelGzipBytes": 291348,
|
||||
"initialPanelOnlyFiles": [
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelOnlyGzipBytes": 2325,
|
||||
"initialPanelOnlyGzipBytes": 2321,
|
||||
"lazyFiles": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/de-DVCIKwC0.js",
|
||||
"houseplan-assets/editor-C694OxAO.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/fr-DHxhbm5E.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-AzCVhtuX.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Dp2b84fm.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-CbSbT5WT.js",
|
||||
"houseplan-assets/iso-scene-render-fYqz_-Ot.js",
|
||||
"houseplan-assets/live-interaction-runtime-XyTIhKAA.js",
|
||||
"houseplan-assets/pdf-export-D3vmqIY6.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CX2cplA1.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-d-S2Abll.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/de-Du5_pA7f.js",
|
||||
"houseplan-assets/editor-CHfYmrt5.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/fr-B36ReLzT.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DXZYfUKs.js",
|
||||
"houseplan-assets/iso-scene-render-D587ZbM1.js",
|
||||
"houseplan-assets/live-interaction-runtime-C2jrtBKS.js",
|
||||
"houseplan-assets/pdf-export-cPUyR7qn.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
],
|
||||
"lazyGzipBytes": 459551,
|
||||
"lazyGzipBytes": 459588,
|
||||
"lazyEditorFiles": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/editor-C694OxAO.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-AzCVhtuX.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/editor-CHfYmrt5.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 242989,
|
||||
"lazyEditorGzipBytes": 243061,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Dp2b84fm.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 33577,
|
||||
"lazyOnboardingGzipBytes": 33661,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-DVCIKwC0.js",
|
||||
"houseplan-assets/fr-DHxhbm5E.js"
|
||||
"houseplan-assets/de-Du5_pA7f.js",
|
||||
"houseplan-assets/fr-B36ReLzT.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 55383,
|
||||
"lazyLocaleGzipBytes": 55374,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/iso-scene-render-fYqz_-Ot.js"
|
||||
"houseplan-assets/iso-scene-render-D587ZbM1.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 17643,
|
||||
"lazyIsometricGzipBytes": 17640,
|
||||
"lazyFurnitureArtFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js"
|
||||
],
|
||||
"lazyFurnitureArtGzipBytes": 16942,
|
||||
"lazyFurnitureArtGzipBytes": 16944,
|
||||
"lazyPdfFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/pdf-export-D3vmqIY6.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/pdf-export-cPUyR7qn.js"
|
||||
],
|
||||
"lazyPdfGzipBytes": 126817,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"sha256": "c24f2896a89f71e0a4147184f93b0e69e0c22eb705b772e644e9fc131ff879f4",
|
||||
"rawBytes": 74375,
|
||||
"gzipBytes": 24031,
|
||||
"path": "houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"sha256": "a4bc180faa3202e1d8f63aa96c8987008e488d6dd3ca4dca3f7a710725c11209",
|
||||
"rawBytes": 74674,
|
||||
"gzipBytes": 24120,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-DVCIKwC0.js",
|
||||
"sha256": "6f716933e452260c6e7c0c40d7193e750b6fc443f162cca5cb814c734142dde5",
|
||||
"path": "houseplan-assets/de-Du5_pA7f.js",
|
||||
"sha256": "db29c690a55ac67c07065e1666ecd0cedff19c31031aa4560fff9c4562174329",
|
||||
"rawBytes": 92513,
|
||||
"gzipBytes": 27933,
|
||||
"gzipBytes": 27927,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-C694OxAO.js",
|
||||
"sha256": "f95242b8000cddf2fe1856a5518883c00a27a90c2983f228003db0189dffc1b4",
|
||||
"path": "houseplan-assets/editor-CHfYmrt5.js",
|
||||
"sha256": "0d50e2fd290781676e619648f2da76fa53fc31669d9d61c3f7bdcce496708e0d",
|
||||
"rawBytes": 3833,
|
||||
"gzipBytes": 1583,
|
||||
"gzipBytes": 1581,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"sha256": "44a654e7c905948ab4bb363514532c13e67e3e54eee37e4af0ec8447f706fbc1",
|
||||
"path": "houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"sha256": "2bede296d4c3a3347ee9bdde605a657e88c7b2ae9097aaffd154b09f8bbdcb0c",
|
||||
"rawBytes": 23544,
|
||||
"gzipBytes": 4716,
|
||||
"gzipBytes": 4715,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-DHxhbm5E.js",
|
||||
"sha256": "f603ade3217ebe9959225379598608583ec29ab654dc257f57ae894d85ca448f",
|
||||
"path": "houseplan-assets/fr-B36ReLzT.js",
|
||||
"sha256": "9c2ee16aed204d874d85a67a12105fa454613bb4c80f79a363367e9c9f2fa86c",
|
||||
"rawBytes": 94824,
|
||||
"gzipBytes": 27450,
|
||||
"gzipBytes": 27447,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"sha256": "86d1074252f182c84d47285560a5b22c26724e21f21d03fbac4583973a9c11a7",
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"sha256": "6face3496a7ad5c9faf547b8ecefbb2f68c0e2759fc6ff1ed25a5741c589ea44",
|
||||
"rawBytes": 52033,
|
||||
"gzipBytes": 16942,
|
||||
"gzipBytes": 16944,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"sha256": "e475fbae1c25540d2e349d4441bc963a4ff4181b8659fd491309dd1e578f716a",
|
||||
"path": "houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"sha256": "d9760789aad7c05fc71a0eba803dea8a0e0ebdb00e9aa12152fa814a68168df4",
|
||||
"rawBytes": 1027208,
|
||||
"gzipBytes": 289049,
|
||||
"gzipBytes": 289027,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/de-DVCIKwC0.js",
|
||||
"houseplan-assets/editor-C694OxAO.js",
|
||||
"houseplan-assets/fr-DHxhbm5E.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-AzCVhtuX.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Dp2b84fm.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-CbSbT5WT.js",
|
||||
"houseplan-assets/iso-scene-render-fYqz_-Ot.js",
|
||||
"houseplan-assets/live-interaction-runtime-XyTIhKAA.js",
|
||||
"houseplan-assets/pdf-export-D3vmqIY6.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CX2cplA1.js"
|
||||
"houseplan-assets/de-Du5_pA7f.js",
|
||||
"houseplan-assets/editor-CHfYmrt5.js",
|
||||
"houseplan-assets/fr-B36ReLzT.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DXZYfUKs.js",
|
||||
"houseplan-assets/iso-scene-render-D587ZbM1.js",
|
||||
"houseplan-assets/live-interaction-runtime-C2jrtBKS.js",
|
||||
"houseplan-assets/pdf-export-cPUyR7qn.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-AzCVhtuX.js",
|
||||
"sha256": "e84feb1cf320be8297982134d45a5adceaec5a50f95aaa884e6e53cae2664edd",
|
||||
"rawBytes": 677390,
|
||||
"gzipBytes": 188290,
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"sha256": "a040c3b1bfb3caab29ed3925f8d9155d147ee53817007a7571169373f7ce8aee",
|
||||
"rawBytes": 677322,
|
||||
"gzipBytes": 188275,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-d-S2Abll.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-Dp2b84fm.js",
|
||||
"sha256": "64367a8743ea22c4a9a350456878b7006ba01a346cc89eabb786e3c1d944ad3a",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js",
|
||||
"sha256": "31cc896b2dd622f721dba8aec48f2bc03a64efe2fe038a24bbfddacff85bfb2f",
|
||||
"rawBytes": 15667,
|
||||
"gzipBytes": 4830,
|
||||
"gzipBytes": 4826,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-CbSbT5WT.js",
|
||||
"sha256": "b2fa73ad0fc3353630e380abe1f63f483113c7bfc5f1e634150c2f0e12b4e0cf",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DXZYfUKs.js",
|
||||
"sha256": "9046135d11c562249abb70e69b0169355f14381ce87c86dc0ba3fbfbb83f1cf4",
|
||||
"rawBytes": 10759,
|
||||
"gzipBytes": 3686,
|
||||
"gzipBytes": 3682,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-d-S2Abll.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-fYqz_-Ot.js",
|
||||
"sha256": "009a9217d1c522a5c2b6f9d5ea3450e2a77aafe52096d9c1d19902a18c6632f9",
|
||||
"path": "houseplan-assets/iso-scene-render-D587ZbM1.js",
|
||||
"sha256": "2182acd9989c8fba95b57ec8d49342ad225ff5b846411287e45cfa9b64080f29",
|
||||
"rawBytes": 51983,
|
||||
"gzipBytes": 17643,
|
||||
"gzipBytes": 17640,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-XyTIhKAA.js",
|
||||
"sha256": "0fd38fd067699ea97f11565db7c4ae86c1bcc867041e7e3377408f40e741f03f",
|
||||
"path": "houseplan-assets/live-interaction-runtime-C2jrtBKS.js",
|
||||
"sha256": "af56aaf8ab0c7dee9f0e3de23b4c4fbe26b98f904a6a294e8fd4e473cb2dc9c5",
|
||||
"rawBytes": 8216,
|
||||
"gzipBytes": 3209,
|
||||
"gzipBytes": 3201,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/pdf-export-D3vmqIY6.js",
|
||||
"sha256": "4c60cf0b34a17777c60c4849f1ee42841fb74b69466366adcf94cf97eec9ad2e",
|
||||
"path": "houseplan-assets/pdf-export-cPUyR7qn.js",
|
||||
"sha256": "aab1097826135ac16f9fdf8d8f3d989c1485399ee7d494d68a3bf9918c99307d",
|
||||
"rawBytes": 236247,
|
||||
"gzipBytes": 109875,
|
||||
"gzipBytes": 109873,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-editor-CNT_mev4.js",
|
||||
"sha256": "ef5dcf22a38fb5df834dcce277de7967303b8025167527483aab726dd30f3a2c",
|
||||
"rawBytes": 14867,
|
||||
"gzipBytes": 3427,
|
||||
"path": "houseplan-assets/summary-panel-editor-CeUXHEmo.js",
|
||||
"sha256": "744b8ce4dea90a3a42af2b2356d558224531dbd0aac73ee7e8f18497d25fecc5",
|
||||
"rawBytes": 14862,
|
||||
"gzipBytes": 3420,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CX2cplA1.js"
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-metrics-BhoEMuKv.js",
|
||||
"sha256": "0b4f1816c4069cc62f20dccaeeeceb82c139dee339782833e594e46aa768fe06",
|
||||
"path": "houseplan-assets/summary-panel-metrics-CtDve8JT.js",
|
||||
"sha256": "ac5d957013d3db30ab00a6c3e94ac5512145270d85a3f155c5ee131a88aa8ba2",
|
||||
"rawBytes": 2611,
|
||||
"gzipBytes": 1308,
|
||||
"gzipBytes": 1305,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-CX2cplA1.js",
|
||||
"sha256": "95e65a1d327f9d2f90796b9ae7754e0d8a64c15e44a82cefe329dca8f6115689",
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js",
|
||||
"sha256": "36caf881e1133ab072f8d6df613677b3564a35dee37a502117040c783089a1b6",
|
||||
"rawBytes": 72733,
|
||||
"gzipBytes": 20172,
|
||||
"gzipBytes": 20170,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/summary-panel-editor-CNT_mev4.js",
|
||||
"houseplan-assets/summary-panel-metrics-BhoEMuKv.js"
|
||||
"houseplan-assets/summary-panel-editor-CeUXHEmo.js",
|
||||
"houseplan-assets/summary-panel-metrics-CtDve8JT.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-CI6PJorK.js",
|
||||
"sha256": "6e503b93a48deeda46368588fd4eebf7215aa4a2928e1162747da8b3ffe4b67a",
|
||||
"path": "houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"sha256": "898295e433fd3b841d1299feb676f9efce98b10b1390c4306529a4e676598f78",
|
||||
"rawBytes": 18962,
|
||||
"gzipBytes": 7427,
|
||||
"gzipBytes": 7426,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-d-S2Abll.js",
|
||||
"sha256": "f6aad0abbf74532abc1c705d1268cce95048e7dbdc81a52a776a996c8b70f969",
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-CcDynYR9.js",
|
||||
"sha256": "6d9ba4d38f5b6ef8793118241c99572d5887e88ceab666c56ffcf8931faeaf69",
|
||||
"rawBytes": 3942,
|
||||
"gzipBytes": 1764,
|
||||
"gzipBytes": 1761,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "c796620c6d67c8fb18479291279eb410302ad541ed2b3679d59b780f74e8935b",
|
||||
"sha256": "c34e1813f3085f66287231ad1f53c45d11a173133dc459934dbcaca630aea950",
|
||||
"rawBytes": 1205,
|
||||
"gzipBytes": 803,
|
||||
"gzipBytes": 799,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-panel.js",
|
||||
"sha256": "c134452d829194d8d630e5859f8142d345e15348a706d7a83d5d9328b0df3faa",
|
||||
"sha256": "860ad9ba4933e3d40d7bc490aa14d366eae9eab12096bbbf06e1838c473ce57b",
|
||||
"rawBytes": 6165,
|
||||
"gzipBytes": 2325,
|
||||
"gzipBytes": 2321,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
}
|
||||
|
||||
+18
-18
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+5
-5
@@ -1,14 +1,14 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";import{az as e,l as o,aC as t,e7 as s,A as a,e8 as i,e9 as l,ea as n,E as r,c}from"./houseplan-card-9fMSy3y3.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{az as e,l as o,aC as t,e7 as s,A as a,e8 as i,e9 as l,ea as n,E as r,c}from"./houseplan-card-COwlrP1O.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);
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+5
-5
File diff suppressed because one or more lines are too long
+4
-4
File diff suppressed because one or more lines are too long
+3
-3
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+2
-2
File diff suppressed because one or more lines are too long
+52
-52
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";import{c as a,A as s}from"./houseplan-card-9fMSy3y3.js";import{s as e,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-CX2cplA1.js";import"./form-kit.styles-CKUQLdmn.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&&!e(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(s=>s.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{c as a,A as e}from"./houseplan-card-COwlrP1O.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-D9vYgudE.js";import"./form-kit.styles-COBHNvsH.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"
|
||||
@@ -10,31 +10,31 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
dismiss-on-scrim aria-busy=${String(d.busy)}
|
||||
@hp-close=${k}>
|
||||
<div class="body summary-editor" @click=${()=>m.closeSource()}>
|
||||
${d.localOnly?a`<p class="summary-local-hint">${b(d.localOnlyHint)}</p>`:s}
|
||||
${d.localOnly?a`<p class="summary-local-hint">${b(d.localOnlyHint)}</p>`:e}
|
||||
<section class="summary-general" aria-labelledby="summary-general-title">
|
||||
<h3 id="summary-general-title">${b("summary.general_settings")}</h3>
|
||||
<div class="summary-general-grid">
|
||||
${d.localOnly?s:a`<div class="summary-field">
|
||||
${d.localOnly?e:a`<div class="summary-field">
|
||||
<label for="summary-panel-title">${b("summary.panel_title")}</label>
|
||||
<input id="summary-panel-title" type="text" .value=${d.draft.title}
|
||||
?disabled=${d.busy}
|
||||
data-summary-error=${String(d.attempted&&"title"===y?.path)}
|
||||
aria-invalid=${"error"===v("title")?.kind?"true":"false"}
|
||||
@input=${a=>m.mutate(s=>{s.title=a.target.value})} />
|
||||
${v("title")?a`<div class="summary-problem error">${h(v("title"))}</div>`:s}
|
||||
@input=${a=>m.mutate(e=>{e.title=a.target.value})} />
|
||||
${v("title")?a`<div class="summary-problem error">${h(v("title"))}</div>`:e}
|
||||
</div>`}
|
||||
${g}
|
||||
${d.localOnly?s:a`<label class="summary-switch" for="summary-mobile-show">
|
||||
${d.localOnly?e:a`<label class="summary-switch" for="summary-mobile-show">
|
||||
<span class="summary-switch-caption"><strong>${b("summary.show_mobile")}</strong>
|
||||
<small id="summary-mobile-show-hint">${b("summary.show_mobile_hint")}</small></span>
|
||||
<input id="summary-mobile-show" data-summary-mobile-show type="checkbox"
|
||||
.checked=${d.draft.show_on_mobile} ?disabled=${!d.localShow||d.busy}
|
||||
aria-label=${b("summary.show_mobile")} aria-describedby="summary-mobile-show-hint"
|
||||
@change=${a=>m.mutate(s=>{s.show_on_mobile=a.target.checked})} /></label>`}
|
||||
@change=${a=>m.mutate(e=>{e.show_on_mobile=a.target.checked})} /></label>`}
|
||||
</div>
|
||||
${m.storageUnavailable?a`<div class="summary-problem warning">${b("summary.storage_unavailable")}</div>`:s}
|
||||
${m.storageUnavailable?a`<div class="summary-problem warning">${b("summary.storage_unavailable")}</div>`:e}
|
||||
</section>
|
||||
${d.localOnly?s:a`
|
||||
${d.localOnly?e:a`
|
||||
<section class="summary-blocks-card" aria-labelledby="summary-blocks-title">
|
||||
<header class="summary-blocks-heading">
|
||||
<div><h3 id="summary-blocks-title">${b("summary.blocks")}</h3>
|
||||
@@ -42,7 +42,7 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
<span class="summary-block-count">${b("summary.block_count").replace("{count}",String(d.draft.blocks.length)).replace("{limit}","10")}</span>
|
||||
</header>
|
||||
<div class="summary-editor-blocks">
|
||||
${d.draft.blocks.map((e,t)=>{const u=`blocks.${t}`,n=v(`${u}.scope`);return a`<article class="summary-editor-block"
|
||||
${d.draft.blocks.map((s,t)=>{const u=`blocks.${t}`,n=v(`${u}.scope`);return a`<article class="summary-editor-block"
|
||||
@dragover=${a=>a.preventDefault()}
|
||||
@drop=${a=>m.drop(a,`block:${t}`)}>
|
||||
<div class="summary-block-head">
|
||||
@@ -57,40 +57,40 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
?disabled=${t===d.draft.blocks.length-1||d.busy}
|
||||
@click=${()=>m.mutate(a=>{a.blocks=r(a.blocks,t,t+1)})}>${l("down")}</button>
|
||||
</div>
|
||||
<input class="summary-block-title" type="text" .value=${e.title}
|
||||
<input class="summary-block-title" type="text" .value=${s.title}
|
||||
placeholder=${b("summary.block_title")} aria-label=${b("summary.block_title")}
|
||||
?disabled=${d.busy}
|
||||
data-summary-error=${String(d.attempted&&y?.path===`${u}.title`)}
|
||||
aria-invalid=${"error"===v(`${u}.title`)?.kind?"true":"false"}
|
||||
@input=${a=>m.mutate(s=>{s.blocks[t].title=a.target.value})} />
|
||||
@input=${a=>m.mutate(e=>{e.blocks[t].title=a.target.value})} />
|
||||
<button class="summary-icon-button summary-visibility" type="button"
|
||||
?disabled=${d.busy} aria-pressed=${String(e.visible)}
|
||||
title=${b(e.visible?"summary.hide_block":"summary.show_block")}
|
||||
aria-label=${b(e.visible?"summary.hide_block":"summary.show_block")}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].visible=!a.blocks[t].visible})}>${l(e.visible?"eye":"eyeOff")}</button>
|
||||
${v(`${u}.title`)?a`<div class="summary-problem error summary-block-title-error">${h(v(`${u}.title`))}</div>`:s}
|
||||
?disabled=${d.busy} aria-pressed=${String(s.visible)}
|
||||
title=${b(s.visible?"summary.hide_block":"summary.show_block")}
|
||||
aria-label=${b(s.visible?"summary.hide_block":"summary.show_block")}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].visible=!a.blocks[t].visible})}>${l(s.visible?"eye":"eyeOff")}</button>
|
||||
${v(`${u}.title`)?a`<div class="summary-problem error summary-block-title-error">${h(v(`${u}.title`))}</div>`:e}
|
||||
<div class="summary-scope">
|
||||
<select .value=${e.scope.type} ?disabled=${d.busy}
|
||||
<select .value=${s.scope.type} ?disabled=${d.busy}
|
||||
aria-label=${b("summary.scope")}
|
||||
@change=${a=>m.mutate(s=>{s.blocks[t].scope="space"===a.target.value?{type:"space",space_id:c._space}:{type:"all"}})}>
|
||||
<option value="all" ?selected=${"all"===e.scope.type}>${b("summary.scope_all")}</option>
|
||||
<option value="space" ?selected=${"space"===e.scope.type}>${b("summary.scope_space")}</option>
|
||||
@change=${a=>m.mutate(e=>{e.blocks[t].scope="space"===a.target.value?{type:"space",space_id:c._space}:{type:"all"}})}>
|
||||
<option value="all" ?selected=${"all"===s.scope.type}>${b("summary.scope_all")}</option>
|
||||
<option value="space" ?selected=${"space"===s.scope.type}>${b("summary.scope_space")}</option>
|
||||
</select>
|
||||
${"space"===e.scope.type?a`<select .value=${e.scope.space_id}
|
||||
${"space"===s.scope.type?a`<select .value=${s.scope.space_id}
|
||||
?disabled=${d.busy} aria-label=${b("summary.scope_space")}
|
||||
data-summary-error=${String(d.attempted&&y?.path===`${u}.scope`)}
|
||||
aria-invalid=${"error"===n?.kind?"true":"false"}
|
||||
@change=${a=>m.mutate(s=>{const e=s.blocks[t].scope;"space"===e.type&&(e.space_id=a.target.value)})}>
|
||||
${c._model.some(a=>a.id===e.scope.space_id)?s:a`<option value=${e.scope.space_id} selected>${e.scope.space_id}</option>`}
|
||||
${c._model.map(s=>a`<option value=${s.id}
|
||||
?selected=${s.id===e.scope.space_id}>${s.title}</option>`)}
|
||||
</select>`:s}
|
||||
@change=${a=>m.mutate(e=>{const s=e.blocks[t].scope;"space"===s.type&&(s.space_id=a.target.value)})}>
|
||||
${c._model.some(a=>a.id===s.scope.space_id)?e:a`<option value=${s.scope.space_id} selected>${s.scope.space_id}</option>`}
|
||||
${c._model.map(e=>a`<option value=${e.id}
|
||||
?selected=${e.id===s.scope.space_id}>${e.title}</option>`)}
|
||||
</select>`:e}
|
||||
</div>
|
||||
${n?a`<div class="summary-problem summary-scope-problem ${n.kind}">${h(n)}</div>`:s}
|
||||
${n?a`<div class="summary-problem summary-scope-problem ${n.kind}">${h(n)}</div>`:e}
|
||||
</div>
|
||||
<div class="summary-block-body">
|
||||
<div class="summary-editor-values">
|
||||
${e.values.map((i,c)=>{const n=`${u}.values.${c}`,$=v(`${n}.source`),p=m.sourceToken(i.source),k=d.activeSource?.blockId===e.id&&d.activeSource.valueId===i.id,g="system"===i.source.type?b(`summary.system.${i.source.key}`):i.source.entity_id?m.entityIndex.labels.get(i.source.entity_id)||i.source.entity_id:b("summary.select_source"),_="system"===i.source.type?b("summary.system_source"):i.source.entity_id,f=k?o(m.entityIndex,d.entityFilter):null,w="entity"===i.source.type&&!!i.source.entity_id&&!m.entityIndex.labels.has(i.source.entity_id),S=`${e.id}\n${i.id}`;return a`<div class="summary-editor-value"
|
||||
${s.values.map((i,c)=>{const n=`${u}.values.${c}`,$=v(`${n}.source`),p=m.sourceToken(i.source),k=d.activeSource?.blockId===s.id&&d.activeSource.valueId===i.id,g="system"===i.source.type?b(`summary.system.${i.source.key}`):i.source.entity_id?m.entityIndex.labels.get(i.source.entity_id)||i.source.entity_id:b("summary.select_source"),_="system"===i.source.type?b("summary.system_source"):i.source.entity_id,f=k?o(m.entityIndex,d.entityFilter):null,w="entity"===i.source.type&&!!i.source.entity_id&&!m.entityIndex.labels.has(i.source.entity_id),S=`${s.id}\n${i.id}`;return a`<div class="summary-editor-value"
|
||||
@dragover=${a=>{a.preventDefault(),a.stopPropagation()}}
|
||||
@drop=${a=>m.drop(a,`value:${t}:${c}`)}>
|
||||
<span class="summary-drag" draggable=${String(!d.busy)} title=${b("summary.drag")}
|
||||
@@ -101,7 +101,7 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].values=r(a.blocks[t].values,c,c-1)})}>${l("up")}</button>
|
||||
<button class="summary-icon-button" type="button" title=${b("summary.down")}
|
||||
aria-label=${b("summary.down")}
|
||||
?disabled=${c===e.values.length-1||d.busy}
|
||||
?disabled=${c===s.values.length-1||d.busy}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].values=r(a.blocks[t].values,c,c+1)})}>${l("down")}</button>
|
||||
</div>
|
||||
<div class="summary-value-label">
|
||||
@@ -109,8 +109,8 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
placeholder=${b("summary.value_name")} aria-label=${b("summary.value_name")}
|
||||
data-summary-error=${String(d.attempted&&y?.path===`${n}.label`)}
|
||||
aria-invalid=${"error"===v(`${n}.label`)?.kind?"true":"false"}
|
||||
@input=${a=>m.mutate(s=>{s.blocks[t].values[c].label=a.target.value})} />
|
||||
${v(`${n}.label`)?a`<div class="summary-problem error">${h(v(`${n}.label`))}</div>`:s}
|
||||
@input=${a=>m.mutate(e=>{e.blocks[t].values[c].label=a.target.value})} />
|
||||
${v(`${n}.label`)?a`<div class="summary-problem error">${h(v(`${n}.label`))}</div>`:e}
|
||||
</div>
|
||||
<div class="summary-source-field">
|
||||
<button class="summary-source" type="button"
|
||||
@@ -119,9 +119,9 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
data-summary-error=${String(d.attempted&&y?.path===`${n}.source`)}
|
||||
aria-invalid=${"error"===$?.kind?"true":"false"}
|
||||
aria-haspopup="listbox" aria-expanded=${k?"true":"false"}
|
||||
@click=${a=>{a.stopPropagation(),k?m.closeSource():m.openSource(e.id,i.id)}}>
|
||||
@click=${a=>{a.stopPropagation(),k?m.closeSource():m.openSource(s.id,i.id)}}>
|
||||
<span class="summary-source-caption"><strong>${g}</strong>
|
||||
${_?a`<small>${_}</small>`:s}</span>
|
||||
${_?a`<small>${_}</small>`:e}</span>
|
||||
${l("chevron")}
|
||||
</button>
|
||||
${k&&f?a`<div class="summary-source-picker"
|
||||
@@ -135,39 +135,39 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
<div class="summary-source-results" role="listbox"
|
||||
aria-label=${b("summary.select_source")}>
|
||||
<div class="summary-source-group">${b("summary.system_group")}</div>
|
||||
${["device_count","total_area","datetime"].map(s=>a`
|
||||
${["device_count","total_area","datetime"].map(e=>a`
|
||||
<button type="button" role="option"
|
||||
?disabled=${d.busy}
|
||||
aria-selected=${p===`system:${s}`?"true":"false"}
|
||||
@click=${()=>m.setSource(e.id,i.id,`system:${s}`)}>
|
||||
${b(`summary.system.${s}`)}
|
||||
aria-selected=${p===`system:${e}`?"true":"false"}
|
||||
@click=${()=>m.setSource(s.id,i.id,`system:${e}`)}>
|
||||
${b(`summary.system.${e}`)}
|
||||
</button>`)}
|
||||
${w?a`<div class="summary-source-group">${b("summary.current_source")}</div>
|
||||
<button type="button" role="option" class="broken" aria-selected="true"
|
||||
?disabled=${d.busy}
|
||||
@click=${()=>m.setSource(e.id,i.id,p)}>
|
||||
@click=${()=>m.setSource(s.id,i.id,p)}>
|
||||
${g}
|
||||
</button>`:s}
|
||||
</button>`:e}
|
||||
<div class="summary-source-group">${b("summary.entities_group")}</div>
|
||||
${f.entries.map(s=>a`<button type="button" role="option"
|
||||
${f.entries.map(e=>a`<button type="button" role="option"
|
||||
?disabled=${d.busy}
|
||||
aria-selected=${p===`entity:${s.id}`?"true":"false"}
|
||||
@click=${()=>m.setSource(e.id,i.id,`entity:${s.id}`)}>
|
||||
<span>${s.label}</span><small>${s.id}</small>
|
||||
aria-selected=${p===`entity:${e.id}`?"true":"false"}
|
||||
@click=${()=>m.setSource(s.id,i.id,`entity:${e.id}`)}>
|
||||
<span>${e.label}</span><small>${e.id}</small>
|
||||
</button>`)}
|
||||
${f.total?s:a`<div class="summary-empty">${b("summary.no_search_results")}</div>`}
|
||||
${f.truncated?a`<div class="summary-refine">${b("summary.refine_search")}</div>`:s}
|
||||
${f.total?e:a`<div class="summary-empty">${b("summary.no_search_results")}</div>`}
|
||||
${f.truncated?a`<div class="summary-refine">${b("summary.refine_search")}</div>`:e}
|
||||
</div>
|
||||
</div>`:s}
|
||||
${$?a`<div class="summary-problem ${$.kind}">${h($)}</div>`:s}
|
||||
</div>`:e}
|
||||
${$?a`<div class="summary-problem ${$.kind}">${h($)}</div>`:e}
|
||||
</div>
|
||||
<button class="summary-icon-button summary-value-remove" type="button"
|
||||
title=${b("btn.delete")} aria-label=${b("btn.delete")} ?disabled=${d.busy}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].values.splice(c,1)})}>${l("close")}</button>
|
||||
</div>`})}
|
||||
<button class="summary-add summary-add-value" type="button"
|
||||
?disabled=${e.values.length>=20||d.busy}
|
||||
title=${e.values.length>=20?b("summary.limit_values"):""}
|
||||
?disabled=${s.values.length>=20||d.busy}
|
||||
title=${s.values.length>=20?b("summary.limit_values"):""}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].values.push(i())})}>
|
||||
${l("plus")}${b("summary.add_value")}
|
||||
</button>
|
||||
@@ -186,11 +186,11 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
${l("plus")}${b("summary.add_block")}
|
||||
</button>
|
||||
</section>
|
||||
${d.error?a`<div class="summary-problem error" role="alert">${d.error}</div>`:s}
|
||||
${d.error?a`<div class="summary-problem error" role="alert">${d.error}</div>`:e}
|
||||
${d.conflict?a`<button class="btn ghost summary-reload" type="button"
|
||||
?disabled=${d.busy} @click=${()=>m.reload()}>
|
||||
<ha-icon icon="mdi:reload"></ha-icon>${b("summary.reload_current")}
|
||||
</button>`:s}
|
||||
</button>`:e}
|
||||
`}
|
||||
</div>
|
||||
<div class="row summary-editor-footer" slot="footer">
|
||||
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";import{ed as e,J as t,aX as n,H as i,aa as o,a8 as r,bO as a,bN as s,aW as c,aV as l,aY as d,ee as u,ef as f,bQ as m,eg as g}from"./houseplan-card-9fMSy3y3.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),a=i.binding.slice(o+1),s="device"===r?e.registry.devices?.[a]:null,c="entity"===r?e.registry.entities?.[a]:null,l="device"===r?a:c?.device_id,d="device"===r?s?.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(a))&&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 s=t(e);if(!s)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||s;v=y(v,a(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=s(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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{ed as e,J as t,aX as n,H as i,aa as o,a8 as r,bO as a,bN as s,aW as c,aV as l,aY as d,ee as u,ef as f,bQ as m,eg as g}from"./houseplan-card-COwlrP1O.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),a=i.binding.slice(o+1),s="device"===r?e.registry.devices?.[a]:null,c="entity"===r?e.registry.entities?.[a]:null,l="device"===r?a:c?.device_id,d="device"===r?s?.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(a))&&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 s=t(e);if(!s)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||s;v=y(v,a(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=s(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};
|
||||
+2
-2
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";import{n as t,b as n}from"./zigbee-topology-CI6PJorK.js";import{aI as e}from"./houseplan-card-9fMSy3y3.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{n as t,b as n}from"./zigbee-topology-CDLyN3-N.js";import{aI as e}from"./houseplan-card-COwlrP1O.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__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";try{await import("./houseplan-assets/houseplan-card-9fMSy3y3.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";try{await import("./houseplan-assets/houseplan-card-COwlrP1O.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
@@ -141,7 +141,7 @@ checkAll(res, {
|
||||
"tipTemp": 22.4,
|
||||
"tipHum": 48,
|
||||
"fillRadios": 4,
|
||||
"fillLabels": ["Свой цвет", "По силе зигби-сигнала", "По освещению", "По температуре"],
|
||||
"fillLabels": ["Свой цвет", "Zigbee", "Свет", "Температура"],
|
||||
"fillHasNone": false,
|
||||
"legacyNoneProjection": "custom",
|
||||
"legacyNoneAlpha": 0,
|
||||
|
||||
Vendored
+146
-146
@@ -1,312 +1,312 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32",
|
||||
"fingerprint": "0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82",
|
||||
"entry": "houseplan-card.js",
|
||||
"panelEntry": "houseplan-panel.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 289852,
|
||||
"initialViewGzipBytes": 289826,
|
||||
"initialPanelFiles": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelGzipBytes": 291374,
|
||||
"initialPanelGzipBytes": 291348,
|
||||
"initialPanelOnlyFiles": [
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelOnlyGzipBytes": 2325,
|
||||
"initialPanelOnlyGzipBytes": 2321,
|
||||
"lazyFiles": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/de-DVCIKwC0.js",
|
||||
"houseplan-assets/editor-C694OxAO.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/fr-DHxhbm5E.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-AzCVhtuX.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Dp2b84fm.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-CbSbT5WT.js",
|
||||
"houseplan-assets/iso-scene-render-fYqz_-Ot.js",
|
||||
"houseplan-assets/live-interaction-runtime-XyTIhKAA.js",
|
||||
"houseplan-assets/pdf-export-D3vmqIY6.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CX2cplA1.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-d-S2Abll.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/de-Du5_pA7f.js",
|
||||
"houseplan-assets/editor-CHfYmrt5.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/fr-B36ReLzT.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DXZYfUKs.js",
|
||||
"houseplan-assets/iso-scene-render-D587ZbM1.js",
|
||||
"houseplan-assets/live-interaction-runtime-C2jrtBKS.js",
|
||||
"houseplan-assets/pdf-export-cPUyR7qn.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
],
|
||||
"lazyGzipBytes": 459551,
|
||||
"lazyGzipBytes": 459588,
|
||||
"lazyEditorFiles": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/editor-C694OxAO.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-AzCVhtuX.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/editor-CHfYmrt5.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 242989,
|
||||
"lazyEditorGzipBytes": 243061,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Dp2b84fm.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 33577,
|
||||
"lazyOnboardingGzipBytes": 33661,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-DVCIKwC0.js",
|
||||
"houseplan-assets/fr-DHxhbm5E.js"
|
||||
"houseplan-assets/de-Du5_pA7f.js",
|
||||
"houseplan-assets/fr-B36ReLzT.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 55383,
|
||||
"lazyLocaleGzipBytes": 55374,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/iso-scene-render-fYqz_-Ot.js"
|
||||
"houseplan-assets/iso-scene-render-D587ZbM1.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 17643,
|
||||
"lazyIsometricGzipBytes": 17640,
|
||||
"lazyFurnitureArtFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js"
|
||||
],
|
||||
"lazyFurnitureArtGzipBytes": 16942,
|
||||
"lazyFurnitureArtGzipBytes": 16944,
|
||||
"lazyPdfFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/pdf-export-D3vmqIY6.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/pdf-export-cPUyR7qn.js"
|
||||
],
|
||||
"lazyPdfGzipBytes": 126817,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"sha256": "c24f2896a89f71e0a4147184f93b0e69e0c22eb705b772e644e9fc131ff879f4",
|
||||
"rawBytes": 74375,
|
||||
"gzipBytes": 24031,
|
||||
"path": "houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"sha256": "a4bc180faa3202e1d8f63aa96c8987008e488d6dd3ca4dca3f7a710725c11209",
|
||||
"rawBytes": 74674,
|
||||
"gzipBytes": 24120,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-DVCIKwC0.js",
|
||||
"sha256": "6f716933e452260c6e7c0c40d7193e750b6fc443f162cca5cb814c734142dde5",
|
||||
"path": "houseplan-assets/de-Du5_pA7f.js",
|
||||
"sha256": "db29c690a55ac67c07065e1666ecd0cedff19c31031aa4560fff9c4562174329",
|
||||
"rawBytes": 92513,
|
||||
"gzipBytes": 27933,
|
||||
"gzipBytes": 27927,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-C694OxAO.js",
|
||||
"sha256": "f95242b8000cddf2fe1856a5518883c00a27a90c2983f228003db0189dffc1b4",
|
||||
"path": "houseplan-assets/editor-CHfYmrt5.js",
|
||||
"sha256": "0d50e2fd290781676e619648f2da76fa53fc31669d9d61c3f7bdcce496708e0d",
|
||||
"rawBytes": 3833,
|
||||
"gzipBytes": 1583,
|
||||
"gzipBytes": 1581,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"sha256": "44a654e7c905948ab4bb363514532c13e67e3e54eee37e4af0ec8447f706fbc1",
|
||||
"path": "houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"sha256": "2bede296d4c3a3347ee9bdde605a657e88c7b2ae9097aaffd154b09f8bbdcb0c",
|
||||
"rawBytes": 23544,
|
||||
"gzipBytes": 4716,
|
||||
"gzipBytes": 4715,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-DHxhbm5E.js",
|
||||
"sha256": "f603ade3217ebe9959225379598608583ec29ab654dc257f57ae894d85ca448f",
|
||||
"path": "houseplan-assets/fr-B36ReLzT.js",
|
||||
"sha256": "9c2ee16aed204d874d85a67a12105fa454613bb4c80f79a363367e9c9f2fa86c",
|
||||
"rawBytes": 94824,
|
||||
"gzipBytes": 27450,
|
||||
"gzipBytes": 27447,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"sha256": "86d1074252f182c84d47285560a5b22c26724e21f21d03fbac4583973a9c11a7",
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"sha256": "6face3496a7ad5c9faf547b8ecefbb2f68c0e2759fc6ff1ed25a5741c589ea44",
|
||||
"rawBytes": 52033,
|
||||
"gzipBytes": 16942,
|
||||
"gzipBytes": 16944,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"sha256": "e475fbae1c25540d2e349d4441bc963a4ff4181b8659fd491309dd1e578f716a",
|
||||
"path": "houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"sha256": "d9760789aad7c05fc71a0eba803dea8a0e0ebdb00e9aa12152fa814a68168df4",
|
||||
"rawBytes": 1027208,
|
||||
"gzipBytes": 289049,
|
||||
"gzipBytes": 289027,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/de-DVCIKwC0.js",
|
||||
"houseplan-assets/editor-C694OxAO.js",
|
||||
"houseplan-assets/fr-DHxhbm5E.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-AzCVhtuX.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Dp2b84fm.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-CbSbT5WT.js",
|
||||
"houseplan-assets/iso-scene-render-fYqz_-Ot.js",
|
||||
"houseplan-assets/live-interaction-runtime-XyTIhKAA.js",
|
||||
"houseplan-assets/pdf-export-D3vmqIY6.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CX2cplA1.js"
|
||||
"houseplan-assets/de-Du5_pA7f.js",
|
||||
"houseplan-assets/editor-CHfYmrt5.js",
|
||||
"houseplan-assets/fr-B36ReLzT.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DXZYfUKs.js",
|
||||
"houseplan-assets/iso-scene-render-D587ZbM1.js",
|
||||
"houseplan-assets/live-interaction-runtime-C2jrtBKS.js",
|
||||
"houseplan-assets/pdf-export-cPUyR7qn.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-AzCVhtuX.js",
|
||||
"sha256": "e84feb1cf320be8297982134d45a5adceaec5a50f95aaa884e6e53cae2664edd",
|
||||
"rawBytes": 677390,
|
||||
"gzipBytes": 188290,
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"sha256": "a040c3b1bfb3caab29ed3925f8d9155d147ee53817007a7571169373f7ce8aee",
|
||||
"rawBytes": 677322,
|
||||
"gzipBytes": 188275,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-d-S2Abll.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-Dp2b84fm.js",
|
||||
"sha256": "64367a8743ea22c4a9a350456878b7006ba01a346cc89eabb786e3c1d944ad3a",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js",
|
||||
"sha256": "31cc896b2dd622f721dba8aec48f2bc03a64efe2fe038a24bbfddacff85bfb2f",
|
||||
"rawBytes": 15667,
|
||||
"gzipBytes": 4830,
|
||||
"gzipBytes": 4826,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-BJOCHJxe.js",
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-CbSbT5WT.js",
|
||||
"sha256": "b2fa73ad0fc3353630e380abe1f63f483113c7bfc5f1e634150c2f0e12b4e0cf",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DXZYfUKs.js",
|
||||
"sha256": "9046135d11c562249abb70e69b0169355f14381ce87c86dc0ba3fbfbb83f1cf4",
|
||||
"rawBytes": 10759,
|
||||
"gzipBytes": 3686,
|
||||
"gzipBytes": 3682,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-d-S2Abll.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-fYqz_-Ot.js",
|
||||
"sha256": "009a9217d1c522a5c2b6f9d5ea3450e2a77aafe52096d9c1d19902a18c6632f9",
|
||||
"path": "houseplan-assets/iso-scene-render-D587ZbM1.js",
|
||||
"sha256": "2182acd9989c8fba95b57ec8d49342ad225ff5b846411287e45cfa9b64080f29",
|
||||
"rawBytes": 51983,
|
||||
"gzipBytes": 17643,
|
||||
"gzipBytes": 17640,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-XyTIhKAA.js",
|
||||
"sha256": "0fd38fd067699ea97f11565db7c4ae86c1bcc867041e7e3377408f40e741f03f",
|
||||
"path": "houseplan-assets/live-interaction-runtime-C2jrtBKS.js",
|
||||
"sha256": "af56aaf8ab0c7dee9f0e3de23b4c4fbe26b98f904a6a294e8fd4e473cb2dc9c5",
|
||||
"rawBytes": 8216,
|
||||
"gzipBytes": 3209,
|
||||
"gzipBytes": 3201,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/pdf-export-D3vmqIY6.js",
|
||||
"sha256": "4c60cf0b34a17777c60c4849f1ee42841fb74b69466366adcf94cf97eec9ad2e",
|
||||
"path": "houseplan-assets/pdf-export-cPUyR7qn.js",
|
||||
"sha256": "aab1097826135ac16f9fdf8d8f3d989c1485399ee7d494d68a3bf9918c99307d",
|
||||
"rawBytes": 236247,
|
||||
"gzipBytes": 109875,
|
||||
"gzipBytes": 109873,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DaxkO8ol.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-editor-CNT_mev4.js",
|
||||
"sha256": "ef5dcf22a38fb5df834dcce277de7967303b8025167527483aab726dd30f3a2c",
|
||||
"rawBytes": 14867,
|
||||
"gzipBytes": 3427,
|
||||
"path": "houseplan-assets/summary-panel-editor-CeUXHEmo.js",
|
||||
"sha256": "744b8ce4dea90a3a42af2b2356d558224531dbd0aac73ee7e8f18497d25fecc5",
|
||||
"rawBytes": 14862,
|
||||
"gzipBytes": 3420,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CX2cplA1.js"
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-metrics-BhoEMuKv.js",
|
||||
"sha256": "0b4f1816c4069cc62f20dccaeeeceb82c139dee339782833e594e46aa768fe06",
|
||||
"path": "houseplan-assets/summary-panel-metrics-CtDve8JT.js",
|
||||
"sha256": "ac5d957013d3db30ab00a6c3e94ac5512145270d85a3f155c5ee131a88aa8ba2",
|
||||
"rawBytes": 2611,
|
||||
"gzipBytes": 1308,
|
||||
"gzipBytes": 1305,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-CX2cplA1.js",
|
||||
"sha256": "95e65a1d327f9d2f90796b9ae7754e0d8a64c15e44a82cefe329dca8f6115689",
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js",
|
||||
"sha256": "36caf881e1133ab072f8d6df613677b3564a35dee37a502117040c783089a1b6",
|
||||
"rawBytes": 72733,
|
||||
"gzipBytes": 20172,
|
||||
"gzipBytes": 20170,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-CKUQLdmn.js",
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/summary-panel-editor-CNT_mev4.js",
|
||||
"houseplan-assets/summary-panel-metrics-BhoEMuKv.js"
|
||||
"houseplan-assets/summary-panel-editor-CeUXHEmo.js",
|
||||
"houseplan-assets/summary-panel-metrics-CtDve8JT.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-CI6PJorK.js",
|
||||
"sha256": "6e503b93a48deeda46368588fd4eebf7215aa4a2928e1162747da8b3ffe4b67a",
|
||||
"path": "houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"sha256": "898295e433fd3b841d1299feb676f9efce98b10b1390c4306529a4e676598f78",
|
||||
"rawBytes": 18962,
|
||||
"gzipBytes": 7427,
|
||||
"gzipBytes": 7426,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-d-S2Abll.js",
|
||||
"sha256": "f6aad0abbf74532abc1c705d1268cce95048e7dbdc81a52a776a996c8b70f969",
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-CcDynYR9.js",
|
||||
"sha256": "6d9ba4d38f5b6ef8793118241c99572d5887e88ceab666c56ffcf8931faeaf69",
|
||||
"rawBytes": 3942,
|
||||
"gzipBytes": 1764,
|
||||
"gzipBytes": 1761,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js",
|
||||
"houseplan-assets/zigbee-topology-CI6PJorK.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "c796620c6d67c8fb18479291279eb410302ad541ed2b3679d59b780f74e8935b",
|
||||
"sha256": "c34e1813f3085f66287231ad1f53c45d11a173133dc459934dbcaca630aea950",
|
||||
"rawBytes": 1205,
|
||||
"gzipBytes": 803,
|
||||
"gzipBytes": 799,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-panel.js",
|
||||
"sha256": "c134452d829194d8d630e5859f8142d345e15348a706d7a83d5d9328b0df3faa",
|
||||
"sha256": "860ad9ba4933e3d40d7bc490aa14d366eae9eab12096bbbf06e1838c473ce57b",
|
||||
"rawBytes": 6165,
|
||||
"gzipBytes": 2325,
|
||||
"gzipBytes": 2321,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-9fMSy3y3.js"
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
}
|
||||
|
||||
Vendored
+18
-18
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+5
-5
@@ -1,14 +1,14 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";import{az as e,l as o,aC as t,e7 as s,A as a,e8 as i,e9 as l,ea as n,E as r,c}from"./houseplan-card-9fMSy3y3.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{az as e,l as o,aC as t,e7 as s,A as a,e8 as i,e9 as l,ea as n,E as r,c}from"./houseplan-card-COwlrP1O.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);
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+5
-5
File diff suppressed because one or more lines are too long
+4
-4
File diff suppressed because one or more lines are too long
+3
-3
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+2
-2
File diff suppressed because one or more lines are too long
+52
-52
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";import{c as a,A as s}from"./houseplan-card-9fMSy3y3.js";import{s as e,n as t,a as l,m as r,b as o,c as i,d as u}from"./summary-panel-runtime-loaded-CX2cplA1.js";import"./form-kit.styles-CKUQLdmn.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&&!e(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(s=>s.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{c as a,A as e}from"./houseplan-card-COwlrP1O.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-D9vYgudE.js";import"./form-kit.styles-COBHNvsH.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"
|
||||
@@ -10,31 +10,31 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
dismiss-on-scrim aria-busy=${String(d.busy)}
|
||||
@hp-close=${k}>
|
||||
<div class="body summary-editor" @click=${()=>m.closeSource()}>
|
||||
${d.localOnly?a`<p class="summary-local-hint">${b(d.localOnlyHint)}</p>`:s}
|
||||
${d.localOnly?a`<p class="summary-local-hint">${b(d.localOnlyHint)}</p>`:e}
|
||||
<section class="summary-general" aria-labelledby="summary-general-title">
|
||||
<h3 id="summary-general-title">${b("summary.general_settings")}</h3>
|
||||
<div class="summary-general-grid">
|
||||
${d.localOnly?s:a`<div class="summary-field">
|
||||
${d.localOnly?e:a`<div class="summary-field">
|
||||
<label for="summary-panel-title">${b("summary.panel_title")}</label>
|
||||
<input id="summary-panel-title" type="text" .value=${d.draft.title}
|
||||
?disabled=${d.busy}
|
||||
data-summary-error=${String(d.attempted&&"title"===y?.path)}
|
||||
aria-invalid=${"error"===v("title")?.kind?"true":"false"}
|
||||
@input=${a=>m.mutate(s=>{s.title=a.target.value})} />
|
||||
${v("title")?a`<div class="summary-problem error">${h(v("title"))}</div>`:s}
|
||||
@input=${a=>m.mutate(e=>{e.title=a.target.value})} />
|
||||
${v("title")?a`<div class="summary-problem error">${h(v("title"))}</div>`:e}
|
||||
</div>`}
|
||||
${g}
|
||||
${d.localOnly?s:a`<label class="summary-switch" for="summary-mobile-show">
|
||||
${d.localOnly?e:a`<label class="summary-switch" for="summary-mobile-show">
|
||||
<span class="summary-switch-caption"><strong>${b("summary.show_mobile")}</strong>
|
||||
<small id="summary-mobile-show-hint">${b("summary.show_mobile_hint")}</small></span>
|
||||
<input id="summary-mobile-show" data-summary-mobile-show type="checkbox"
|
||||
.checked=${d.draft.show_on_mobile} ?disabled=${!d.localShow||d.busy}
|
||||
aria-label=${b("summary.show_mobile")} aria-describedby="summary-mobile-show-hint"
|
||||
@change=${a=>m.mutate(s=>{s.show_on_mobile=a.target.checked})} /></label>`}
|
||||
@change=${a=>m.mutate(e=>{e.show_on_mobile=a.target.checked})} /></label>`}
|
||||
</div>
|
||||
${m.storageUnavailable?a`<div class="summary-problem warning">${b("summary.storage_unavailable")}</div>`:s}
|
||||
${m.storageUnavailable?a`<div class="summary-problem warning">${b("summary.storage_unavailable")}</div>`:e}
|
||||
</section>
|
||||
${d.localOnly?s:a`
|
||||
${d.localOnly?e:a`
|
||||
<section class="summary-blocks-card" aria-labelledby="summary-blocks-title">
|
||||
<header class="summary-blocks-heading">
|
||||
<div><h3 id="summary-blocks-title">${b("summary.blocks")}</h3>
|
||||
@@ -42,7 +42,7 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
<span class="summary-block-count">${b("summary.block_count").replace("{count}",String(d.draft.blocks.length)).replace("{limit}","10")}</span>
|
||||
</header>
|
||||
<div class="summary-editor-blocks">
|
||||
${d.draft.blocks.map((e,t)=>{const u=`blocks.${t}`,n=v(`${u}.scope`);return a`<article class="summary-editor-block"
|
||||
${d.draft.blocks.map((s,t)=>{const u=`blocks.${t}`,n=v(`${u}.scope`);return a`<article class="summary-editor-block"
|
||||
@dragover=${a=>a.preventDefault()}
|
||||
@drop=${a=>m.drop(a,`block:${t}`)}>
|
||||
<div class="summary-block-head">
|
||||
@@ -57,40 +57,40 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
?disabled=${t===d.draft.blocks.length-1||d.busy}
|
||||
@click=${()=>m.mutate(a=>{a.blocks=r(a.blocks,t,t+1)})}>${l("down")}</button>
|
||||
</div>
|
||||
<input class="summary-block-title" type="text" .value=${e.title}
|
||||
<input class="summary-block-title" type="text" .value=${s.title}
|
||||
placeholder=${b("summary.block_title")} aria-label=${b("summary.block_title")}
|
||||
?disabled=${d.busy}
|
||||
data-summary-error=${String(d.attempted&&y?.path===`${u}.title`)}
|
||||
aria-invalid=${"error"===v(`${u}.title`)?.kind?"true":"false"}
|
||||
@input=${a=>m.mutate(s=>{s.blocks[t].title=a.target.value})} />
|
||||
@input=${a=>m.mutate(e=>{e.blocks[t].title=a.target.value})} />
|
||||
<button class="summary-icon-button summary-visibility" type="button"
|
||||
?disabled=${d.busy} aria-pressed=${String(e.visible)}
|
||||
title=${b(e.visible?"summary.hide_block":"summary.show_block")}
|
||||
aria-label=${b(e.visible?"summary.hide_block":"summary.show_block")}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].visible=!a.blocks[t].visible})}>${l(e.visible?"eye":"eyeOff")}</button>
|
||||
${v(`${u}.title`)?a`<div class="summary-problem error summary-block-title-error">${h(v(`${u}.title`))}</div>`:s}
|
||||
?disabled=${d.busy} aria-pressed=${String(s.visible)}
|
||||
title=${b(s.visible?"summary.hide_block":"summary.show_block")}
|
||||
aria-label=${b(s.visible?"summary.hide_block":"summary.show_block")}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].visible=!a.blocks[t].visible})}>${l(s.visible?"eye":"eyeOff")}</button>
|
||||
${v(`${u}.title`)?a`<div class="summary-problem error summary-block-title-error">${h(v(`${u}.title`))}</div>`:e}
|
||||
<div class="summary-scope">
|
||||
<select .value=${e.scope.type} ?disabled=${d.busy}
|
||||
<select .value=${s.scope.type} ?disabled=${d.busy}
|
||||
aria-label=${b("summary.scope")}
|
||||
@change=${a=>m.mutate(s=>{s.blocks[t].scope="space"===a.target.value?{type:"space",space_id:c._space}:{type:"all"}})}>
|
||||
<option value="all" ?selected=${"all"===e.scope.type}>${b("summary.scope_all")}</option>
|
||||
<option value="space" ?selected=${"space"===e.scope.type}>${b("summary.scope_space")}</option>
|
||||
@change=${a=>m.mutate(e=>{e.blocks[t].scope="space"===a.target.value?{type:"space",space_id:c._space}:{type:"all"}})}>
|
||||
<option value="all" ?selected=${"all"===s.scope.type}>${b("summary.scope_all")}</option>
|
||||
<option value="space" ?selected=${"space"===s.scope.type}>${b("summary.scope_space")}</option>
|
||||
</select>
|
||||
${"space"===e.scope.type?a`<select .value=${e.scope.space_id}
|
||||
${"space"===s.scope.type?a`<select .value=${s.scope.space_id}
|
||||
?disabled=${d.busy} aria-label=${b("summary.scope_space")}
|
||||
data-summary-error=${String(d.attempted&&y?.path===`${u}.scope`)}
|
||||
aria-invalid=${"error"===n?.kind?"true":"false"}
|
||||
@change=${a=>m.mutate(s=>{const e=s.blocks[t].scope;"space"===e.type&&(e.space_id=a.target.value)})}>
|
||||
${c._model.some(a=>a.id===e.scope.space_id)?s:a`<option value=${e.scope.space_id} selected>${e.scope.space_id}</option>`}
|
||||
${c._model.map(s=>a`<option value=${s.id}
|
||||
?selected=${s.id===e.scope.space_id}>${s.title}</option>`)}
|
||||
</select>`:s}
|
||||
@change=${a=>m.mutate(e=>{const s=e.blocks[t].scope;"space"===s.type&&(s.space_id=a.target.value)})}>
|
||||
${c._model.some(a=>a.id===s.scope.space_id)?e:a`<option value=${s.scope.space_id} selected>${s.scope.space_id}</option>`}
|
||||
${c._model.map(e=>a`<option value=${e.id}
|
||||
?selected=${e.id===s.scope.space_id}>${e.title}</option>`)}
|
||||
</select>`:e}
|
||||
</div>
|
||||
${n?a`<div class="summary-problem summary-scope-problem ${n.kind}">${h(n)}</div>`:s}
|
||||
${n?a`<div class="summary-problem summary-scope-problem ${n.kind}">${h(n)}</div>`:e}
|
||||
</div>
|
||||
<div class="summary-block-body">
|
||||
<div class="summary-editor-values">
|
||||
${e.values.map((i,c)=>{const n=`${u}.values.${c}`,$=v(`${n}.source`),p=m.sourceToken(i.source),k=d.activeSource?.blockId===e.id&&d.activeSource.valueId===i.id,g="system"===i.source.type?b(`summary.system.${i.source.key}`):i.source.entity_id?m.entityIndex.labels.get(i.source.entity_id)||i.source.entity_id:b("summary.select_source"),_="system"===i.source.type?b("summary.system_source"):i.source.entity_id,f=k?o(m.entityIndex,d.entityFilter):null,w="entity"===i.source.type&&!!i.source.entity_id&&!m.entityIndex.labels.has(i.source.entity_id),S=`${e.id}\n${i.id}`;return a`<div class="summary-editor-value"
|
||||
${s.values.map((i,c)=>{const n=`${u}.values.${c}`,$=v(`${n}.source`),p=m.sourceToken(i.source),k=d.activeSource?.blockId===s.id&&d.activeSource.valueId===i.id,g="system"===i.source.type?b(`summary.system.${i.source.key}`):i.source.entity_id?m.entityIndex.labels.get(i.source.entity_id)||i.source.entity_id:b("summary.select_source"),_="system"===i.source.type?b("summary.system_source"):i.source.entity_id,f=k?o(m.entityIndex,d.entityFilter):null,w="entity"===i.source.type&&!!i.source.entity_id&&!m.entityIndex.labels.has(i.source.entity_id),S=`${s.id}\n${i.id}`;return a`<div class="summary-editor-value"
|
||||
@dragover=${a=>{a.preventDefault(),a.stopPropagation()}}
|
||||
@drop=${a=>m.drop(a,`value:${t}:${c}`)}>
|
||||
<span class="summary-drag" draggable=${String(!d.busy)} title=${b("summary.drag")}
|
||||
@@ -101,7 +101,7 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].values=r(a.blocks[t].values,c,c-1)})}>${l("up")}</button>
|
||||
<button class="summary-icon-button" type="button" title=${b("summary.down")}
|
||||
aria-label=${b("summary.down")}
|
||||
?disabled=${c===e.values.length-1||d.busy}
|
||||
?disabled=${c===s.values.length-1||d.busy}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].values=r(a.blocks[t].values,c,c+1)})}>${l("down")}</button>
|
||||
</div>
|
||||
<div class="summary-value-label">
|
||||
@@ -109,8 +109,8 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
placeholder=${b("summary.value_name")} aria-label=${b("summary.value_name")}
|
||||
data-summary-error=${String(d.attempted&&y?.path===`${n}.label`)}
|
||||
aria-invalid=${"error"===v(`${n}.label`)?.kind?"true":"false"}
|
||||
@input=${a=>m.mutate(s=>{s.blocks[t].values[c].label=a.target.value})} />
|
||||
${v(`${n}.label`)?a`<div class="summary-problem error">${h(v(`${n}.label`))}</div>`:s}
|
||||
@input=${a=>m.mutate(e=>{e.blocks[t].values[c].label=a.target.value})} />
|
||||
${v(`${n}.label`)?a`<div class="summary-problem error">${h(v(`${n}.label`))}</div>`:e}
|
||||
</div>
|
||||
<div class="summary-source-field">
|
||||
<button class="summary-source" type="button"
|
||||
@@ -119,9 +119,9 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
data-summary-error=${String(d.attempted&&y?.path===`${n}.source`)}
|
||||
aria-invalid=${"error"===$?.kind?"true":"false"}
|
||||
aria-haspopup="listbox" aria-expanded=${k?"true":"false"}
|
||||
@click=${a=>{a.stopPropagation(),k?m.closeSource():m.openSource(e.id,i.id)}}>
|
||||
@click=${a=>{a.stopPropagation(),k?m.closeSource():m.openSource(s.id,i.id)}}>
|
||||
<span class="summary-source-caption"><strong>${g}</strong>
|
||||
${_?a`<small>${_}</small>`:s}</span>
|
||||
${_?a`<small>${_}</small>`:e}</span>
|
||||
${l("chevron")}
|
||||
</button>
|
||||
${k&&f?a`<div class="summary-source-picker"
|
||||
@@ -135,39 +135,39 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
<div class="summary-source-results" role="listbox"
|
||||
aria-label=${b("summary.select_source")}>
|
||||
<div class="summary-source-group">${b("summary.system_group")}</div>
|
||||
${["device_count","total_area","datetime"].map(s=>a`
|
||||
${["device_count","total_area","datetime"].map(e=>a`
|
||||
<button type="button" role="option"
|
||||
?disabled=${d.busy}
|
||||
aria-selected=${p===`system:${s}`?"true":"false"}
|
||||
@click=${()=>m.setSource(e.id,i.id,`system:${s}`)}>
|
||||
${b(`summary.system.${s}`)}
|
||||
aria-selected=${p===`system:${e}`?"true":"false"}
|
||||
@click=${()=>m.setSource(s.id,i.id,`system:${e}`)}>
|
||||
${b(`summary.system.${e}`)}
|
||||
</button>`)}
|
||||
${w?a`<div class="summary-source-group">${b("summary.current_source")}</div>
|
||||
<button type="button" role="option" class="broken" aria-selected="true"
|
||||
?disabled=${d.busy}
|
||||
@click=${()=>m.setSource(e.id,i.id,p)}>
|
||||
@click=${()=>m.setSource(s.id,i.id,p)}>
|
||||
${g}
|
||||
</button>`:s}
|
||||
</button>`:e}
|
||||
<div class="summary-source-group">${b("summary.entities_group")}</div>
|
||||
${f.entries.map(s=>a`<button type="button" role="option"
|
||||
${f.entries.map(e=>a`<button type="button" role="option"
|
||||
?disabled=${d.busy}
|
||||
aria-selected=${p===`entity:${s.id}`?"true":"false"}
|
||||
@click=${()=>m.setSource(e.id,i.id,`entity:${s.id}`)}>
|
||||
<span>${s.label}</span><small>${s.id}</small>
|
||||
aria-selected=${p===`entity:${e.id}`?"true":"false"}
|
||||
@click=${()=>m.setSource(s.id,i.id,`entity:${e.id}`)}>
|
||||
<span>${e.label}</span><small>${e.id}</small>
|
||||
</button>`)}
|
||||
${f.total?s:a`<div class="summary-empty">${b("summary.no_search_results")}</div>`}
|
||||
${f.truncated?a`<div class="summary-refine">${b("summary.refine_search")}</div>`:s}
|
||||
${f.total?e:a`<div class="summary-empty">${b("summary.no_search_results")}</div>`}
|
||||
${f.truncated?a`<div class="summary-refine">${b("summary.refine_search")}</div>`:e}
|
||||
</div>
|
||||
</div>`:s}
|
||||
${$?a`<div class="summary-problem ${$.kind}">${h($)}</div>`:s}
|
||||
</div>`:e}
|
||||
${$?a`<div class="summary-problem ${$.kind}">${h($)}</div>`:e}
|
||||
</div>
|
||||
<button class="summary-icon-button summary-value-remove" type="button"
|
||||
title=${b("btn.delete")} aria-label=${b("btn.delete")} ?disabled=${d.busy}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].values.splice(c,1)})}>${l("close")}</button>
|
||||
</div>`})}
|
||||
<button class="summary-add summary-add-value" type="button"
|
||||
?disabled=${e.values.length>=20||d.busy}
|
||||
title=${e.values.length>=20?b("summary.limit_values"):""}
|
||||
?disabled=${s.values.length>=20||d.busy}
|
||||
title=${s.values.length>=20?b("summary.limit_values"):""}
|
||||
@click=${()=>m.mutate(a=>{a.blocks[t].values.push(i())})}>
|
||||
${l("plus")}${b("summary.add_value")}
|
||||
</button>
|
||||
@@ -186,11 +186,11 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58
|
||||
${l("plus")}${b("summary.add_block")}
|
||||
</button>
|
||||
</section>
|
||||
${d.error?a`<div class="summary-problem error" role="alert">${d.error}</div>`:s}
|
||||
${d.error?a`<div class="summary-problem error" role="alert">${d.error}</div>`:e}
|
||||
${d.conflict?a`<button class="btn ghost summary-reload" type="button"
|
||||
?disabled=${d.busy} @click=${()=>m.reload()}>
|
||||
<ha-icon icon="mdi:reload"></ha-icon>${b("summary.reload_current")}
|
||||
</button>`:s}
|
||||
</button>`:e}
|
||||
`}
|
||||
</div>
|
||||
<div class="row summary-editor-footer" slot="footer">
|
||||
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";import{ed as e,J as t,aX as n,H as i,aa as o,a8 as r,bO as a,bN as s,aW as c,aV as l,aY as d,ee as u,ef as f,bQ as m,eg as g}from"./houseplan-card-9fMSy3y3.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),a=i.binding.slice(o+1),s="device"===r?e.registry.devices?.[a]:null,c="entity"===r?e.registry.entities?.[a]:null,l="device"===r?a:c?.device_id,d="device"===r?s?.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(a))&&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 s=t(e);if(!s)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||s;v=y(v,a(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=s(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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{ed as e,J as t,aX as n,H as i,aa as o,a8 as r,bO as a,bN as s,aW as c,aV as l,aY as d,ee as u,ef as f,bQ as m,eg as g}from"./houseplan-card-COwlrP1O.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),a=i.binding.slice(o+1),s="device"===r?e.registry.devices?.[a]:null,c="entity"===r?e.registry.entities?.[a]:null,l="device"===r?a:c?.device_id,d="device"===r?s?.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(a))&&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 s=t(e);if(!s)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||s;v=y(v,a(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=s(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};
|
||||
+2
-2
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";import{n as t,b as n}from"./zigbee-topology-CI6PJorK.js";import{aI as e}from"./houseplan-card-9fMSy3y3.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{n as t,b as n}from"./zigbee-topology-CDLyN3-N.js";import{aI as e}from"./houseplan-card-COwlrP1O.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};
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54fcdd48a85ca3f133f7a631e38722f7eb58d88c475a1cfb768130946dffad32";try{await import("./houseplan-assets/houseplan-card-9fMSy3y3.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";try{await import("./houseplan-assets/houseplan-card-COwlrP1O.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)}
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+3
-2
@@ -9,8 +9,9 @@
|
||||
heading and a `?`. Inside them: full-width rows with an icon, a caption and a
|
||||
switch on the right (borders, layers, names, glow, tooltips, confirmation,
|
||||
device temperature); segmented choices where a short list used to be radios
|
||||
or a dropdown (room fill, zero-wall style, background, sun rays, ray origin,
|
||||
device binding, light-source role, glow mode, badge side); colour plates —
|
||||
or a dropdown (room fill with short option names — Custom · Zigbee · Lights ·
|
||||
Temperature — zero-wall style, background, sun rays, ray origin, device
|
||||
binding, light-source role, glow mode, badge side); colour plates —
|
||||
swatch, hex code, opacity number and Reset — around the existing colour
|
||||
picker; number fields with the unit inside the frame (cm, °C, m, %, °);
|
||||
sliders paired with an editable number and Reset to 100%; chips for linked
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
плоские, с заголовком и «?». Внутри: полные строки с иконкой, подписью и
|
||||
тумблером справа (границы, слои, названия, свечение, подсказки, подтверждение,
|
||||
температура устройства); сегменты там, где короткий список был радио или
|
||||
выпадающим (заливка комнаты, нулевые стены, фон, лучи солнца и их источник,
|
||||
выпадающим (заливка комнаты с короткими подписями — Свой цвет · Zigbee ·
|
||||
Свет · Температура, — нулевые стены, фон, лучи солнца и их источник,
|
||||
привязка устройства, роль источника света, режим свечения, сторона бейджа);
|
||||
плашки цвета — свотч, hex, число прозрачности и «Сбросить» — вокруг
|
||||
прежнего пикера; числовые поля с единицей внутри рамки (см, °C, м, %, °);
|
||||
|
||||
+1
-1
@@ -471,7 +471,7 @@ and the **Review N fields** link in the footer jumps to the first one.
|
||||
A space's **Appearance** card has switch rows for room borders and the two
|
||||
visible layers (**Decorative layer**, **Doors, windows and gates** — on means
|
||||
visible), a segment for zero-thickness walls, a colour plate for rooms and the
|
||||
fill segment (custom colour / Zigbee signal / lights / temperature, with two
|
||||
fill segment (Custom / Zigbee / Lights / Temperature, with two
|
||||
°C bound fields for temperature). **Room cards** holds the names switch, four
|
||||
metric tiles, the card font slider and a sample card; **Sun and light** holds
|
||||
the background segment, north (as general or a custom direction with a compass),
|
||||
|
||||
@@ -539,7 +539,7 @@ desktop: для точного рисования, Resize, модификато
|
||||
|
||||

|
||||
| Внешний вид | Цвет комнат | Плашка цвета: общий цвет и прозрачность комнат |
|
||||
| Внешний вид | Заливка комнат | Сегмент «Свой цвет / Сигнал Zigbee / Свет / Температура»; при температуре ниже появляются два поля границ °C с легендой |
|
||||
| Внешний вид | Заливка комнат | Сегмент «Свой цвет / Zigbee / Свет / Температура»; при температуре ниже появляются два поля границ °C с легендой |
|
||||
| Солнце и свет | Фон | Сегмент «Как в общих / Статический / День-ночь» |
|
||||
| Солнце и свет | Север на плане и лучи | Выпадающий список «Как в общих · N°» или «Своё направление» с полем градусов и компасом; лучи — сегмент «Как в общих / Включены / Выключены». Локально переопределяет общие настройки |
|
||||
| Солнце и свет | Заливка | см. «Внешний вид»: постоянный цвет либо данные для заливки комнат пространства; свой цвет является обычным режимом по умолчанию |
|
||||
@@ -605,7 +605,7 @@ Assistant в одну строку), **Заливка**, **Источники**
|
||||
|
||||
В **Заливке** стоит строка с тумблером **Как у пространства**: пока он включён,
|
||||
комната следует режиму пространства, и подпись говорит, какому именно. Выключите
|
||||
его — ниже появится сегмент из пяти режимов (Нет / Сигнал Zigbee / Свет /
|
||||
его — ниже появится сегмент из пяти режимов (Нет / Zigbee / Свет /
|
||||
Температура / Свой цвет), причём стартует он с режима, который уже действует для
|
||||
пространства, а не с «Нет». «Свой цвет» раскрывает плашку цвета: пока цвет не
|
||||
менялся, это цвет пространства, после первого изменения — свой, и рядом появляется
|
||||
|
||||
@@ -53,6 +53,7 @@ AC10 унаследован от #598, где диалог комнаты не
|
||||
| Образец карточки комнаты | убран (§4.2) | внутри карточки Room cards на тинте | решение владельца Q2 |
|
||||
| Поле цвета | `input[type=color]` (§3.2) | плашка вокруг `hp-color-opacity` | решение владельца Q5 |
|
||||
| Тексты подписей | Space name, Floor plan, Appearance, Room cards, Sun & light… | те же (переименования Q6) | §4.1, решение владельца Q6 |
|
||||
| Подписи сегмента заливки | Custom · Zigbee · Lights · Temperature | те же — короткие ключи `fill.seg_*` ленивого словаря, общие с комнатой (r1 M1: полные `fill.*` в RU переносились посреди слова) | §4.2 `reference/app.js` `fillOptions` |
|
||||
| Копия / удаление | Copy и Delete слева в футере | то же | §4.1 «Футер» |
|
||||
|
||||
### General settings (§5)
|
||||
@@ -69,7 +70,7 @@ AC10 унаследован от #598, где диалог комнаты не
|
||||
|---|---|---|---|
|
||||
| Образец карточки | убран (§6.1 «Font sizes») | под подсказкой размеров, на тинте | решение владельца Q2 |
|
||||
| «?» у Basics | у поля Home Assistant area | у поля Home Assistant area (перенесён с заголовка карточки) | §6.1 |
|
||||
| Подписи сегмента заливки | None · Zigbee · Lights · Temperature · Custom, по одной строке на пункт | те же (короткие ключи `room.fill_seg_*` для двух длинных). Ревью r1 M1: «Temperature» рвалось посреди слова в пяти равных колонках — колонка сегмента больше не сжимается ниже самого длинного слова, слова переносятся только по пробелам, не поместившийся сегмент переносится на вторую строку целыми кнопками; свидетель — `smoke_dialog_segments_i18n` (четыре диалога × en/ru/de/fr) | §6.1, §3.1 «Сегмент» |
|
||||
| Подписи сегмента заливки | None · Zigbee · Lights · Temperature · Custom, по одной строке на пункт | те же — короткие ключи `fill.seg_*` (общие с пространством). Ревью r1 M1: «Temperature» рвалось посреди слова в пяти равных колонках — колонка сегмента больше не сжимается ниже самого длинного слова, слова переносятся только по пробелам, не поместившийся сегмент переносится на вторую строку целыми кнопками; свидетель — `smoke_dialog_segments_i18n` (четыре диалога × en/ru/de/fr) | §6.1, §3.1 «Сегмент» |
|
||||
| Подписи источников | Temperature / Humidity | Temperature source / Humidity source (прежние ключи) | текст, не раскладка |
|
||||
| Поле цвета «Свой цвет» | `input[type=color]` | плашка вокруг `hp-color-opacity` | Q5 |
|
||||
| Кнопка выбора датчика | в потоке, панель с поиском | то же (`sourcePicker` набора) | §3.1 «Кнопка выбора источника» |
|
||||
|
||||
@@ -194,11 +194,9 @@ export function renderRoomSettingsDialog(this: HouseplanEditorRuntime): Template
|
||||
name: 'rfill',
|
||||
value: host._roomFill as RoomFillMode,
|
||||
ariaLabel: t('room.fill_label'),
|
||||
// Короткие подписи там, где полные не помещаются в пять сегментов (§6.1: None | Zigbee | Lights | Temperature | Custom)
|
||||
options: ROOM_FILL_MODES.map((value) => ({
|
||||
value,
|
||||
label: value === 'lqi' ? st('room.fill_seg_lqi') : value === 'custom' ? st('room.fill_seg_custom') : t(`fill.${value}` as I18nKey),
|
||||
})),
|
||||
// Короткие подписи сегмента по референсу (§6.1: None | Zigbee | Lights | Temperature | Custom),
|
||||
// общие с сегментом пространства (§4.2)
|
||||
options: ROOM_FILL_MODES.map((value) => ({ value, label: st(`fill.seg_${value}`) })),
|
||||
onChange: (value) => setFill(value),
|
||||
}),
|
||||
})}
|
||||
|
||||
@@ -357,7 +357,8 @@ function renderAppearance(port: SpaceFormPort, d: SpaceDialogState, id: (n: stri
|
||||
name: `${port.idPrefix}-fill-mode`,
|
||||
value: d.fillMode === 'none' ? 'custom' : d.fillMode,
|
||||
ariaLabel: t('space.fill_label'),
|
||||
options: SPACE_FILL_UI_MODES.map((v) => ({ value: v, label: t(`fill.${v}` as I18nKey) })),
|
||||
// §4.2 референса: Custom | Zigbee | Lights | Temperature — короткие подписи сегмента (общие с комнатой)
|
||||
options: SPACE_FILL_UI_MODES.map((v) => ({ value: v, label: st(`fill.seg_${v}`) })),
|
||||
onChange: (v) => set(port, { ...d, fillMode: v }),
|
||||
})}
|
||||
${fillDetail}
|
||||
|
||||
@@ -85,6 +85,9 @@
|
||||
"marker.size.help.aria": "Hilfe: Symbolgröße und Drehung",
|
||||
"marker.size_short": "Größe",
|
||||
"marker.error_binding": "Wählen Sie ein Gerät oder eine Entität zum Verknüpfen.",
|
||||
"room.fill_seg_lqi": "Zigbee",
|
||||
"room.fill_seg_custom": "Eigene"
|
||||
"fill.seg_none": "Keine",
|
||||
"fill.seg_lqi": "Zigbee",
|
||||
"fill.seg_light": "Licht",
|
||||
"fill.seg_temp": "Temperatur",
|
||||
"fill.seg_custom": "Eigene"
|
||||
}
|
||||
|
||||
@@ -85,6 +85,9 @@
|
||||
"marker.size.help.aria": "Help: icon size and rotation",
|
||||
"marker.size_short": "Size",
|
||||
"marker.error_binding": "Choose a device or entity to bind.",
|
||||
"room.fill_seg_lqi": "Zigbee",
|
||||
"room.fill_seg_custom": "Custom"
|
||||
"fill.seg_none": "None",
|
||||
"fill.seg_lqi": "Zigbee",
|
||||
"fill.seg_light": "Lights",
|
||||
"fill.seg_temp": "Temperature",
|
||||
"fill.seg_custom": "Custom"
|
||||
}
|
||||
|
||||
@@ -85,6 +85,9 @@
|
||||
"marker.size.help.aria": "Aide : taille et rotation de l’icône",
|
||||
"marker.size_short": "Taille",
|
||||
"marker.error_binding": "Choisissez un appareil ou une entité à lier.",
|
||||
"room.fill_seg_lqi": "Zigbee",
|
||||
"room.fill_seg_custom": "Perso"
|
||||
"fill.seg_none": "Aucun",
|
||||
"fill.seg_lqi": "Zigbee",
|
||||
"fill.seg_light": "Lumières",
|
||||
"fill.seg_temp": "Température",
|
||||
"fill.seg_custom": "Perso"
|
||||
}
|
||||
|
||||
@@ -85,6 +85,9 @@
|
||||
"marker.size.help.aria": "Справка: размер и поворот иконки",
|
||||
"marker.size_short": "Размер",
|
||||
"marker.error_binding": "Выберите устройство или сущность для привязки.",
|
||||
"room.fill_seg_lqi": "Zigbee",
|
||||
"room.fill_seg_custom": "Свой цвет"
|
||||
"fill.seg_none": "Нет",
|
||||
"fill.seg_lqi": "Zigbee",
|
||||
"fill.seg_light": "Свет",
|
||||
"fill.seg_temp": "Температура",
|
||||
"fill.seg_custom": "Свой цвет"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user