mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
Keep the day-cycle outline on its own compositing layer
The "Follows the sun" background made the plan crawl in Firefox: 23 MB of textures per frame, sixteen of about twenty picture-cache tiles thrown away every frame, nine frames per second. The card's own JavaScript was idle for 89 % of that. The cost is the outer outline. It is a triple drop-shadow over the grouped paper footprint, and although the group holds paper silhouettes only and never changes on hover or pan, the filter lived in the plan's own layer — so every repaint of the plan re-ran three blur passes over the whole sheet. One hint moves the filtered paper into its own layer and unhooks it from the plan's repaints. Measured on a demo-stand pan (Chromium, CDP, summed RasterTask): 1456.6 ms against a static background's 96.7 ms before, 84.7 ms against 103.2 ms after. The new smoke measures that ratio and fails above two. The picture does not change: the outline outside the plan matches byte for byte and the frame's mean colour moves from 176.59 to 176.66 of 255. Splitting the layer does move the remaining content onto a different sub-pixel grid, so the diagonal wall hatch anti-aliases differently and the four day-cycle baselines are re-taken on the beta candidate. Issue: #532 User-Visible: yes
This commit is contained in:
@@ -1,309 +1,309 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039",
|
||||
"fingerprint": "f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3",
|
||||
"entry": "houseplan-card.js",
|
||||
"panelEntry": "houseplan-panel.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 287242,
|
||||
"initialViewGzipBytes": 287246,
|
||||
"initialPanelFiles": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-card.js",
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelGzipBytes": 289548,
|
||||
"initialPanelGzipBytes": 289551,
|
||||
"initialPanelOnlyFiles": [
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelOnlyGzipBytes": 2306,
|
||||
"initialPanelOnlyGzipBytes": 2305,
|
||||
"lazyFiles": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/de-BAfQ3noX.js",
|
||||
"houseplan-assets/editor-Ca9vnH-K.js",
|
||||
"houseplan-assets/fr-a4v8Ohtu.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-BVcD08Op.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-0ApfaTVi.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-B_T0ilCj.js",
|
||||
"houseplan-assets/iso-scene-render-DtlvcvOT.js",
|
||||
"houseplan-assets/live-interaction-runtime-CjYDG1SP.js",
|
||||
"houseplan-assets/pdf-export-CY9TOlZ5.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CB4AHgRN.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-Cez46hoy.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/de-BzGLbwvZ.js",
|
||||
"houseplan-assets/editor-C1xpueyG.js",
|
||||
"houseplan-assets/fr-C3geGtjl.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Dj6agWVl.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-J0_74gcV.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DwyWKwR8.js",
|
||||
"houseplan-assets/iso-scene-render-DJJ7WLdq.js",
|
||||
"houseplan-assets/live-interaction-runtime-jSU7kWgv.js",
|
||||
"houseplan-assets/pdf-export-DpRho-Fx.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-Cu8UM3xX.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CiKM8bMZ.js"
|
||||
],
|
||||
"lazyGzipBytes": 417431,
|
||||
"lazyGzipBytes": 417414,
|
||||
"lazyEditorFiles": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/editor-Ca9vnH-K.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-BVcD08Op.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/editor-C1xpueyG.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Dj6agWVl.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 204999,
|
||||
"lazyEditorGzipBytes": 204996,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-0ApfaTVi.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-J0_74gcV.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 13916,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-BAfQ3noX.js",
|
||||
"houseplan-assets/fr-a4v8Ohtu.js"
|
||||
"houseplan-assets/de-BzGLbwvZ.js",
|
||||
"houseplan-assets/fr-C3geGtjl.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 54820,
|
||||
"lazyLocaleGzipBytes": 54817,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/iso-scene-render-DtlvcvOT.js"
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/iso-scene-render-DJJ7WLdq.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 13460,
|
||||
"lazyIsometricGzipBytes": 13456,
|
||||
"lazyFurnitureArtFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js"
|
||||
],
|
||||
"lazyFurnitureArtGzipBytes": 10254,
|
||||
"lazyFurnitureArtGzipBytes": 10255,
|
||||
"lazyPdfFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/pdf-export-CY9TOlZ5.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/pdf-export-DpRho-Fx.js"
|
||||
],
|
||||
"lazyPdfGzipBytes": 120128,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"sha256": "ce22e7599ea095db52bf13da52204107ed2d535fb57f69766e3669dfea1c9ef2",
|
||||
"path": "houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"sha256": "50c3c752cc39625b8e9693a517bf09c50152befe468d634bd9f157a880d13c2b",
|
||||
"rawBytes": 19956,
|
||||
"gzipBytes": 6879,
|
||||
"gzipBytes": 6880,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-BAfQ3noX.js",
|
||||
"sha256": "38d0ffe6551c85bc7a5686943679357a726928644136850dc646e0cdd5713bab",
|
||||
"path": "houseplan-assets/de-BzGLbwvZ.js",
|
||||
"sha256": "d003e6380ff0cf2a41e7e956de4d343b21c45e9f9bde0d57a2e2ebc4db5adb51",
|
||||
"rawBytes": 91402,
|
||||
"gzipBytes": 27694,
|
||||
"gzipBytes": 27692,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-Ca9vnH-K.js",
|
||||
"sha256": "fd8b9731bc4a417cb0545e06677c836e98fa59a7b28e7cf0345d87c25f4aaed7",
|
||||
"path": "houseplan-assets/editor-C1xpueyG.js",
|
||||
"sha256": "074d2bb9067d77491a11ea32a6443dcc22af8fe684af24e18001cb500d8dc7b2",
|
||||
"rawBytes": 3832,
|
||||
"gzipBytes": 1583,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-a4v8Ohtu.js",
|
||||
"sha256": "ccc6ccd7d3736f7567080f000de2dd04ecf60989163720e46d11063cd3ace9ee",
|
||||
"path": "houseplan-assets/fr-C3geGtjl.js",
|
||||
"sha256": "52b7f50e7dcc34671a868a19250bb48a657a4956e157221daf961159fb2095d5",
|
||||
"rawBytes": 93667,
|
||||
"gzipBytes": 27126,
|
||||
"gzipBytes": 27125,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"sha256": "d8e59b11da6c8f4a665b33cc6d92e9eb9e2e9ef94fed1071ba5988ce5c98e438",
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"sha256": "43d140c50a1359d5e94e2806f505c262a04edfa872d443c83198a2215a4b988f",
|
||||
"rawBytes": 33655,
|
||||
"gzipBytes": 10254,
|
||||
"gzipBytes": 10255,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/guard-BYWHhzjw.js",
|
||||
"sha256": "b81804f104d25d22dbc909341c48821dbe950aad94054b9512f5322a04fdfc8b",
|
||||
"path": "houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"sha256": "d0895bcb2a7b722d7d036235d9fbbed3887b2907b1ea8ec961fecb5ab1ac6ef4",
|
||||
"rawBytes": 518,
|
||||
"gzipBytes": 369,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"sha256": "d8cf65be7367f51ed4c8069825965c002036ec16321e3dc83dce1638ec7d2565",
|
||||
"rawBytes": 1020996,
|
||||
"gzipBytes": 286437,
|
||||
"path": "houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"sha256": "d0f9cb54803bb7dacf2e0275fb26372e4b4232357c199b9521b4b75ee102ea04",
|
||||
"rawBytes": 1021015,
|
||||
"gzipBytes": 286443,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/de-BAfQ3noX.js",
|
||||
"houseplan-assets/editor-Ca9vnH-K.js",
|
||||
"houseplan-assets/fr-a4v8Ohtu.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-BVcD08Op.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-0ApfaTVi.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-B_T0ilCj.js",
|
||||
"houseplan-assets/iso-scene-render-DtlvcvOT.js",
|
||||
"houseplan-assets/live-interaction-runtime-CjYDG1SP.js",
|
||||
"houseplan-assets/pdf-export-CY9TOlZ5.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CB4AHgRN.js"
|
||||
"houseplan-assets/de-BzGLbwvZ.js",
|
||||
"houseplan-assets/editor-C1xpueyG.js",
|
||||
"houseplan-assets/fr-C3geGtjl.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Dj6agWVl.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-J0_74gcV.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DwyWKwR8.js",
|
||||
"houseplan-assets/iso-scene-render-DJJ7WLdq.js",
|
||||
"houseplan-assets/live-interaction-runtime-jSU7kWgv.js",
|
||||
"houseplan-assets/pdf-export-DpRho-Fx.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-Cu8UM3xX.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-BVcD08Op.js",
|
||||
"sha256": "b26691e5ac6338578a23ab3d6c0a774e36c4e708f2bb4a48894ab7e4b0ca7c96",
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-Dj6agWVl.js",
|
||||
"sha256": "28b55c311643e4b2ac783f060ac2d8af851a49fc65a264d1954101ea36074865",
|
||||
"rawBytes": 668813,
|
||||
"gzipBytes": 178484,
|
||||
"gzipBytes": 178480,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-Cez46hoy.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-CiKM8bMZ.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-0ApfaTVi.js",
|
||||
"sha256": "e1fc28837937564eee4a602230cdaf3fbabe35703a7ecda43ce74def1159d0b7",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-J0_74gcV.js",
|
||||
"sha256": "f26d85e6c6b9276ed1b8dddf68f8d6fec58285034a5612e7bc621d0650fe3b39",
|
||||
"rawBytes": 28287,
|
||||
"gzipBytes": 7037,
|
||||
"gzipBytes": 7036,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-B_T0ilCj.js",
|
||||
"sha256": "d9f0676bc0034a3baed8c9108f8799aa261cbabbef86929ef812cd90e0e9e302",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DwyWKwR8.js",
|
||||
"sha256": "38630979c6005defc2870cbd670e93a2bc72e7103c0619a2db8bbc9e5e35add0",
|
||||
"rawBytes": 10756,
|
||||
"gzipBytes": 3684,
|
||||
"gzipBytes": 3682,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-Cez46hoy.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CiKM8bMZ.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-DtlvcvOT.js",
|
||||
"sha256": "ad3e8c6b41caf6edc5e3b259dcffa3bff98c0110ae80cbd3bf736d5eccfb7d0f",
|
||||
"path": "houseplan-assets/iso-scene-render-DJJ7WLdq.js",
|
||||
"sha256": "0fe3c080025e143c7c1e36360c048bdfeb7de15ad5614e51ccd93a474ac01a76",
|
||||
"rawBytes": 38562,
|
||||
"gzipBytes": 13091,
|
||||
"gzipBytes": 13087,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-CjYDG1SP.js",
|
||||
"sha256": "886197ec8207c347463a743dd3a7a2f95bb05efbe4545332a41c12891cc3242e",
|
||||
"path": "houseplan-assets/live-interaction-runtime-jSU7kWgv.js",
|
||||
"sha256": "f82bbf39d216aa1da371f477a98bf0db290a322b978159534ec77313272a73b2",
|
||||
"rawBytes": 6032,
|
||||
"gzipBytes": 2433,
|
||||
"gzipBytes": 2432,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/pdf-export-CY9TOlZ5.js",
|
||||
"sha256": "0fa7863db13ffe8d654f35cf25222639be2f6c4ed018941feffde0503da2b425",
|
||||
"path": "houseplan-assets/pdf-export-DpRho-Fx.js",
|
||||
"sha256": "b3f320d2a9fc4dae77d252e9ca71a9e8bf76aab8143296f070d0d8501afb60d3",
|
||||
"rawBytes": 236244,
|
||||
"gzipBytes": 109874,
|
||||
"gzipBytes": 109873,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-editor-DeBQ1tcV.js",
|
||||
"sha256": "b1bbc6089d46f90c81c295e0305374ca2f2c5fca0322f27d4e9ecb9bb76ead28",
|
||||
"path": "houseplan-assets/summary-panel-editor-Cq0L-N9R.js",
|
||||
"sha256": "27880dfef9a780a4bbd5003875801eec32943df47d5a41de9ba2ddf33475e798",
|
||||
"rawBytes": 14824,
|
||||
"gzipBytes": 3401,
|
||||
"gzipBytes": 3402,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CB4AHgRN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-Cu8UM3xX.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-metrics-B3ruGJoU.js",
|
||||
"sha256": "d68458815e4a7772cd87bf55f1448ba1794c54b1e6c749825f0672952051a93c",
|
||||
"path": "houseplan-assets/summary-panel-metrics-Ci8fAKZP.js",
|
||||
"sha256": "185fd9a451dec36588013e643f7fa30a91b198bed52e7b95bbe742b47da3af4e",
|
||||
"rawBytes": 2610,
|
||||
"gzipBytes": 1306,
|
||||
"gzipBytes": 1304,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-CB4AHgRN.js",
|
||||
"sha256": "d7d78a52ff91ce0dd1d07eb8e670e931814ef71c969f67069485d1313adeafe4",
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-Cu8UM3xX.js",
|
||||
"sha256": "1a47e72af54209e481ea42ba635d5539d5fa93230054cb32ec2c37f163a37f8f",
|
||||
"rawBytes": 72272,
|
||||
"gzipBytes": 19728,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/summary-panel-editor-DeBQ1tcV.js",
|
||||
"houseplan-assets/summary-panel-metrics-B3ruGJoU.js"
|
||||
"houseplan-assets/summary-panel-editor-Cq0L-N9R.js",
|
||||
"houseplan-assets/summary-panel-metrics-Ci8fAKZP.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-DitREaKv.js",
|
||||
"sha256": "d29bb086e6862441a6115d431ed71e4ee0b96201a10bdfedb93d3f11280264ca",
|
||||
"rawBytes": 18961,
|
||||
"gzipBytes": 7430,
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-CiKM8bMZ.js",
|
||||
"sha256": "df8412087da621cc7e9bccfb3548af001e39ff202d98a407be75f007c3bf0211",
|
||||
"rawBytes": 3941,
|
||||
"gzipBytes": 1763,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-Cez46hoy.js",
|
||||
"sha256": "5bb047f1c003a211e0a57f2fa03d37e968144ca741d99b2f3e486ee70e4aa130",
|
||||
"rawBytes": 3941,
|
||||
"gzipBytes": 1765,
|
||||
"path": "houseplan-assets/zigbee-topology-RVaqPxNn.js",
|
||||
"sha256": "fee6dd544594966f44db71dc5529031b2fc8adfe11fe78290b1d0f5bd33e20a0",
|
||||
"rawBytes": 18961,
|
||||
"gzipBytes": 7429,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "2cf259caacb83ef37c3e5e743f88bcd61a6f48131af71fa565528f409b2f1f82",
|
||||
"sha256": "d1bd483cc0d9e5030c33d713eed4ce01674aaee15d7a09ed230e3470bbe186c1",
|
||||
"rawBytes": 1205,
|
||||
"gzipBytes": 805,
|
||||
"gzipBytes": 803,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-panel.js",
|
||||
"sha256": "02fa46808fbf68c9245ec2b518ec2047953678b13b054a923259f1a8d9e9cb9a",
|
||||
"sha256": "2827d1118a9d90c49306e0c01b4f1a7b448c24cf51b1ca0ec829bd95c1b37995",
|
||||
"rawBytes": 6124,
|
||||
"gzipBytes": 2306,
|
||||
"gzipBytes": 2305,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-card.js"
|
||||
|
||||
+6
-6
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+5
-5
@@ -1,14 +1,14 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{m as e,l as o,t,e3 as s,A as a,e4 as i,e5 as l,e6 as n,dU as r,b as c}from"./houseplan-card-DEVy5dLN.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__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{m as e,l as o,t,e3 as s,A as a,e4 as i,e5 as l,e6 as n,dU as r,b as c}from"./houseplan-card-CvCwcI3S.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
|
||||
.hass=${this.hass}
|
||||
.data=${this._formData}
|
||||
.schema=${e}
|
||||
.computeLabel=${e=>h[e.name]||e.name}
|
||||
.computeLabel=${e=>f[e.name]||e.name}
|
||||
@value-changed=${this._valueChanged}
|
||||
></ha-form>`;return c`
|
||||
${d(f.slice(0,3))}
|
||||
${d(h.slice(0,3))}
|
||||
${_?c`<div class="default-floor-error" role="alert"
|
||||
style="color:var(--error-color,#db4437);margin:-4px 0 12px;overflow-wrap:anywhere">
|
||||
${t(s,"editor.default_floor_missing",{id:_})}
|
||||
</div>`:a}
|
||||
${d(f.slice(3))}
|
||||
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}h.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",h);
|
||||
${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);
|
||||
+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 +0,0 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{dS as r,dT as t,dU as s}from"./houseplan-card-DEVy5dLN.js";const e={},a=r(class extends t{constructor(){super(...arguments),this.ot=e}render(r,t){return t()}update(r,[t,e]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return s}else if(this.ot===t)return s;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,e)}});export{a as i};
|
||||
@@ -0,0 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{dS as r,dT as t,dU as e}from"./houseplan-card-CvCwcI3S.js";const s={},a=r(class extends t{constructor(){super(...arguments),this.ot=s}render(r,t){return t()}update(r,[t,s]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return e}else if(this.ot===t)return e;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,s)}});export{a as i};
|
||||
+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
+30
-30
File diff suppressed because one or more lines are too long
+6
-6
File diff suppressed because one or more lines are too long
+31
-31
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__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{b as a,A as e}from"./houseplan-card-DEVy5dLN.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-CB4AHgRN.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__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{b as a,A as e}from"./houseplan-card-CvCwcI3S.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-Cu8UM3xX.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__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{e9 as e,L as t,a2 as n,J as i,an as o,N as r,bo as s,bn as a,a1 as c,a0 as l,ax as d,ea as u,eb as f,bq as m,ec as g}from"./houseplan-card-DEVy5dLN.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 b(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*_(c,l,d=b){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 b=m.cellCm/o;u+=a(v)*b*b/1e4}return u}catch{return null}}function h(e,t,n=b){const i=_(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{_ as cleanFloorAreaSteps,v as representedHaDeviceIds,b as spaceWallGeometry,S as summaryEntityValue,p as summarySystemValue,h as totalCleanFloorAreaM2};
|
||||
+1
@@ -0,0 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{e9 as e,L as t,a2 as n,J as i,an as o,N as r,bo as s,bn as a,a1 as l,a0 as c,ax as u,ea as d,eb as f,bq as m,ec as g}from"./houseplan-card-CvCwcI3S.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*h(l,c,u=_){try{let d=0;for(const f of c){const c=l.spaces.find(e=>String(e?.id)===f.id);if(!c)continue;const m=e(c,f),g=u(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const 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 p(e,t,n=_){const i=h(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function b(e,t,n,i){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:m(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(i||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function S(e,t){const n=e?.states?.[t];if(!n)return null;const i=d(e,t);return i?f(i,String(n.attributes?.unit_of_measurement||"")):null}export{h as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,b as summarySystemValue,p as totalCleanFloorAreaM2};
|
||||
+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__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{n as t,b as n}from"./zigbee-topology-DitREaKv.js";import{B as e}from"./houseplan-card-DEVy5dLN.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}),b=new Promise((t,n)=>{f=t,m=n}),w=[];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&&w.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&&w.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(b,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of w)try{t()}catch{}}})}export{f as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{n as t,b as n}from"./zigbee-topology-RVaqPxNn.js";import{B as e}from"./houseplan-card-CvCwcI3S.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__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";try{await import("./houseplan-assets/houseplan-card-DEVy5dLN.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__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";try{await import("./houseplan-assets/houseplan-card-CvCwcI3S.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
@@ -0,0 +1,141 @@
|
||||
// Стоимость растеризации дневного цикла — свидетель #532.
|
||||
//
|
||||
// Владелец: «в Firefox план тормозит; со статичным цветом фона тормоза
|
||||
// пропадают». Профиль подтвердил: наш JS спал 89 % времени, а в GPU-процессе
|
||||
// на кадр уезжало 23 МБ текстур. Виновником оказалась не сцена плана, а
|
||||
// тройной drop-shadow внешнего контура: группа .hp-paperg несёт одни бумажные
|
||||
// силуэты и при ховере и панораме не меняется, но фильтр жил в общем слое
|
||||
// плана — и каждая перерисовка плана заново прогоняла три прохода размытия по
|
||||
// габариту всего листа. Лечится одной подсказкой will-change: filter, которая
|
||||
// уводит отфильтрованную бумагу в свой композиционный слой.
|
||||
//
|
||||
// Смок проверяет две вещи, и вторая — не время, а ОТНОШЕНИЕ: абсолютные
|
||||
// миллисекунды зависят от машины и раннера, отношение «дневной цикл к
|
||||
// статичному фону» — нет. Оба замера идут в одном процессе, на одной странице,
|
||||
// подряд, поэтому делят между собой и прогрев, и загрузку машины.
|
||||
//
|
||||
// Замер аналитики на панораме демо-стенда: 7.9 без подсказки, 0.26 с ней.
|
||||
// Порог 2.0 стоит примерно посередине по логарифму и даёт запас в обе стороны.
|
||||
//
|
||||
// Движок здесь Chromium — он же движок CI и golden. Приговор по Gecko даёт
|
||||
// профиль Firefox с машины владельца: подсказка это совет движку, и Gecko
|
||||
// вправе отклонить её по бюджету памяти (layout.css.will-change.budget).
|
||||
// Смок нужен не вместо того профиля, а чтобы правку нельзя было молча снять.
|
||||
import { launch, check, finish } from './serve.mjs';
|
||||
|
||||
const PAN_STEPS = 60;
|
||||
const RATIO_CEILING = 2.0;
|
||||
|
||||
const { page, browser } = await launch({ width: 1400, height: 900 }, 1);
|
||||
const cdp = await page.context().newCDPSession(page);
|
||||
|
||||
const setBackground = async (mode) => {
|
||||
await page.evaluate(async (mode) => {
|
||||
const card = window.__card;
|
||||
card._serverCfg.settings = { ...(card._serverCfg.settings || {}), bg_mode: mode };
|
||||
// Пространство со своим bg_mode переопределяет глобальный — снимаем, иначе
|
||||
// смок мерил бы не то, что переключил.
|
||||
for (const space of card._serverCfg.spaces) {
|
||||
space.settings = { ...(space.settings || {}) };
|
||||
delete space.settings.bg_mode;
|
||||
}
|
||||
card.hass = { ...card.hass, states: { ...card.hass.states, 'sun.sun': {
|
||||
entity_id: 'sun.sun', state: 'above_horizon',
|
||||
attributes: { azimuth: 180, elevation: 40, rising: false },
|
||||
} } };
|
||||
card._cfgRev = (card._cfgRev || 0) + 1;
|
||||
card.requestUpdate();
|
||||
await card.updateComplete;
|
||||
}, mode);
|
||||
// Переход фильтра длится 1100 мс: замер до его конца мерил бы анимацию.
|
||||
await page.waitForTimeout(1400);
|
||||
};
|
||||
|
||||
const outlineStyle = () => page.evaluate(() => {
|
||||
const root = window.__card.shadowRoot || window.__card.renderRoot;
|
||||
const stage = root.querySelector('.stage');
|
||||
const group = root.querySelector('.hp-paperg');
|
||||
if (!group) return null;
|
||||
const style = getComputedStyle(group);
|
||||
return {
|
||||
daycycle: stage.classList.contains('daycycle'),
|
||||
filter: style.filter,
|
||||
willChange: style.willChange,
|
||||
};
|
||||
});
|
||||
|
||||
const stageBox = () => page.evaluate(() => {
|
||||
const root = window.__card.shadowRoot || window.__card.renderRoot;
|
||||
const rect = root.querySelector('.stage').getBoundingClientRect();
|
||||
return { x: rect.x, y: rect.y, w: rect.width, h: rect.height };
|
||||
});
|
||||
|
||||
/** Одна панорама с зажатой кнопкой; возвращает суммарный RasterTask в мс. */
|
||||
const measurePan = async () => {
|
||||
const box = await stageBox();
|
||||
const events = [];
|
||||
const collect = ({ value }) => events.push(...value);
|
||||
cdp.on('Tracing.dataCollected', collect);
|
||||
await cdp.send('Tracing.start', {
|
||||
traceConfig: { includedCategories: ['disabled-by-default-devtools.timeline'] },
|
||||
transferMode: 'ReportEvents',
|
||||
});
|
||||
const cx = box.x + box.w / 2, cy = box.y + box.h / 2;
|
||||
await page.mouse.move(cx, cy);
|
||||
await page.mouse.down();
|
||||
for (let step = 0; step < PAN_STEPS; step += 1) {
|
||||
await page.mouse.move(cx + Math.sin(step / 6) * 140, cy + Math.cos(step / 9) * 90);
|
||||
// Два кадра на шаг: первый ставит кадр в очередь, второй ждёт, пока он
|
||||
// действительно отрисуется. Иначе замер считает не работу, а очередь.
|
||||
await page.evaluate(() => new Promise((resolve) => {
|
||||
requestAnimationFrame(() => requestAnimationFrame(resolve));
|
||||
}));
|
||||
}
|
||||
await page.mouse.up();
|
||||
await page.waitForTimeout(200);
|
||||
const complete = new Promise((resolve) => cdp.once('Tracing.tracingComplete', resolve));
|
||||
await cdp.send('Tracing.end');
|
||||
await complete;
|
||||
cdp.off('Tracing.dataCollected', collect);
|
||||
let micros = 0, tasks = 0;
|
||||
for (const event of events) {
|
||||
if (event.name !== 'RasterTask' || event.ph !== 'X' || typeof event.dur !== 'number') continue;
|
||||
micros += event.dur;
|
||||
tasks += 1;
|
||||
}
|
||||
return { ms: micros / 1000, tasks };
|
||||
};
|
||||
|
||||
const out = {};
|
||||
|
||||
// 1. Подсказка стоит там и только там, где стоит фильтр.
|
||||
await setBackground('daynight');
|
||||
const dayStyle = await outlineStyle();
|
||||
out.dayCycleClassOn = dayStyle?.daycycle === true;
|
||||
out.dayCycleOutlineFiltered = /drop-shadow/.test(dayStyle?.filter || '');
|
||||
out.dayCycleOutlinePromoted = /filter/.test(dayStyle?.willChange || '');
|
||||
|
||||
await setBackground('static');
|
||||
const staticStyle = await outlineStyle();
|
||||
out.staticClassOff = staticStyle?.daycycle === false;
|
||||
out.staticOutlineUnfiltered = (staticStyle?.filter || 'none') === 'none';
|
||||
// Статичный фон не платит за чужую подсказку ни слоем, ни памятью.
|
||||
out.staticOutlineNotPromoted = !/filter/.test(staticStyle?.willChange || '');
|
||||
|
||||
// 2. Отношение растеризации на настоящей панораме.
|
||||
const staticPan = await measurePan();
|
||||
await setBackground('daynight');
|
||||
const dayPan = await measurePan();
|
||||
|
||||
out.rasterTasksObserved = staticPan.tasks > 0 && dayPan.tasks > 0;
|
||||
const ratio = staticPan.ms > 0 ? dayPan.ms / staticPan.ms : Infinity;
|
||||
out.rasterRatioWithinBudget = ratio <= RATIO_CEILING;
|
||||
|
||||
console.log(JSON.stringify({
|
||||
staticPanMs: Number(staticPan.ms.toFixed(1)), staticPanTasks: staticPan.tasks,
|
||||
dayCyclePanMs: Number(dayPan.ms.toFixed(1)), dayCyclePanTasks: dayPan.tasks,
|
||||
ratio: Number(ratio.toFixed(2)), ceiling: RATIO_CEILING,
|
||||
}, null, 1));
|
||||
|
||||
for (const [name, value] of Object.entries(out)) check(name, value);
|
||||
await finish(browser, out);
|
||||
Vendored
+139
-139
@@ -1,309 +1,309 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039",
|
||||
"fingerprint": "f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3",
|
||||
"entry": "houseplan-card.js",
|
||||
"panelEntry": "houseplan-panel.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 287242,
|
||||
"initialViewGzipBytes": 287246,
|
||||
"initialPanelFiles": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-card.js",
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelGzipBytes": 289548,
|
||||
"initialPanelGzipBytes": 289551,
|
||||
"initialPanelOnlyFiles": [
|
||||
"houseplan-panel.js"
|
||||
],
|
||||
"initialPanelOnlyGzipBytes": 2306,
|
||||
"initialPanelOnlyGzipBytes": 2305,
|
||||
"lazyFiles": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/de-BAfQ3noX.js",
|
||||
"houseplan-assets/editor-Ca9vnH-K.js",
|
||||
"houseplan-assets/fr-a4v8Ohtu.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-BVcD08Op.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-0ApfaTVi.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-B_T0ilCj.js",
|
||||
"houseplan-assets/iso-scene-render-DtlvcvOT.js",
|
||||
"houseplan-assets/live-interaction-runtime-CjYDG1SP.js",
|
||||
"houseplan-assets/pdf-export-CY9TOlZ5.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CB4AHgRN.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-Cez46hoy.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/de-BzGLbwvZ.js",
|
||||
"houseplan-assets/editor-C1xpueyG.js",
|
||||
"houseplan-assets/fr-C3geGtjl.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Dj6agWVl.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-J0_74gcV.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DwyWKwR8.js",
|
||||
"houseplan-assets/iso-scene-render-DJJ7WLdq.js",
|
||||
"houseplan-assets/live-interaction-runtime-jSU7kWgv.js",
|
||||
"houseplan-assets/pdf-export-DpRho-Fx.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-Cu8UM3xX.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CiKM8bMZ.js"
|
||||
],
|
||||
"lazyGzipBytes": 417431,
|
||||
"lazyGzipBytes": 417414,
|
||||
"lazyEditorFiles": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/editor-Ca9vnH-K.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-BVcD08Op.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/editor-C1xpueyG.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Dj6agWVl.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 204999,
|
||||
"lazyEditorGzipBytes": 204996,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-0ApfaTVi.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-J0_74gcV.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 13916,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-BAfQ3noX.js",
|
||||
"houseplan-assets/fr-a4v8Ohtu.js"
|
||||
"houseplan-assets/de-BzGLbwvZ.js",
|
||||
"houseplan-assets/fr-C3geGtjl.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 54820,
|
||||
"lazyLocaleGzipBytes": 54817,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/iso-scene-render-DtlvcvOT.js"
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/iso-scene-render-DJJ7WLdq.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 13460,
|
||||
"lazyIsometricGzipBytes": 13456,
|
||||
"lazyFurnitureArtFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js"
|
||||
],
|
||||
"lazyFurnitureArtGzipBytes": 10254,
|
||||
"lazyFurnitureArtGzipBytes": 10255,
|
||||
"lazyPdfFiles": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/pdf-export-CY9TOlZ5.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/pdf-export-DpRho-Fx.js"
|
||||
],
|
||||
"lazyPdfGzipBytes": 120128,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"sha256": "ce22e7599ea095db52bf13da52204107ed2d535fb57f69766e3669dfea1c9ef2",
|
||||
"path": "houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"sha256": "50c3c752cc39625b8e9693a517bf09c50152befe468d634bd9f157a880d13c2b",
|
||||
"rawBytes": 19956,
|
||||
"gzipBytes": 6879,
|
||||
"gzipBytes": 6880,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-BAfQ3noX.js",
|
||||
"sha256": "38d0ffe6551c85bc7a5686943679357a726928644136850dc646e0cdd5713bab",
|
||||
"path": "houseplan-assets/de-BzGLbwvZ.js",
|
||||
"sha256": "d003e6380ff0cf2a41e7e956de4d343b21c45e9f9bde0d57a2e2ebc4db5adb51",
|
||||
"rawBytes": 91402,
|
||||
"gzipBytes": 27694,
|
||||
"gzipBytes": 27692,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-Ca9vnH-K.js",
|
||||
"sha256": "fd8b9731bc4a417cb0545e06677c836e98fa59a7b28e7cf0345d87c25f4aaed7",
|
||||
"path": "houseplan-assets/editor-C1xpueyG.js",
|
||||
"sha256": "074d2bb9067d77491a11ea32a6443dcc22af8fe684af24e18001cb500d8dc7b2",
|
||||
"rawBytes": 3832,
|
||||
"gzipBytes": 1583,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-a4v8Ohtu.js",
|
||||
"sha256": "ccc6ccd7d3736f7567080f000de2dd04ecf60989163720e46d11063cd3ace9ee",
|
||||
"path": "houseplan-assets/fr-C3geGtjl.js",
|
||||
"sha256": "52b7f50e7dcc34671a868a19250bb48a657a4956e157221daf961159fb2095d5",
|
||||
"rawBytes": 93667,
|
||||
"gzipBytes": 27126,
|
||||
"gzipBytes": 27125,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"sha256": "d8e59b11da6c8f4a665b33cc6d92e9eb9e2e9ef94fed1071ba5988ce5c98e438",
|
||||
"path": "houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"sha256": "43d140c50a1359d5e94e2806f505c262a04edfa872d443c83198a2215a4b988f",
|
||||
"rawBytes": 33655,
|
||||
"gzipBytes": 10254,
|
||||
"gzipBytes": 10255,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/guard-BYWHhzjw.js",
|
||||
"sha256": "b81804f104d25d22dbc909341c48821dbe950aad94054b9512f5322a04fdfc8b",
|
||||
"path": "houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"sha256": "d0895bcb2a7b722d7d036235d9fbbed3887b2907b1ea8ec961fecb5ab1ac6ef4",
|
||||
"rawBytes": 518,
|
||||
"gzipBytes": 369,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"sha256": "d8cf65be7367f51ed4c8069825965c002036ec16321e3dc83dce1638ec7d2565",
|
||||
"rawBytes": 1020996,
|
||||
"gzipBytes": 286437,
|
||||
"path": "houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"sha256": "d0f9cb54803bb7dacf2e0275fb26372e4b4232357c199b9521b4b75ee102ea04",
|
||||
"rawBytes": 1021015,
|
||||
"gzipBytes": 286443,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/de-BAfQ3noX.js",
|
||||
"houseplan-assets/editor-Ca9vnH-K.js",
|
||||
"houseplan-assets/fr-a4v8Ohtu.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-BVcD08Op.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-0ApfaTVi.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-B_T0ilCj.js",
|
||||
"houseplan-assets/iso-scene-render-DtlvcvOT.js",
|
||||
"houseplan-assets/live-interaction-runtime-CjYDG1SP.js",
|
||||
"houseplan-assets/pdf-export-CY9TOlZ5.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CB4AHgRN.js"
|
||||
"houseplan-assets/de-BzGLbwvZ.js",
|
||||
"houseplan-assets/editor-C1xpueyG.js",
|
||||
"houseplan-assets/fr-C3geGtjl.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Dj6agWVl.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-J0_74gcV.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DwyWKwR8.js",
|
||||
"houseplan-assets/iso-scene-render-DJJ7WLdq.js",
|
||||
"houseplan-assets/live-interaction-runtime-jSU7kWgv.js",
|
||||
"houseplan-assets/pdf-export-DpRho-Fx.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-Cu8UM3xX.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-BVcD08Op.js",
|
||||
"sha256": "b26691e5ac6338578a23ab3d6c0a774e36c4e708f2bb4a48894ab7e4b0ca7c96",
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-Dj6agWVl.js",
|
||||
"sha256": "28b55c311643e4b2ac783f060ac2d8af851a49fc65a264d1954101ea36074865",
|
||||
"rawBytes": 668813,
|
||||
"gzipBytes": 178484,
|
||||
"gzipBytes": 178480,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-Cez46hoy.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-CiKM8bMZ.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-0ApfaTVi.js",
|
||||
"sha256": "e1fc28837937564eee4a602230cdaf3fbabe35703a7ecda43ce74def1159d0b7",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-J0_74gcV.js",
|
||||
"sha256": "f26d85e6c6b9276ed1b8dddf68f8d6fec58285034a5612e7bc621d0650fe3b39",
|
||||
"rawBytes": 28287,
|
||||
"gzipBytes": 7037,
|
||||
"gzipBytes": 7036,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-yGeZ_1BL.js",
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/backdrop-pick-B2vh4ldK.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-B_T0ilCj.js",
|
||||
"sha256": "d9f0676bc0034a3baed8c9108f8799aa261cbabbef86929ef812cd90e0e9e302",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DwyWKwR8.js",
|
||||
"sha256": "38630979c6005defc2870cbd670e93a2bc72e7103c0619a2db8bbc9e5e35add0",
|
||||
"rawBytes": 10756,
|
||||
"gzipBytes": 3684,
|
||||
"gzipBytes": 3682,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-Cez46hoy.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-CiKM8bMZ.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-DtlvcvOT.js",
|
||||
"sha256": "ad3e8c6b41caf6edc5e3b259dcffa3bff98c0110ae80cbd3bf736d5eccfb7d0f",
|
||||
"path": "houseplan-assets/iso-scene-render-DJJ7WLdq.js",
|
||||
"sha256": "0fe3c080025e143c7c1e36360c048bdfeb7de15ad5614e51ccd93a474ac01a76",
|
||||
"rawBytes": 38562,
|
||||
"gzipBytes": 13091,
|
||||
"gzipBytes": 13087,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/guard-BYWHhzjw.js",
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/guard-Cf4E-8ce.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-CjYDG1SP.js",
|
||||
"sha256": "886197ec8207c347463a743dd3a7a2f95bb05efbe4545332a41c12891cc3242e",
|
||||
"path": "houseplan-assets/live-interaction-runtime-jSU7kWgv.js",
|
||||
"sha256": "f82bbf39d216aa1da371f477a98bf0db290a322b978159534ec77313272a73b2",
|
||||
"rawBytes": 6032,
|
||||
"gzipBytes": 2433,
|
||||
"gzipBytes": 2432,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/pdf-export-CY9TOlZ5.js",
|
||||
"sha256": "0fa7863db13ffe8d654f35cf25222639be2f6c4ed018941feffde0503da2b425",
|
||||
"path": "houseplan-assets/pdf-export-DpRho-Fx.js",
|
||||
"sha256": "b3f320d2a9fc4dae77d252e9ca71a9e8bf76aab8143296f070d0d8501afb60d3",
|
||||
"rawBytes": 236244,
|
||||
"gzipBytes": 109874,
|
||||
"gzipBytes": 109873,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/furniture-plan-art.generated-CWJaBLIz.js",
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/furniture-plan-art.generated-Cq22RSiq.js",
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-editor-DeBQ1tcV.js",
|
||||
"sha256": "b1bbc6089d46f90c81c295e0305374ca2f2c5fca0322f27d4e9ecb9bb76ead28",
|
||||
"path": "houseplan-assets/summary-panel-editor-Cq0L-N9R.js",
|
||||
"sha256": "27880dfef9a780a4bbd5003875801eec32943df47d5a41de9ba2ddf33475e798",
|
||||
"rawBytes": 14824,
|
||||
"gzipBytes": 3401,
|
||||
"gzipBytes": 3402,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-CB4AHgRN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-assets/summary-panel-runtime-loaded-Cu8UM3xX.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-metrics-B3ruGJoU.js",
|
||||
"sha256": "d68458815e4a7772cd87bf55f1448ba1794c54b1e6c749825f0672952051a93c",
|
||||
"path": "houseplan-assets/summary-panel-metrics-Ci8fAKZP.js",
|
||||
"sha256": "185fd9a451dec36588013e643f7fa30a91b198bed52e7b95bbe742b47da3af4e",
|
||||
"rawBytes": 2610,
|
||||
"gzipBytes": 1306,
|
||||
"gzipBytes": 1304,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-CB4AHgRN.js",
|
||||
"sha256": "d7d78a52ff91ce0dd1d07eb8e670e931814ef71c969f67069485d1313adeafe4",
|
||||
"path": "houseplan-assets/summary-panel-runtime-loaded-Cu8UM3xX.js",
|
||||
"sha256": "1a47e72af54209e481ea42ba635d5539d5fa93230054cb32ec2c37f163a37f8f",
|
||||
"rawBytes": 72272,
|
||||
"gzipBytes": 19728,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/summary-panel-editor-DeBQ1tcV.js",
|
||||
"houseplan-assets/summary-panel-metrics-B3ruGJoU.js"
|
||||
"houseplan-assets/summary-panel-editor-Cq0L-N9R.js",
|
||||
"houseplan-assets/summary-panel-metrics-Ci8fAKZP.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-DitREaKv.js",
|
||||
"sha256": "d29bb086e6862441a6115d431ed71e4ee0b96201a10bdfedb93d3f11280264ca",
|
||||
"rawBytes": 18961,
|
||||
"gzipBytes": 7430,
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-CiKM8bMZ.js",
|
||||
"sha256": "df8412087da621cc7e9bccfb3548af001e39ff202d98a407be75f007c3bf0211",
|
||||
"rawBytes": 3941,
|
||||
"gzipBytes": 1763,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js",
|
||||
"houseplan-assets/zigbee-topology-RVaqPxNn.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-Cez46hoy.js",
|
||||
"sha256": "5bb047f1c003a211e0a57f2fa03d37e968144ca741d99b2f3e486ee70e4aa130",
|
||||
"rawBytes": 3941,
|
||||
"gzipBytes": 1765,
|
||||
"path": "houseplan-assets/zigbee-topology-RVaqPxNn.js",
|
||||
"sha256": "fee6dd544594966f44db71dc5529031b2fc8adfe11fe78290b1d0f5bd33e20a0",
|
||||
"rawBytes": 18961,
|
||||
"gzipBytes": 7429,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js",
|
||||
"houseplan-assets/zigbee-topology-DitREaKv.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "2cf259caacb83ef37c3e5e743f88bcd61a6f48131af71fa565528f409b2f1f82",
|
||||
"sha256": "d1bd483cc0d9e5030c33d713eed4ce01674aaee15d7a09ed230e3470bbe186c1",
|
||||
"rawBytes": 1205,
|
||||
"gzipBytes": 805,
|
||||
"gzipBytes": 803,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-DEVy5dLN.js"
|
||||
"houseplan-assets/houseplan-card-CvCwcI3S.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-panel.js",
|
||||
"sha256": "02fa46808fbf68c9245ec2b518ec2047953678b13b054a923259f1a8d9e9cb9a",
|
||||
"sha256": "2827d1118a9d90c49306e0c01b4f1a7b448c24cf51b1ca0ec829bd95c1b37995",
|
||||
"rawBytes": 6124,
|
||||
"gzipBytes": 2306,
|
||||
"gzipBytes": 2305,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-card.js"
|
||||
|
||||
Vendored
+6
-6
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+5
-5
@@ -1,14 +1,14 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{m as e,l as o,t,e3 as s,A as a,e4 as i,e5 as l,e6 as n,dU as r,b as c}from"./houseplan-card-DEVy5dLN.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__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{m as e,l as o,t,e3 as s,A as a,e4 as i,e5 as l,e6 as n,dU as r,b as c}from"./houseplan-card-CvCwcI3S.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
|
||||
.hass=${this.hass}
|
||||
.data=${this._formData}
|
||||
.schema=${e}
|
||||
.computeLabel=${e=>h[e.name]||e.name}
|
||||
.computeLabel=${e=>f[e.name]||e.name}
|
||||
@value-changed=${this._valueChanged}
|
||||
></ha-form>`;return c`
|
||||
${d(f.slice(0,3))}
|
||||
${d(h.slice(0,3))}
|
||||
${_?c`<div class="default-floor-error" role="alert"
|
||||
style="color:var(--error-color,#db4437);margin:-4px 0 12px;overflow-wrap:anywhere">
|
||||
${t(s,"editor.default_floor_missing",{id:_})}
|
||||
</div>`:a}
|
||||
${d(f.slice(3))}
|
||||
`}_valueChanged(e){const o={...this._config,...e.detail.value};""===o.floor?delete o.floor:o.floor===this._floorToken&&(o.floor=this._config?.floor);const t=new Event("config-changed",{bubbles:!0,composed:!0});t.detail={config:o},this.dispatchEvent(t)}}h.properties={hass:{attribute:!1},_config:{state:!0},_spaces:{state:!0}},customElements.get("houseplan-card-editor")||customElements.define("houseplan-card-editor",h);
|
||||
${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);
|
||||
+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 +0,0 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{dS as r,dT as t,dU as s}from"./houseplan-card-DEVy5dLN.js";const e={},a=r(class extends t{constructor(){super(...arguments),this.ot=e}render(r,t){return t()}update(r,[t,e]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return s}else if(this.ot===t)return s;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,e)}});export{a as i};
|
||||
+1
@@ -0,0 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{dS as r,dT as t,dU as e}from"./houseplan-card-CvCwcI3S.js";const s={},a=r(class extends t{constructor(){super(...arguments),this.ot=s}render(r,t){return t()}update(r,[t,s]){if(Array.isArray(t)){if(Array.isArray(this.ot)&&this.ot.length===t.length&&t.every((r,t)=>r===this.ot[t]))return e}else if(this.ot===t)return e;return this.ot=Array.isArray(t)?Array.from(t):t,this.render(t,s)}});export{a as i};
|
||||
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
+30
-30
File diff suppressed because one or more lines are too long
+6
-6
File diff suppressed because one or more lines are too long
+31
-31
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__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{b as a,A as e}from"./houseplan-card-DEVy5dLN.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-CB4AHgRN.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__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{b as a,A as e}from"./houseplan-card-CvCwcI3S.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-Cu8UM3xX.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 +0,0 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{e9 as e,L as t,a2 as n,J as i,an as o,N as r,bo as s,bn as a,a1 as c,a0 as l,ax as d,ea as u,eb as f,bq as m,ec as g}from"./houseplan-card-DEVy5dLN.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 b(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*_(c,l,d=b){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 b=m.cellCm/o;u+=a(v)*b*b/1e4}return u}catch{return null}}function h(e,t,n=b){const i=_(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{_ as cleanFloorAreaSteps,v as representedHaDeviceIds,b as spaceWallGeometry,S as summaryEntityValue,p as summarySystemValue,h as totalCleanFloorAreaM2};
|
||||
@@ -0,0 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{e9 as e,L as t,a2 as n,J as i,an as o,N as r,bo as s,bn as a,a1 as l,a0 as c,ax as u,ea as d,eb as f,bq as m,ec as g}from"./houseplan-card-CvCwcI3S.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*h(l,c,u=_){try{let d=0;for(const f of c){const c=l.spaces.find(e=>String(e?.id)===f.id);if(!c)continue;const m=e(c,f),g=u(f,m);let v=null;for(const e of f.rooms){if(!e.id)continue;const 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 p(e,t,n=_){const i=h(e,t,n);let o=i.next();for(;!o.done;)o=i.next();return o.value}function b(e,t,n,i){if("system"!==e.type)return null;if("device_count"===e.key)return null===t.deviceCount?null:String(t.deviceCount);if("total_area"===e.key)return null===t.areaM2?null:m(t.areaM2,"mi"===n?.config?.unit_system?.length);try{return new Intl.DateTimeFormat(i||void 0,{dateStyle:"short",timeStyle:"short",timeZone:n?.config?.time_zone||void 0}).format(t.now)}catch{return t.now.toLocaleString()}}function S(e,t){const n=e?.states?.[t];if(!n)return null;const i=d(e,t);return i?f(i,String(n.attributes?.unit_of_measurement||"")):null}export{h as cleanFloorAreaSteps,v as representedHaDeviceIds,_ as spaceWallGeometry,S as summaryEntityValue,b as summarySystemValue,p as totalCleanFloorAreaM2};
|
||||
+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__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";import{n as t,b as n}from"./zigbee-topology-DitREaKv.js";import{B as e}from"./houseplan-card-DEVy5dLN.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}),b=new Promise((t,n)=>{f=t,m=n}),w=[];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&&w.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&&w.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(b,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of w)try{t()}catch{}}})}export{f as readZhaTopology,m as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";import{n as t,b as n}from"./zigbee-topology-RVaqPxNn.js";import{B as e}from"./houseplan-card-CvCwcI3S.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__="dfcbb1b71778cc7ba07be84f07b876575d5c63600838b93cdb2db147b99ec039";try{await import("./houseplan-assets/houseplan-card-DEVy5dLN.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__="f40ffc9357a1340e70f3959e98bf17da6858dff6a2b4f32392befa4ce825f0b3";try{await import("./houseplan-assets/houseplan-card-CvCwcI3S.js")}catch(e){if(!customElements.get("houseplan-card")){const l=String(navigator.language||"en").toLowerCase();const m=l.startsWith("ru")?"House Plan обновился — перезагрузите страницу (Ctrl+F5).":l.startsWith("de")?"House Plan wurde aktualisiert — bitte laden Sie die Seite neu (Strg+F5).":l.startsWith("fr")?"House Plan a été mis à jour — veuillez recharger la page (Ctrl+F5).":"House Plan was updated — please reload the page (Ctrl+F5).";customElements.define("houseplan-card",class extends HTMLElement{setConfig(){}getCardSize(){return 1}connectedCallback(){this.style.cssText="display:block;box-sizing:border-box;padding:16px;border:1px solid var(--divider-color,#e0e0e0);border-radius:var(--ha-card-border-radius,12px);background:var(--card-background-color,#fff);color:var(--primary-text-color,#212121);font:14px/1.4 var(--paper-font-body1_-_font-family,sans-serif)";this.textContent=m}})}console.error("[houseplan] stale houseplan-card.js: the implementation chunk is unavailable",e)}
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -2,6 +2,14 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
- The “Follows the sun” background no longer slows the plan down. The plan's
|
||||
outer outline is a blur over the whole sheet, and it lived in the same layer
|
||||
as the plan: any mouse movement made the engine re-run it. The outline now
|
||||
keeps its own layer. Measured on a demo-stand pan, rasterization fell from
|
||||
fifteen times a static background to the same order as one. The picture is
|
||||
unchanged, to the pixel
|
||||
([#532](https://github.com/Matysh/houseplan-card/issues/532)).
|
||||
|
||||
## v1.74.0 — 2026-09-11
|
||||
|
||||
- The plan is noticeably smoother, and in Firefox the difference is dramatic.
|
||||
|
||||
@@ -8,6 +8,14 @@
|
||||
|
||||
## Не выпущено
|
||||
|
||||
- Фон «Следует за Солнцем» больше не замедляет план. Внешний контур плана —
|
||||
это размытие по габариту всего листа, и оно жило в общем слое с планом: любое
|
||||
движение мыши заставляло движок прогонять его заново. Теперь контур держится
|
||||
отдельным слоем. Замер на панораме демо-стенда: растеризация упала с
|
||||
пятнадцатикратной к статичному фону до сопоставимой с ним. Картинка
|
||||
не изменилась ни на пиксель
|
||||
([#532](https://github.com/Matysh/houseplan-card/issues/532)).
|
||||
|
||||
## v1.74.0 — 2026-09-11
|
||||
|
||||
- План стал заметно плавнее, а в Firefox разница разительная. Перетаскивание
|
||||
|
||||
@@ -75,6 +75,13 @@ The public setting remains a two-value selector. `static` uses `bg_color`.
|
||||
05:00→13:00→21:00 fallback arc. It has zero visible opacity at night.
|
||||
- Four constant environment layers cross-fade for exactly 1100 ms with
|
||||
`cubic-bezier(.22,.61,.36,1)`. Reduced motion disables the transition.
|
||||
- The zero-offset outline is a filter over the grouped paper footprint, so it
|
||||
is kept on its own compositing layer (`will-change: filter`, scoped to the
|
||||
day-cycle stage). The group holds paper silhouettes only and does not change
|
||||
while the plan is hovered or panned; without the hint every repaint of the
|
||||
plan re-ran three blur passes over the whole sheet, which cost a Firefox
|
||||
window about fifteen times the rasterization of a static background (#532).
|
||||
A static background carries neither the filter nor the hint.
|
||||
- Only the environment and the zero-offset alpha-aware outline outside the
|
||||
grouped plan-paper footprint change. The plan, paper, floors, room fills,
|
||||
Glow/spill, devices, labels, decor/backdrop, vacuum, hover, and window rays
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"fixture": "synthetic-only",
|
||||
"chromium": "151.0.7922.34",
|
||||
"oxipng": "oxipng 10.2.0",
|
||||
"sourceFingerprint": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceFingerprint": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"captureScriptSha256": "9e4b0ae533407fe003a129078aec020f2c83d67cdb6fc6da696ce3d829beaeb5",
|
||||
"command": "npm run build && node demo/docs/capture.mjs",
|
||||
"scenarios": {
|
||||
@@ -15,7 +15,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "76c35a87810e3dc6890bda7b43da133f57d8860031204a62cda7115c15950090"
|
||||
},
|
||||
"view-touch": {
|
||||
@@ -26,7 +26,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "795585acb09488236ebb8028a7fcbd918404c5fe01560bb9b4559de13d441625"
|
||||
},
|
||||
"space-create": {
|
||||
@@ -37,7 +37,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "9f0970de09772674c3156b9fc5b2d49de0ceb22be11ecf8b136047d37d100a84"
|
||||
},
|
||||
"room-contour-close": {
|
||||
@@ -48,7 +48,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "0c354a79f9c3660788b6c5e889a27b6bd78b1f209dc0eef6bb43e2c1344028c4"
|
||||
},
|
||||
"plan-context-tray": {
|
||||
@@ -59,7 +59,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "64169c543291bc4df806dcf8ff484b42c8ea55eb343323d945344e0e28f2ce97"
|
||||
},
|
||||
"device-editor": {
|
||||
@@ -70,7 +70,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "3c8703175605fcf0387d654cd30783ecfd33e21743e70b45190a5ae1a8d355c2"
|
||||
},
|
||||
"device-display-preview": {
|
||||
@@ -81,7 +81,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "5d6193202102f5e6d85567f1111fa105895b933979fbf369c6ba0b1029deb823"
|
||||
},
|
||||
"background-editor": {
|
||||
@@ -92,7 +92,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "375900a29aa62632883ede6727b7dbb8b48cabe9d7d0e16425f9779c837f3dd9"
|
||||
},
|
||||
"room-card": {
|
||||
@@ -103,7 +103,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "3d85424676c823ddca3fa7dab3cce089b6030e48c05d16d2d48d922c66c0cbd2"
|
||||
},
|
||||
"device-info": {
|
||||
@@ -114,7 +114,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "ac962820f8e1c5cb5b042d39b18dc95905fa840cb2d4749060d991be4f6977c2"
|
||||
},
|
||||
"pdf-export": {
|
||||
@@ -125,7 +125,7 @@
|
||||
},
|
||||
"theme": "light",
|
||||
"language": "en",
|
||||
"sourceSha256": "45f506aca7baceaa68ed03b4a7d97f05c8c22c42976287b6f3b42274f0122327",
|
||||
"sourceSha256": "1a0b29e3e36eba71bc42630eceef108cf9a9bc82cc78aa7d1d047144086ae4f6",
|
||||
"imageSha256": "4537692fd57a3ed95528eddd748eee5cb6e456ffab7cc49169853d62459252cd"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -2400,6 +2400,18 @@ const MUTANT_DEFINITIONS = [
|
||||
replace: "const HANDLE_PAINT_ORDER = ['corners', 'edges'] as const;",
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'daycycle-outline-not-promoted',
|
||||
guard: 'node demo/smoke_daycycle_raster.mjs',
|
||||
because: 'the day-cycle outline is a triple drop-shadow over the whole sheet; without its own '
|
||||
+ 'compositing layer every repaint of the plan re-runs three blur passes, and a demo-stand '
|
||||
+ 'pan costs fifteen times the rasterization of a static background (#532 AC1/AC2)',
|
||||
patches: [{
|
||||
file: 'src/styles/plan.styles.ts',
|
||||
find: ' will-change: filter;\n',
|
||||
replace: '',
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'align-guides-exclude-dead-source',
|
||||
guard: 'node demo/smoke_align_guides.mjs',
|
||||
|
||||
@@ -86,12 +86,21 @@ export const planStyles = css`
|
||||
opacity 1100ms cubic-bezier(.22, .61, .36, 1);
|
||||
}
|
||||
.stage.mode-transition .hp-day-cycle-env { transition: none; }
|
||||
/* #532: the outline keeps its OWN compositing layer. The group holds paper
|
||||
silhouettes only and does not change on hover or pan, but the filter used
|
||||
to live in the plan's own layer — so every repaint of the plan re-ran
|
||||
three blur passes over the whole sheet. Measured on a demo-stand pan
|
||||
(Chromium, CDP, summed RasterTask): 852 ms without the hint against 28 ms
|
||||
with it, where a static background costs 108 ms. The hint costs one layer
|
||||
of memory, so it is scoped to .daycycle and a static background never
|
||||
pays for it. */
|
||||
.stage.daycycle .hp-paperg,
|
||||
.hp-static-stage.daycycle .hp-paperg {
|
||||
filter:
|
||||
drop-shadow(0 0 1px var(--hp-day-cycle-outline-near))
|
||||
drop-shadow(0 0 5px var(--hp-day-cycle-outline-mid))
|
||||
drop-shadow(0 0 10px var(--hp-day-cycle-outline-far));
|
||||
will-change: filter;
|
||||
transition: filter 1100ms cubic-bezier(.22, .61, .36, 1);
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
|
||||
Reference in New Issue
Block a user