mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
feat(space): диалог «Пространство» по референсу — серия 1 из четырёх (#600)
§4 SPEC.md референса, четыре карточки: Basics (имя и масштаб в сетке 1fr/175, подложка двумя choice-карточками, callout о пересчёте масштаба), Appearance (строка-тумблер границ с иконкой и подписью, сегмент стиля стен с образцами линии, плашка цвета с hex/прозрачностью/Reset, сегмент заливки с деталями режима, компактный список «Видимые слои» с логикой «включено = видно» — К2), Room cards (строка-тумблер названий, четыре плитки значений с отключением и callout-ссылкой, слайдер размера с числом, концами и «Сбросить до 100%», образец карточки внутри блока на тинте — Q2), Sun & light (сегмент фона, плашка цвета фона, радио «свет через окна» в строку, север селектом с компасом 44 px и полем градусов, строка-тумблер свечения). Одна форма на два рантайма. `renderSpaceForm` в `editors/space-form.ts` собирает тело и футер; редакторский вход (`space-settings-dialog.ts`) и онбординг подают порт с тем, что у них различается, и сами рисуют `<hp-dialog data-kind=…>` — контракт #489 требует литеральный kind. Копия разметки онбординга на 300 строк удалена; локальные дубли CELL_CM_* и strictNumber там же — тоже («одно число — один источник»). К10 (решение владельца Q1): Save активен только при изменениях и без ошибок, в футере «Есть несохранённые изменения» либо ссылка «Проверьте поля: N» к первому ошибочному; «✕», Cancel и Escape с изменениями спрашивают через `_confirmDanger`, без изменений закрывают сразу. Снимок делается при открытии (`editors/space-form-state.ts`, WeakMap по хосту) — `SpaceDialogState` не получил ни одного ключа. Валидация: имя, подложка без изображения, диапазон температур, север 0–359 — с `aria-invalid` и текстом под полем. Строки. 51 новый ключ живёт в ленивом словаре `i18n/settings` (приём #423/#459), не в первом кадре: стартовый граф 291 260 при потолке 292 500. Отдельный словарь, а не `support`, — иначе онбординг тянул бы весь словарь редактора ради одной формы. 11 существующих ключей переименованы по Q6 («Space name», «Appearance», «Room cards», «Draw it myself», «Zigbee signal next to devices»…), 9 мёртвых удалены из четырёх локалей. `hp-color-opacity` получил `hide-label`: подпись рисует плашка, `label` остаётся для title/aria и `smoke_color_picker_consumers` проходит без правок (AC5). Смоки. Переписаны осознанно (К6 снят), каждый — с пометкой #600 у правки: smoke_hide_layers (компактные строки, инверсия К2 проверяется кликом), smoke_ux_fixes (сегмент, строка-тумблер, поля °C, ширина 560 — Q7), smoke_dialog_footer_width (560 для form-shell), smoke_temp_fill (два поля по id), smoke_settings_dialog_cards (три сегмента), smoke_space_settings и smoke_space_create_display_defaults и smoke_lazy_editor_chunk (choice-карточка по смыслу, не по индексу — порядок §4.2 draw → file), smoke_space_scale_defaults (поле с единицей). Новый фокусный свидетель demo/smoke_space_settings_form.mjs: состав карточек и отсутствие старой разметки, оболочка 560 и один скроллер, цели 44, запись каждого нового контрола в свой ключ, Save/dirty/вопрос при закрытии, семь контрольных ширин (320…1920). Мутанты: space-fill-segment-writes-a-neighbour-key, space-save-enabled-without-changes, space-discard-without-asking, space-layer-toggle-loses-inversion. Контрактные тесты: `houseplan-source.mjs` дописывает общие модули диалогов к логическому исходнику; коллектор i18n видит `help(...)` порта и `shelp(...)` (заодно встал на учёт `radar.help`, проходивший мимо счётчика — 30 → 35). Потолок ленивого редакторского графа 225 900 → 236 300 (замер 235 560) с разбором в bundle-budget.mjs: словарь на четыре локали и подписи — большая часть роста; промежуточно, итог в конце серий. Гейты: typecheck, build, bundle:sync, npm test 2792 pass (красным был только потолок — поднят с доводом), 10 смоков пространства зелёные, smoke_color_picker_consumers без правок, mutation-gate --check. Issue: #600 User-Visible: no
This commit is contained in:
@@ -1,309 +1,312 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "6cd9ff192e4efe6961915ababb39139977f92f1fdcb9e36f488f9ae2a4623f97",
|
||||
"fingerprint": "15d16a107ae0a867c9e005e0f802ae2200960936224cf832c4c89e202d054aae",
|
||||
"entry": "houseplan-card.js",
|
||||
"panelEntry": "houseplan-panel.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js",
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 291827,
|
||||
"initialViewGzipBytes": 291260,
|
||||
"initialPanelFiles": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js",
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js",
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelGzipBytes": 293351,
|
||||
"initialPanelGzipBytes": 292782,
|
||||
"initialPanelOnlyFiles": [
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelOnlyGzipBytes": 2327,
|
||||
"initialPanelOnlyGzipBytes": 2325,
|
||||
"lazyFiles": [
|
||||
"houseplan-assets/backdrop-pick-B0ht_PyU.js",
|
||||
"houseplan-assets/de-C9MexCKy.js",
|
||||
"houseplan-assets/editor-D6WTAA-K.js",
|
||||
"houseplan-assets/form-kit.styles-CBC2v9wU.js",
|
||||
"houseplan-assets/fr-CAs5M4Tb.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DZhgXaM_.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Dz0092Ox.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-DYZkPKph.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-Ddf6xAnb.js",
|
||||
"houseplan-assets/iso-scene-render-B6Ekkgh6.js",
|
||||
"houseplan-assets/live-interaction-runtime-BGTWkYV6.js",
|
||||
"houseplan-assets/pdf-export-CE1rhIfT.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-BoTu9cBV.js",
|
||||
"houseplan-assets/zigbee-topology-CSuj7ZsS.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-BdEsXPQm.js"
|
||||
"houseplan-assets/backdrop-pick-ShjqrDHX.js",
|
||||
"houseplan-assets/de-DVFf83o_.js",
|
||||
"houseplan-assets/editor-Bmeg6m_n.js",
|
||||
"houseplan-assets/form-kit.styles-BrdUAWdt.js",
|
||||
"houseplan-assets/fr-CF-EFXW1.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-LSMb4YNp.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-DOXYHvCo.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Dg1vUBq_.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-B_cCczYx.js",
|
||||
"houseplan-assets/iso-scene-render-B4KjyB7p.js",
|
||||
"houseplan-assets/live-interaction-runtime-B_hFFaWR.js",
|
||||
"houseplan-assets/pdf-export-BmilOHk2.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CWPJi2rS.js",
|
||||
"houseplan-assets/zigbee-topology-DIyrcumJ.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-gY5ENpF0.js"
|
||||
],
|
||||
"lazyGzipBytes": 444985,
|
||||
"lazyGzipBytes": 452476,
|
||||
"lazyEditorFiles": [
|
||||
"houseplan-assets/backdrop-pick-B0ht_PyU.js",
|
||||
"houseplan-assets/editor-D6WTAA-K.js",
|
||||
"houseplan-assets/form-kit.styles-CBC2v9wU.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DZhgXaM_.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Dz0092Ox.js",
|
||||
"houseplan-assets/zigbee-topology-CSuj7ZsS.js"
|
||||
"houseplan-assets/backdrop-pick-ShjqrDHX.js",
|
||||
"houseplan-assets/editor-Bmeg6m_n.js",
|
||||
"houseplan-assets/form-kit.styles-BrdUAWdt.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-LSMb4YNp.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-DOXYHvCo.js",
|
||||
"houseplan-assets/zigbee-topology-DIyrcumJ.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 225236,
|
||||
"lazyEditorGzipBytes": 235560,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-B0ht_PyU.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-DYZkPKph.js"
|
||||
"houseplan-assets/backdrop-pick-ShjqrDHX.js",
|
||||
"houseplan-assets/form-kit.styles-BrdUAWdt.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Dg1vUBq_.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 13921,
|
||||
"lazyOnboardingGzipBytes": 28908,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-C9MexCKy.js",
|
||||
"houseplan-assets/fr-CAs5M4Tb.js"
|
||||
"houseplan-assets/de-DVFf83o_.js",
|
||||
"houseplan-assets/fr-CF-EFXW1.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 56352,
|
||||
"lazyLocaleGzipBytes": 55749,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/iso-scene-render-B6Ekkgh6.js"
|
||||
"houseplan-assets/iso-scene-render-B4KjyB7p.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 17646,
|
||||
"lazyIsometricGzipBytes": 17641,
|
||||
"lazyFurnitureArtFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DZhgXaM_.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-LSMb4YNp.js"
|
||||
],
|
||||
"lazyFurnitureArtGzipBytes": 16941,
|
||||
"lazyFurnitureArtGzipBytes": 16940,
|
||||
"lazyPdfFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DZhgXaM_.js",
|
||||
"houseplan-assets/pdf-export-CE1rhIfT.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-LSMb4YNp.js",
|
||||
"houseplan-assets/pdf-export-BmilOHk2.js"
|
||||
],
|
||||
"lazyPdfGzipBytes": 126816,
|
||||
"lazyPdfGzipBytes": 126814,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-B0ht_PyU.js",
|
||||
"sha256": "4cec93e1379785a8de040a64e822d2dca69d75c9bda65e5bb77582837c8870a5",
|
||||
"rawBytes": 19959,
|
||||
"gzipBytes": 6883,
|
||||
"path": "houseplan-assets/backdrop-pick-ShjqrDHX.js",
|
||||
"sha256": "16eb5ab3c6613792916e3694c5767cfd91e92d5ecb878d840657c97d24b937fe",
|
||||
"rawBytes": 60322,
|
||||
"gzipBytes": 19935,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/form-kit.styles-BrdUAWdt.js",
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-C9MexCKy.js",
|
||||
"sha256": "32c53acf324602d06bd46254528ca3449ed872a1a27e3f0da9f4d090eebf1b3d",
|
||||
"rawBytes": 93982,
|
||||
"gzipBytes": 28439,
|
||||
"path": "houseplan-assets/de-DVFf83o_.js",
|
||||
"sha256": "6a226124d09fa204af9b015095615a55e67a1242284114a78a8aa23795ce769d",
|
||||
"rawBytes": 93070,
|
||||
"gzipBytes": 28119,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-D6WTAA-K.js",
|
||||
"sha256": "0a6c751f06048db9433999be2eee52dd14bea461e65745b9514fc74f31a05312",
|
||||
"path": "houseplan-assets/editor-Bmeg6m_n.js",
|
||||
"sha256": "33f73046ef68927b74d77be7ed041e2b4ae5dfe2a788ffee9c01f8420ff4d84f",
|
||||
"rawBytes": 3833,
|
||||
"gzipBytes": 1584,
|
||||
"gzipBytes": 1583,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/form-kit.styles-CBC2v9wU.js",
|
||||
"sha256": "d09ee9af5f9c4bca94c1ea80a61bd67f655eb71d630f8631493e87cea7f55bae",
|
||||
"rawBytes": 19728,
|
||||
"gzipBytes": 4134,
|
||||
"path": "houseplan-assets/form-kit.styles-BrdUAWdt.js",
|
||||
"sha256": "3989527d2148ae3006533871ccd97839094e31759d86a7dfc9bdcb18d42d5ac1",
|
||||
"rawBytes": 19796,
|
||||
"gzipBytes": 4144,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-CAs5M4Tb.js",
|
||||
"sha256": "787efc667679b07b2398a3823d3debe0fdcf21fc34816ca1dcaafb898a882dbe",
|
||||
"rawBytes": 96446,
|
||||
"gzipBytes": 27913,
|
||||
"path": "houseplan-assets/fr-CF-EFXW1.js",
|
||||
"sha256": "84a654497f1c805c26f6bd0ce9307b8dc8395944570a0380002a3eda8c58586e",
|
||||
"rawBytes": 95439,
|
||||
"gzipBytes": 27630,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-DZhgXaM_.js",
|
||||
"sha256": "617601e04ecc6b996706c81189a3fd9c05b656bdbcfd43c43dcefe8535973192",
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-LSMb4YNp.js",
|
||||
"sha256": "83be37be4c16f916eb997a584a7f3509877c6bdfff3b2e85b349ad8e41917924",
|
||||
"rawBytes": 52033,
|
||||
"gzipBytes": 16941,
|
||||
"gzipBytes": 16940,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-7SOYFLfq.js",
|
||||
"sha256": "d4188ac801d4eeeda52fb96ae456193560fd451eb175c91106ba15a0d37f5276",
|
||||
"rawBytes": 1036675,
|
||||
"gzipBytes": 291024,
|
||||
"path": "houseplan-assets/houseplan-card-C-ZG0vhL.js",
|
||||
"sha256": "8a0d33b645177c925f6e038a8b829f398fa162e110d7b8285590be649037c185",
|
||||
"rawBytes": 1034781,
|
||||
"gzipBytes": 290457,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/de-C9MexCKy.js",
|
||||
"houseplan-assets/editor-D6WTAA-K.js",
|
||||
"houseplan-assets/fr-CAs5M4Tb.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DZhgXaM_.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Dz0092Ox.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-DYZkPKph.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-Ddf6xAnb.js",
|
||||
"houseplan-assets/iso-scene-render-B6Ekkgh6.js",
|
||||
"houseplan-assets/live-interaction-runtime-BGTWkYV6.js",
|
||||
"houseplan-assets/pdf-export-CE1rhIfT.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-BoTu9cBV.js"
|
||||
"houseplan-assets/de-DVFf83o_.js",
|
||||
"houseplan-assets/editor-Bmeg6m_n.js",
|
||||
"houseplan-assets/fr-CF-EFXW1.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-LSMb4YNp.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-DOXYHvCo.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Dg1vUBq_.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-B_cCczYx.js",
|
||||
"houseplan-assets/iso-scene-render-B4KjyB7p.js",
|
||||
"houseplan-assets/live-interaction-runtime-B_hFFaWR.js",
|
||||
"houseplan-assets/pdf-export-BmilOHk2.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CWPJi2rS.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-Dz0092Ox.js",
|
||||
"sha256": "762766cc523027ba614d2be63d2f88fc1d71290ffaa3208cc92f1edf2cd9c1da",
|
||||
"rawBytes": 690050,
|
||||
"gzipBytes": 188264,
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-DOXYHvCo.js",
|
||||
"sha256": "99f5e94a326fddac513994c54a490735cb7bb4e220b8b1d6b2b46618af295189",
|
||||
"rawBytes": 676086,
|
||||
"gzipBytes": 185529,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-B0ht_PyU.js",
|
||||
"houseplan-assets/form-kit.styles-CBC2v9wU.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-DZhgXaM_.js",
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js",
|
||||
"houseplan-assets/zigbee-topology-CSuj7ZsS.js"
|
||||
"houseplan-assets/backdrop-pick-ShjqrDHX.js",
|
||||
"houseplan-assets/form-kit.styles-BrdUAWdt.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-LSMb4YNp.js",
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js",
|
||||
"houseplan-assets/zigbee-topology-DIyrcumJ.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-BdEsXPQm.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-gY5ENpF0.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-DYZkPKph.js",
|
||||
"sha256": "65360b5e5db006a204b78080c9bf0a66d0f6e2908e961fec2cd7491233c6e068",
|
||||
"rawBytes": 28289,
|
||||
"gzipBytes": 7038,
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-Dg1vUBq_.js",
|
||||
"sha256": "4d29d5912b8314d30f403685a8de7126a8b02062decb2989ae257ba41e609941",
|
||||
"rawBytes": 15667,
|
||||
"gzipBytes": 4829,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-B0ht_PyU.js",
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/backdrop-pick-ShjqrDHX.js",
|
||||
"houseplan-assets/form-kit.styles-BrdUAWdt.js",
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-Ddf6xAnb.js",
|
||||
"sha256": "8bb82514164e2553e4954aa899ed76613ba6a7975a2c56d2bf0b9aa6cf865186",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-B_cCczYx.js",
|
||||
"sha256": "c27acde6c6da80fc0eda49757aebdba1fde7d03507eefa8ae5a2850cc3819c01",
|
||||
"rawBytes": 10759,
|
||||
"gzipBytes": 3689,
|
||||
"gzipBytes": 3684,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js",
|
||||
"houseplan-assets/zigbee-topology-CSuj7ZsS.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-BdEsXPQm.js"
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js",
|
||||
"houseplan-assets/zigbee-topology-DIyrcumJ.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-gY5ENpF0.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-B6Ekkgh6.js",
|
||||
"sha256": "415432da483c183b860b6ddb107fa741bb42b36ee4bc7c93a7c2b978f735c70f",
|
||||
"path": "houseplan-assets/iso-scene-render-B4KjyB7p.js",
|
||||
"sha256": "d0eda40ea89f49ac1adc0ce3ebe759c797905429aea21f697bb02f743dd113cb",
|
||||
"rawBytes": 51983,
|
||||
"gzipBytes": 17646,
|
||||
"gzipBytes": 17641,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-BGTWkYV6.js",
|
||||
"sha256": "d0b356b1606a710e3a80d1f6edc38cf78bd9db12cd26464126adde1fd7060cd5",
|
||||
"path": "houseplan-assets/live-interaction-runtime-B_hFFaWR.js",
|
||||
"sha256": "f4b03cf9187b40450a924d588e3c29a25ba90f0887721d9d6cd0d947d9721b17",
|
||||
"rawBytes": 8216,
|
||||
"gzipBytes": 3209,
|
||||
"gzipBytes": 3208,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/pdf-export-CE1rhIfT.js",
|
||||
"sha256": "63cbf195494fa6a5c0ab2eef5898aac214d7fe1aeef3a1440ac935c513a784cf",
|
||||
"path": "houseplan-assets/pdf-export-BmilOHk2.js",
|
||||
"sha256": "a530552579d8c1776e91009bb9b34a86b2530772c647183570d500218b02b0d7",
|
||||
"rawBytes": 236247,
|
||||
"gzipBytes": 109875,
|
||||
"gzipBytes": 109874,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/furniture-plan-art.generated-DZhgXaM_.js",
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-LSMb4YNp.js",
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-editor-iY1NRI16.js",
|
||||
"sha256": "426c3c4d0eabbf4c2d1dbf8df7ff7014ea5b056e65c5efc8f0fc94c48a15f7f0",
|
||||
"path": "houseplan-assets/summary-panel-editor-DCz_YxGg.js",
|
||||
"sha256": "69998d6e6f56d8adb0eb36bab5373303ac4f5e65c9e313df2e32b48601167738",
|
||||
"rawBytes": 14862,
|
||||
"gzipBytes": 3426,
|
||||
"gzipBytes": 3424,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-CBC2v9wU.js",
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-BoTu9cBV.js"
|
||||
"houseplan-assets/form-kit.styles-BrdUAWdt.js",
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CWPJi2rS.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-metrics-B46g7DYe.js",
|
||||
"sha256": "8477c4119923c351e2659b8946631da69cfb91ea5cd3af2c785febc0438d5fed",
|
||||
"path": "houseplan-assets/summary-panel-metrics-Cn3zb8As.js",
|
||||
"sha256": "cf8f037680c4fe251c92ef66d0f66e431b3c567be6198e262370d4d0f90ba636",
|
||||
"rawBytes": 2611,
|
||||
"gzipBytes": 1308,
|
||||
"gzipBytes": 1307,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-BoTu9cBV.js",
|
||||
"sha256": "2db5c4726d47f600c97162da9286249d0638e49750c86feeeede4c2a51594e48",
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-CWPJi2rS.js",
|
||||
"sha256": "75c6017fe2bda785249f3402d775bf176a32dd3f7f348b78a4911fc404f8da74",
|
||||
"rawBytes": 72733,
|
||||
"gzipBytes": 20176,
|
||||
"gzipBytes": 20169,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/form-kit.styles-CBC2v9wU.js",
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/form-kit.styles-BrdUAWdt.js",
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/summary-panel-editor-iY1NRI16.js",
|
||||
"houseplan-assets/summary-panel-metrics-B46g7DYe.js"
|
||||
"houseplan-assets/summary-panel-editor-DCz_YxGg.js",
|
||||
"houseplan-assets/summary-panel-metrics-Cn3zb8As.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-CSuj7ZsS.js",
|
||||
"sha256": "874e793dd0353ec78697255df98c48013350ff97256a523cdb9e355c3dd6f89b",
|
||||
"path": "houseplan-assets/zigbee-topology-DIyrcumJ.js",
|
||||
"sha256": "6583d237536461458f28a56000d429f00952a101fbefbab91fb086d5670d87a6",
|
||||
"rawBytes": 18962,
|
||||
"gzipBytes": 7430,
|
||||
"gzipBytes": 7429,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-BdEsXPQm.js",
|
||||
"sha256": "235cb8ee128098bda457e3b5f60550c57a2b396c370c509ce9959b1057f401ec",
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-gY5ENpF0.js",
|
||||
"sha256": "91d81c3d02970d210bea19222ba7005caf344a9ba370a3e9009c5b8797f028cf",
|
||||
"rawBytes": 3942,
|
||||
"gzipBytes": 1764,
|
||||
"gzipBytes": 1762,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js",
|
||||
"houseplan-assets/zigbee-topology-CSuj7ZsS.js"
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js",
|
||||
"houseplan-assets/zigbee-topology-DIyrcumJ.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "d80bb9cbd391bff82457b816441cb521deed2ed858080db45675309233bd66d1",
|
||||
"sha256": "451fc54e1378a537f61f5e83a4fc078505eafc781da54f327d596b92034ad730",
|
||||
"rawBytes": 1205,
|
||||
"gzipBytes": 803,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-panel.js",
|
||||
"sha256": "d9479bbcdae8d726306bfb370d0f01df66059a958dffc581b10f9fd70bec0780",
|
||||
"sha256": "e0ee5177554df11a67e2daac305a9cf6a38208530ed311ffabcf622d3465afab",
|
||||
"rawBytes": 6165,
|
||||
"gzipBytes": 2327,
|
||||
"gzipBytes": 2325,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-7SOYFLfq.js"
|
||||
"houseplan-assets/houseplan-card-C-ZG0vhL.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+5
-5
@@ -1,14 +1,14 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6cd9ff192e4efe6961915ababb39139977f92f1fdcb9e36f488f9ae2a4623f97";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-7SOYFLfq.js";class f extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,f={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},h=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="15d16a107ae0a867c9e005e0f802ae2200960936224cf832c4c89e202d054aae";import{az as e,l as o,aC as t,e7 as s,A as a,e8 as i,e9 as l,ea as n,E as r,c}from"./houseplan-card-C-ZG0vhL.js";class h extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,h={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},f=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
|
||||
.hass=${this.hass}
|
||||
.data=${this._formData}
|
||||
.schema=${e}
|
||||
.computeLabel=${e=>f[e.name]||e.name}
|
||||
.computeLabel=${e=>h[e.name]||e.name}
|
||||
@value-changed=${this._valueChanged}
|
||||
></ha-form>`;return c`
|
||||
${d(h.slice(0,3))}
|
||||
${d(f.slice(0,3))}
|
||||
${_?c`<div class="default-floor-error" role="alert"
|
||||
style="color:var(--error-color,#db4437);margin:-4px 0 12px;overflow-wrap:anywhere">
|
||||
${t(s,"editor.default_floor_missing",{id:_})}
|
||||
</div>`:a}
|
||||
${d(h.slice(3))}
|
||||
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}f.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",f);
|
||||
${d(f.slice(3))}
|
||||
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}h.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",h);
|
||||
+1
-1
File diff suppressed because one or more lines are too long
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
+7
-7
File diff suppressed because one or more lines are too long
+183
-385
File diff suppressed because one or more lines are too long
-236
File diff suppressed because one or more lines are too long
+44
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
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__="6cd9ff192e4efe6961915ababb39139977f92f1fdcb9e36f488f9ae2a4623f97";import{c as a,A as e}from"./houseplan-card-7SOYFLfq.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-BoTu9cBV.js";import"./form-kit.styles-CBC2v9wU.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__="15d16a107ae0a867c9e005e0f802ae2200960936224cf832c4c89e202d054aae";import{c as a,A as e}from"./houseplan-card-C-ZG0vhL.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-CWPJi2rS.js";import"./form-kit.styles-BrdUAWdt.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 +0,0 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6cd9ff192e4efe6961915ababb39139977f92f1fdcb9e36f488f9ae2a4623f97";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 u,ee as d,ef as f,bW as m,eg as g}from"./houseplan-card-7SOYFLfq.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=u(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),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,u="device"===r?a?.area_id:l?.area_id||c&&e.registry.devices?.[c]?.area_id,d="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||u||"",f=d&&e.areaToSpace[d]||i.space||e.firstSpaceId;c&&e.registry.devices?.[c]&&e.spaceIds.has(f)&&(!n.devices.has(c)||"entity"===r&&n.liveEntities.has(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,u=_){try{let d=0;for(const f of c){const c=l.spaces.find(e=>String(e?.id)===f.id);if(!c)continue;const m=e(c,f),g=u(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const 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;d+=a(v)*_*_/1e4}return d}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=d(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};
|
||||
+1
@@ -0,0 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="15d16a107ae0a867c9e005e0f802ae2200960936224cf832c4c89e202d054aae";import{ed as e,J as t,aX as n,H as i,aa as o,a8 as r,bO as a,bN as s,aW as c,aV as l,aY as u,ee as d,ef as f,bQ as m,eg as g}from"./houseplan-card-C-ZG0vhL.js";function v(e){if(!e.registry.authoritative)return null;const t=new Set,n=u(e.markers);for(const i of Object.values(e.registry.devices||{}))i?.id&&"service"!==i.entry_type&&!n.devices.has(i.id)&&i.area_id&&e.areaToSpace[i.area_id]&&t.add(i.id);for(const i of e.markers||[]){if(i.removed||"virtual"===i.binding)continue;const o=String(i.binding||"").indexOf(":");if(o<1)continue;const r=i.binding.slice(0,o),a=i.binding.slice(o+1),s="device"===r?e.registry.devices?.[a]:null,c="entity"===r?e.registry.entities?.[a]:null,l="device"===r?a:c?.device_id,u="device"===r?s?.area_id:c?.area_id||l&&e.registry.devices?.[l]?.area_id,d="string"==typeof i.room_id&&i.room_id.length>0&&null===i.area?"":i.area||u||"",f=d&&e.areaToSpace[d]||i.space||e.firstSpaceId;l&&e.registry.devices?.[l]&&e.spaceIds.has(f)&&(!n.devices.has(l)||"entity"===r&&n.liveEntities.has(a))&&t.add(l)}return t}function y(e,t){return e?.length?t?.length?g(e,t):e:t}function _(e,t){const n=c(e.rooms,t.walls,t.openCuts,[],i,t.cellCm,o,r);return{roomGeom:"ok"===n.status||"degraded-extra"===n.status?n.roomGeom:void 0,multiWallNodes:l(e.rooms,t.walls,t.openCuts,i,t.cellCm,o,r)}}function*h(c,l,u=_){try{let d=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=u(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const s=t(e);if(!s)continue;const c=n(f.rooms,e.id,m.walls,m.openCuts,i,m.cellCm,o,r,g.roomGeom,g.multiWallNodes)||s;v=y(v,a(c,m.physicalBodies)),yield}const _=m.cellCm/o;d+=s(v)*_*_/1e4}return d}catch{return null}}function p(e,t,n=_){const i=h(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function S(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 b(e,t){const n=e?.states?.[t];if(!n)return null;const i=d(e,t);return i?f(i,String(n.attributes?.unit_of_measurement||"")):null}export{h as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,b as summaryEntityValue,S as summarySystemValue,p as totalCleanFloorAreaM2};
|
||||
+2
-2
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6cd9ff192e4efe6961915ababb39139977f92f1fdcb9e36f488f9ae2a4623f97";import{n as t,b as n}from"./zigbee-topology-CSuj7ZsS.js";import{aR as e}from"./houseplan-card-7SOYFLfq.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function f(t){if(!0!==t?.user?.is_admin)throw a("permission")}function p(n){const e=i(n);return e?c(e,"zha",async()=>{if(f(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function g(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function m(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(f(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,p=null,m=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{p=t,m=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const f=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&p?.(n):c&&m?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof f&&b.push(f),await g(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await g(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{p as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="15d16a107ae0a867c9e005e0f802ae2200960936224cf832c4c89e202d054aae";import{n as t,b as n}from"./zigbee-topology-DIyrcumJ.js";import{aI as e}from"./houseplan-card-C-ZG0vhL.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function p(t){if(!0!==t?.user?.is_admin)throw a("permission")}function f(n){const e=i(n);return e?c(e,"zha",async()=>{if(p(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function m(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function g(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(p(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,f=null,g=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,g=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const p=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&f?.(n):c&&g?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await m(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await m(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{f as readZhaTopology,g as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="6cd9ff192e4efe6961915ababb39139977f92f1fdcb9e36f488f9ae2a4623f97";try{await import("./houseplan-assets/houseplan-card-7SOYFLfq.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__="15d16a107ae0a867c9e005e0f802ae2200960936224cf832c4c89e202d054aae";try{await import("./houseplan-assets/houseplan-card-C-ZG0vhL.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
Reference in New Issue
Block a user