mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
perf(iso): ограничить граничные события (#585)
Перечисляются только реальные пересечения конечных границ, новые границы обрабатываются инкрементально, а дробные координаты дают только необходимые floor/ceil-соседи. Issue: #585 User-Visible: no
This commit is contained in:
@@ -1,309 +1,309 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca",
|
||||
"fingerprint": "88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9",
|
||||
"entry": "houseplan-card.js",
|
||||
"panelEntry": "houseplan-panel.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 291513,
|
||||
"initialViewGzipBytes": 291517,
|
||||
"initialPanelFiles": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelGzipBytes": 293036,
|
||||
"initialPanelGzipBytes": 293039,
|
||||
"initialPanelOnlyFiles": [
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelOnlyGzipBytes": 2325,
|
||||
"initialPanelOnlyGzipBytes": 2324,
|
||||
"lazyFiles": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/de-BSWzSpgx.js",
|
||||
"houseplan-assets/editor-BFMBFtB-.js",
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/fr-Dggceg1t.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-p0Gyk3kj.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Cv-Ttg7y.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-Bo1kcXse.js",
|
||||
"houseplan-assets/iso-scene-render-BxPd8xPS.js",
|
||||
"houseplan-assets/live-interaction-runtime-UWxkfCmP.js",
|
||||
"houseplan-assets/pdf-export-nNiMgsDk.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-T71UV8iz.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CGVM3SVf.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/de-qGelgWw2.js",
|
||||
"houseplan-assets/editor-fzEJ3Sy_.js",
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/fr-Dy8iiwy_.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C7V34E2J.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BEe4SZTb.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-eqgElxaW.js",
|
||||
"houseplan-assets/iso-scene-render-DhtLxqcj.js",
|
||||
"houseplan-assets/live-interaction-runtime-bgXukYTl.js",
|
||||
"houseplan-assets/pdf-export-eMxHYpi-.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-ClIYcGcH.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-DLvqrPjc.js"
|
||||
],
|
||||
"lazyGzipBytes": 440938,
|
||||
"lazyGzipBytes": 441076,
|
||||
"lazyEditorFiles": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/editor-BFMBFtB-.js",
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-p0Gyk3kj.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/editor-fzEJ3Sy_.js",
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C7V34E2J.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 222198,
|
||||
"lazyEditorGzipBytes": 222197,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Cv-Ttg7y.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BEe4SZTb.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 13915,
|
||||
"lazyOnboardingGzipBytes": 13918,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-BSWzSpgx.js",
|
||||
"houseplan-assets/fr-Dggceg1t.js"
|
||||
"houseplan-assets/de-qGelgWw2.js",
|
||||
"houseplan-assets/fr-Dy8iiwy_.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 56356,
|
||||
"lazyLocaleGzipBytes": 56352,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/iso-scene-render-BxPd8xPS.js"
|
||||
"houseplan-assets/iso-scene-render-DhtLxqcj.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 16646,
|
||||
"lazyIsometricGzipBytes": 16792,
|
||||
"lazyFurnitureArtFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js"
|
||||
],
|
||||
"lazyFurnitureArtGzipBytes": 16943,
|
||||
"lazyFurnitureArtGzipBytes": 16944,
|
||||
"lazyPdfFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/pdf-export-nNiMgsDk.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/pdf-export-eMxHYpi-.js"
|
||||
],
|
||||
"lazyPdfGzipBytes": 126816,
|
||||
"lazyPdfGzipBytes": 126817,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"sha256": "75cf7af61d2343b1565428cb445b68d5644cf2e26787f7835c7f068e754fa8b8",
|
||||
"path": "houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"sha256": "a17a0059314b4275a5560c5235afe05c93ee0590ec5797b6eb9e793b34904820",
|
||||
"rawBytes": 19959,
|
||||
"gzipBytes": 6880,
|
||||
"gzipBytes": 6883,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-BSWzSpgx.js",
|
||||
"sha256": "3ff546d706847406cbdde6153baf3cb19fac20fb1618b3ad24d3a8a469e81c09",
|
||||
"path": "houseplan-assets/de-qGelgWw2.js",
|
||||
"sha256": "5734db4624e6770a5f56defbe2626d2e5082fa662c93048c6214f51056080d57",
|
||||
"rawBytes": 93989,
|
||||
"gzipBytes": 28443,
|
||||
"gzipBytes": 28441,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-BFMBFtB-.js",
|
||||
"sha256": "80c248f1012fb8f64436258f2f93327bf86150a19842dde84d14256d4dd18ef5",
|
||||
"path": "houseplan-assets/editor-fzEJ3Sy_.js",
|
||||
"sha256": "3fae1734402588dd4a0526ce2fcc568aa7d9ebfd95ba039407e2605d0bd035f0",
|
||||
"rawBytes": 3833,
|
||||
"gzipBytes": 1583,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"sha256": "7f808ac38b570922696d88f91e607d22d01b537de65e9d4e7b7760639dcf2528",
|
||||
"rawBytes": 3620,
|
||||
"gzipBytes": 1234,
|
||||
"path": "houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"sha256": "e24b9470e6f4fa894d108f27c31e6a6919e61971d7ba7271eb96fe6f53eea589",
|
||||
"rawBytes": 3615,
|
||||
"gzipBytes": 1233,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-Dggceg1t.js",
|
||||
"sha256": "37aab837b86c1c76623ae6c563e53d1e3164ab626387af2d721898c156f9e95e",
|
||||
"path": "houseplan-assets/fr-Dy8iiwy_.js",
|
||||
"sha256": "77c85c92191fbaf644d15aaced93611c37f3459c86ea8136acabb1c35269e119",
|
||||
"rawBytes": 96460,
|
||||
"gzipBytes": 27913,
|
||||
"gzipBytes": 27911,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"sha256": "27bc654cd6a8753e38e7dd5dd8313411bd3461920f7816b3c5626d2c44b94412",
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"sha256": "1df63e447d66a02eb7039337ef16198f3b457d78c23622e1f33a90c6d1f0bc1f",
|
||||
"rawBytes": 52033,
|
||||
"gzipBytes": 16943,
|
||||
"gzipBytes": 16944,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"sha256": "14581ea4898753f9e71c4408d41dfd98ab0c2b046472b2072d477cfb6df07db2",
|
||||
"path": "houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"sha256": "17d647662295c586c4ea81e8c8a3c194afe776da43e75830666dae882f001b52",
|
||||
"rawBytes": 1035518,
|
||||
"gzipBytes": 290711,
|
||||
"gzipBytes": 290715,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/de-BSWzSpgx.js",
|
||||
"houseplan-assets/editor-BFMBFtB-.js",
|
||||
"houseplan-assets/fr-Dggceg1t.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-p0Gyk3kj.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Cv-Ttg7y.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-Bo1kcXse.js",
|
||||
"houseplan-assets/iso-scene-render-BxPd8xPS.js",
|
||||
"houseplan-assets/live-interaction-runtime-UWxkfCmP.js",
|
||||
"houseplan-assets/pdf-export-nNiMgsDk.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-T71UV8iz.js"
|
||||
"houseplan-assets/de-qGelgWw2.js",
|
||||
"houseplan-assets/editor-fzEJ3Sy_.js",
|
||||
"houseplan-assets/fr-Dy8iiwy_.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C7V34E2J.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BEe4SZTb.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-eqgElxaW.js",
|
||||
"houseplan-assets/iso-scene-render-DhtLxqcj.js",
|
||||
"houseplan-assets/live-interaction-runtime-bgXukYTl.js",
|
||||
"houseplan-assets/pdf-export-eMxHYpi-.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-ClIYcGcH.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-p0Gyk3kj.js",
|
||||
"sha256": "df0c80dd09adc1e456b9668b43ffd1ea80334d58bb8e1d8aa92e2e5fa616e73d",
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-C7V34E2J.js",
|
||||
"sha256": "16af54e5252363307e7a1384305096395836362a9a34d77d837503fb41bd43bd",
|
||||
"rawBytes": 689688,
|
||||
"gzipBytes": 188130,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-CGVM3SVf.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-DLvqrPjc.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-Cv-Ttg7y.js",
|
||||
"sha256": "91eabbc7ddbf4bae537bff868f21fe63b42341e1e1b3a36d28b1c7d3eedad1a9",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-BEe4SZTb.js",
|
||||
"sha256": "229bbb57e3928c39f46e40824ebdfaa2ba87fe5af6c4a3e9187773c9709185ab",
|
||||
"rawBytes": 28289,
|
||||
"gzipBytes": 7035,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-Bo1kcXse.js",
|
||||
"sha256": "ecb87e393934ebd127ef23db9c4f9cf24f1a837b371460725f41b2b358b55fd8",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-eqgElxaW.js",
|
||||
"sha256": "e6ce493c3b1a44eb654188d4d148e5dabe237fa1edd6694f3bbce99b2105fd49",
|
||||
"rawBytes": 10759,
|
||||
"gzipBytes": 3687,
|
||||
"gzipBytes": 3684,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CGVM3SVf.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-DLvqrPjc.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-BxPd8xPS.js",
|
||||
"sha256": "8d60c3aae092a9b70f04410549e3946544498a7cf7e1b3c6c342359e9ad19f48",
|
||||
"rawBytes": 49535,
|
||||
"gzipBytes": 16646,
|
||||
"path": "houseplan-assets/iso-scene-render-DhtLxqcj.js",
|
||||
"sha256": "4dd8c9fa88224e480f3c50d89c2c3b073f74dd1bed6cfeb6196f301aade77ded",
|
||||
"rawBytes": 50012,
|
||||
"gzipBytes": 16792,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-UWxkfCmP.js",
|
||||
"sha256": "d9d83a07f822a9d3f858c36e6d4d5a4a5f8e7f48809be86c356fa7e91a71688e",
|
||||
"path": "houseplan-assets/live-interaction-runtime-bgXukYTl.js",
|
||||
"sha256": "b623081e5e869c80bc73a9173eb072cb3686b06244105fbbafa2b7a03da374d3",
|
||||
"rawBytes": 8216,
|
||||
"gzipBytes": 3205,
|
||||
"gzipBytes": 3207,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/pdf-export-nNiMgsDk.js",
|
||||
"sha256": "1b9000da10d4d0718d55e5bdeb40266a3900753e9af95d3cd900e5674beca1bc",
|
||||
"path": "houseplan-assets/pdf-export-eMxHYpi-.js",
|
||||
"sha256": "43581b2fd6d3b12389e6fda98d36ff4250a0a4fe59f9e52668937e3307f95cbb",
|
||||
"rawBytes": 236247,
|
||||
"gzipBytes": 109873,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-editor-DEO9mTfX.js",
|
||||
"sha256": "88025951e6001263395438329e2c787716c71d19a6d6638ee02a0c3e3da900f7",
|
||||
"path": "houseplan-assets/summary-panel-editor-f3elPcdE.js",
|
||||
"sha256": "727df14b390c264979ad8c07ca57d994a8c0c3caa73bc6e7f793745f3adc85d1",
|
||||
"rawBytes": 14862,
|
||||
"gzipBytes": 3424,
|
||||
"gzipBytes": 3425,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-T71UV8iz.js"
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-ClIYcGcH.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-metrics-DriQDNhG.js",
|
||||
"sha256": "a0088a7a6d24fa31ca88c7c11fe8218b1bbb10b78f584025c0b8aabec5e5ca28",
|
||||
"path": "houseplan-assets/summary-panel-metrics-CzwbD9VU.js",
|
||||
"sha256": "fabd124197786f937775ede672afd5c5c72bab82b997cb5ccf84324d9d872de9",
|
||||
"rawBytes": 2611,
|
||||
"gzipBytes": 1306,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-T71UV8iz.js",
|
||||
"sha256": "6a419064c47af19607e9bb2e4bad392e0f975dd9f2fa8a60b45a95fdcf4cea46",
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-ClIYcGcH.js",
|
||||
"sha256": "4b6fe585ffe7ac0d299691195754879f645507176e1c2365a85cb13655edb17c",
|
||||
"rawBytes": 72733,
|
||||
"gzipBytes": 20175,
|
||||
"gzipBytes": 20173,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/summary-panel-editor-DEO9mTfX.js",
|
||||
"houseplan-assets/summary-panel-metrics-DriQDNhG.js"
|
||||
"houseplan-assets/summary-panel-editor-f3elPcdE.js",
|
||||
"houseplan-assets/summary-panel-metrics-CzwbD9VU.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-Bmg8URV0.js",
|
||||
"sha256": "54f5d8eea26a7ff0262f10062184f6c700a20e74267a2e0fea04b422784fd75e",
|
||||
"path": "houseplan-assets/zigbee-topology-Km5WY9re.js",
|
||||
"sha256": "ca81df585fa1aeb2568dc373e5533f3b0b6a88ed5f11083e022f1316595fd079",
|
||||
"rawBytes": 18962,
|
||||
"gzipBytes": 7428,
|
||||
"gzipBytes": 7424,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-CGVM3SVf.js",
|
||||
"sha256": "bde277e3efcbfa19921ab4b69073fce2d44768f0baf8094a0dd88e422ae402b7",
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-DLvqrPjc.js",
|
||||
"sha256": "53f5b9b40e8d868ab187aff1b66b410cb526ed1ae7132c55005fc0d929fc7058",
|
||||
"rawBytes": 3942,
|
||||
"gzipBytes": 1763,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "4468113df4fe3831d25ff5a680d50015c3f411e01392a65a1cbe2c19593cd60d",
|
||||
"sha256": "eaaf069917dd00f4b4f73e114304cdbb289cf9a0e5fc1b49205741f0ae9b40c1",
|
||||
"rawBytes": 1205,
|
||||
"gzipBytes": 802,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-panel.js",
|
||||
"sha256": "08a2343aa35bb7ae3a9a0834782fb3d025bb9df8245ba6a4edacebe46781b85f",
|
||||
"sha256": "6df398c5faa4791f14e9a0358e584c58972cc159c717e32f8f0ffdcbf9dcf0f4",
|
||||
"rawBytes": 6165,
|
||||
"gzipBytes": 2325,
|
||||
"gzipBytes": 2324,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
}
|
||||
|
||||
+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
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{aI as e,l as o,aL as t,e7 as s,A as a,e8 as i,e9 as l,ea as n,E as r,c}from"./houseplan-card-CwjlrGqP.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__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{aI as e,l as o,aL as t,e7 as s,A as a,e8 as i,e9 as l,ea as n,E as r,c}from"./houseplan-card-CdCQB6rW.js";class h extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,h={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},f=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
|
||||
.hass=${this.hass}
|
||||
.data=${this._formData}
|
||||
.schema=${e}
|
||||
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";const n={form:".summary-editor",prefix:"summary",cards:[".summary-general",".summary-blocks-card"],footer:".summary-editor-footer",tokens:{surface:"--summary-editor-surface",line:"--summary-editor-line",accent:"--summary-editor-accent"}},e={form:".hpf-form",prefix:"hpf",cards:[".hpf-card"],footer:".hpf-footer",tokens:{surface:"--hpf-surface",line:"--hpf-line",accent:"--hpf-accent"}};function r({cards:n,tokens:e}){return` ${n.join(",\n ")} {\n min-width: 0;\n padding: 14px;\n border: 1px solid var(${e.line});\n border-radius: 11px;\n background: var(${e.surface});\n }`}function i({form:n,footer:e,tokens:r}){return` ${n} input:focus-visible,\n ${n} select:focus-visible,\n ${n} button:focus-visible,\n ${e} button:focus-visible {\n outline: 2px solid var(${r.accent});\n outline-offset: 2px;\n }`}function t({form:n}){return` ${n} button:disabled,\n ${n} input:disabled,\n ${n} select:disabled { opacity: .4; cursor: default; }`}function o({form:n,prefix:e}){return` ${n} .${e}-switch {\n display: flex;\n min-width: 0;\n min-height: 54px;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin: 0;\n color: var(--primary-text-color);\n cursor: pointer;\n }`}function a({prefix:n}){return` .${n}-switch-caption { display: grid; min-width: 0; gap: 3px; }\n .${n}-switch-caption strong { font-size: .875rem; font-weight: 600; overflow-wrap: anywhere; }\n .${n}-switch-caption small { font-size: .8125rem; color: var(--secondary-text-color); overflow-wrap: anywhere; }`}function c(n,{withSwitch:e=!0}={}){return`${function(n,e){const c=e?`\n${o(n)}\n${a(n)}`:"";return`${r(n)}\n${i(n)}\n${t(n)}${c}`}(n,e)}\n${function(n){const{form:e,prefix:r,tokens:i}=n;return` ${e} { display: grid; gap: 12px; }\n .${r}-head {\n display: flex;\n min-width: 0;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n margin: 0 0 10px;\n }\n .${r}-head h3 { margin: 0; font-size: 1rem; line-height: 1.3; font-weight: 600; }\n .${r}-row {\n display: flex;\n min-width: 0;\n min-height: 44px;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n .${r}-row > .${r}-label { min-width: 0; overflow-wrap: anywhere; }\n .${r}-seg {\n display: flex;\n min-width: 0;\n border: 1px solid var(${i.line});\n border-radius: 9px;\n overflow: hidden;\n }\n .${r}-seg label {\n display: flex;\n min-width: 0;\n min-height: 44px;\n flex: 1 1 0;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 0 12px;\n cursor: pointer;\n text-align: center;\n }\n .${r}-seg label + label { border-left: 1px solid var(${i.line}); }\n .${r}-seg input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }\n .${r}-seg label:has(input:checked) {\n background: var(${i.accent});\n color: var(--text-primary-color, #fff);\n }\n .${r}-seg label:has(input:focus-visible) {\n outline: 2px solid var(${i.accent});\n outline-offset: -2px;\n }\n .${r}-color { display: flex; min-width: 0; align-items: center; gap: 12px; }\n .${r}-color hp-color-opacity { flex: 0 0 auto; }`}(n)}\n`}const s=" hp-dialog .hpf-form {\n --hpf-surface: var(--card-background-color, #fff);\n --hpf-line: var(--hp-line, var(--divider-color, #dce5e7));\n --hpf-accent: var(--hp-accent, var(--primary-color));\n }\n";export{e as C,n as S,r as a,i as b,s as c,t as d,o as e,c as f,a as g};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";const n={form:".summary-editor",prefix:"summary",cards:[".summary-general",".summary-blocks-card"],footer:".summary-editor-footer",tokens:{surface:"--summary-editor-surface",line:"--summary-editor-line",accent:"--summary-editor-accent"}},e={form:".hpf-form",prefix:"hpf",cards:[".hpf-card"],footer:".hpf-footer",tokens:{surface:"--hpf-surface",line:"--hpf-line",accent:"--hpf-accent"}};function r({cards:n,tokens:e}){return` ${n.join(",\n ")} {\n min-width: 0;\n padding: 14px;\n border: 1px solid var(${e.line});\n border-radius: 11px;\n background: var(${e.surface});\n }`}function i({form:n,footer:e,tokens:r}){return` ${n} input:focus-visible,\n ${n} select:focus-visible,\n ${n} button:focus-visible,\n ${e} button:focus-visible {\n outline: 2px solid var(${r.accent});\n outline-offset: 2px;\n }`}function t({form:n}){return` ${n} button:disabled,\n ${n} input:disabled,\n ${n} select:disabled { opacity: .4; cursor: default; }`}function o({form:n,prefix:e}){return` ${n} .${e}-switch {\n display: flex;\n min-width: 0;\n min-height: 54px;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin: 0;\n color: var(--primary-text-color);\n cursor: pointer;\n }`}function a({prefix:n}){return` .${n}-switch-caption { display: grid; min-width: 0; gap: 3px; }\n .${n}-switch-caption strong { font-size: .875rem; font-weight: 600; overflow-wrap: anywhere; }\n .${n}-switch-caption small { font-size: .8125rem; color: var(--secondary-text-color); overflow-wrap: anywhere; }`}function s(n,{withSwitch:e=!0}={}){return`${function(n,e){const s=e?`\n${o(n)}\n${a(n)}`:"";return`${r(n)}\n${i(n)}\n${t(n)}${s}`}(n,e)}\n${function(n){const{form:e,prefix:r,tokens:i}=n;return` ${e} { display: grid; gap: 12px; }\n .${r}-head {\n display: flex;\n min-width: 0;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n margin: 0 0 10px;\n }\n .${r}-head h3 { margin: 0; font-size: 1rem; line-height: 1.3; font-weight: 600; }\n .${r}-row {\n display: flex;\n min-width: 0;\n min-height: 44px;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n .${r}-row > .${r}-label { min-width: 0; overflow-wrap: anywhere; }\n .${r}-seg {\n display: flex;\n min-width: 0;\n border: 1px solid var(${i.line});\n border-radius: 9px;\n overflow: hidden;\n }\n .${r}-seg label {\n display: flex;\n min-width: 0;\n min-height: 44px;\n flex: 1 1 0;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 0 12px;\n cursor: pointer;\n text-align: center;\n }\n .${r}-seg label + label { border-left: 1px solid var(${i.line}); }\n .${r}-seg input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }\n .${r}-seg label:has(input:checked) {\n background: var(${i.accent});\n color: var(--text-primary-color, #fff);\n }\n .${r}-seg label:has(input:focus-visible) {\n outline: 2px solid var(${i.accent});\n outline-offset: -2px;\n }\n .${r}-color { display: flex; min-width: 0; align-items: center; gap: 12px; }\n .${r}-color hp-color-opacity { flex: 0 0 auto; }`}(n)}\n`}const c=" hp-dialog .hpf-form {\n --hpf-surface: var(--card-background-color, #fff);\n --hpf-line: var(--hp-line, var(--divider-color, #dce5e7));\n --hpf-accent: var(--hp-accent, var(--primary-color));\n }\n";export{e as C,n as S,r as a,i as b,c,t as d,o as e,s as f,a as g};
|
||||
+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
+4
-4
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{l as t,bw as s,A as e,aL as a,c as o,g as l,cK as i,ar as h,am as c,au as n,cL as r,cQ as p,cM as d,cN as _,cO as u,cP as g,cR as m,cS as b,al as $,ao as v,ap as f,as as y,at as w,aq as D}from"./houseplan-card-CwjlrGqP.js";import{c as k,e as S,r as C,a as M}from"./backdrop-pick-QvHdZ-Rj.js";const F=1e3,x=t=>{if(!t.trim())return null;const s=Number(t.replace(",","."));return Number.isFinite(s)?s:null},T="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";class L{constructor(t){this.host=t,this._toggleServerPlans=async()=>{const t=this.host._spaceDialog;if(t)if(t.pickSaved)this.host._spaceDialog={...t,pickSaved:!1};else{this.host._spaceDialog={...t,pickSaved:!0,savedBusy:!0};try{const t=await this.host.hass.callWS({type:"houseplan/plans/list"}),s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,saved:t?.plans||[],savedBusy:!1})}catch(t){const s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,saved:[],savedBusy:!1}),this.host._showToast(this.host._t("toast.plans_list_failed",{err:this.host._errText(t)}))}}}}_help(l){const i=`${l}.aria`,h=t(this.host.hass,this.host._config?.language);return s(h,l)&&s(h,i)?o`<hp-help data-help-key=${l}
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{l as t,bw as s,A as e,aL as a,c as o,g as l,cK as i,ar as h,am as c,au as n,cL as r,cQ as p,cM as d,cN as _,cO as u,cP as g,cR as m,cS as b,al as $,ao as f,ap as v,as as y,at as w,aq as D}from"./houseplan-card-CdCQB6rW.js";import{c as k,e as S,r as C,a as M}from"./backdrop-pick-Pc0BlKD3.js";const F=1e3,x=t=>{if(!t.trim())return null;const s=Number(t.replace(",","."));return Number.isFinite(s)?s:null},T="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";class L{constructor(t){this.host=t,this._toggleServerPlans=async()=>{const t=this.host._spaceDialog;if(t)if(t.pickSaved)this.host._spaceDialog={...t,pickSaved:!1};else{this.host._spaceDialog={...t,pickSaved:!0,savedBusy:!0};try{const t=await this.host.hass.callWS({type:"houseplan/plans/list"}),s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,saved:t?.plans||[],savedBusy:!1})}catch(t){const s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,saved:[],savedBusy:!1}),this.host._showToast(this.host._t("toast.plans_list_failed",{err:this.host._errText(t)}))}}}}_help(l){const i=`${l}.aria`,h=t(this.host.hass,this.host._config?.language);return s(h,l)&&s(h,i)?o`<hp-help data-help-key=${l}
|
||||
.text=${a(h,l)} .ariaLabel=${a(h,i)}></hp-help>`:e}_openSpaceDialog(t,s){if(!this.host._serverStorage||!this.host._serverCfg)return void this.host._showToast(this.host._t("toast.integration_missing"));if("edit"===t){const e=this.host._serverCfg.spaces.find(t=>t.id===s);if(!e)return;const a=l(e),o=e.settings?.custom_fill&&"object"==typeof e.settings.custom_fill?i(e.settings.custom_fill):null,p="none"===a.fill?{...o||h,a:0}:o;return void(this.host._spaceDialog={mode:t,spaceId:s,title:e.title,planUrl:e.plan_url||null,planFile:null,source:e.plan_url?"file":"draw",showBorders:a.showBorders,showNames:a.showNames,zeroWallStyle:r(e),displayTouched:!0,hideDecor:a.hideDecor,hideOpenings:a.hideOpenings,roomColor:a.color,roomOpacity:a.opacity,fillMode:"none"===a.fill?"custom":a.fill,customFill:p,glowEnabled:a.glow,bgColor:a.bgColor,bgMode:"static"===e.settings?.bg_mode||"daynight"===e.settings?.bg_mode?e.settings.bg_mode:null,northDeg:n({},e.settings),sunRays:"boolean"==typeof e.settings?.sun_rays?e.settings.sun_rays:null,tempMin:a.tempMin,tempMax:a.tempMax,showLqi:a.showLqi??this.host._config?.show_signal??!0,cardFontScale:a.cardFontScale,labelTemp:a.labelTemp,labelHum:a.labelHum,labelLqi:a.labelLqi,labelLight:a.labelLight,cellCm:Number(e.cell_cm)>0?Number(e.cell_cm):5,cellCmInput:c(Number(e.cell_cm)>0?Number(e.cell_cm):5,this.host._imperial),cellCmTouched:!1,busy:!1})}const e=p(this.host._imperial);this.host._spaceDialog={mode:t,title:"",planUrl:null,planFile:null,...m(),hideDecor:!1,hideOpenings:!1,zeroWallStyle:"dashed",roomColor:g,roomOpacity:u,fillMode:"custom",customFill:{...h,a:0},glowEnabled:!0,bgColor:null,bgMode:"daynight",northDeg:null,sunRays:null,tempMin:_,tempMax:d,showLqi:this.host._config?.show_signal??!0,cardFontScale:1,labelTemp:!1,labelHum:!1,labelLqi:!1,labelLight:!1,cellCm:e,cellCmInput:c(e,this.host._imperial),cellCmTouched:!1,busy:!1}}async _pickPlanFile(t){const s=t.target,e=s.files?.[0];if(!e||!this.host._spaceDialog)return;s.value="";const a=await k(e);if("reject"===a.kind)return void this.host._showToast(this.host._t("toast.plan_formats"));if("guard"===a.kind)return void(this.host._backdropGuard=a.state);const o=await S(e,a.ext,e.name);this.host._spaceDialog&&(this.host._spaceDialog={...this.host._spaceDialog,planFile:o})}_renderBackdropGuard(){return C(this.host,t=>{this.host._spaceDialog&&(this.host._spaceDialog={...this.host._spaceDialog,planFile:t})},()=>{this.host._backdropGuard=null},this.host.hass)??e}_useServerPlan(t){const s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,planUrl:t,planFile:null,pickSaved:!1,savedAspect:void 0},this.host._aspectJob=this._readPlanAspect(t))}async _readPlanAspect(t){for(let s=0;s<40;s++){const s=this.host._display(t);if(s){const e=await new Promise(t=>{const e=new Image;e.onload=()=>t(e.naturalWidth&&e.naturalHeight?e.naturalWidth/e.naturalHeight:0),e.onerror=()=>t(0),e.src=s}),a=this.host._spaceDialog;return a&&a.planUrl===t&&Number.isFinite(e)&&e>0?(this.host._spaceDialog={...a,savedAspect:e},e):0}if(await new Promise(t=>setTimeout(t,150)),this.host._spaceDialog?.planUrl!==t)return 0}return 0}async _deleteServerPlan(t){const s=this.host._spaceDialog,e=s?.saved?.find(s=>s.name===t);if(!s||!e||e.used_by.length||e.url===s.planUrl)return;const a=await this.host._confirmDanger({key:"delete-plan",kind:"destructive",title:this.host._t("confirm.delete_plan_title"),message:this.host._t("confirm.delete_plan_body"),objectName:t,confirmLabel:this.host._t("btn.delete"),cancelLabel:this.host._t("btn.cancel")}),o=this.host._spaceDialog,l=o?.saved?.find(s=>s.name===t);if(a&&o&&l&&l.url===e.url&&l.modified===e.modified&&!l.used_by.length&&l.url!==o.planUrl)try{await this.host.hass.callWS({type:"houseplan/plans/delete",name:t});const s=this.host._spaceDialog;s?.saved&&(this.host._spaceDialog={...s,saved:s.saved.filter(s=>s.name!==t)})}catch(t){this.host._showToast(this.host._t("toast.plan_delete_failed",{err:this.host._errText(t)}))}}_renderServerPlans(t){if(t.savedBusy)return o`<div class="savedplans muted">${this.host._t("space.loading")}</div>`;const s=t.saved||[];if(!s.length)return o`<div class="savedplans muted">${this.host._t("space.no_saved")}</div>`;return o`<div class="savedplans">
|
||||
${s.map(s=>{return o`
|
||||
<div class="savedplan ${s.url===t.planUrl?"cur":""}">
|
||||
@@ -85,13 +85,13 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234
|
||||
max=${c(F,this.host._imperial)}
|
||||
step="0.1"
|
||||
.value=${t.cellCmInput??c(t.cellCm,this.host._imperial)}
|
||||
@input=${s=>{const e=s.target.value,a=x(e),o=null==a?null:v(a,this.host._imperial);this.host._spaceDialog={...t,cellCmInput:e,cellCmTouched:!0,cellCm:null!=o&&o>0?Math.max(.1,Math.min(F,o)):t.cellCm}}} />
|
||||
@input=${s=>{const e=s.target.value,a=x(e),o=null==a?null:f(a,this.host._imperial);this.host._spaceDialog={...t,cellCmInput:e,cellCmTouched:!0,cellCm:null!=o&&o>0?Math.max(.1,Math.min(F,o)):t.cellCm}}} />
|
||||
<span class="opl">${this.host._t(this.host._imperial?"space.scale_unit_imperial":"space.scale_unit")}</span>
|
||||
</div>
|
||||
|
||||
<label class="dispsection">${this.host._t("space.display_section")}</label>
|
||||
<label class="srcrow">
|
||||
${this._boolInput(t.showBorders,s=>{this.host._spaceDialog=f(t,"showBorders",s)})}
|
||||
${this._boolInput(t.showBorders,s=>{this.host._spaceDialog=v(t,"showBorders",s)})}
|
||||
<span>${this.host._t("space.show_borders")}</span>
|
||||
</label>
|
||||
<div class="helpfieldlabel">
|
||||
@@ -107,7 +107,7 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234
|
||||
</option>
|
||||
</select>
|
||||
<label class="srcrow">
|
||||
${this._boolInput(t.showNames,s=>{this.host._spaceDialog=f(t,"showNames",s)})}
|
||||
${this._boolInput(t.showNames,s=>{this.host._spaceDialog=v(t,"showNames",s)})}
|
||||
<span>${this.host._t("space.show_names")}</span>
|
||||
</label>
|
||||
<label class="srcrow">
|
||||
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-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
+1
-1
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{c as a,A as e}from"./houseplan-card-CwjlrGqP.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-T71UV8iz.js";import"./form-kit.styles-BG3GRnCs.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__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{c as a,A as e}from"./houseplan-card-CdCQB6rW.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-ClIYcGcH.js";import"./form-kit.styles-BW84Z22H.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
|
||||
<span class="summary-switch-caption"><strong>${b("summary.show_local")}</strong>
|
||||
<small id="summary-local-show-hint">${b("summary.show_local_hint")}</small></span>
|
||||
<input id="summary-local-show" data-summary-local-show type="checkbox"
|
||||
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{ed as e,J as t,b4 as n,H as i,aa as o,a8 as r,bU as s,bT as a,b3 as c,b2 as l,b5 as d,ee as u,ef as f,bW as m,eg as g}from"./houseplan-card-CwjlrGqP.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=d(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),s=i.binding.slice(o+1),a="device"===r?e.registry.devices?.[s]:null,c="entity"===r?e.registry.entities?.[s]:null,l="device"===r?s:c?.device_id,d="device"===r?a?.area_id:c?.area_id||l&&e.registry.devices?.[l]?.area_id,u="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||d||"",f=u&&e.areaToSpace[u]||i.space||e.firstSpaceId;l&&e.registry.devices?.[l]&&e.spaceIds.has(f)&&(!n.devices.has(l)||"entity"===r&&n.liveEntities.has(s))&&t.add(l)}return t}function y(e,t){return e?.length?t?.length?g(e,t):e:t}function _(e,t){const n=c(e.rooms,t.walls,t.openCuts,[],i,t.cellCm,o,r);return{roomGeom:"ok"===n.status||"degraded-extra"===n.status?n.roomGeom:void 0,multiWallNodes:l(e.rooms,t.walls,t.openCuts,i,t.cellCm,o,r)}}function*b(c,l,d=_){try{let u=0;for(const f of l){const l=c.spaces.find(e=>String(e?.id)===f.id);if(!l)continue;const m=e(l,f),g=d(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const a=t(e);if(!a)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||a;v=y(v,s(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=a(v)*_*_/1e4}return u}catch{return null}}function h(e,t,n=_){const i=b(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function p(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{b as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,p as summarySystemValue,h as totalCleanFloorAreaM2};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{ed as e,J as t,b4 as n,H as i,aa as o,a8 as r,bU as s,bT as a,b3 as l,b2 as c,b5 as d,ee as u,ef as f,bW as m,eg as g}from"./houseplan-card-CdCQB6rW.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=d(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),s=i.binding.slice(o+1),a="device"===r?e.registry.devices?.[s]:null,l="entity"===r?e.registry.entities?.[s]:null,c="device"===r?s:l?.device_id,d="device"===r?a?.area_id:l?.area_id||c&&e.registry.devices?.[c]?.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;c&&e.registry.devices?.[c]&&e.spaceIds.has(f)&&(!n.devices.has(c)||"entity"===r&&n.liveEntities.has(s))&&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*b(l,c,d=_){try{let u=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=d(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const a=t(e);if(!a)continue;const l=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||a;v=y(v,s(l,m.physicalBodies)),yield}const _=m.cellCm/o;u+=a(v)*_*_/1e4}return u}catch{return null}}function h(e,t,n=_){const i=b(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function p(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{b as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,p as summarySystemValue,h 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__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{n as t,b as n}from"./zigbee-topology-Bmg8URV0.js";import{aR as e}from"./houseplan-card-CwjlrGqP.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 g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(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,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const 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&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{f as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{n as t,b as n}from"./zigbee-topology-Km5WY9re.js";import{aR as e}from"./houseplan-card-CdCQB6rW.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function f(t){if(!0!==t?.user?.is_admin)throw a("permission")}function p(n){const e=i(n);return e?c(e,"zha",async()=>{if(f(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(f(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,p=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const f=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&p?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{p as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";try{await import("./houseplan-assets/houseplan-card-CwjlrGqP.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__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";try{await import("./houseplan-assets/houseplan-card-CdCQB6rW.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
Vendored
+136
-136
@@ -1,309 +1,309 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca",
|
||||
"fingerprint": "88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9",
|
||||
"entry": "houseplan-card.js",
|
||||
"panelEntry": "houseplan-panel.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 291513,
|
||||
"initialViewGzipBytes": 291517,
|
||||
"initialPanelFiles": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelGzipBytes": 293036,
|
||||
"initialPanelGzipBytes": 293039,
|
||||
"initialPanelOnlyFiles": [
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelOnlyGzipBytes": 2325,
|
||||
"initialPanelOnlyGzipBytes": 2324,
|
||||
"lazyFiles": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/de-BSWzSpgx.js",
|
||||
"houseplan-assets/editor-BFMBFtB-.js",
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/fr-Dggceg1t.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-p0Gyk3kj.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Cv-Ttg7y.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-Bo1kcXse.js",
|
||||
"houseplan-assets/iso-scene-render-BxPd8xPS.js",
|
||||
"houseplan-assets/live-interaction-runtime-UWxkfCmP.js",
|
||||
"houseplan-assets/pdf-export-nNiMgsDk.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-T71UV8iz.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CGVM3SVf.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/de-qGelgWw2.js",
|
||||
"houseplan-assets/editor-fzEJ3Sy_.js",
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/fr-Dy8iiwy_.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C7V34E2J.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BEe4SZTb.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-eqgElxaW.js",
|
||||
"houseplan-assets/iso-scene-render-DhtLxqcj.js",
|
||||
"houseplan-assets/live-interaction-runtime-bgXukYTl.js",
|
||||
"houseplan-assets/pdf-export-eMxHYpi-.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-ClIYcGcH.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-DLvqrPjc.js"
|
||||
],
|
||||
"lazyGzipBytes": 440938,
|
||||
"lazyGzipBytes": 441076,
|
||||
"lazyEditorFiles": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/editor-BFMBFtB-.js",
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-p0Gyk3kj.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/editor-fzEJ3Sy_.js",
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C7V34E2J.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 222198,
|
||||
"lazyEditorGzipBytes": 222197,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Cv-Ttg7y.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BEe4SZTb.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 13915,
|
||||
"lazyOnboardingGzipBytes": 13918,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-BSWzSpgx.js",
|
||||
"houseplan-assets/fr-Dggceg1t.js"
|
||||
"houseplan-assets/de-qGelgWw2.js",
|
||||
"houseplan-assets/fr-Dy8iiwy_.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 56356,
|
||||
"lazyLocaleGzipBytes": 56352,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/iso-scene-render-BxPd8xPS.js"
|
||||
"houseplan-assets/iso-scene-render-DhtLxqcj.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 16646,
|
||||
"lazyIsometricGzipBytes": 16792,
|
||||
"lazyFurnitureArtFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js"
|
||||
],
|
||||
"lazyFurnitureArtGzipBytes": 16943,
|
||||
"lazyFurnitureArtGzipBytes": 16944,
|
||||
"lazyPdfFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/pdf-export-nNiMgsDk.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/pdf-export-eMxHYpi-.js"
|
||||
],
|
||||
"lazyPdfGzipBytes": 126816,
|
||||
"lazyPdfGzipBytes": 126817,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"sha256": "75cf7af61d2343b1565428cb445b68d5644cf2e26787f7835c7f068e754fa8b8",
|
||||
"path": "houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"sha256": "a17a0059314b4275a5560c5235afe05c93ee0590ec5797b6eb9e793b34904820",
|
||||
"rawBytes": 19959,
|
||||
"gzipBytes": 6880,
|
||||
"gzipBytes": 6883,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-BSWzSpgx.js",
|
||||
"sha256": "3ff546d706847406cbdde6153baf3cb19fac20fb1618b3ad24d3a8a469e81c09",
|
||||
"path": "houseplan-assets/de-qGelgWw2.js",
|
||||
"sha256": "5734db4624e6770a5f56defbe2626d2e5082fa662c93048c6214f51056080d57",
|
||||
"rawBytes": 93989,
|
||||
"gzipBytes": 28443,
|
||||
"gzipBytes": 28441,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-BFMBFtB-.js",
|
||||
"sha256": "80c248f1012fb8f64436258f2f93327bf86150a19842dde84d14256d4dd18ef5",
|
||||
"path": "houseplan-assets/editor-fzEJ3Sy_.js",
|
||||
"sha256": "3fae1734402588dd4a0526ce2fcc568aa7d9ebfd95ba039407e2605d0bd035f0",
|
||||
"rawBytes": 3833,
|
||||
"gzipBytes": 1583,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"sha256": "7f808ac38b570922696d88f91e607d22d01b537de65e9d4e7b7760639dcf2528",
|
||||
"rawBytes": 3620,
|
||||
"gzipBytes": 1234,
|
||||
"path": "houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"sha256": "e24b9470e6f4fa894d108f27c31e6a6919e61971d7ba7271eb96fe6f53eea589",
|
||||
"rawBytes": 3615,
|
||||
"gzipBytes": 1233,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-Dggceg1t.js",
|
||||
"sha256": "37aab837b86c1c76623ae6c563e53d1e3164ab626387af2d721898c156f9e95e",
|
||||
"path": "houseplan-assets/fr-Dy8iiwy_.js",
|
||||
"sha256": "77c85c92191fbaf644d15aaced93611c37f3459c86ea8136acabb1c35269e119",
|
||||
"rawBytes": 96460,
|
||||
"gzipBytes": 27913,
|
||||
"gzipBytes": 27911,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"sha256": "27bc654cd6a8753e38e7dd5dd8313411bd3461920f7816b3c5626d2c44b94412",
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"sha256": "1df63e447d66a02eb7039337ef16198f3b457d78c23622e1f33a90c6d1f0bc1f",
|
||||
"rawBytes": 52033,
|
||||
"gzipBytes": 16943,
|
||||
"gzipBytes": 16944,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"sha256": "14581ea4898753f9e71c4408d41dfd98ab0c2b046472b2072d477cfb6df07db2",
|
||||
"path": "houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"sha256": "17d647662295c586c4ea81e8c8a3c194afe776da43e75830666dae882f001b52",
|
||||
"rawBytes": 1035518,
|
||||
"gzipBytes": 290711,
|
||||
"gzipBytes": 290715,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/de-BSWzSpgx.js",
|
||||
"houseplan-assets/editor-BFMBFtB-.js",
|
||||
"houseplan-assets/fr-Dggceg1t.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-p0Gyk3kj.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Cv-Ttg7y.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-Bo1kcXse.js",
|
||||
"houseplan-assets/iso-scene-render-BxPd8xPS.js",
|
||||
"houseplan-assets/live-interaction-runtime-UWxkfCmP.js",
|
||||
"houseplan-assets/pdf-export-nNiMgsDk.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-T71UV8iz.js"
|
||||
"houseplan-assets/de-qGelgWw2.js",
|
||||
"houseplan-assets/editor-fzEJ3Sy_.js",
|
||||
"houseplan-assets/fr-Dy8iiwy_.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-C7V34E2J.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-BEe4SZTb.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-eqgElxaW.js",
|
||||
"houseplan-assets/iso-scene-render-DhtLxqcj.js",
|
||||
"houseplan-assets/live-interaction-runtime-bgXukYTl.js",
|
||||
"houseplan-assets/pdf-export-eMxHYpi-.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-ClIYcGcH.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-p0Gyk3kj.js",
|
||||
"sha256": "df0c80dd09adc1e456b9668b43ffd1ea80334d58bb8e1d8aa92e2e5fa616e73d",
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-C7V34E2J.js",
|
||||
"sha256": "16af54e5252363307e7a1384305096395836362a9a34d77d837503fb41bd43bd",
|
||||
"rawBytes": 689688,
|
||||
"gzipBytes": 188130,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-CGVM3SVf.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-DLvqrPjc.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-Cv-Ttg7y.js",
|
||||
"sha256": "91eabbc7ddbf4bae537bff868f21fe63b42341e1e1b3a36d28b1c7d3eedad1a9",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-BEe4SZTb.js",
|
||||
"sha256": "229bbb57e3928c39f46e40824ebdfaa2ba87fe5af6c4a3e9187773c9709185ab",
|
||||
"rawBytes": 28289,
|
||||
"gzipBytes": 7035,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-QvHdZ-Rj.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/backdrop-pick-Pc0BlKD3.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-Bo1kcXse.js",
|
||||
"sha256": "ecb87e393934ebd127ef23db9c4f9cf24f1a837b371460725f41b2b358b55fd8",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-eqgElxaW.js",
|
||||
"sha256": "e6ce493c3b1a44eb654188d4d148e5dabe237fa1edd6694f3bbce99b2105fd49",
|
||||
"rawBytes": 10759,
|
||||
"gzipBytes": 3687,
|
||||
"gzipBytes": 3684,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CGVM3SVf.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-DLvqrPjc.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-BxPd8xPS.js",
|
||||
"sha256": "8d60c3aae092a9b70f04410549e3946544498a7cf7e1b3c6c342359e9ad19f48",
|
||||
"rawBytes": 49535,
|
||||
"gzipBytes": 16646,
|
||||
"path": "houseplan-assets/iso-scene-render-DhtLxqcj.js",
|
||||
"sha256": "4dd8c9fa88224e480f3c50d89c2c3b073f74dd1bed6cfeb6196f301aade77ded",
|
||||
"rawBytes": 50012,
|
||||
"gzipBytes": 16792,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-UWxkfCmP.js",
|
||||
"sha256": "d9d83a07f822a9d3f858c36e6d4d5a4a5f8e7f48809be86c356fa7e91a71688e",
|
||||
"path": "houseplan-assets/live-interaction-runtime-bgXukYTl.js",
|
||||
"sha256": "b623081e5e869c80bc73a9173eb072cb3686b06244105fbbafa2b7a03da374d3",
|
||||
"rawBytes": 8216,
|
||||
"gzipBytes": 3205,
|
||||
"gzipBytes": 3207,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/pdf-export-nNiMgsDk.js",
|
||||
"sha256": "1b9000da10d4d0718d55e5bdeb40266a3900753e9af95d3cd900e5674beca1bc",
|
||||
"path": "houseplan-assets/pdf-export-eMxHYpi-.js",
|
||||
"sha256": "43581b2fd6d3b12389e6fda98d36ff4250a0a4fe59f9e52668937e3307f95cbb",
|
||||
"rawBytes": 236247,
|
||||
"gzipBytes": 109873,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CW1u29ey.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-q2BImG4G.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-editor-DEO9mTfX.js",
|
||||
"sha256": "88025951e6001263395438329e2c787716c71d19a6d6638ee02a0c3e3da900f7",
|
||||
"path": "houseplan-assets/summary-panel-editor-f3elPcdE.js",
|
||||
"sha256": "727df14b390c264979ad8c07ca57d994a8c0c3caa73bc6e7f793745f3adc85d1",
|
||||
"rawBytes": 14862,
|
||||
"gzipBytes": 3424,
|
||||
"gzipBytes": 3425,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-T71UV8iz.js"
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-ClIYcGcH.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-metrics-DriQDNhG.js",
|
||||
"sha256": "a0088a7a6d24fa31ca88c7c11fe8218b1bbb10b78f584025c0b8aabec5e5ca28",
|
||||
"path": "houseplan-assets/summary-panel-metrics-CzwbD9VU.js",
|
||||
"sha256": "fabd124197786f937775ede672afd5c5c72bab82b997cb5ccf84324d9d872de9",
|
||||
"rawBytes": 2611,
|
||||
"gzipBytes": 1306,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-T71UV8iz.js",
|
||||
"sha256": "6a419064c47af19607e9bb2e4bad392e0f975dd9f2fa8a60b45a95fdcf4cea46",
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-ClIYcGcH.js",
|
||||
"sha256": "4b6fe585ffe7ac0d299691195754879f645507176e1c2365a85cb13655edb17c",
|
||||
"rawBytes": 72733,
|
||||
"gzipBytes": 20175,
|
||||
"gzipBytes": 20173,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-BG3GRnCs.js",
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/form-kit.styles-BW84Z22H.js",
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/summary-panel-editor-DEO9mTfX.js",
|
||||
"houseplan-assets/summary-panel-metrics-DriQDNhG.js"
|
||||
"houseplan-assets/summary-panel-editor-f3elPcdE.js",
|
||||
"houseplan-assets/summary-panel-metrics-CzwbD9VU.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-Bmg8URV0.js",
|
||||
"sha256": "54f5d8eea26a7ff0262f10062184f6c700a20e74267a2e0fea04b422784fd75e",
|
||||
"path": "houseplan-assets/zigbee-topology-Km5WY9re.js",
|
||||
"sha256": "ca81df585fa1aeb2568dc373e5533f3b0b6a88ed5f11083e022f1316595fd079",
|
||||
"rawBytes": 18962,
|
||||
"gzipBytes": 7428,
|
||||
"gzipBytes": 7424,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-CGVM3SVf.js",
|
||||
"sha256": "bde277e3efcbfa19921ab4b69073fce2d44768f0baf8094a0dd88e422ae402b7",
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-DLvqrPjc.js",
|
||||
"sha256": "53f5b9b40e8d868ab187aff1b66b410cb526ed1ae7132c55005fc0d929fc7058",
|
||||
"rawBytes": 3942,
|
||||
"gzipBytes": 1763,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js",
|
||||
"houseplan-assets/zigbee-topology-Bmg8URV0.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js",
|
||||
"houseplan-assets/zigbee-topology-Km5WY9re.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "4468113df4fe3831d25ff5a680d50015c3f411e01392a65a1cbe2c19593cd60d",
|
||||
"sha256": "eaaf069917dd00f4b4f73e114304cdbb289cf9a0e5fc1b49205741f0ae9b40c1",
|
||||
"rawBytes": 1205,
|
||||
"gzipBytes": 802,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-panel.js",
|
||||
"sha256": "08a2343aa35bb7ae3a9a0834782fb3d025bb9df8245ba6a4edacebe46781b85f",
|
||||
"sha256": "6df398c5faa4791f14e9a0358e584c58972cc159c717e32f8f0ffdcbf9dcf0f4",
|
||||
"rawBytes": 6165,
|
||||
"gzipBytes": 2325,
|
||||
"gzipBytes": 2324,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-CwjlrGqP.js"
|
||||
"houseplan-assets/houseplan-card-CdCQB6rW.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
}
|
||||
|
||||
Vendored
+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
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{aI as e,l as o,aL as t,e7 as s,A as a,e8 as i,e9 as l,ea as n,E as r,c}from"./houseplan-card-CwjlrGqP.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__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{aI as e,l as o,aL as t,e7 as s,A as a,e8 as i,e9 as l,ea as n,E as r,c}from"./houseplan-card-CdCQB6rW.js";class h extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,h={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},f=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
|
||||
.hass=${this.hass}
|
||||
.data=${this._formData}
|
||||
.schema=${e}
|
||||
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";const n={form:".summary-editor",prefix:"summary",cards:[".summary-general",".summary-blocks-card"],footer:".summary-editor-footer",tokens:{surface:"--summary-editor-surface",line:"--summary-editor-line",accent:"--summary-editor-accent"}},e={form:".hpf-form",prefix:"hpf",cards:[".hpf-card"],footer:".hpf-footer",tokens:{surface:"--hpf-surface",line:"--hpf-line",accent:"--hpf-accent"}};function r({cards:n,tokens:e}){return` ${n.join(",\n ")} {\n min-width: 0;\n padding: 14px;\n border: 1px solid var(${e.line});\n border-radius: 11px;\n background: var(${e.surface});\n }`}function i({form:n,footer:e,tokens:r}){return` ${n} input:focus-visible,\n ${n} select:focus-visible,\n ${n} button:focus-visible,\n ${e} button:focus-visible {\n outline: 2px solid var(${r.accent});\n outline-offset: 2px;\n }`}function t({form:n}){return` ${n} button:disabled,\n ${n} input:disabled,\n ${n} select:disabled { opacity: .4; cursor: default; }`}function o({form:n,prefix:e}){return` ${n} .${e}-switch {\n display: flex;\n min-width: 0;\n min-height: 54px;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin: 0;\n color: var(--primary-text-color);\n cursor: pointer;\n }`}function a({prefix:n}){return` .${n}-switch-caption { display: grid; min-width: 0; gap: 3px; }\n .${n}-switch-caption strong { font-size: .875rem; font-weight: 600; overflow-wrap: anywhere; }\n .${n}-switch-caption small { font-size: .8125rem; color: var(--secondary-text-color); overflow-wrap: anywhere; }`}function c(n,{withSwitch:e=!0}={}){return`${function(n,e){const c=e?`\n${o(n)}\n${a(n)}`:"";return`${r(n)}\n${i(n)}\n${t(n)}${c}`}(n,e)}\n${function(n){const{form:e,prefix:r,tokens:i}=n;return` ${e} { display: grid; gap: 12px; }\n .${r}-head {\n display: flex;\n min-width: 0;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n margin: 0 0 10px;\n }\n .${r}-head h3 { margin: 0; font-size: 1rem; line-height: 1.3; font-weight: 600; }\n .${r}-row {\n display: flex;\n min-width: 0;\n min-height: 44px;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n .${r}-row > .${r}-label { min-width: 0; overflow-wrap: anywhere; }\n .${r}-seg {\n display: flex;\n min-width: 0;\n border: 1px solid var(${i.line});\n border-radius: 9px;\n overflow: hidden;\n }\n .${r}-seg label {\n display: flex;\n min-width: 0;\n min-height: 44px;\n flex: 1 1 0;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 0 12px;\n cursor: pointer;\n text-align: center;\n }\n .${r}-seg label + label { border-left: 1px solid var(${i.line}); }\n .${r}-seg input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }\n .${r}-seg label:has(input:checked) {\n background: var(${i.accent});\n color: var(--text-primary-color, #fff);\n }\n .${r}-seg label:has(input:focus-visible) {\n outline: 2px solid var(${i.accent});\n outline-offset: -2px;\n }\n .${r}-color { display: flex; min-width: 0; align-items: center; gap: 12px; }\n .${r}-color hp-color-opacity { flex: 0 0 auto; }`}(n)}\n`}const s=" hp-dialog .hpf-form {\n --hpf-surface: var(--card-background-color, #fff);\n --hpf-line: var(--hp-line, var(--divider-color, #dce5e7));\n --hpf-accent: var(--hp-accent, var(--primary-color));\n }\n";export{e as C,n as S,r as a,i as b,s as c,t as d,o as e,c as f,a as g};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";const n={form:".summary-editor",prefix:"summary",cards:[".summary-general",".summary-blocks-card"],footer:".summary-editor-footer",tokens:{surface:"--summary-editor-surface",line:"--summary-editor-line",accent:"--summary-editor-accent"}},e={form:".hpf-form",prefix:"hpf",cards:[".hpf-card"],footer:".hpf-footer",tokens:{surface:"--hpf-surface",line:"--hpf-line",accent:"--hpf-accent"}};function r({cards:n,tokens:e}){return` ${n.join(",\n ")} {\n min-width: 0;\n padding: 14px;\n border: 1px solid var(${e.line});\n border-radius: 11px;\n background: var(${e.surface});\n }`}function i({form:n,footer:e,tokens:r}){return` ${n} input:focus-visible,\n ${n} select:focus-visible,\n ${n} button:focus-visible,\n ${e} button:focus-visible {\n outline: 2px solid var(${r.accent});\n outline-offset: 2px;\n }`}function t({form:n}){return` ${n} button:disabled,\n ${n} input:disabled,\n ${n} select:disabled { opacity: .4; cursor: default; }`}function o({form:n,prefix:e}){return` ${n} .${e}-switch {\n display: flex;\n min-width: 0;\n min-height: 54px;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin: 0;\n color: var(--primary-text-color);\n cursor: pointer;\n }`}function a({prefix:n}){return` .${n}-switch-caption { display: grid; min-width: 0; gap: 3px; }\n .${n}-switch-caption strong { font-size: .875rem; font-weight: 600; overflow-wrap: anywhere; }\n .${n}-switch-caption small { font-size: .8125rem; color: var(--secondary-text-color); overflow-wrap: anywhere; }`}function s(n,{withSwitch:e=!0}={}){return`${function(n,e){const s=e?`\n${o(n)}\n${a(n)}`:"";return`${r(n)}\n${i(n)}\n${t(n)}${s}`}(n,e)}\n${function(n){const{form:e,prefix:r,tokens:i}=n;return` ${e} { display: grid; gap: 12px; }\n .${r}-head {\n display: flex;\n min-width: 0;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n margin: 0 0 10px;\n }\n .${r}-head h3 { margin: 0; font-size: 1rem; line-height: 1.3; font-weight: 600; }\n .${r}-row {\n display: flex;\n min-width: 0;\n min-height: 44px;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n .${r}-row > .${r}-label { min-width: 0; overflow-wrap: anywhere; }\n .${r}-seg {\n display: flex;\n min-width: 0;\n border: 1px solid var(${i.line});\n border-radius: 9px;\n overflow: hidden;\n }\n .${r}-seg label {\n display: flex;\n min-width: 0;\n min-height: 44px;\n flex: 1 1 0;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 0 12px;\n cursor: pointer;\n text-align: center;\n }\n .${r}-seg label + label { border-left: 1px solid var(${i.line}); }\n .${r}-seg input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }\n .${r}-seg label:has(input:checked) {\n background: var(${i.accent});\n color: var(--text-primary-color, #fff);\n }\n .${r}-seg label:has(input:focus-visible) {\n outline: 2px solid var(${i.accent});\n outline-offset: -2px;\n }\n .${r}-color { display: flex; min-width: 0; align-items: center; gap: 12px; }\n .${r}-color hp-color-opacity { flex: 0 0 auto; }`}(n)}\n`}const c=" hp-dialog .hpf-form {\n --hpf-surface: var(--card-background-color, #fff);\n --hpf-line: var(--hp-line, var(--divider-color, #dce5e7));\n --hpf-accent: var(--hp-accent, var(--primary-color));\n }\n";export{e as C,n as S,r as a,i as b,c,t as d,o as e,s as f,a as g};
|
||||
+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
+4
-4
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{l as t,bw as s,A as e,aL as a,c as o,g as l,cK as i,ar as h,am as c,au as n,cL as r,cQ as p,cM as d,cN as _,cO as u,cP as g,cR as m,cS as b,al as $,ao as v,ap as f,as as y,at as w,aq as D}from"./houseplan-card-CwjlrGqP.js";import{c as k,e as S,r as C,a as M}from"./backdrop-pick-QvHdZ-Rj.js";const F=1e3,x=t=>{if(!t.trim())return null;const s=Number(t.replace(",","."));return Number.isFinite(s)?s:null},T="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";class L{constructor(t){this.host=t,this._toggleServerPlans=async()=>{const t=this.host._spaceDialog;if(t)if(t.pickSaved)this.host._spaceDialog={...t,pickSaved:!1};else{this.host._spaceDialog={...t,pickSaved:!0,savedBusy:!0};try{const t=await this.host.hass.callWS({type:"houseplan/plans/list"}),s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,saved:t?.plans||[],savedBusy:!1})}catch(t){const s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,saved:[],savedBusy:!1}),this.host._showToast(this.host._t("toast.plans_list_failed",{err:this.host._errText(t)}))}}}}_help(l){const i=`${l}.aria`,h=t(this.host.hass,this.host._config?.language);return s(h,l)&&s(h,i)?o`<hp-help data-help-key=${l}
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{l as t,bw as s,A as e,aL as a,c as o,g as l,cK as i,ar as h,am as c,au as n,cL as r,cQ as p,cM as d,cN as _,cO as u,cP as g,cR as m,cS as b,al as $,ao as f,ap as v,as as y,at as w,aq as D}from"./houseplan-card-CdCQB6rW.js";import{c as k,e as S,r as C,a as M}from"./backdrop-pick-Pc0BlKD3.js";const F=1e3,x=t=>{if(!t.trim())return null;const s=Number(t.replace(",","."));return Number.isFinite(s)?s:null},T="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";class L{constructor(t){this.host=t,this._toggleServerPlans=async()=>{const t=this.host._spaceDialog;if(t)if(t.pickSaved)this.host._spaceDialog={...t,pickSaved:!1};else{this.host._spaceDialog={...t,pickSaved:!0,savedBusy:!0};try{const t=await this.host.hass.callWS({type:"houseplan/plans/list"}),s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,saved:t?.plans||[],savedBusy:!1})}catch(t){const s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,saved:[],savedBusy:!1}),this.host._showToast(this.host._t("toast.plans_list_failed",{err:this.host._errText(t)}))}}}}_help(l){const i=`${l}.aria`,h=t(this.host.hass,this.host._config?.language);return s(h,l)&&s(h,i)?o`<hp-help data-help-key=${l}
|
||||
.text=${a(h,l)} .ariaLabel=${a(h,i)}></hp-help>`:e}_openSpaceDialog(t,s){if(!this.host._serverStorage||!this.host._serverCfg)return void this.host._showToast(this.host._t("toast.integration_missing"));if("edit"===t){const e=this.host._serverCfg.spaces.find(t=>t.id===s);if(!e)return;const a=l(e),o=e.settings?.custom_fill&&"object"==typeof e.settings.custom_fill?i(e.settings.custom_fill):null,p="none"===a.fill?{...o||h,a:0}:o;return void(this.host._spaceDialog={mode:t,spaceId:s,title:e.title,planUrl:e.plan_url||null,planFile:null,source:e.plan_url?"file":"draw",showBorders:a.showBorders,showNames:a.showNames,zeroWallStyle:r(e),displayTouched:!0,hideDecor:a.hideDecor,hideOpenings:a.hideOpenings,roomColor:a.color,roomOpacity:a.opacity,fillMode:"none"===a.fill?"custom":a.fill,customFill:p,glowEnabled:a.glow,bgColor:a.bgColor,bgMode:"static"===e.settings?.bg_mode||"daynight"===e.settings?.bg_mode?e.settings.bg_mode:null,northDeg:n({},e.settings),sunRays:"boolean"==typeof e.settings?.sun_rays?e.settings.sun_rays:null,tempMin:a.tempMin,tempMax:a.tempMax,showLqi:a.showLqi??this.host._config?.show_signal??!0,cardFontScale:a.cardFontScale,labelTemp:a.labelTemp,labelHum:a.labelHum,labelLqi:a.labelLqi,labelLight:a.labelLight,cellCm:Number(e.cell_cm)>0?Number(e.cell_cm):5,cellCmInput:c(Number(e.cell_cm)>0?Number(e.cell_cm):5,this.host._imperial),cellCmTouched:!1,busy:!1})}const e=p(this.host._imperial);this.host._spaceDialog={mode:t,title:"",planUrl:null,planFile:null,...m(),hideDecor:!1,hideOpenings:!1,zeroWallStyle:"dashed",roomColor:g,roomOpacity:u,fillMode:"custom",customFill:{...h,a:0},glowEnabled:!0,bgColor:null,bgMode:"daynight",northDeg:null,sunRays:null,tempMin:_,tempMax:d,showLqi:this.host._config?.show_signal??!0,cardFontScale:1,labelTemp:!1,labelHum:!1,labelLqi:!1,labelLight:!1,cellCm:e,cellCmInput:c(e,this.host._imperial),cellCmTouched:!1,busy:!1}}async _pickPlanFile(t){const s=t.target,e=s.files?.[0];if(!e||!this.host._spaceDialog)return;s.value="";const a=await k(e);if("reject"===a.kind)return void this.host._showToast(this.host._t("toast.plan_formats"));if("guard"===a.kind)return void(this.host._backdropGuard=a.state);const o=await S(e,a.ext,e.name);this.host._spaceDialog&&(this.host._spaceDialog={...this.host._spaceDialog,planFile:o})}_renderBackdropGuard(){return C(this.host,t=>{this.host._spaceDialog&&(this.host._spaceDialog={...this.host._spaceDialog,planFile:t})},()=>{this.host._backdropGuard=null},this.host.hass)??e}_useServerPlan(t){const s=this.host._spaceDialog;s&&(this.host._spaceDialog={...s,planUrl:t,planFile:null,pickSaved:!1,savedAspect:void 0},this.host._aspectJob=this._readPlanAspect(t))}async _readPlanAspect(t){for(let s=0;s<40;s++){const s=this.host._display(t);if(s){const e=await new Promise(t=>{const e=new Image;e.onload=()=>t(e.naturalWidth&&e.naturalHeight?e.naturalWidth/e.naturalHeight:0),e.onerror=()=>t(0),e.src=s}),a=this.host._spaceDialog;return a&&a.planUrl===t&&Number.isFinite(e)&&e>0?(this.host._spaceDialog={...a,savedAspect:e},e):0}if(await new Promise(t=>setTimeout(t,150)),this.host._spaceDialog?.planUrl!==t)return 0}return 0}async _deleteServerPlan(t){const s=this.host._spaceDialog,e=s?.saved?.find(s=>s.name===t);if(!s||!e||e.used_by.length||e.url===s.planUrl)return;const a=await this.host._confirmDanger({key:"delete-plan",kind:"destructive",title:this.host._t("confirm.delete_plan_title"),message:this.host._t("confirm.delete_plan_body"),objectName:t,confirmLabel:this.host._t("btn.delete"),cancelLabel:this.host._t("btn.cancel")}),o=this.host._spaceDialog,l=o?.saved?.find(s=>s.name===t);if(a&&o&&l&&l.url===e.url&&l.modified===e.modified&&!l.used_by.length&&l.url!==o.planUrl)try{await this.host.hass.callWS({type:"houseplan/plans/delete",name:t});const s=this.host._spaceDialog;s?.saved&&(this.host._spaceDialog={...s,saved:s.saved.filter(s=>s.name!==t)})}catch(t){this.host._showToast(this.host._t("toast.plan_delete_failed",{err:this.host._errText(t)}))}}_renderServerPlans(t){if(t.savedBusy)return o`<div class="savedplans muted">${this.host._t("space.loading")}</div>`;const s=t.saved||[];if(!s.length)return o`<div class="savedplans muted">${this.host._t("space.no_saved")}</div>`;return o`<div class="savedplans">
|
||||
${s.map(s=>{return o`
|
||||
<div class="savedplan ${s.url===t.planUrl?"cur":""}">
|
||||
@@ -85,13 +85,13 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234
|
||||
max=${c(F,this.host._imperial)}
|
||||
step="0.1"
|
||||
.value=${t.cellCmInput??c(t.cellCm,this.host._imperial)}
|
||||
@input=${s=>{const e=s.target.value,a=x(e),o=null==a?null:v(a,this.host._imperial);this.host._spaceDialog={...t,cellCmInput:e,cellCmTouched:!0,cellCm:null!=o&&o>0?Math.max(.1,Math.min(F,o)):t.cellCm}}} />
|
||||
@input=${s=>{const e=s.target.value,a=x(e),o=null==a?null:f(a,this.host._imperial);this.host._spaceDialog={...t,cellCmInput:e,cellCmTouched:!0,cellCm:null!=o&&o>0?Math.max(.1,Math.min(F,o)):t.cellCm}}} />
|
||||
<span class="opl">${this.host._t(this.host._imperial?"space.scale_unit_imperial":"space.scale_unit")}</span>
|
||||
</div>
|
||||
|
||||
<label class="dispsection">${this.host._t("space.display_section")}</label>
|
||||
<label class="srcrow">
|
||||
${this._boolInput(t.showBorders,s=>{this.host._spaceDialog=f(t,"showBorders",s)})}
|
||||
${this._boolInput(t.showBorders,s=>{this.host._spaceDialog=v(t,"showBorders",s)})}
|
||||
<span>${this.host._t("space.show_borders")}</span>
|
||||
</label>
|
||||
<div class="helpfieldlabel">
|
||||
@@ -107,7 +107,7 @@ globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234
|
||||
</option>
|
||||
</select>
|
||||
<label class="srcrow">
|
||||
${this._boolInput(t.showNames,s=>{this.host._spaceDialog=f(t,"showNames",s)})}
|
||||
${this._boolInput(t.showNames,s=>{this.host._spaceDialog=v(t,"showNames",s)})}
|
||||
<span>${this.host._t("space.show_names")}</span>
|
||||
</label>
|
||||
<label class="srcrow">
|
||||
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-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
+1
-1
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{c as a,A as e}from"./houseplan-card-CwjlrGqP.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-T71UV8iz.js";import"./form-kit.styles-BG3GRnCs.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__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{c as a,A as e}from"./houseplan-card-CdCQB6rW.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-ClIYcGcH.js";import"./form-kit.styles-BW84Z22H.js";const m=m=>{const{host:c,dialog:d,problems:n,t:b}=m,y=n.find(a=>"error"===a.kind),$=d.localShow!==d.baseLocalShow||!d.localOnly&&!s(t(d.draft),d.base),p=$&&!d.busy&&!y,v=a=>n.find(e=>e.path===a),h=a=>a?b(`summary.problem.${a.code}`):"",k=()=>m.close(),g=a`<label class="summary-switch" for="summary-local-show">
|
||||
<span class="summary-switch-caption"><strong>${b("summary.show_local")}</strong>
|
||||
<small id="summary-local-show-hint">${b("summary.show_local_hint")}</small></span>
|
||||
<input id="summary-local-show" data-summary-local-show type="checkbox"
|
||||
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{ed as e,J as t,b4 as n,H as i,aa as o,a8 as r,bU as s,bT as a,b3 as c,b2 as l,b5 as d,ee as u,ef as f,bW as m,eg as g}from"./houseplan-card-CwjlrGqP.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=d(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),s=i.binding.slice(o+1),a="device"===r?e.registry.devices?.[s]:null,c="entity"===r?e.registry.entities?.[s]:null,l="device"===r?s:c?.device_id,d="device"===r?a?.area_id:c?.area_id||l&&e.registry.devices?.[l]?.area_id,u="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||d||"",f=u&&e.areaToSpace[u]||i.space||e.firstSpaceId;l&&e.registry.devices?.[l]&&e.spaceIds.has(f)&&(!n.devices.has(l)||"entity"===r&&n.liveEntities.has(s))&&t.add(l)}return t}function y(e,t){return e?.length?t?.length?g(e,t):e:t}function _(e,t){const n=c(e.rooms,t.walls,t.openCuts,[],i,t.cellCm,o,r);return{roomGeom:"ok"===n.status||"degraded-extra"===n.status?n.roomGeom:void 0,multiWallNodes:l(e.rooms,t.walls,t.openCuts,i,t.cellCm,o,r)}}function*b(c,l,d=_){try{let u=0;for(const f of l){const l=c.spaces.find(e=>String(e?.id)===f.id);if(!l)continue;const m=e(l,f),g=d(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const a=t(e);if(!a)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||a;v=y(v,s(c,m.physicalBodies)),yield}const _=m.cellCm/o;u+=a(v)*_*_/1e4}return u}catch{return null}}function h(e,t,n=_){const i=b(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function p(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{b as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,p as summarySystemValue,h as totalCleanFloorAreaM2};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{ed as e,J as t,b4 as n,H as i,aa as o,a8 as r,bU as s,bT as a,b3 as l,b2 as c,b5 as d,ee as u,ef as f,bW as m,eg as g}from"./houseplan-card-CdCQB6rW.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=d(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),s=i.binding.slice(o+1),a="device"===r?e.registry.devices?.[s]:null,l="entity"===r?e.registry.entities?.[s]:null,c="device"===r?s:l?.device_id,d="device"===r?a?.area_id:l?.area_id||c&&e.registry.devices?.[c]?.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;c&&e.registry.devices?.[c]&&e.spaceIds.has(f)&&(!n.devices.has(c)||"entity"===r&&n.liveEntities.has(s))&&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*b(l,c,d=_){try{let u=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=d(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const a=t(e);if(!a)continue;const l=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||a;v=y(v,s(l,m.physicalBodies)),yield}const _=m.cellCm/o;u+=a(v)*_*_/1e4}return u}catch{return null}}function h(e,t,n=_){const i=b(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function p(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{b as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,p as summarySystemValue,h 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__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";import{n as t,b as n}from"./zigbee-topology-Bmg8URV0.js";import{aR as e}from"./houseplan-card-CwjlrGqP.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 g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(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,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const 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&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{f as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";import{n as t,b as n}from"./zigbee-topology-Km5WY9re.js";import{aR as e}from"./houseplan-card-CdCQB6rW.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function f(t){if(!0!==t?.user?.is_admin)throw a("permission")}function p(n){const e=i(n);return e?c(e,"zha",async()=>{if(f(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(f(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,p=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const f=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&p?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{p as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6b996db3eba9c0f079e9f9d7c965fc006234992d481b2dc000f3e5ddc14dcaca";try{await import("./houseplan-assets/houseplan-card-CwjlrGqP.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__="88da84dd09fee5495b5072706209ec23fcdbe5a196bca2dae5df8592f958faa9";try{await import("./houseplan-assets/houseplan-card-CdCQB6rW.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
+79
-40
@@ -654,10 +654,13 @@ function boundaryCandidateKey(x: number, y: number): string {
|
||||
function addBoundaryCandidate(
|
||||
candidates: BoundaryCandidateMap, point: ScenePoint, maxNudge: number,
|
||||
): void {
|
||||
const x = Math.round(point[0]), y = Math.round(point[1]);
|
||||
for (let dy = -1; dy <= 1; dy++) {
|
||||
for (let dx = -1; dx <= 1; dx++) {
|
||||
const candidateX = x + dx, candidateY = y + dy;
|
||||
const axisNeighbours = (value: number): readonly number[] => {
|
||||
const floor = Math.floor(value), ceil = Math.ceil(value);
|
||||
return floor === ceil ? [floor - 1, floor, floor + 1] : [floor, ceil];
|
||||
};
|
||||
const xs = axisNeighbours(point[0]), ys = axisNeighbours(point[1]);
|
||||
for (const candidateY of ys) {
|
||||
for (const candidateX of xs) {
|
||||
if (candidateX * candidateX + candidateY * candidateY > maxNudge * maxNudge + EPS)
|
||||
continue;
|
||||
const key = boundaryCandidateKey(candidateX, candidateY);
|
||||
@@ -692,13 +695,10 @@ function clipBoundarySegment(
|
||||
];
|
||||
}
|
||||
|
||||
function addBoundaryRectangleGrid(
|
||||
function addBoundaryRectangleEvents(
|
||||
candidates: BoundaryCandidateMap, rectangles: readonly Bounds[], maxNudge: number,
|
||||
): void {
|
||||
const xs = new Set<number>([0]), ys = new Set<number>([0]);
|
||||
for (const bounds of rectangles) {
|
||||
xs.add(bounds[0]); xs.add(bounds[2]);
|
||||
ys.add(bounds[1]); ys.add(bounds[3]);
|
||||
addBoundaryCandidate(candidates,
|
||||
[bounds[0], Math.max(bounds[1], Math.min(0, bounds[3]))], maxNudge);
|
||||
addBoundaryCandidate(candidates,
|
||||
@@ -707,11 +707,29 @@ function addBoundaryRectangleGrid(
|
||||
[Math.max(bounds[0], Math.min(0, bounds[2])), bounds[1]], maxNudge);
|
||||
addBoundaryCandidate(candidates,
|
||||
[Math.max(bounds[0], Math.min(0, bounds[2])), bounds[3]], maxNudge);
|
||||
addBoundaryCandidate(candidates, [bounds[0], bounds[1]], maxNudge);
|
||||
addBoundaryCandidate(candidates, [bounds[2], bounds[1]], maxNudge);
|
||||
addBoundaryCandidate(candidates, [bounds[2], bounds[3]], maxNudge);
|
||||
addBoundaryCandidate(candidates, [bounds[0], bounds[3]], maxNudge);
|
||||
}
|
||||
// A nearest point of a union of axis-aligned forbidden roots is either the
|
||||
// projection of the origin to one edge or an intersection of two edges.
|
||||
for (const x of xs) {
|
||||
for (const y of ys) addBoundaryCandidate(candidates, [x, y], maxNudge);
|
||||
// Only intersections of FINITE rectangle edges are critical. Combining
|
||||
// every X with every unrelated Y forms an artificial O(n²) interior grid;
|
||||
// on the 200-device benchmark it produced almost five thousand candidates
|
||||
// for one overlay although the corresponding edge segments never met.
|
||||
const addIntersections = (vertical: Bounds, horizontal: Bounds): void => {
|
||||
for (const x of [vertical[0], vertical[2]]) {
|
||||
if (x < horizontal[0] - EPS || x > horizontal[2] + EPS) continue;
|
||||
for (const y of [horizontal[1], horizontal[3]]) {
|
||||
if (y >= vertical[1] - EPS && y <= vertical[3] + EPS)
|
||||
addBoundaryCandidate(candidates, [x, y], maxNudge);
|
||||
}
|
||||
}
|
||||
};
|
||||
for (let left = 0; left < rectangles.length; left++) {
|
||||
for (let right = left + 1; right < rectangles.length; right++) {
|
||||
addIntersections(rectangles[left], rectangles[right]);
|
||||
addIntersections(rectangles[right], rectangles[left]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -726,7 +744,7 @@ export function buildIsoOverlayBoundaryCandidates(
|
||||
if (!(maxNudge >= 0) || !Number.isFinite(maxNudge))
|
||||
throw new Error('invalid isometric overlay boundary input');
|
||||
const candidates: BoundaryCandidateMap = new Map();
|
||||
addBoundaryRectangleGrid(candidates, rectangles, maxNudge);
|
||||
addBoundaryRectangleEvents(candidates, rectangles, maxNudge);
|
||||
return Object.freeze(sortedBoundaryCandidates(candidates).map(({ offset }) =>
|
||||
Object.freeze(offset) as ScenePoint));
|
||||
}
|
||||
@@ -803,14 +821,11 @@ function addBoundaryLineIntersections(
|
||||
if (Math.abs(denominator) <= EPS) continue;
|
||||
const ac: ScenePoint = [c[0] - a[0], c[1] - a[1]];
|
||||
const ratio = (ac[0] * cd[1] - ac[1] * cd[0]) / denominator;
|
||||
const otherRatio = (ac[0] * ab[1] - ac[1] * ab[0]) / denominator;
|
||||
if (ratio < -EPS || ratio > 1 + EPS
|
||||
|| otherRatio < -EPS || otherRatio > 1 + EPS) continue;
|
||||
const point: ScenePoint = [a[0] + ab[0] * ratio, a[1] + ab[1] * ratio];
|
||||
// Infinite support lines from unrelated distant edges create an interior
|
||||
// grid approaching the very area scan this helper replaces. A critical
|
||||
// junction must lie on, or in the immediate integer neighbourhood of,
|
||||
// both finite support segments.
|
||||
if (Math.hypot(point[0], point[1]) <= maxNudge + 2
|
||||
&& pointSegmentDistance(point, a, b) <= 3
|
||||
&& pointSegmentDistance(point, c, d) <= 3)
|
||||
if (Math.hypot(point[0], point[1]) <= maxNudge + 2)
|
||||
addBoundaryCandidate(candidates, point, maxNudge);
|
||||
}
|
||||
}
|
||||
@@ -1234,13 +1249,15 @@ export function resolveIsoOverlayCollisions(
|
||||
*/
|
||||
const boundaryCandidates: BoundaryCandidateMap = new Map();
|
||||
const overlayBoundaryRectangles: Bounds[] = [];
|
||||
const boundaryRectangles: Bounds[] = [];
|
||||
const boundarySegments: BoundarySegment[] = [];
|
||||
const expandedOverlayBoundaries = new Set<number>();
|
||||
const encounteredOverlayBoundaries = new Set<number>(best?.conflicts || []);
|
||||
const addOverlayBoundary = (index: number): void => {
|
||||
if (expandedOverlayBoundaries.has(index)) return;
|
||||
expandedOverlayBoundaries.add(index);
|
||||
const obstacle = accepted[index].bounds;
|
||||
overlayBoundaryRectangles.push([
|
||||
const rectangle: Bounds = [
|
||||
(obstacle[0] - item.screenHalfSize[0] - gapUnits - base.raisedScene[0])
|
||||
/ unitsPerPixel,
|
||||
(obstacle[1] - item.screenHalfSize[1] - gapUnits - base.raisedScene[1])
|
||||
@@ -1249,13 +1266,12 @@ export function resolveIsoOverlayCollisions(
|
||||
/ unitsPerPixel,
|
||||
(obstacle[3] + item.screenHalfSize[1] + gapUnits - base.raisedScene[1])
|
||||
/ unitsPerPixel,
|
||||
]);
|
||||
];
|
||||
overlayBoundaryRectangles.push(rectangle);
|
||||
boundaryRectangles.push(rectangle);
|
||||
};
|
||||
|
||||
const roomBoundarySegments: BoundarySegment[] = [];
|
||||
const footprintBounds = ringBounds(baseFootprint);
|
||||
const structuralBoundaryRectangles: Bounds[] = [];
|
||||
const structuralBoundarySegments: BoundarySegment[] = [];
|
||||
const expandedWalls = new Set<number>();
|
||||
const pendingWalls = new Set<number>();
|
||||
const evaluated = new Set<string>();
|
||||
@@ -1271,12 +1287,12 @@ export function resolveIsoOverlayCollisions(
|
||||
(wallBounds[2] + gapUnits - footprintBounds[0]) / unitsPerPixel,
|
||||
(wallBounds[3] + gapUnits - footprintBounds[1]) / unitsPerPixel,
|
||||
];
|
||||
structuralBoundaryRectangles.push(expandedWallBounds);
|
||||
boundaryRectangles.push(expandedWallBounds);
|
||||
addCriticalBoundaryRectangle(boundaryCandidates, expandedWallBounds, maxNudge);
|
||||
}
|
||||
addExpandedWallBoundarySegments(
|
||||
boundaryCandidates, wall, baseFootprint, gapUnits, unitsPerPixel,
|
||||
maxNudge, overlayBoundaryRectangles, structuralBoundarySegments,
|
||||
maxNudge, overlayBoundaryRectangles, boundarySegments,
|
||||
);
|
||||
};
|
||||
|
||||
@@ -1303,25 +1319,48 @@ export function resolveIsoOverlayCollisions(
|
||||
const clipped = clipBoundarySegment(
|
||||
boundary[0], boundary[1], maxNudge + 2,
|
||||
);
|
||||
if (clipped) roomBoundarySegments.push(clipped);
|
||||
if (clipped) boundarySegments.push(clipped);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let processedRectangles = 0;
|
||||
let processedOverlayRectangles = 0;
|
||||
let processedSegments = 0;
|
||||
const refreshBoundaryEvents = (): void => {
|
||||
addBoundaryRectangleGrid(boundaryCandidates, [
|
||||
...overlayBoundaryRectangles, ...structuralBoundaryRectangles,
|
||||
], maxNudge);
|
||||
// Concave silhouettes and the safety-gap rounding meet where support
|
||||
// lines of neighbouring edge families cross. Exact polygons reject
|
||||
// false combinations introduced by extending those lines.
|
||||
addBoundaryLineIntersections(boundaryCandidates, [
|
||||
...structuralBoundarySegments, ...roomBoundarySegments,
|
||||
], maxNudge);
|
||||
for (const segment of [...structuralBoundarySegments, ...roomBoundarySegments])
|
||||
addBoundarySegmentRectangleIntersections(
|
||||
boundaryCandidates, segment, overlayBoundaryRectangles, maxNudge,
|
||||
for (let index = processedRectangles; index < boundaryRectangles.length; index++) {
|
||||
addBoundaryRectangleEvents(
|
||||
boundaryCandidates, [boundaryRectangles[index]], maxNudge,
|
||||
);
|
||||
for (let previous = 0; previous < index; previous++)
|
||||
addBoundaryRectangleEvents(boundaryCandidates, [
|
||||
boundaryRectangles[previous], boundaryRectangles[index],
|
||||
], maxNudge);
|
||||
}
|
||||
// Concave silhouettes and the safety-gap rounding meet where finite
|
||||
// boundary segments cross. Exact polygons still make the final call.
|
||||
for (let index = processedSegments; index < boundarySegments.length; index++) {
|
||||
for (let previous = 0; previous < index; previous++)
|
||||
addBoundaryLineIntersections(boundaryCandidates, [
|
||||
boundarySegments[previous], boundarySegments[index],
|
||||
], maxNudge);
|
||||
}
|
||||
for (let index = processedOverlayRectangles;
|
||||
index < overlayBoundaryRectangles.length; index++) {
|
||||
for (let segment = 0; segment < processedSegments; segment++)
|
||||
addBoundarySegmentRectangleIntersections(
|
||||
boundaryCandidates, boundarySegments[segment],
|
||||
[overlayBoundaryRectangles[index]], maxNudge,
|
||||
);
|
||||
}
|
||||
for (let index = processedSegments; index < boundarySegments.length; index++)
|
||||
addBoundarySegmentRectangleIntersections(
|
||||
boundaryCandidates, boundarySegments[index],
|
||||
overlayBoundaryRectangles, maxNudge,
|
||||
);
|
||||
processedRectangles = boundaryRectangles.length;
|
||||
processedOverlayRectangles = overlayBoundaryRectangles.length;
|
||||
processedSegments = boundarySegments.length;
|
||||
};
|
||||
|
||||
const evaluateNewCandidates = (): void => {
|
||||
|
||||
@@ -173,6 +173,17 @@ test('group collision boundary events stay sparse while covering sub-grid positi
|
||||
'every event stays on the integer CSS lattice and inside the absolute cap');
|
||||
});
|
||||
|
||||
test('boundary events do not cross unrelated rectangle axes into an interior grid', () => {
|
||||
const candidates = buildIsoOverlayBoundaryCandidates([
|
||||
[10, -2, 12, 2],
|
||||
[-2, 10, 2, 12],
|
||||
], ISO_OVERLAY_MAX_NUDGE_CSS_PX);
|
||||
assert.ok(!candidates.some(([x, y]) => x === 10 && y === 10),
|
||||
'finite edges that never meet must not invent their Cartesian intersection');
|
||||
assert.ok(candidates.some(([x, y]) => x === 10 && y === 0));
|
||||
assert.ok(candidates.some(([x, y]) => x === 0 && y === 10));
|
||||
});
|
||||
|
||||
test('group collision reports a deterministic residual without exceeding the absolute cap', () => {
|
||||
const room = square('tight', 0, 0, 1, 1, [0.5, 0.5]);
|
||||
const make = (id) => ({
|
||||
|
||||
Reference in New Issue
Block a user