mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
Prepare v1.77.0-beta.3
Package the designer-aligned settings dialogs from #600 as the next beta candidate and refresh the synchronized frontend bundles and bilingual release documentation. Release: v1.77.0-beta.3 Issue: #600 User-Visible: yes
This commit is contained in:
@@ -57,7 +57,7 @@ SCHEDULED_GRACE_S = 30 * 24 * 3600
|
||||
FILES_DIR = "houseplan/files"
|
||||
ASSETS_DIR = "houseplan/assets"
|
||||
CONF_ADMIN_ONLY = "admin_only"
|
||||
VERSION = "1.77.0-beta.2"
|
||||
VERSION = "1.77.0-beta.3"
|
||||
DECOR_ASSETS_API_VERSION = 1
|
||||
SUMMARY_PANEL_API_VERSION = 1
|
||||
|
||||
|
||||
@@ -1,312 +1,312 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82",
|
||||
"fingerprint": "a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af",
|
||||
"entry": "houseplan-card.js",
|
||||
"panelEntry": "houseplan-panel.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 289826,
|
||||
"initialViewGzipBytes": 289851,
|
||||
"initialPanelFiles": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelGzipBytes": 291348,
|
||||
"initialPanelGzipBytes": 291375,
|
||||
"initialPanelOnlyFiles": [
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelOnlyGzipBytes": 2321,
|
||||
"initialPanelOnlyGzipBytes": 2330,
|
||||
"lazyFiles": [
|
||||
"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"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/de-Cq0p0mgN.js",
|
||||
"houseplan-assets/editor-DpRkFHeH.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/fr-D5DWk-ow.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C6ogfdd9.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-CtrSB_PN.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DCJr06wI.js",
|
||||
"houseplan-assets/iso-scene-render-C0aeaxce.js",
|
||||
"houseplan-assets/live-interaction-runtime-DmWlKMN8.js",
|
||||
"houseplan-assets/pdf-export-asgntFGl.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-C9I_hZrx.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-Des3vZFG.js"
|
||||
],
|
||||
"lazyGzipBytes": 459588,
|
||||
"lazyGzipBytes": 459674,
|
||||
"lazyEditorFiles": [
|
||||
"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"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/editor-DpRkFHeH.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C6ogfdd9.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 243061,
|
||||
"lazyEditorGzipBytes": 243082,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-CtrSB_PN.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 33661,
|
||||
"lazyOnboardingGzipBytes": 33678,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-Du5_pA7f.js",
|
||||
"houseplan-assets/fr-B36ReLzT.js"
|
||||
"houseplan-assets/de-Cq0p0mgN.js",
|
||||
"houseplan-assets/fr-D5DWk-ow.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 55374,
|
||||
"lazyLocaleGzipBytes": 55391,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/iso-scene-render-D587ZbM1.js"
|
||||
"houseplan-assets/iso-scene-render-C0aeaxce.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 17640,
|
||||
"lazyIsometricGzipBytes": 17645,
|
||||
"lazyFurnitureArtFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js"
|
||||
],
|
||||
"lazyFurnitureArtGzipBytes": 16944,
|
||||
"lazyFurnitureArtGzipBytes": 16941,
|
||||
"lazyPdfFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/pdf-export-cPUyR7qn.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/pdf-export-asgntFGl.js"
|
||||
],
|
||||
"lazyPdfGzipBytes": 126817,
|
||||
"lazyPdfGzipBytes": 126818,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"sha256": "a4bc180faa3202e1d8f63aa96c8987008e488d6dd3ca4dca3f7a710725c11209",
|
||||
"path": "houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"sha256": "f55b86796758ab8ad2875e94c68837cec39de8c2a2d50c763a45a05da8ed1a27",
|
||||
"rawBytes": 74674,
|
||||
"gzipBytes": 24120,
|
||||
"gzipBytes": 24126,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-Du5_pA7f.js",
|
||||
"sha256": "db29c690a55ac67c07065e1666ecd0cedff19c31031aa4560fff9c4562174329",
|
||||
"path": "houseplan-assets/de-Cq0p0mgN.js",
|
||||
"sha256": "66c8405855addf7bef4ee1d6fe4707ef37c26f0af7e4cb4d015c4e41a8432beb",
|
||||
"rawBytes": 92513,
|
||||
"gzipBytes": 27927,
|
||||
"gzipBytes": 27937,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-CHfYmrt5.js",
|
||||
"sha256": "0d50e2fd290781676e619648f2da76fa53fc31669d9d61c3f7bdcce496708e0d",
|
||||
"path": "houseplan-assets/editor-DpRkFHeH.js",
|
||||
"sha256": "8987f0122c891a98043b41d2b6d56a35a521964903d3fbf8fd6fc9005f86365c",
|
||||
"rawBytes": 3833,
|
||||
"gzipBytes": 1581,
|
||||
"gzipBytes": 1586,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"sha256": "2bede296d4c3a3347ee9bdde605a657e88c7b2ae9097aaffd154b09f8bbdcb0c",
|
||||
"path": "houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"sha256": "218978f3b021ccb8cb5a4d9415f94a34a1683cda9deef84526406ee33a389ed9",
|
||||
"rawBytes": 23544,
|
||||
"gzipBytes": 4715,
|
||||
"gzipBytes": 4717,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-B36ReLzT.js",
|
||||
"sha256": "9c2ee16aed204d874d85a67a12105fa454613bb4c80f79a363367e9c9f2fa86c",
|
||||
"path": "houseplan-assets/fr-D5DWk-ow.js",
|
||||
"sha256": "aeb8ed90d66ffb69c2d8496d4c4c16fa3465580ac9c9dd8a017b42300d20bc96",
|
||||
"rawBytes": 94824,
|
||||
"gzipBytes": 27447,
|
||||
"gzipBytes": 27454,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"sha256": "6face3496a7ad5c9faf547b8ecefbb2f68c0e2759fc6ff1ed25a5741c589ea44",
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"sha256": "eedc2fad1472be76f817428d220ef4e828c1fcc97427a6ba20612573daa01694",
|
||||
"rawBytes": 52033,
|
||||
"gzipBytes": 16944,
|
||||
"gzipBytes": 16941,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"sha256": "d9760789aad7c05fc71a0eba803dea8a0e0ebdb00e9aa12152fa814a68168df4",
|
||||
"path": "houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"sha256": "e285583eaab36e31cdf277be5ca9356b069233fa1afb78b4c3f5247d31e14468",
|
||||
"rawBytes": 1027208,
|
||||
"gzipBytes": 289027,
|
||||
"gzipBytes": 289045,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"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"
|
||||
"houseplan-assets/de-Cq0p0mgN.js",
|
||||
"houseplan-assets/editor-DpRkFHeH.js",
|
||||
"houseplan-assets/fr-D5DWk-ow.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C6ogfdd9.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-CtrSB_PN.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DCJr06wI.js",
|
||||
"houseplan-assets/iso-scene-render-C0aeaxce.js",
|
||||
"houseplan-assets/live-interaction-runtime-DmWlKMN8.js",
|
||||
"houseplan-assets/pdf-export-asgntFGl.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-C9I_hZrx.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"sha256": "a040c3b1bfb3caab29ed3925f8d9155d147ee53817007a7571169373f7ce8aee",
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-C6ogfdd9.js",
|
||||
"sha256": "ffb354ffbc0e8059e5cabc588414a48d5cf3b86973a5448850b46542aaeef10e",
|
||||
"rawBytes": 677322,
|
||||
"gzipBytes": 188275,
|
||||
"gzipBytes": 188283,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"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"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-Des3vZFG.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js",
|
||||
"sha256": "31cc896b2dd622f721dba8aec48f2bc03a64efe2fe038a24bbfddacff85bfb2f",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-CtrSB_PN.js",
|
||||
"sha256": "81631b60198a3cbba28de78166248e1c7f8847687d601e6fb5c1b871279d214b",
|
||||
"rawBytes": 15667,
|
||||
"gzipBytes": 4826,
|
||||
"gzipBytes": 4835,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DXZYfUKs.js",
|
||||
"sha256": "9046135d11c562249abb70e69b0169355f14381ce87c86dc0ba3fbfbb83f1cf4",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DCJr06wI.js",
|
||||
"sha256": "cc17e0e458898748ae2f4659e7b212ee47ed8560fafb1d1443249f2ed156c27e",
|
||||
"rawBytes": 10759,
|
||||
"gzipBytes": 3682,
|
||||
"gzipBytes": 3690,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-Des3vZFG.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-D587ZbM1.js",
|
||||
"sha256": "2182acd9989c8fba95b57ec8d49342ad225ff5b846411287e45cfa9b64080f29",
|
||||
"path": "houseplan-assets/iso-scene-render-C0aeaxce.js",
|
||||
"sha256": "5b1549e14d741172fc4adfcfb9e20b34659a45c838b2321f23ae2525135ed6db",
|
||||
"rawBytes": 51983,
|
||||
"gzipBytes": 17640,
|
||||
"gzipBytes": 17645,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-C2jrtBKS.js",
|
||||
"sha256": "af56aaf8ab0c7dee9f0e3de23b4c4fbe26b98f904a6a294e8fd4e473cb2dc9c5",
|
||||
"path": "houseplan-assets/live-interaction-runtime-DmWlKMN8.js",
|
||||
"sha256": "ee152dec5633a8c2e4d9e286cae4ada38efdbfdfd290c7859ea7c38d9ec3f824",
|
||||
"rawBytes": 8216,
|
||||
"gzipBytes": 3201,
|
||||
"gzipBytes": 3212,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/pdf-export-cPUyR7qn.js",
|
||||
"sha256": "aab1097826135ac16f9fdf8d8f3d989c1485399ee7d494d68a3bf9918c99307d",
|
||||
"path": "houseplan-assets/pdf-export-asgntFGl.js",
|
||||
"sha256": "7b98bdf98059f7a5f77e5b8ef964c3ff6d14d0d949467cbd0fc8843d700f4fde",
|
||||
"rawBytes": 236247,
|
||||
"gzipBytes": 109873,
|
||||
"gzipBytes": 109877,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-editor-CeUXHEmo.js",
|
||||
"sha256": "744b8ce4dea90a3a42af2b2356d558224531dbd0aac73ee7e8f18497d25fecc5",
|
||||
"rawBytes": 14862,
|
||||
"gzipBytes": 3420,
|
||||
"path": "houseplan-assets/summary-panel-editor-DFZctvf5.js",
|
||||
"sha256": "53d68034ba5e08f660409526a2b124cc3537eed5ad81914c7221537c5afd867d",
|
||||
"rawBytes": 14867,
|
||||
"gzipBytes": 3430,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js"
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-C9I_hZrx.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-metrics-CtDve8JT.js",
|
||||
"sha256": "ac5d957013d3db30ab00a6c3e94ac5512145270d85a3f155c5ee131a88aa8ba2",
|
||||
"path": "houseplan-assets/summary-panel-metrics-CjOXCqmR.js",
|
||||
"sha256": "941001433becc2912a5850dfb17042e984f024d202ebcf3f6c8f81b29e4f9b27",
|
||||
"rawBytes": 2611,
|
||||
"gzipBytes": 1305,
|
||||
"gzipBytes": 1310,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js",
|
||||
"sha256": "36caf881e1133ab072f8d6df613677b3564a35dee37a502117040c783089a1b6",
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-C9I_hZrx.js",
|
||||
"sha256": "a2192117a0b1ebbe42bfb93ded533777ddb7ab8ebe1ac521614d77f8bc985d07",
|
||||
"rawBytes": 72733,
|
||||
"gzipBytes": 20170,
|
||||
"gzipBytes": 20175,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/summary-panel-editor-CeUXHEmo.js",
|
||||
"houseplan-assets/summary-panel-metrics-CtDve8JT.js"
|
||||
"houseplan-assets/summary-panel-editor-DFZctvf5.js",
|
||||
"houseplan-assets/summary-panel-metrics-CjOXCqmR.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"sha256": "898295e433fd3b841d1299feb676f9efce98b10b1390c4306529a4e676598f78",
|
||||
"path": "houseplan-assets/zigbee-topology-B3YARiuI.js",
|
||||
"sha256": "e1dec1492914b3ec0677a204d47332ec96c3e5d7cc3d3903fc220cd45d26d7d0",
|
||||
"rawBytes": 18962,
|
||||
"gzipBytes": 7426,
|
||||
"gzipBytes": 7429,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-CcDynYR9.js",
|
||||
"sha256": "6d9ba4d38f5b6ef8793118241c99572d5887e88ceab666c56ffcf8931faeaf69",
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-Des3vZFG.js",
|
||||
"sha256": "ba5dde77850ec3e0fd16db42d6c16cdc97f2c7952e5b338999998131033293d3",
|
||||
"rawBytes": 3942,
|
||||
"gzipBytes": 1761,
|
||||
"gzipBytes": 1767,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "c34e1813f3085f66287231ad1f53c45d11a173133dc459934dbcaca630aea950",
|
||||
"sha256": "a9585d1c2b78ad5ddec6140965f2cc6455d2e7752aae43f2838d6d9a9028f213",
|
||||
"rawBytes": 1205,
|
||||
"gzipBytes": 799,
|
||||
"gzipBytes": 806,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-panel.js",
|
||||
"sha256": "860ad9ba4933e3d40d7bc490aa14d366eae9eab12096bbbf06e1838c473ce57b",
|
||||
"sha256": "ebf22cda3026070e462616988363f28d152aad76fd057249214adeec95e3247f",
|
||||
"rawBytes": 6165,
|
||||
"gzipBytes": 2321,
|
||||
"gzipBytes": 2330,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{A as e,c as a,s as t,l as i,cG as n,ao as s,dC as r,dD as o,cF as l,dE as c,cL as d,cK as p,dF as h,bn as u,bm as m,bo as g,ar as _,ay as b,az as f,dG as v}from"./houseplan-card-COwlrP1O.js";import{c as w,f as y,C as k}from"./form-kit.styles-COBHNvsH.js";const $=w+y(k,{withSwitch:!1}),x=new WeakSet;let S=null;function M(e){const a=e.renderRoot;if(!a||x.has(a))return;const t=a.ownerDocument??globalThis.document,i=t?.defaultView?.CSSStyleSheet;if(i&&"adoptedStyleSheets"in a)return S||(S=new i,S.replaceSync($)),a.adoptedStyleSheets=[...a.adoptedStyleSheets,S],void x.add(a);if(a.querySelector("style[data-hp-form-kit]"))return void x.add(a);const n=t.createElement("style");n.dataset.hpFormKit="true",n.textContent=$,a.appendChild(n),x.add(a)}function C({title:t,help:i,body:n,id:s}){return a`<section class="hpf-card" data-card=${s??e}>
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";import{A as e,c as a,s as t,l as i,cG as n,ao as s,dC as r,dD as o,cF as l,dE as c,cL as d,cK as p,dF as h,bn as u,bm as m,bo as g,ar as _,ay as b,az as f,dG as v}from"./houseplan-card-CWPQrAJy.js";import{c as w,f as y,C as k}from"./form-kit.styles-CErkoaQW.js";const $=w+y(k,{withSwitch:!1}),x=new WeakSet;let S=null;function M(e){const a=e.renderRoot;if(!a||x.has(a))return;const t=a.ownerDocument??globalThis.document,i=t?.defaultView?.CSSStyleSheet;if(i&&"adoptedStyleSheets"in a)return S||(S=new i,S.replaceSync($)),a.adoptedStyleSheets=[...a.adoptedStyleSheets,S],void x.add(a);if(a.querySelector("style[data-hp-form-kit]"))return void x.add(a);const n=t.createElement("style");n.dataset.hpFormKit="true",n.textContent=$,a.appendChild(n),x.add(a)}function C({title:t,help:i,body:n,id:s}){return a`<section class="hpf-card" data-card=${s??e}>
|
||||
${t?a`<div class="hpf-head"><h3>${t}</h3>${i??e}</div>`:e}
|
||||
<div class="hpf-body">${n}</div>
|
||||
</section>`}function L({title:t,help:i}){return a`<div class="hpf-sub"><h4>${t}</h4>${i??e}</div>`}function z({label:t,htmlFor:i,help:n,control:s,hint:r,error:o}){return a`<div class="hpf-field">
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+5
-5
@@ -1,14 +1,14 @@
|
||||
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
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";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-CWPQrAJy.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),u=e=>c`<ha-form
|
||||
.hass=${this.hass}
|
||||
.data=${this._formData}
|
||||
.schema=${e}
|
||||
.computeLabel=${e=>h[e.name]||e.name}
|
||||
.computeLabel=${e=>f[e.name]||e.name}
|
||||
@value-changed=${this._valueChanged}
|
||||
></ha-form>`;return c`
|
||||
${d(f.slice(0,3))}
|
||||
${u(h.slice(0,3))}
|
||||
${_?c`<div class="default-floor-error" role="alert"
|
||||
style="color:var(--error-color,#db4437);margin:-4px 0 12px;overflow-wrap:anywhere">
|
||||
${t(s,"editor.default_floor_missing",{id:_})}
|
||||
</div>`:a}
|
||||
${d(f.slice(3))}
|
||||
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}h.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",h);
|
||||
${u(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);
|
||||
+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
+3
-3
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__="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">
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";import{c as a,A as s}from"./houseplan-card-CWPQrAJy.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-C9I_hZrx.js";import"./form-kit.styles-CErkoaQW.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">
|
||||
<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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
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>`:e}
|
||||
${d.localOnly?a`<p class="summary-local-hint">${b(d.localOnlyHint)}</p>`:s}
|
||||
<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?e:a`<div class="summary-field">
|
||||
${d.localOnly?s: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(e=>{e.title=a.target.value})} />
|
||||
${v("title")?a`<div class="summary-problem error">${h(v("title"))}</div>`:e}
|
||||
@input=${a=>m.mutate(s=>{s.title=a.target.value})} />
|
||||
${v("title")?a`<div class="summary-problem error">${h(v("title"))}</div>`:s}
|
||||
</div>`}
|
||||
${g}
|
||||
${d.localOnly?e:a`<label class="summary-switch" for="summary-mobile-show">
|
||||
${d.localOnly?s: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(e=>{e.show_on_mobile=a.target.checked})} /></label>`}
|
||||
@change=${a=>m.mutate(s=>{s.show_on_mobile=a.target.checked})} /></label>`}
|
||||
</div>
|
||||
${m.storageUnavailable?a`<div class="summary-problem warning">${b("summary.storage_unavailable")}</div>`:e}
|
||||
${m.storageUnavailable?a`<div class="summary-problem warning">${b("summary.storage_unavailable")}</div>`:s}
|
||||
</section>
|
||||
${d.localOnly?e:a`
|
||||
${d.localOnly?s: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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
<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((s,t)=>{const u=`blocks.${t}`,n=v(`${u}.scope`);return a`<article class="summary-editor-block"
|
||||
${d.draft.blocks.map((e,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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
?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=${s.title}
|
||||
<input class="summary-block-title" type="text" .value=${e.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(e=>{e.blocks[t].title=a.target.value})} />
|
||||
@input=${a=>m.mutate(s=>{s.blocks[t].title=a.target.value})} />
|
||||
<button class="summary-icon-button summary-visibility" type="button"
|
||||
?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}
|
||||
?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}
|
||||
<div class="summary-scope">
|
||||
<select .value=${s.scope.type} ?disabled=${d.busy}
|
||||
<select .value=${e.scope.type} ?disabled=${d.busy}
|
||||
aria-label=${b("summary.scope")}
|
||||
@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>
|
||||
@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>
|
||||
</select>
|
||||
${"space"===s.scope.type?a`<select .value=${s.scope.space_id}
|
||||
${"space"===e.scope.type?a`<select .value=${e.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(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}
|
||||
@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}
|
||||
</div>
|
||||
${n?a`<div class="summary-problem summary-scope-problem ${n.kind}">${h(n)}</div>`:e}
|
||||
${n?a`<div class="summary-problem summary-scope-problem ${n.kind}">${h(n)}</div>`:s}
|
||||
</div>
|
||||
<div class="summary-block-body">
|
||||
<div class="summary-editor-values">
|
||||
${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"
|
||||
${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"
|
||||
@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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
@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===s.values.length-1||d.busy}
|
||||
?disabled=${c===e.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
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(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}
|
||||
@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}
|
||||
</div>
|
||||
<div class="summary-source-field">
|
||||
<button class="summary-source" type="button"
|
||||
@@ -119,9 +119,9 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
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(s.id,i.id)}}>
|
||||
@click=${a=>{a.stopPropagation(),k?m.closeSource():m.openSource(e.id,i.id)}}>
|
||||
<span class="summary-source-caption"><strong>${g}</strong>
|
||||
${_?a`<small>${_}</small>`:e}</span>
|
||||
${_?a`<small>${_}</small>`:s}</span>
|
||||
${l("chevron")}
|
||||
</button>
|
||||
${k&&f?a`<div class="summary-source-picker"
|
||||
@@ -135,39 +135,39 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
<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(e=>a`
|
||||
${["device_count","total_area","datetime"].map(s=>a`
|
||||
<button type="button" role="option"
|
||||
?disabled=${d.busy}
|
||||
aria-selected=${p===`system:${e}`?"true":"false"}
|
||||
@click=${()=>m.setSource(s.id,i.id,`system:${e}`)}>
|
||||
${b(`summary.system.${e}`)}
|
||||
aria-selected=${p===`system:${s}`?"true":"false"}
|
||||
@click=${()=>m.setSource(e.id,i.id,`system:${s}`)}>
|
||||
${b(`summary.system.${s}`)}
|
||||
</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(s.id,i.id,p)}>
|
||||
@click=${()=>m.setSource(e.id,i.id,p)}>
|
||||
${g}
|
||||
</button>`:e}
|
||||
</button>`:s}
|
||||
<div class="summary-source-group">${b("summary.entities_group")}</div>
|
||||
${f.entries.map(e=>a`<button type="button" role="option"
|
||||
${f.entries.map(s=>a`<button type="button" role="option"
|
||||
?disabled=${d.busy}
|
||||
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>
|
||||
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>
|
||||
</button>`)}
|
||||
${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}
|
||||
${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}
|
||||
</div>
|
||||
</div>`:e}
|
||||
${$?a`<div class="summary-problem ${$.kind}">${h($)}</div>`:e}
|
||||
</div>`:s}
|
||||
${$?a`<div class="summary-problem ${$.kind}">${h($)}</div>`:s}
|
||||
</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=${s.values.length>=20||d.busy}
|
||||
title=${s.values.length>=20?b("summary.limit_values"):""}
|
||||
?disabled=${e.values.length>=20||d.busy}
|
||||
title=${e.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
${l("plus")}${b("summary.add_block")}
|
||||
</button>
|
||||
</section>
|
||||
${d.error?a`<div class="summary-problem error" role="alert">${d.error}</div>`:e}
|
||||
${d.error?a`<div class="summary-problem error" role="alert">${d.error}</div>`:s}
|
||||
${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>`:e}
|
||||
</button>`:s}
|
||||
`}
|
||||
</div>
|
||||
<div class="row summary-editor-footer" slot="footer">
|
||||
+1
@@ -0,0 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";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 l,aV as c,aY as u,ee as d,ef as f,bQ as m,eg as g}from"./houseplan-card-CWPQrAJy.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=u(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,l="entity"===r?e.registry.entities?.[a]:null,c="device"===r?a:l?.device_id,u="device"===r?s?.area_id:l?.area_id||c&&e.registry.devices?.[c]?.area_id,d="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||u||"",f=d&&e.areaToSpace[d]||i.space||e.firstSpaceId;c&&e.registry.devices?.[c]&&e.spaceIds.has(f)&&(!n.devices.has(c)||"entity"===r&&n.liveEntities.has(a))&&t.add(c)}return t}function y(e,t){return e?.length?t?.length?g(e,t):e:t}function _(e,t){const n=l(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:c(e.rooms,t.walls,t.openCuts,i,t.cellCm,o,r)}}function*h(l,c,u=_){try{let d=0;for(const f of c){const c=l.spaces.find(e=>String(e?.id)===f.id);if(!c)continue;const m=e(c,f),g=u(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const s=t(e);if(!s)continue;const l=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||s;v=y(v,a(l,m.physicalBodies)),yield}const _=m.cellCm/o;d+=s(v)*_*_/1e4}return d}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=d(e,t);return i?f(i,String(n.attributes?.unit_of_measurement||"")):null}export{h as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,b as summarySystemValue,p as totalCleanFloorAreaM2};
|
||||
-1
@@ -1 +0,0 @@
|
||||
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__="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};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";import{n as t,b as n}from"./zigbee-topology-B3YARiuI.js";import{aI as e}from"./houseplan-card-CWPQrAJy.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};
|
||||
@@ -1 +1 @@
|
||||
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)}
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";try{await import("./houseplan-assets/houseplan-card-CWPQrAJy.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
@@ -20,5 +20,5 @@
|
||||
"issue_tracker": "https://github.com/Matysh/houseplan-card/issues",
|
||||
"requirements": [],
|
||||
"single_config_entry": true,
|
||||
"version": "1.77.0-beta.2"
|
||||
"version": "1.77.0-beta.3"
|
||||
}
|
||||
|
||||
Vendored
+145
-145
@@ -1,312 +1,312 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82",
|
||||
"fingerprint": "a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af",
|
||||
"entry": "houseplan-card.js",
|
||||
"panelEntry": "houseplan-panel.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 289826,
|
||||
"initialViewGzipBytes": 289851,
|
||||
"initialPanelFiles": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelGzipBytes": 291348,
|
||||
"initialPanelGzipBytes": 291375,
|
||||
"initialPanelOnlyFiles": [
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelOnlyGzipBytes": 2321,
|
||||
"initialPanelOnlyGzipBytes": 2330,
|
||||
"lazyFiles": [
|
||||
"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"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/de-Cq0p0mgN.js",
|
||||
"houseplan-assets/editor-DpRkFHeH.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/fr-D5DWk-ow.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C6ogfdd9.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-CtrSB_PN.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DCJr06wI.js",
|
||||
"houseplan-assets/iso-scene-render-C0aeaxce.js",
|
||||
"houseplan-assets/live-interaction-runtime-DmWlKMN8.js",
|
||||
"houseplan-assets/pdf-export-asgntFGl.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-C9I_hZrx.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-Des3vZFG.js"
|
||||
],
|
||||
"lazyGzipBytes": 459588,
|
||||
"lazyGzipBytes": 459674,
|
||||
"lazyEditorFiles": [
|
||||
"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"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/editor-DpRkFHeH.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C6ogfdd9.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 243061,
|
||||
"lazyEditorGzipBytes": 243082,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-CtrSB_PN.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 33661,
|
||||
"lazyOnboardingGzipBytes": 33678,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-Du5_pA7f.js",
|
||||
"houseplan-assets/fr-B36ReLzT.js"
|
||||
"houseplan-assets/de-Cq0p0mgN.js",
|
||||
"houseplan-assets/fr-D5DWk-ow.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 55374,
|
||||
"lazyLocaleGzipBytes": 55391,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/iso-scene-render-D587ZbM1.js"
|
||||
"houseplan-assets/iso-scene-render-C0aeaxce.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 17640,
|
||||
"lazyIsometricGzipBytes": 17645,
|
||||
"lazyFurnitureArtFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js"
|
||||
],
|
||||
"lazyFurnitureArtGzipBytes": 16944,
|
||||
"lazyFurnitureArtGzipBytes": 16941,
|
||||
"lazyPdfFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/pdf-export-cPUyR7qn.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/pdf-export-asgntFGl.js"
|
||||
],
|
||||
"lazyPdfGzipBytes": 126817,
|
||||
"lazyPdfGzipBytes": 126818,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"sha256": "a4bc180faa3202e1d8f63aa96c8987008e488d6dd3ca4dca3f7a710725c11209",
|
||||
"path": "houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"sha256": "f55b86796758ab8ad2875e94c68837cec39de8c2a2d50c763a45a05da8ed1a27",
|
||||
"rawBytes": 74674,
|
||||
"gzipBytes": 24120,
|
||||
"gzipBytes": 24126,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-Du5_pA7f.js",
|
||||
"sha256": "db29c690a55ac67c07065e1666ecd0cedff19c31031aa4560fff9c4562174329",
|
||||
"path": "houseplan-assets/de-Cq0p0mgN.js",
|
||||
"sha256": "66c8405855addf7bef4ee1d6fe4707ef37c26f0af7e4cb4d015c4e41a8432beb",
|
||||
"rawBytes": 92513,
|
||||
"gzipBytes": 27927,
|
||||
"gzipBytes": 27937,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-CHfYmrt5.js",
|
||||
"sha256": "0d50e2fd290781676e619648f2da76fa53fc31669d9d61c3f7bdcce496708e0d",
|
||||
"path": "houseplan-assets/editor-DpRkFHeH.js",
|
||||
"sha256": "8987f0122c891a98043b41d2b6d56a35a521964903d3fbf8fd6fc9005f86365c",
|
||||
"rawBytes": 3833,
|
||||
"gzipBytes": 1581,
|
||||
"gzipBytes": 1586,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"sha256": "2bede296d4c3a3347ee9bdde605a657e88c7b2ae9097aaffd154b09f8bbdcb0c",
|
||||
"path": "houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"sha256": "218978f3b021ccb8cb5a4d9415f94a34a1683cda9deef84526406ee33a389ed9",
|
||||
"rawBytes": 23544,
|
||||
"gzipBytes": 4715,
|
||||
"gzipBytes": 4717,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-B36ReLzT.js",
|
||||
"sha256": "9c2ee16aed204d874d85a67a12105fa454613bb4c80f79a363367e9c9f2fa86c",
|
||||
"path": "houseplan-assets/fr-D5DWk-ow.js",
|
||||
"sha256": "aeb8ed90d66ffb69c2d8496d4c4c16fa3465580ac9c9dd8a017b42300d20bc96",
|
||||
"rawBytes": 94824,
|
||||
"gzipBytes": 27447,
|
||||
"gzipBytes": 27454,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"sha256": "6face3496a7ad5c9faf547b8ecefbb2f68c0e2759fc6ff1ed25a5741c589ea44",
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"sha256": "eedc2fad1472be76f817428d220ef4e828c1fcc97427a6ba20612573daa01694",
|
||||
"rawBytes": 52033,
|
||||
"gzipBytes": 16944,
|
||||
"gzipBytes": 16941,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"sha256": "d9760789aad7c05fc71a0eba803dea8a0e0ebdb00e9aa12152fa814a68168df4",
|
||||
"path": "houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"sha256": "e285583eaab36e31cdf277be5ca9356b069233fa1afb78b4c3f5247d31e14468",
|
||||
"rawBytes": 1027208,
|
||||
"gzipBytes": 289027,
|
||||
"gzipBytes": 289045,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"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"
|
||||
"houseplan-assets/de-Cq0p0mgN.js",
|
||||
"houseplan-assets/editor-DpRkFHeH.js",
|
||||
"houseplan-assets/fr-D5DWk-ow.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C6ogfdd9.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-CtrSB_PN.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DCJr06wI.js",
|
||||
"houseplan-assets/iso-scene-render-C0aeaxce.js",
|
||||
"houseplan-assets/live-interaction-runtime-DmWlKMN8.js",
|
||||
"houseplan-assets/pdf-export-asgntFGl.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-C9I_hZrx.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-DlbJeVBX.js",
|
||||
"sha256": "a040c3b1bfb3caab29ed3925f8d9155d147ee53817007a7571169373f7ce8aee",
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-C6ogfdd9.js",
|
||||
"sha256": "ffb354ffbc0e8059e5cabc588414a48d5cf3b86973a5448850b46542aaeef10e",
|
||||
"rawBytes": 677322,
|
||||
"gzipBytes": 188275,
|
||||
"gzipBytes": 188283,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"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"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-Des3vZFG.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-BWepbRo2.js",
|
||||
"sha256": "31cc896b2dd622f721dba8aec48f2bc03a64efe2fe038a24bbfddacff85bfb2f",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-CtrSB_PN.js",
|
||||
"sha256": "81631b60198a3cbba28de78166248e1c7f8847687d601e6fb5c1b871279d214b",
|
||||
"rawBytes": 15667,
|
||||
"gzipBytes": 4826,
|
||||
"gzipBytes": 4835,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-CO67Izwr.js",
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/backdrop-pick-D2PXrYRn.js",
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DXZYfUKs.js",
|
||||
"sha256": "9046135d11c562249abb70e69b0169355f14381ce87c86dc0ba3fbfbb83f1cf4",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DCJr06wI.js",
|
||||
"sha256": "cc17e0e458898748ae2f4659e7b212ee47ed8560fafb1d1443249f2ed156c27e",
|
||||
"rawBytes": 10759,
|
||||
"gzipBytes": 3682,
|
||||
"gzipBytes": 3690,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CcDynYR9.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-Des3vZFG.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-D587ZbM1.js",
|
||||
"sha256": "2182acd9989c8fba95b57ec8d49342ad225ff5b846411287e45cfa9b64080f29",
|
||||
"path": "houseplan-assets/iso-scene-render-C0aeaxce.js",
|
||||
"sha256": "5b1549e14d741172fc4adfcfb9e20b34659a45c838b2321f23ae2525135ed6db",
|
||||
"rawBytes": 51983,
|
||||
"gzipBytes": 17640,
|
||||
"gzipBytes": 17645,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-C2jrtBKS.js",
|
||||
"sha256": "af56aaf8ab0c7dee9f0e3de23b4c4fbe26b98f904a6a294e8fd4e473cb2dc9c5",
|
||||
"path": "houseplan-assets/live-interaction-runtime-DmWlKMN8.js",
|
||||
"sha256": "ee152dec5633a8c2e4d9e286cae4ada38efdbfdfd290c7859ea7c38d9ec3f824",
|
||||
"rawBytes": 8216,
|
||||
"gzipBytes": 3201,
|
||||
"gzipBytes": 3212,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/pdf-export-cPUyR7qn.js",
|
||||
"sha256": "aab1097826135ac16f9fdf8d8f3d989c1485399ee7d494d68a3bf9918c99307d",
|
||||
"path": "houseplan-assets/pdf-export-asgntFGl.js",
|
||||
"sha256": "7b98bdf98059f7a5f77e5b8ef964c3ff6d14d0d949467cbd0fc8843d700f4fde",
|
||||
"rawBytes": 236247,
|
||||
"gzipBytes": 109873,
|
||||
"gzipBytes": 109877,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DiBFwQID.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-CkV-MxkE.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-editor-CeUXHEmo.js",
|
||||
"sha256": "744b8ce4dea90a3a42af2b2356d558224531dbd0aac73ee7e8f18497d25fecc5",
|
||||
"rawBytes": 14862,
|
||||
"gzipBytes": 3420,
|
||||
"path": "houseplan-assets/summary-panel-editor-DFZctvf5.js",
|
||||
"sha256": "53d68034ba5e08f660409526a2b124cc3537eed5ad81914c7221537c5afd867d",
|
||||
"rawBytes": 14867,
|
||||
"gzipBytes": 3430,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js"
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-C9I_hZrx.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-metrics-CtDve8JT.js",
|
||||
"sha256": "ac5d957013d3db30ab00a6c3e94ac5512145270d85a3f155c5ee131a88aa8ba2",
|
||||
"path": "houseplan-assets/summary-panel-metrics-CjOXCqmR.js",
|
||||
"sha256": "941001433becc2912a5850dfb17042e984f024d202ebcf3f6c8f81b29e4f9b27",
|
||||
"rawBytes": 2611,
|
||||
"gzipBytes": 1305,
|
||||
"gzipBytes": 1310,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-D9vYgudE.js",
|
||||
"sha256": "36caf881e1133ab072f8d6df613677b3564a35dee37a502117040c783089a1b6",
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-C9I_hZrx.js",
|
||||
"sha256": "a2192117a0b1ebbe42bfb93ded533777ddb7ab8ebe1ac521614d77f8bc985d07",
|
||||
"rawBytes": 72733,
|
||||
"gzipBytes": 20170,
|
||||
"gzipBytes": 20175,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-COBHNvsH.js",
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/form-kit.styles-CErkoaQW.js",
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/summary-panel-editor-CeUXHEmo.js",
|
||||
"houseplan-assets/summary-panel-metrics-CtDve8JT.js"
|
||||
"houseplan-assets/summary-panel-editor-DFZctvf5.js",
|
||||
"houseplan-assets/summary-panel-metrics-CjOXCqmR.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-CDLyN3-N.js",
|
||||
"sha256": "898295e433fd3b841d1299feb676f9efce98b10b1390c4306529a4e676598f78",
|
||||
"path": "houseplan-assets/zigbee-topology-B3YARiuI.js",
|
||||
"sha256": "e1dec1492914b3ec0677a204d47332ec96c3e5d7cc3d3903fc220cd45d26d7d0",
|
||||
"rawBytes": 18962,
|
||||
"gzipBytes": 7426,
|
||||
"gzipBytes": 7429,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-CcDynYR9.js",
|
||||
"sha256": "6d9ba4d38f5b6ef8793118241c99572d5887e88ceab666c56ffcf8931faeaf69",
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-Des3vZFG.js",
|
||||
"sha256": "ba5dde77850ec3e0fd16db42d6c16cdc97f2c7952e5b338999998131033293d3",
|
||||
"rawBytes": 3942,
|
||||
"gzipBytes": 1761,
|
||||
"gzipBytes": 1767,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js",
|
||||
"houseplan-assets/zigbee-topology-CDLyN3-N.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js",
|
||||
"houseplan-assets/zigbee-topology-B3YARiuI.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "c34e1813f3085f66287231ad1f53c45d11a173133dc459934dbcaca630aea950",
|
||||
"sha256": "a9585d1c2b78ad5ddec6140965f2cc6455d2e7752aae43f2838d6d9a9028f213",
|
||||
"rawBytes": 1205,
|
||||
"gzipBytes": 799,
|
||||
"gzipBytes": 806,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-panel.js",
|
||||
"sha256": "860ad9ba4933e3d40d7bc490aa14d366eae9eab12096bbbf06e1838c473ce57b",
|
||||
"sha256": "ebf22cda3026070e462616988363f28d152aad76fd057249214adeec95e3247f",
|
||||
"rawBytes": 6165,
|
||||
"gzipBytes": 2321,
|
||||
"gzipBytes": 2330,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-COwlrP1O.js"
|
||||
"houseplan-assets/houseplan-card-CWPQrAJy.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="0cdc9f2c04830cb52c4e16ec0ce41af1a29dc2a68ae01cf02d1d545bc692ba82";import{A as e,c as a,s as t,l as i,cG as n,ao as s,dC as r,dD as o,cF as l,dE as c,cL as d,cK as p,dF as h,bn as u,bm as m,bo as g,ar as _,ay as b,az as f,dG as v}from"./houseplan-card-COwlrP1O.js";import{c as w,f as y,C as k}from"./form-kit.styles-COBHNvsH.js";const $=w+y(k,{withSwitch:!1}),x=new WeakSet;let S=null;function M(e){const a=e.renderRoot;if(!a||x.has(a))return;const t=a.ownerDocument??globalThis.document,i=t?.defaultView?.CSSStyleSheet;if(i&&"adoptedStyleSheets"in a)return S||(S=new i,S.replaceSync($)),a.adoptedStyleSheets=[...a.adoptedStyleSheets,S],void x.add(a);if(a.querySelector("style[data-hp-form-kit]"))return void x.add(a);const n=t.createElement("style");n.dataset.hpFormKit="true",n.textContent=$,a.appendChild(n),x.add(a)}function C({title:t,help:i,body:n,id:s}){return a`<section class="hpf-card" data-card=${s??e}>
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";import{A as e,c as a,s as t,l as i,cG as n,ao as s,dC as r,dD as o,cF as l,dE as c,cL as d,cK as p,dF as h,bn as u,bm as m,bo as g,ar as _,ay as b,az as f,dG as v}from"./houseplan-card-CWPQrAJy.js";import{c as w,f as y,C as k}from"./form-kit.styles-CErkoaQW.js";const $=w+y(k,{withSwitch:!1}),x=new WeakSet;let S=null;function M(e){const a=e.renderRoot;if(!a||x.has(a))return;const t=a.ownerDocument??globalThis.document,i=t?.defaultView?.CSSStyleSheet;if(i&&"adoptedStyleSheets"in a)return S||(S=new i,S.replaceSync($)),a.adoptedStyleSheets=[...a.adoptedStyleSheets,S],void x.add(a);if(a.querySelector("style[data-hp-form-kit]"))return void x.add(a);const n=t.createElement("style");n.dataset.hpFormKit="true",n.textContent=$,a.appendChild(n),x.add(a)}function C({title:t,help:i,body:n,id:s}){return a`<section class="hpf-card" data-card=${s??e}>
|
||||
${t?a`<div class="hpf-head"><h3>${t}</h3>${i??e}</div>`:e}
|
||||
<div class="hpf-body">${n}</div>
|
||||
</section>`}function L({title:t,help:i}){return a`<div class="hpf-sub"><h4>${t}</h4>${i??e}</div>`}function z({label:t,htmlFor:i,help:n,control:s,hint:r,error:o}){return a`<div class="hpf-field">
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+5
-5
@@ -1,14 +1,14 @@
|
||||
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
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";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-CWPQrAJy.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),u=e=>c`<ha-form
|
||||
.hass=${this.hass}
|
||||
.data=${this._formData}
|
||||
.schema=${e}
|
||||
.computeLabel=${e=>h[e.name]||e.name}
|
||||
.computeLabel=${e=>f[e.name]||e.name}
|
||||
@value-changed=${this._valueChanged}
|
||||
></ha-form>`;return c`
|
||||
${d(f.slice(0,3))}
|
||||
${u(h.slice(0,3))}
|
||||
${_?c`<div class="default-floor-error" role="alert"
|
||||
style="color:var(--error-color,#db4437);margin:-4px 0 12px;overflow-wrap:anywhere">
|
||||
${t(s,"editor.default_floor_missing",{id:_})}
|
||||
</div>`:a}
|
||||
${d(f.slice(3))}
|
||||
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}h.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",h);
|
||||
${u(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);
|
||||
+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
+3
-3
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__="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">
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";import{c as a,A as s}from"./houseplan-card-CWPQrAJy.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-C9I_hZrx.js";import"./form-kit.styles-CErkoaQW.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">
|
||||
<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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
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>`:e}
|
||||
${d.localOnly?a`<p class="summary-local-hint">${b(d.localOnlyHint)}</p>`:s}
|
||||
<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?e:a`<div class="summary-field">
|
||||
${d.localOnly?s: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(e=>{e.title=a.target.value})} />
|
||||
${v("title")?a`<div class="summary-problem error">${h(v("title"))}</div>`:e}
|
||||
@input=${a=>m.mutate(s=>{s.title=a.target.value})} />
|
||||
${v("title")?a`<div class="summary-problem error">${h(v("title"))}</div>`:s}
|
||||
</div>`}
|
||||
${g}
|
||||
${d.localOnly?e:a`<label class="summary-switch" for="summary-mobile-show">
|
||||
${d.localOnly?s: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(e=>{e.show_on_mobile=a.target.checked})} /></label>`}
|
||||
@change=${a=>m.mutate(s=>{s.show_on_mobile=a.target.checked})} /></label>`}
|
||||
</div>
|
||||
${m.storageUnavailable?a`<div class="summary-problem warning">${b("summary.storage_unavailable")}</div>`:e}
|
||||
${m.storageUnavailable?a`<div class="summary-problem warning">${b("summary.storage_unavailable")}</div>`:s}
|
||||
</section>
|
||||
${d.localOnly?e:a`
|
||||
${d.localOnly?s: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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
<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((s,t)=>{const u=`blocks.${t}`,n=v(`${u}.scope`);return a`<article class="summary-editor-block"
|
||||
${d.draft.blocks.map((e,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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
?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=${s.title}
|
||||
<input class="summary-block-title" type="text" .value=${e.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(e=>{e.blocks[t].title=a.target.value})} />
|
||||
@input=${a=>m.mutate(s=>{s.blocks[t].title=a.target.value})} />
|
||||
<button class="summary-icon-button summary-visibility" type="button"
|
||||
?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}
|
||||
?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}
|
||||
<div class="summary-scope">
|
||||
<select .value=${s.scope.type} ?disabled=${d.busy}
|
||||
<select .value=${e.scope.type} ?disabled=${d.busy}
|
||||
aria-label=${b("summary.scope")}
|
||||
@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>
|
||||
@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>
|
||||
</select>
|
||||
${"space"===s.scope.type?a`<select .value=${s.scope.space_id}
|
||||
${"space"===e.scope.type?a`<select .value=${e.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(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}
|
||||
@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}
|
||||
</div>
|
||||
${n?a`<div class="summary-problem summary-scope-problem ${n.kind}">${h(n)}</div>`:e}
|
||||
${n?a`<div class="summary-problem summary-scope-problem ${n.kind}">${h(n)}</div>`:s}
|
||||
</div>
|
||||
<div class="summary-block-body">
|
||||
<div class="summary-editor-values">
|
||||
${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"
|
||||
${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"
|
||||
@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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
@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===s.values.length-1||d.busy}
|
||||
?disabled=${c===e.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
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(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}
|
||||
@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}
|
||||
</div>
|
||||
<div class="summary-source-field">
|
||||
<button class="summary-source" type="button"
|
||||
@@ -119,9 +119,9 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
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(s.id,i.id)}}>
|
||||
@click=${a=>{a.stopPropagation(),k?m.closeSource():m.openSource(e.id,i.id)}}>
|
||||
<span class="summary-source-caption"><strong>${g}</strong>
|
||||
${_?a`<small>${_}</small>`:e}</span>
|
||||
${_?a`<small>${_}</small>`:s}</span>
|
||||
${l("chevron")}
|
||||
</button>
|
||||
${k&&f?a`<div class="summary-source-picker"
|
||||
@@ -135,39 +135,39 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
<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(e=>a`
|
||||
${["device_count","total_area","datetime"].map(s=>a`
|
||||
<button type="button" role="option"
|
||||
?disabled=${d.busy}
|
||||
aria-selected=${p===`system:${e}`?"true":"false"}
|
||||
@click=${()=>m.setSource(s.id,i.id,`system:${e}`)}>
|
||||
${b(`summary.system.${e}`)}
|
||||
aria-selected=${p===`system:${s}`?"true":"false"}
|
||||
@click=${()=>m.setSource(e.id,i.id,`system:${s}`)}>
|
||||
${b(`summary.system.${s}`)}
|
||||
</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(s.id,i.id,p)}>
|
||||
@click=${()=>m.setSource(e.id,i.id,p)}>
|
||||
${g}
|
||||
</button>`:e}
|
||||
</button>`:s}
|
||||
<div class="summary-source-group">${b("summary.entities_group")}</div>
|
||||
${f.entries.map(e=>a`<button type="button" role="option"
|
||||
${f.entries.map(s=>a`<button type="button" role="option"
|
||||
?disabled=${d.busy}
|
||||
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>
|
||||
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>
|
||||
</button>`)}
|
||||
${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}
|
||||
${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}
|
||||
</div>
|
||||
</div>`:e}
|
||||
${$?a`<div class="summary-problem ${$.kind}">${h($)}</div>`:e}
|
||||
</div>`:s}
|
||||
${$?a`<div class="summary-problem ${$.kind}">${h($)}</div>`:s}
|
||||
</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=${s.values.length>=20||d.busy}
|
||||
title=${s.values.length>=20?b("summary.limit_values"):""}
|
||||
?disabled=${e.values.length>=20||d.busy}
|
||||
title=${e.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__="0cdc9f2c04830cb52c4e16ec0ce41af1a29d
|
||||
${l("plus")}${b("summary.add_block")}
|
||||
</button>
|
||||
</section>
|
||||
${d.error?a`<div class="summary-problem error" role="alert">${d.error}</div>`:e}
|
||||
${d.error?a`<div class="summary-problem error" role="alert">${d.error}</div>`:s}
|
||||
${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>`:e}
|
||||
</button>`:s}
|
||||
`}
|
||||
</div>
|
||||
<div class="row summary-editor-footer" slot="footer">
|
||||
@@ -0,0 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";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 l,aV as c,aY as u,ee as d,ef as f,bQ as m,eg as g}from"./houseplan-card-CWPQrAJy.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=u(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,l="entity"===r?e.registry.entities?.[a]:null,c="device"===r?a:l?.device_id,u="device"===r?s?.area_id:l?.area_id||c&&e.registry.devices?.[c]?.area_id,d="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||u||"",f=d&&e.areaToSpace[d]||i.space||e.firstSpaceId;c&&e.registry.devices?.[c]&&e.spaceIds.has(f)&&(!n.devices.has(c)||"entity"===r&&n.liveEntities.has(a))&&t.add(c)}return t}function y(e,t){return e?.length?t?.length?g(e,t):e:t}function _(e,t){const n=l(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:c(e.rooms,t.walls,t.openCuts,i,t.cellCm,o,r)}}function*h(l,c,u=_){try{let d=0;for(const f of c){const c=l.spaces.find(e=>String(e?.id)===f.id);if(!c)continue;const m=e(c,f),g=u(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const s=t(e);if(!s)continue;const l=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||s;v=y(v,a(l,m.physicalBodies)),yield}const _=m.cellCm/o;d+=s(v)*_*_/1e4}return d}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=d(e,t);return i?f(i,String(n.attributes?.unit_of_measurement||"")):null}export{h as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,b as summarySystemValue,p as totalCleanFloorAreaM2};
|
||||
@@ -1 +0,0 @@
|
||||
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__="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};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";import{n as t,b as n}from"./zigbee-topology-B3YARiuI.js";import{aI as e}from"./houseplan-card-CWPQrAJy.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};
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
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)}
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="a0c3649fc88d2931677043b67e48a3f23956224b0a9808cbf060452ffbf762af";try{await import("./houseplan-assets/houseplan-card-CWPQrAJy.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
@@ -2,6 +2,8 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
## v1.77.0-beta.3 — 2026-09-20
|
||||
|
||||
- The four settings dialogs — Space, General settings, Room settings and Device
|
||||
on the plan — now follow the designer's reference layout
|
||||
(`docs/design/600-settings-dialogs/`). Each dialog is one 560 px form with a
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
## Не выпущено
|
||||
|
||||
## v1.77.0-beta.3 — 2026-09-20
|
||||
|
||||
- Четыре диалога настроек — «Пространство», «Общие настройки», «Настройки
|
||||
комнаты» и «Устройство на плане» — собраны по макетам дизайнера
|
||||
(`docs/design/600-settings-dialogs/`). Каждый диалог — одна форма 560 px с
|
||||
|
||||
@@ -1,20 +1,16 @@
|
||||
<!-- release: v1.77.0-beta.2 -->
|
||||
<!-- release: v1.77.0-beta.3 -->
|
||||
|
||||
## Основное
|
||||
|
||||
- Четыре основных диалога настроек стали проще для просмотра: связанные поля собраны в карточки, пояснения открываются по «?», а короткие варианты видны сразу в сегментированных переключателях ([#594](https://github.com/Matysh/houseplan-card/issues/594), [#598](https://github.com/Matysh/houseplan-card/issues/598)).
|
||||
- Библиотека мебели полностью перерисована в едином стиле и расширена до 60 видов сверху; добавлены компьютер, вытяжка, духовка и кактус ([#593](https://github.com/Matysh/houseplan-card/issues/593)).
|
||||
- У устройств появился режим «Значение + статичный значок»: значение остаётся видимым, а цвет иконки не меняется от состояния ([#588](https://github.com/Matysh/houseplan-card/issues/588)).
|
||||
- Четыре диалога настроек полностью приведены к макетам дизайнера: единые карточки и контролы, один скролл, понятная валидация, сохранение только при изменениях и подтверждение закрытия несохранённой формы ([#600](https://github.com/Matysh/houseplan-card/issues/600)).
|
||||
- Мелкие исправления и улучшения.
|
||||
|
||||
## Highlights
|
||||
|
||||
- The four main settings dialogs are easier to scan: related fields are grouped into cards, explanations open from “?”, and short choices are immediately visible as segmented controls ([#594](https://github.com/Matysh/houseplan-card/issues/594), [#598](https://github.com/Matysh/houseplan-card/issues/598)).
|
||||
- The furniture library was fully redrawn in one style and expanded to 60 top views, adding a computer, cooker hood, oven and cactus ([#593](https://github.com/Matysh/houseplan-card/issues/593)).
|
||||
- Devices gained a “Value + static icon” mode: the value stays visible while the icon colour no longer changes with state ([#588](https://github.com/Matysh/houseplan-card/issues/588)).
|
||||
- The four settings dialogs now fully match the designer reference: one shared card-and-control language, a single scrollbar, clear validation, Save only after changes, and confirmation before discarding an edited form ([#600](https://github.com/Matysh/houseplan-card/issues/600)).
|
||||
- Small fixes and improvements.
|
||||
|
||||
Сообщество / Community: [Telegram](https://t.me/ha_houseplan)
|
||||
|
||||
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.77.0-beta.2/docs/CHANGELOG.ru.md)
|
||||
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.77.0-beta.2/docs/CHANGELOG.md)
|
||||
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.77.0-beta.3/docs/CHANGELOG.ru.md)
|
||||
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.77.0-beta.3/docs/CHANGELOG.md)
|
||||
|
||||
+2
-2
@@ -21,8 +21,8 @@ metadata). Only an explicit owner-approved emergency hotfix may skip this gate.
|
||||
|
||||
| Item | State |
|
||||
|---|---|
|
||||
| Version | **v1.77.0-beta.2** everywhere (manifest, const.py, package.json, package-lock in both places, CARD_VERSION in the card and the editor runtime) |
|
||||
| Current local cycle | **Beta v1.77.0-beta.2 candidate** — prepared from the exact integrated `dev` tree; `main` stays on v1.76.0. User-visible: all four main settings dialogs use the shared card-based form language (#594, #598), the furniture pack is replaced with 60 designer top-view symbols (#593), and devices gain the “Value + static icon” display mode (#588). Hidden experimental work remains unannounced: #585 replaces the 2.5D overlay's lossy lattice with critical-boundary search. Internal in the candidate: dialog extraction and shared panel styles (#592, #597), corrected rejected-feature documentation (#589), verified pinned owner toolchains (#576), and fixes to reviewed-run and merge-candidate process gates (#595, #596). |
|
||||
| Version | **v1.77.0-beta.3** everywhere (manifest, const.py, package.json, package-lock in both places, CARD_VERSION in the card and the editor runtime) |
|
||||
| Current local cycle | **Beta v1.77.0-beta.3 candidate** — prepared from the exact integrated `dev` tree; `main` stays on v1.76.0. User-visible: the Space, General settings, Room settings and Device on the plan dialogs now match the designer reference instead of wrapping the old form in new cards: shared controls, one scrollbar, explicit validation, dirty-state Save and discard confirmation (#600). |
|
||||
| Hidden Alpha Stage | #89 Stage 1 ships in v1.63.0-beta.1, #122 Stage 2 in v1.64.0 and #160 Stage 3 in v1.73.0-beta.1; #570 adds the Stage 4 designer handoff and #583 refines it on `dev`: only the building ambient shadow remains, door/gate volumes pivot on the selected host face without strokes, and devices/lock badges receive deterministic mutual collision correction while room labels remain passive below them. The same hidden `iso` view uses a fixed 0°/20° camera and scale-aware wall height 84, low screen-facing device/room/lock overlays without tethers or ground dots, neutral full-height window frames with blue glass, and bounded theme materials. Since #448 the experiment is enabled only through the single indefinite browser-local `hp_alpha` gate; it is not expiring and has no per-stage key. Flat remains default; editors, `houseplan-space-card`, floor effects, stored coordinates and HA actions remain unchanged. Stage 4 stays internal and is absent from public changelog/user documentation. |
|
||||
| Workflow | Superseded 2026-08-12: the pre-1.62 rule of "local edits without tests or commits" is **dead** — since release 1.62 every product change follows `PROCESS.md` (issue in `S5-ready`+, branch `issue/<NN>-slug`, trailers on every commit, review pipeline; `AGENTS.md` is the summary). Release mechanics below remain current. A requested pre-release gets a production build plus the smallest targeted unit/smoke set covering the changed surfaces, one tested `dev` commit/tag and a GitHub Release with `prerelease=true`; `main` stays untouched. The complete local frontend/backend/smoke gate runs only before a stable release, after which `main` is fast-forwarded to the exact tested `dev` SHA and the stable release is produced by `release.yml` (`workflow_dispatch` on `main` with the tag) — the only publisher of installable assets since #540: gates on the exact SHA (Validate, Full Performance, E2E on the candidate commit), one build, `houseplan.zip` archived from the committed tree, `SHA256SUMS`, draft → publish → read-back verification; a release published by hand in the GitHub form is turned back into a draft and walked through the same path, and a re-dispatch on a public tag is a repair that adds only missing assets. Release bodies are short and bilingual (Russian first); every bullet links its GitHub issue (#NN) so the #328 rules stay machine-checkable. A STABLE body aggregates the changelog since the PREVIOUS STABLE release (never since the last beta): features/fixes described across the line's beta changelogs must appear, while bugs that were introduced and fixed strictly inside the beta line (never shipped in any stable) are excluded — draft with `npm run release:notes -- <tag>`, curate by hand, then `npm run release:notes -- <tag> --verify` must pass. `Мелкие исправления и улучшения` / `Small fixes and improvements` is allowed only when the range really contains user-visible work not itemised in the body; a single-issue hotfix ships without it (the verifier enforces this). Every body ends with separate links to the Russian and English changelogs. Open or partially delivered issues are never presented as shipped. Telegram announcements are sent only for stable releases; beta and RC publication is silent. `docs/RELEASE-NOTES.md` is the current canonical body instance; `npm run release:prerelease -- <tag> --issues=… --yes` is the primary local publication path and the manual `Publish prerelease` workflow is its GitHub-only equivalent once present on `main`. Nothing is copied to the home instance by hand |
|
||||
| GitHub | https://github.com/Matysh/houseplan-card — [Issues](https://github.com/Matysh/houseplan-card/issues) are the canonical task records; their labels carry priority and workflow status (`PROCESS.md` §9). GitHub Projects is no longer used. `main` carries stable releases; pre-release tags may point directly at `dev`. Work lands on `dev` and is merged into `main` for a stable release, so `dev` is normally equal to or ahead of `main`, never behind. Push via SSH key `ha_jb` (remote git@github.com:…); API releases via the fine-grained PAT in `~/.git-credentials` (Contents R/W, issued 2026-07-23) |
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "houseplan-card",
|
||||
"version": "1.77.0-beta.2",
|
||||
"version": "1.77.0-beta.3",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "houseplan-card",
|
||||
"version": "1.77.0-beta.2",
|
||||
"version": "1.77.0-beta.3",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"lit": "^3.1.3",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "houseplan-card",
|
||||
"version": "1.77.0-beta.2",
|
||||
"version": "1.77.0-beta.3",
|
||||
"description": "Interactive house plan Lovelace card for Home Assistant",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
|
||||
@@ -427,7 +427,7 @@ import type { MarkerRoomReferenceSnapshot } from './room-reference-transaction';
|
||||
import { SummaryRuntimeSlot, summaryRuntimeLoader } from './summary-runtime-loader';
|
||||
import { displayVersion } from './card-version';
|
||||
|
||||
const CARD_VERSION = '1.77.0-beta.2';
|
||||
const CARD_VERSION = '1.77.0-beta.3';
|
||||
const ENTRY_BUILD_FINGERPRINT = '__HOUSEPLAN_SOURCE_FINGERPRINT__';
|
||||
const EDITOR_RETRY_ASSET = '__HOUSEPLAN_EDITOR_RETRY_ASSET__';
|
||||
const ISO_RETRY_ASSET = '__HOUSEPLAN_ISO_RETRY_ASSET__';
|
||||
|
||||
@@ -397,7 +397,7 @@ import {
|
||||
rewriteMarkerRoomReferences, type MarkerRoomReferenceSnapshot,
|
||||
} from './room-reference-transaction';
|
||||
|
||||
const CARD_VERSION = '1.77.0-beta.2';
|
||||
const CARD_VERSION = '1.77.0-beta.3';
|
||||
|
||||
// #474: the editor imports the furniture artwork statically and hands it to
|
||||
// the page runtime the moment this chunk evaluates — before the loader's
|
||||
|
||||
Reference in New Issue
Block a user