mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
@@ -1,215 +1,215 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded",
|
||||
"fingerprint": "311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d",
|
||||
"entry": "houseplan-card.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 299658,
|
||||
"initialViewGzipBytes": 299675,
|
||||
"lazyFiles": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/de-B75KTGu7.js",
|
||||
"houseplan-assets/editor-BgMFJMxG.js",
|
||||
"houseplan-assets/fr-CM3l8iJQ.js",
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-l0nvSIob.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Ck1vlrhh.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DMcMRMZk.js",
|
||||
"houseplan-assets/iso-scene-render-ATwN0k5w.js",
|
||||
"houseplan-assets/live-interaction-runtime-DRs1XnYD.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-DiqBbQFN.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/de-B7OsBKRG.js",
|
||||
"houseplan-assets/editor-CMvfWrdM.js",
|
||||
"houseplan-assets/fr-B944dDmR.js",
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Q2v_qR5l.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-B_cNSkXz.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DhJVKuF6.js",
|
||||
"houseplan-assets/iso-scene-render-g9xHPjp_.js",
|
||||
"houseplan-assets/live-interaction-runtime-CyQxloWi.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-0P-Eew_a.js"
|
||||
],
|
||||
"lazyGzipBytes": 264591,
|
||||
"lazyGzipBytes": 264827,
|
||||
"lazyEditorFiles": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/editor-BgMFJMxG.js",
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-l0nvSIob.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/editor-CMvfWrdM.js",
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Q2v_qR5l.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 186874,
|
||||
"lazyEditorGzipBytes": 186898,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Ck1vlrhh.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-B_cNSkXz.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 14322,
|
||||
"lazyOnboardingGzipBytes": 14330,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-B75KTGu7.js",
|
||||
"houseplan-assets/fr-CM3l8iJQ.js"
|
||||
"houseplan-assets/de-B7OsBKRG.js",
|
||||
"houseplan-assets/fr-B944dDmR.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 50140,
|
||||
"lazyLocaleGzipBytes": 50168,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/iso-scene-render-ATwN0k5w.js"
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/iso-scene-render-g9xHPjp_.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 13361,
|
||||
"lazyIsometricGzipBytes": 13530,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"sha256": "2096b469d7c865497b6252b77d14853eb871e5dff61dbdc16c5ca097ddd3c9c5",
|
||||
"path": "houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"sha256": "14cb4cee73d5b3c3a1555b176bc27d8597ce77affcaf7b9c0c49fe637db44547",
|
||||
"rawBytes": 21592,
|
||||
"gzipBytes": 7355,
|
||||
"gzipBytes": 7359,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-B75KTGu7.js",
|
||||
"sha256": "68c370289e919891e17419be3de574ecb83f4bd1f8159b3edd482f9c8c69cfdc",
|
||||
"path": "houseplan-assets/de-B7OsBKRG.js",
|
||||
"sha256": "922d3c168f9da0e77608f8778b80b72dc483479006670cb4fec4604c47fac306",
|
||||
"rawBytes": 84232,
|
||||
"gzipBytes": 25347,
|
||||
"gzipBytes": 25361,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-BgMFJMxG.js",
|
||||
"sha256": "d54c18a937caae418fd08f6b17fed60032629f49833aa9521bd9ee71a2c4ab95",
|
||||
"path": "houseplan-assets/editor-CMvfWrdM.js",
|
||||
"sha256": "a569960cab703c3e681266c4d553d41ace8e495ac95e66da0567cc970285d07d",
|
||||
"rawBytes": 3837,
|
||||
"gzipBytes": 1587,
|
||||
"gzipBytes": 1591,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-CM3l8iJQ.js",
|
||||
"sha256": "df7e3e6ceff3500bc6de9d8357967d9e135dc4755818f54c9f400bafec997c00",
|
||||
"path": "houseplan-assets/fr-B944dDmR.js",
|
||||
"sha256": "7c77823eb4600f8ea51099bcf655092c4a5e5a3ce7157567b197ad06542585d3",
|
||||
"rawBytes": 86273,
|
||||
"gzipBytes": 24793,
|
||||
"gzipBytes": 24807,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/guard-DhWVu6ch.js",
|
||||
"sha256": "eaf759e81a09a5c9bb8eb9792c81836975baa6dd700857a9574175088ab1fca3",
|
||||
"path": "houseplan-assets/guard-Dcsyag2i.js",
|
||||
"sha256": "fa1e3c8a2bd50b2918b71c93a7f62efdf2c9aec79cd40dbef490d13b406904b6",
|
||||
"rawBytes": 518,
|
||||
"gzipBytes": 370,
|
||||
"gzipBytes": 372,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"sha256": "b9660fea77978f99875ae324b1950905e1a98805c353d9b6b5729a3734c56040",
|
||||
"path": "houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"sha256": "a862bca7204a6d541b56dd2254320f79fbef7cbddf7ea85890c687afdadd61b2",
|
||||
"rawBytes": 1072739,
|
||||
"gzipBytes": 298863,
|
||||
"gzipBytes": 298877,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/de-B75KTGu7.js",
|
||||
"houseplan-assets/editor-BgMFJMxG.js",
|
||||
"houseplan-assets/fr-CM3l8iJQ.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-l0nvSIob.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Ck1vlrhh.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DMcMRMZk.js",
|
||||
"houseplan-assets/iso-scene-render-ATwN0k5w.js",
|
||||
"houseplan-assets/live-interaction-runtime-DRs1XnYD.js"
|
||||
"houseplan-assets/de-B7OsBKRG.js",
|
||||
"houseplan-assets/editor-CMvfWrdM.js",
|
||||
"houseplan-assets/fr-B944dDmR.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Q2v_qR5l.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-B_cNSkXz.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DhJVKuF6.js",
|
||||
"houseplan-assets/iso-scene-render-g9xHPjp_.js",
|
||||
"houseplan-assets/live-interaction-runtime-CyQxloWi.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-l0nvSIob.js",
|
||||
"sha256": "3b3e22f68bf91e1a47782588ce77aef5d02f128de193bac8de87cf325ff94678",
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-Q2v_qR5l.js",
|
||||
"sha256": "b4a077b76e68ff9618794a304213f64bae64f4c74c67cfa5a6bf60c869f0f18b",
|
||||
"rawBytes": 639230,
|
||||
"gzipBytes": 170138,
|
||||
"gzipBytes": 170143,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-DiqBbQFN.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-0P-Eew_a.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-Ck1vlrhh.js",
|
||||
"sha256": "1aa4864a948bf657a8b750966ba0343664338741835a00e9f757539a5db0fa91",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-B_cNSkXz.js",
|
||||
"sha256": "f8df34ac206febf3a6c794b9505c1e65dc805643c3d0e9655b26c7aca41af5c2",
|
||||
"rawBytes": 28071,
|
||||
"gzipBytes": 6967,
|
||||
"gzipBytes": 6971,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DMcMRMZk.js",
|
||||
"sha256": "0ace9347518e86b594677745e490620bc1d1178130223e0255e6b58cf78ea7a2",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DhJVKuF6.js",
|
||||
"sha256": "a65a8c506782a95fa098f0be9e3caca92688e3c8a6f7ccef192ffc97a2b77b4a",
|
||||
"rawBytes": 11034,
|
||||
"gzipBytes": 3730,
|
||||
"gzipBytes": 3734,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-DiqBbQFN.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-0P-Eew_a.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-ATwN0k5w.js",
|
||||
"sha256": "994dcfa59d259e4cdc335318d7f700e351bc67e04cd0b5dd32dc712b54c12adf",
|
||||
"rawBytes": 38624,
|
||||
"gzipBytes": 12991,
|
||||
"path": "houseplan-assets/iso-scene-render-g9xHPjp_.js",
|
||||
"sha256": "b5e735187316eb90d03cb15fa0be410e4fbc4ac33f6a136a26550b51c1aff0cc",
|
||||
"rawBytes": 39155,
|
||||
"gzipBytes": 13158,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-DRs1XnYD.js",
|
||||
"sha256": "3711d46bde62f35f442c533636dcdb7537bc5dc92543a7d00d838863d9de2761",
|
||||
"path": "houseplan-assets/live-interaction-runtime-CyQxloWi.js",
|
||||
"sha256": "fb0eb86f30888be5b7a6195f9e859a4699e586bfb92022fa5034ea3a7f78e211",
|
||||
"rawBytes": 5196,
|
||||
"gzipBytes": 2126,
|
||||
"gzipBytes": 2132,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-B57KUPs-.js",
|
||||
"sha256": "85972f43272f2fdc1a0418e194c043058e10ac2345df11f48086cf1ac7bddc0a",
|
||||
"path": "houseplan-assets/zigbee-topology-JXmE6aR5.js",
|
||||
"sha256": "32e5502d35a8a7a047d5f71d61a59973def884f57ea1e0fe33eb0dc7a0d85b91",
|
||||
"rawBytes": 18961,
|
||||
"gzipBytes": 7424,
|
||||
"gzipBytes": 7433,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-DiqBbQFN.js",
|
||||
"sha256": "6c58e5ae7bed6438533ac3cb044c6a673b2d83cffc9dce7f3ca379c7d993e5ee",
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-0P-Eew_a.js",
|
||||
"sha256": "ba38636133b97164390d9b9cf0fa6ab82daa1e743fb3e3036ed5dbfe9f506f82",
|
||||
"rawBytes": 3941,
|
||||
"gzipBytes": 1763,
|
||||
"gzipBytes": 1766,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "6c1a731a6d72a280de13216441bc07ccf11b700f0b5d0ed50ffd1359b7f32985",
|
||||
"sha256": "e576b22fca90fb45429bf9e2917ae34f39df225cf19ee12b125bb418cc3da1e7",
|
||||
"rawBytes": 1183,
|
||||
"gzipBytes": 795,
|
||||
"gzipBytes": 798,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
}
|
||||
|
||||
+7
-7
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded";import{t as e,l as o,x as t,dK as s,A as a,dL as i,dM as l,dN as n,dJ as r,b as c}from"./houseplan-card-8pockzXw.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__="311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d";import{t as e,l as o,x as t,dK as s,A as a,dL as i,dM as l,dN as n,dJ as r,b as c}from"./houseplan-card-WIWCFzO4.js";class h extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,h={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},f=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
|
||||
.hass=${this.hass}
|
||||
.data=${this._formData}
|
||||
.schema=${e}
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded";import{dH as r,dI as t,dJ as e}from"./houseplan-card-8pockzXw.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};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d";import{dH as r,dI as t,dJ as e}from"./houseplan-card-WIWCFzO4.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
+3
-3
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded";import{n as t,b as n}from"./zigbee-topology-B57KUPs-.js";import{F as e}from"./houseplan-card-8pockzXw.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function p(t){if(!0!==t?.user?.is_admin)throw a("permission")}function f(n){const e=i(n);return e?c(e,"zha",async()=>{if(p(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function m(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function g(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(p(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,f=null,g=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,g=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const p=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&f?.(n):c&&g?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await m(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await m(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{f as readZhaTopology,g as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d";import{n as t,b as n}from"./zigbee-topology-JXmE6aR5.js";import{F as e}from"./houseplan-card-WIWCFzO4.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function p(t){if(!0!==t?.user?.is_admin)throw a("permission")}function f(n){const e=i(n);return e?c(e,"zha",async()=>{if(p(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function m(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function g(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(p(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,f=null,g=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,g=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const p=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&f?.(n):c&&g?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await m(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await m(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{f as readZhaTopology,g as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded";try{await import("./houseplan-assets/houseplan-card-8pockzXw.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 entry: the main chunk is unavailable",e)}
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d";try{await import("./houseplan-assets/houseplan-card-WIWCFzO4.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 entry: the main chunk is unavailable",e)}
|
||||
|
||||
Vendored
+101
-101
@@ -1,215 +1,215 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"fingerprint": "54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded",
|
||||
"fingerprint": "311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d",
|
||||
"entry": "houseplan-card.js",
|
||||
"initialViewFiles": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"houseplan-card.js"
|
||||
],
|
||||
"initialViewGzipBytes": 299658,
|
||||
"initialViewGzipBytes": 299675,
|
||||
"lazyFiles": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/de-B75KTGu7.js",
|
||||
"houseplan-assets/editor-BgMFJMxG.js",
|
||||
"houseplan-assets/fr-CM3l8iJQ.js",
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-l0nvSIob.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Ck1vlrhh.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DMcMRMZk.js",
|
||||
"houseplan-assets/iso-scene-render-ATwN0k5w.js",
|
||||
"houseplan-assets/live-interaction-runtime-DRs1XnYD.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-DiqBbQFN.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/de-B7OsBKRG.js",
|
||||
"houseplan-assets/editor-CMvfWrdM.js",
|
||||
"houseplan-assets/fr-B944dDmR.js",
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Q2v_qR5l.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-B_cNSkXz.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DhJVKuF6.js",
|
||||
"houseplan-assets/iso-scene-render-g9xHPjp_.js",
|
||||
"houseplan-assets/live-interaction-runtime-CyQxloWi.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-0P-Eew_a.js"
|
||||
],
|
||||
"lazyGzipBytes": 264591,
|
||||
"lazyGzipBytes": 264827,
|
||||
"lazyEditorFiles": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/editor-BgMFJMxG.js",
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-l0nvSIob.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/editor-CMvfWrdM.js",
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Q2v_qR5l.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js"
|
||||
],
|
||||
"lazyEditorGzipBytes": 186874,
|
||||
"lazyEditorGzipBytes": 186898,
|
||||
"lazyOnboardingFiles": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Ck1vlrhh.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-B_cNSkXz.js"
|
||||
],
|
||||
"lazyOnboardingGzipBytes": 14322,
|
||||
"lazyOnboardingGzipBytes": 14330,
|
||||
"lazyLocaleFiles": [
|
||||
"houseplan-assets/de-B75KTGu7.js",
|
||||
"houseplan-assets/fr-CM3l8iJQ.js"
|
||||
"houseplan-assets/de-B7OsBKRG.js",
|
||||
"houseplan-assets/fr-B944dDmR.js"
|
||||
],
|
||||
"lazyLocaleGzipBytes": 50140,
|
||||
"lazyLocaleGzipBytes": 50168,
|
||||
"lazyIsometricFiles": [
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/iso-scene-render-ATwN0k5w.js"
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/iso-scene-render-g9xHPjp_.js"
|
||||
],
|
||||
"lazyIsometricGzipBytes": 13361,
|
||||
"lazyIsometricGzipBytes": 13530,
|
||||
"files": [
|
||||
{
|
||||
"path": "houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"sha256": "2096b469d7c865497b6252b77d14853eb871e5dff61dbdc16c5ca097ddd3c9c5",
|
||||
"path": "houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"sha256": "14cb4cee73d5b3c3a1555b176bc27d8597ce77affcaf7b9c0c49fe637db44547",
|
||||
"rawBytes": 21592,
|
||||
"gzipBytes": 7355,
|
||||
"gzipBytes": 7359,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/de-B75KTGu7.js",
|
||||
"sha256": "68c370289e919891e17419be3de574ecb83f4bd1f8159b3edd482f9c8c69cfdc",
|
||||
"path": "houseplan-assets/de-B7OsBKRG.js",
|
||||
"sha256": "922d3c168f9da0e77608f8778b80b72dc483479006670cb4fec4604c47fac306",
|
||||
"rawBytes": 84232,
|
||||
"gzipBytes": 25347,
|
||||
"gzipBytes": 25361,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/editor-BgMFJMxG.js",
|
||||
"sha256": "d54c18a937caae418fd08f6b17fed60032629f49833aa9521bd9ee71a2c4ab95",
|
||||
"path": "houseplan-assets/editor-CMvfWrdM.js",
|
||||
"sha256": "a569960cab703c3e681266c4d553d41ace8e495ac95e66da0567cc970285d07d",
|
||||
"rawBytes": 3837,
|
||||
"gzipBytes": 1587,
|
||||
"gzipBytes": 1591,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/fr-CM3l8iJQ.js",
|
||||
"sha256": "df7e3e6ceff3500bc6de9d8357967d9e135dc4755818f54c9f400bafec997c00",
|
||||
"path": "houseplan-assets/fr-B944dDmR.js",
|
||||
"sha256": "7c77823eb4600f8ea51099bcf655092c4a5e5a3ce7157567b197ad06542585d3",
|
||||
"rawBytes": 86273,
|
||||
"gzipBytes": 24793,
|
||||
"gzipBytes": 24807,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/guard-DhWVu6ch.js",
|
||||
"sha256": "eaf759e81a09a5c9bb8eb9792c81836975baa6dd700857a9574175088ab1fca3",
|
||||
"path": "houseplan-assets/guard-Dcsyag2i.js",
|
||||
"sha256": "fa1e3c8a2bd50b2918b71c93a7f62efdf2c9aec79cd40dbef490d13b406904b6",
|
||||
"rawBytes": 518,
|
||||
"gzipBytes": 370,
|
||||
"gzipBytes": 372,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"sha256": "b9660fea77978f99875ae324b1950905e1a98805c353d9b6b5729a3734c56040",
|
||||
"path": "houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"sha256": "a862bca7204a6d541b56dd2254320f79fbef7cbddf7ea85890c687afdadd61b2",
|
||||
"rawBytes": 1072739,
|
||||
"gzipBytes": 298863,
|
||||
"gzipBytes": 298877,
|
||||
"isEntry": false,
|
||||
"imports": [],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/de-B75KTGu7.js",
|
||||
"houseplan-assets/editor-BgMFJMxG.js",
|
||||
"houseplan-assets/fr-CM3l8iJQ.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-l0nvSIob.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-Ck1vlrhh.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DMcMRMZk.js",
|
||||
"houseplan-assets/iso-scene-render-ATwN0k5w.js",
|
||||
"houseplan-assets/live-interaction-runtime-DRs1XnYD.js"
|
||||
"houseplan-assets/de-B7OsBKRG.js",
|
||||
"houseplan-assets/editor-CMvfWrdM.js",
|
||||
"houseplan-assets/fr-B944dDmR.js",
|
||||
"houseplan-assets/houseplan-editor-runtime-Q2v_qR5l.js",
|
||||
"houseplan-assets/houseplan-onboarding-runtime-B_cNSkXz.js",
|
||||
"houseplan-assets/hp-zigbee-topology-overlay-DhJVKuF6.js",
|
||||
"houseplan-assets/iso-scene-render-g9xHPjp_.js",
|
||||
"houseplan-assets/live-interaction-runtime-CyQxloWi.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-l0nvSIob.js",
|
||||
"sha256": "3b3e22f68bf91e1a47782588ce77aef5d02f128de193bac8de87cf325ff94678",
|
||||
"path": "houseplan-assets/houseplan-editor-runtime-Q2v_qR5l.js",
|
||||
"sha256": "b4a077b76e68ff9618794a304213f64bae64f4c74c67cfa5a6bf60c869f0f18b",
|
||||
"rawBytes": 639230,
|
||||
"gzipBytes": 170138,
|
||||
"gzipBytes": 170143,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"houseplan-assets/zigbee-topology-runtime-DiqBbQFN.js"
|
||||
"houseplan-assets/zigbee-topology-runtime-0P-Eew_a.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-Ck1vlrhh.js",
|
||||
"sha256": "1aa4864a948bf657a8b750966ba0343664338741835a00e9f757539a5db0fa91",
|
||||
"path": "houseplan-assets/houseplan-onboarding-runtime-B_cNSkXz.js",
|
||||
"sha256": "f8df34ac206febf3a6c794b9505c1e65dc805643c3d0e9655b26c7aca41af5c2",
|
||||
"rawBytes": 28071,
|
||||
"gzipBytes": 6967,
|
||||
"gzipBytes": 6971,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/backdrop-pick-DRGiAPNC.js",
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/backdrop-pick-C7HEc4Nv.js",
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DMcMRMZk.js",
|
||||
"sha256": "0ace9347518e86b594677745e490620bc1d1178130223e0255e6b58cf78ea7a2",
|
||||
"path": "houseplan-assets/hp-zigbee-topology-overlay-DhJVKuF6.js",
|
||||
"sha256": "a65a8c506782a95fa098f0be9e3caca92688e3c8a6f7ccef192ffc97a2b77b4a",
|
||||
"rawBytes": 11034,
|
||||
"gzipBytes": 3730,
|
||||
"gzipBytes": 3734,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-DiqBbQFN.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js",
|
||||
"houseplan-assets/zigbee-topology-runtime-0P-Eew_a.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/iso-scene-render-ATwN0k5w.js",
|
||||
"sha256": "994dcfa59d259e4cdc335318d7f700e351bc67e04cd0b5dd32dc712b54c12adf",
|
||||
"rawBytes": 38624,
|
||||
"gzipBytes": 12991,
|
||||
"path": "houseplan-assets/iso-scene-render-g9xHPjp_.js",
|
||||
"sha256": "b5e735187316eb90d03cb15fa0be410e4fbc4ac33f6a136a26550b51c1aff0cc",
|
||||
"rawBytes": 39155,
|
||||
"gzipBytes": 13158,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/guard-DhWVu6ch.js",
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/guard-Dcsyag2i.js",
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/live-interaction-runtime-DRs1XnYD.js",
|
||||
"sha256": "3711d46bde62f35f442c533636dcdb7537bc5dc92543a7d00d838863d9de2761",
|
||||
"path": "houseplan-assets/live-interaction-runtime-CyQxloWi.js",
|
||||
"sha256": "fb0eb86f30888be5b7a6195f9e859a4699e586bfb92022fa5034ea3a7f78e211",
|
||||
"rawBytes": 5196,
|
||||
"gzipBytes": 2126,
|
||||
"gzipBytes": 2132,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-B57KUPs-.js",
|
||||
"sha256": "85972f43272f2fdc1a0418e194c043058e10ac2345df11f48086cf1ac7bddc0a",
|
||||
"path": "houseplan-assets/zigbee-topology-JXmE6aR5.js",
|
||||
"sha256": "32e5502d35a8a7a047d5f71d61a59973def884f57ea1e0fe33eb0dc7a0d85b91",
|
||||
"rawBytes": 18961,
|
||||
"gzipBytes": 7424,
|
||||
"gzipBytes": 7433,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-DiqBbQFN.js",
|
||||
"sha256": "6c58e5ae7bed6438533ac3cb044c6a673b2d83cffc9dce7f3ca379c7d993e5ee",
|
||||
"path": "houseplan-assets/zigbee-topology-runtime-0P-Eew_a.js",
|
||||
"sha256": "ba38636133b97164390d9b9cf0fa6ab82daa1e743fb3e3036ed5dbfe9f506f82",
|
||||
"rawBytes": 3941,
|
||||
"gzipBytes": 1763,
|
||||
"gzipBytes": 1766,
|
||||
"isEntry": false,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js",
|
||||
"houseplan-assets/zigbee-topology-B57KUPs-.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js",
|
||||
"houseplan-assets/zigbee-topology-JXmE6aR5.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
},
|
||||
{
|
||||
"path": "houseplan-card.js",
|
||||
"sha256": "6c1a731a6d72a280de13216441bc07ccf11b700f0b5d0ed50ffd1359b7f32985",
|
||||
"sha256": "e576b22fca90fb45429bf9e2917ae34f39df225cf19ee12b125bb418cc3da1e7",
|
||||
"rawBytes": 1183,
|
||||
"gzipBytes": 795,
|
||||
"gzipBytes": 798,
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"houseplan-assets/houseplan-card-8pockzXw.js"
|
||||
"houseplan-assets/houseplan-card-WIWCFzO4.js"
|
||||
],
|
||||
"dynamicImports": []
|
||||
}
|
||||
|
||||
Vendored
+7
-7
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,4 +1,4 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded";import{t as e,l as o,x as t,dK as s,A as a,dL as i,dM as l,dN as n,dJ as r,b as c}from"./houseplan-card-8pockzXw.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__="311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d";import{t as e,l as o,x as t,dK as s,A as a,dL as i,dM as l,dN as n,dJ as r,b as c}from"./houseplan-card-WIWCFzO4.js";class h extends e{constructor(){super(...arguments),this._spaces=null,this._spacesLoading=!1,this._spacesAuthoritative=!1}setConfig(e){this._config=e}async _loadSpaces(){if(!this._spaces&&!this._spacesLoading&&this.hass){this._spacesLoading=!0;try{const e=await this.hass.callWS({type:"houseplan/config/get"});this._spaces=(e?.config?.spaces||[]).map(e=>({value:e.id,label:e.title||e.id})),this._spacesAuthoritative=!0}catch{this._spaces=[],this._spacesAuthoritative=!1}finally{this._spacesLoading=!1}}}get _lang(){return o(this.hass,this._config?.language)}get _floorToken(){const e=this._config?.floor;return"number"==typeof e?`__houseplan_yaml_floor_index__:${String(e)}`:null}get _formData(){const e={...this._config},o=this._floorToken;return o?e.floor=o:Object.prototype.hasOwnProperty.call(e,"floor")||(e.floor=""),e}get _schema(){const e=this._spaces||[],o=this._lang,a=[{value:"",label:t(o,"editor.floor_none")}],i=this._floorToken;i&&a.push({value:i,label:t(o,"editor.floor_index",{index:String(this._config?.floor)})});const l="string"==typeof this._config?.floor?this._config.floor:"";l&&!e.some(e=>e.value===l)&&a.push({value:l,label:l}),a.push(...e);const n="string"==typeof this._config?.default_floor?this._config.default_floor:"",r=[...e];return n&&!e.some(e=>e.value===n)&&r.unshift({value:n,label:n}),[{name:"title",selector:{text:{}}},{name:"floor",selector:{select:{mode:"dropdown",options:a}}},e.length?{name:"default_floor",selector:{select:{mode:"dropdown",options:r}}}:{name:"default_floor",selector:{text:{}}},{name:"language",selector:{select:{mode:"dropdown",options:s(t(o,"editor.lang_auto"),this._config?.language)}}},{name:"icon_size",selector:{number:{min:1,max:6,step:.1,mode:"box"}}},{name:"show_temperature",selector:{boolean:{}}},{name:"live_states",selector:{boolean:{}}},{name:"show_signal",selector:{boolean:{}}},{name:"kiosk",selector:{boolean:{}}},{name:"cycle",selector:{number:{min:0,max:3600,step:5,mode:"box"}}}]}render(){if(!this.hass||!this._config)return a;const e=i(this,l,o(this.hass,this._config.language));if("cold"===e)return n();if("warm"===e)return r;this._loadSpaces();const s=this._lang,h={title:t(s,"editor.title"),floor:t(s,"editor.floor"),default_floor:t(s,"editor.default_floor"),language:t(s,"editor.language"),icon_size:t(s,"editor.icon_size"),show_temperature:t(s,"editor.show_temperature"),live_states:t(s,"editor.live_states"),show_signal:t(s,"editor.show_signal"),kiosk:t(s,"editor.kiosk"),cycle:t(s,"editor.cycle")},f=this._schema,_=function(e,o,t){if(!t||null===o)return null;const s="string"==typeof e?.default_floor?e.default_floor:"";return!s||o.some(e=>e.value===s)?null:s}(this._config,this._spaces,this._spacesAuthoritative),d=e=>c`<ha-form
|
||||
.hass=${this.hass}
|
||||
.data=${this._formData}
|
||||
.schema=${e}
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded";import{dH as r,dI as t,dJ as e}from"./houseplan-card-8pockzXw.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};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d";import{dH as r,dI as t,dJ as e}from"./houseplan-card-WIWCFzO4.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
+3
-3
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded";import{n as t,b as n}from"./zigbee-topology-B57KUPs-.js";import{F as e}from"./houseplan-card-8pockzXw.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function p(t){if(!0!==t?.user?.is_admin)throw a("permission")}function f(n){const e=i(n);return e?c(e,"zha",async()=>{if(p(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function m(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function g(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(p(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,f=null,g=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,g=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const p=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&f?.(n):c&&g?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await m(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await m(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{f as readZhaTopology,g as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d";import{n as t,b as n}from"./zigbee-topology-JXmE6aR5.js";import{F as e}from"./houseplan-card-WIWCFzO4.js";const o=new WeakMap;function i(t){const n=function(t){const n=t?.connection||t;return!n||"object"!=typeof n&&"function"!=typeof n?null:n}(t);if(!n)return null;let e=o.get(n);return e||(e={revision:0,topologies:[],states:{},listeners:new Set,inflight:new Map},o.set(n,e)),e}function r(t,n,e){t.states={...t.states,[n]:e},function(t){t.revision++;for(const n of t.listeners)n()}(t)}function s(t){const n=t?.code;if("permission"===n||"unsupported"===n||"timeout"===n||"invalid_topic"===n||"invalid_payload"===n)return n;const e=String(t?.message||"").toLowerCase();return e.includes("unauthor")||e.includes("permission")?"permission":e.includes("unknown_command")||e.includes("not found")?"unsupported":"provider"}function a(t){return Object.assign(new Error(t),{code:t})}function c(t,n,e){const o=t.inflight.get(n);if(o)return o;r(t,n,{phase:"loading"});const i=e().then(n=>{if(!n.nodes.length&&n.warnings.some(t=>"invalid_payload"===t.code))throw a("invalid_payload");!function(t,n){t.topologies=[...t.topologies.filter(t=>!(t.provider===n.provider&&t.instanceId===n.instanceId)),n],r(t,"zha"===n.provider?"zha":`z2m:${n.instanceId}`,{phase:"ready",obtainedAt:n.obtainedAt,partial:n.warnings.length>0})}(t,n)}).catch(e=>{r(t,n,{phase:"error",error:s(e)})}).finally(()=>t.inflight.delete(n));return t.inflight.set(n,i),i}function l(t){const n=i(t);return n?{revision:n.revision,topologies:n.topologies,states:n.states}:{revision:0,topologies:[],states:{}}}function u(t,n){const e=i(t);return e?(e.listeners.add(n),()=>e.listeners.delete(n)):()=>{}}function p(t){if(!0!==t?.user?.is_admin)throw a("permission")}function f(n){const e=i(n);return e?c(e,"zha",async()=>{if(p(n),"function"!=typeof n?.callWS)throw a("unsupported");return t(await n.callWS({type:"zha/devices"}))}):Promise.resolve()}function d(t){return null!==t&&"object"==typeof t?t:null}function h(t){const n=d(t),e=n?.payload??t;if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}async function m(t,n){let e;try{return await Promise.race([t,new Promise((t,o)=>{e=globalThis.setTimeout(()=>o(a("timeout")),Math.max(1,n))})])}finally{void 0!==e&&globalThis.clearTimeout(e)}}function g(t,o,r=15e4){const s=i(t);if(!s)return Promise.resolve();const l=e(o);return c(s,`z2m:${l||String(o)}`,async()=>{if(p(t),!l)throw a("invalid_topic");const e=t.connection,o=e?.subscribeMessage;if("function"!=typeof o||"function"!=typeof t?.callService)throw a("unsupported");const i=function(){const t=globalThis.crypto;return"function"==typeof t?.randomUUID?`houseplan-${t.randomUUID()}`:`houseplan-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),s=Date.now()+Math.max(1,r);let c=!1,u=null,f=null,g=null;const y=new Promise(t=>{u=t}),w=new Promise((t,n)=>{f=t,g=n}),b=[];try{const r=await o.call(e,t=>{!0===d(t)?.retain&&h(t)&&u?.()},{type:"mqtt/subscribe",topic:`${l}/bridge/info`});"function"==typeof r&&b.push(r);const p=await o.call(e,t=>{if(!0===d(t)?.retain)return;const n=h(t);null!==n?n&&function(t){const n=d(t),e=n?.transaction??d(n?.data)?.transaction;return"string"==typeof e||"number"==typeof e?String(e):null}(n)===i&&f?.(n):c&&g?.(a("invalid_payload"))},{type:"mqtt/subscribe",topic:`${l}/bridge/response/networkmap`});"function"==typeof p&&b.push(p),await m(y,Math.min(4e3,Math.max(1,s-Date.now()))),c=!0,await t.callService("mqtt","publish",{topic:`${l}/bridge/request/networkmap`,payload:JSON.stringify({type:"raw",routes:!1,transaction:i}),qos:0,retain:!1});const v=await m(w,s-Date.now()),_=d(v)?.status;if(_&&"ok"!==_)throw a("provider");return n(v,l)}finally{for(const t of b)try{t()}catch{}}})}export{f as readZhaTopology,g as refreshZ2mTopology,u as subscribeZigbeeTopology,l as zigbeeTopologyRuntimeSnapshot};
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="54e06ee022f6af3fd2e24c7b0d2da50188dfbd4ad809596d5275a3b471135ded";try{await import("./houseplan-assets/houseplan-card-8pockzXw.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 entry: the main chunk is unavailable",e)}
|
||||
globalThis.__HOUSEPLAN_BUILD_FINGERPRINT__="311257324a0f8b24929827278048876c326f5ac190c5079e54fbd8146e1fe09d";try{await import("./houseplan-assets/houseplan-card-WIWCFzO4.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 entry: the main chunk is unavailable",e)}
|
||||
|
||||
+49
-27
@@ -71,6 +71,8 @@ export interface IsoOverlayPlacementInput extends IsoOverlayOwnerInput {
|
||||
/** Internal scene-builder fast path; arbitrary callers still resolve safely. */
|
||||
ownerAlreadyResolved?: boolean;
|
||||
resolvedOwner?: IsoOverlayOwner | null;
|
||||
/** Internal zoom fast path. The hint is accepted only after an exact safety check. */
|
||||
nudgeHintCss?: number;
|
||||
}
|
||||
|
||||
export interface IsoOverlayTetherGeometry {
|
||||
@@ -440,6 +442,7 @@ export function resolveIsoOverlayPlacement(input: IsoOverlayPlacementInput): Iso
|
||||
|
||||
let distanceCss = 0;
|
||||
let nudgeScene: ScenePoint = [0, 0];
|
||||
let knownNearWallAfter: boolean | null = null;
|
||||
let capped = false;
|
||||
let status: IsoOverlayPlacement['status'] = geometryValid ? 'ok' : 'degraded';
|
||||
let reason: IsoOverlayPlacement['reason'] = geometryValid ? null : 'invalid-wall-geometry';
|
||||
@@ -501,38 +504,57 @@ export function resolveIsoOverlayPlacement(input: IsoOverlayPlacementInput): Iso
|
||||
plateNearSilhouette(plate, bounds, wall, gapUnits,
|
||||
input.wallGeometryValidated === true));
|
||||
};
|
||||
let clearAt: number | null = null;
|
||||
let previous = 0;
|
||||
let ownerBoundary = false;
|
||||
const samples = Math.ceil(searchLimitCss);
|
||||
for (let sample = 1; sample <= samples; sample++) {
|
||||
const candidate = Math.min(searchLimitCss, sample);
|
||||
const ratio = candidate * unitsPerPixel / length;
|
||||
const candidatePlan: PlanPoint = [
|
||||
const hint = input.nudgeHintCss;
|
||||
if (Number.isFinite(hint) && hint! >= 0 && hint! <= searchLimitCss) {
|
||||
const ratio = hint! * unitsPerPixel / length;
|
||||
const hintPlan: PlanPoint = [
|
||||
floorAnchor[0] + (owner.safePoint[0] - floorAnchor[0]) * ratio,
|
||||
floorAnchor[1] + (owner.safePoint[1] - floorAnchor[1]) * ratio,
|
||||
];
|
||||
if (!pathSafeToLimit
|
||||
&& (!ownerRoom || !segmentStrictlyInRoom(floorAnchor, candidatePlan, ownerRoom))) {
|
||||
ownerBoundary = true;
|
||||
break;
|
||||
if ((pathSafeToLimit
|
||||
|| !!ownerRoom && segmentStrictlyInRoom(floorAnchor, hintPlan, ownerRoom))
|
||||
&& !collidesAt(hint!)) {
|
||||
// A wheel step changes only the CSS/scene scale. Reusing the last
|
||||
// distance after proving it still clear avoids another 1 px scan
|
||||
// plus binary search for every raised marker.
|
||||
distanceCss = hint!;
|
||||
knownNearWallAfter = false;
|
||||
}
|
||||
if (!collidesAt(candidate)) { clearAt = candidate; break; }
|
||||
previous = candidate;
|
||||
}
|
||||
if (clearAt !== null) {
|
||||
let low = previous, high = clearAt;
|
||||
for (let iteration = 0; iteration < ISO_OVERLAY_NUDGE_SEARCH_ITERATIONS; iteration++) {
|
||||
const middle = (low + high) / 2;
|
||||
if (collidesAt(middle)) low = middle;
|
||||
else high = middle;
|
||||
if (knownNearWallAfter === null) {
|
||||
let clearAt: number | null = null;
|
||||
let previous = 0;
|
||||
let ownerBoundary = false;
|
||||
const samples = Math.ceil(searchLimitCss);
|
||||
for (let sample = 1; sample <= samples; sample++) {
|
||||
const candidate = Math.min(searchLimitCss, sample);
|
||||
const ratio = candidate * unitsPerPixel / length;
|
||||
const candidatePlan: PlanPoint = [
|
||||
floorAnchor[0] + (owner.safePoint[0] - floorAnchor[0]) * ratio,
|
||||
floorAnchor[1] + (owner.safePoint[1] - floorAnchor[1]) * ratio,
|
||||
];
|
||||
if (!pathSafeToLimit
|
||||
&& (!ownerRoom || !segmentStrictlyInRoom(floorAnchor, candidatePlan, ownerRoom))) {
|
||||
ownerBoundary = true;
|
||||
break;
|
||||
}
|
||||
if (!collidesAt(candidate)) { clearAt = candidate; break; }
|
||||
previous = candidate;
|
||||
}
|
||||
if (clearAt !== null) {
|
||||
let low = previous, high = clearAt;
|
||||
for (let iteration = 0; iteration < ISO_OVERLAY_NUDGE_SEARCH_ITERATIONS; iteration++) {
|
||||
const middle = (low + high) / 2;
|
||||
if (collidesAt(middle)) low = middle;
|
||||
else high = middle;
|
||||
}
|
||||
distanceCss = high;
|
||||
} else {
|
||||
distanceCss = previous;
|
||||
capped = true;
|
||||
status = 'degraded';
|
||||
reason = ownerBoundary ? 'owner-boundary' : 'nudge-cap';
|
||||
}
|
||||
distanceCss = high;
|
||||
} else {
|
||||
distanceCss = previous;
|
||||
capped = true;
|
||||
status = 'degraded';
|
||||
reason = ownerBoundary ? 'owner-boundary' : 'nudge-cap';
|
||||
}
|
||||
nudgeScene = [ux * distanceCss * unitsPerPixel, uy * distanceCss * unitsPerPixel];
|
||||
}
|
||||
@@ -542,7 +564,7 @@ export function resolveIsoOverlayPlacement(input: IsoOverlayPlacementInput): Iso
|
||||
const visualScene: ScenePoint = [raisedScene[0] + nudgeScene[0], raisedScene[1] + nudgeScene[1]];
|
||||
const plate = buildIsoPlatePolygon(floorAnchor, input.plateHalfSize,
|
||||
raisedHeight, camera, nudgeScene);
|
||||
const nearWallAfter = geometryValid ? isNear(plate) : true;
|
||||
const nearWallAfter = geometryValid ? knownNearWallAfter ?? isNear(plate) : true;
|
||||
const nudged = distanceCss > EPS;
|
||||
const tetherVisible = nudged || nearWallBefore || nearWallAfter
|
||||
|| !!input.hovered || !!input.focused || !!input.selected;
|
||||
|
||||
+28
-4
@@ -708,7 +708,12 @@ export interface IsoOverlaySceneInput {
|
||||
|
||||
type IsoOverlayRoomRow = { room: RoomCfg; overlayRoom: IsoOverlayRoom };
|
||||
const isoOverlayRoomCache = new WeakMap<readonly RoomCfg[], readonly IsoOverlayRoomRow[]>();
|
||||
type IsoOverlayPlacementCacheEntry = { signature: string; placement: IsoOverlayPlacement };
|
||||
type IsoOverlayPlacementCacheEntry = {
|
||||
signature: string;
|
||||
shapeSignature: string;
|
||||
unitsPerPixel: number;
|
||||
placement: IsoOverlayPlacement;
|
||||
};
|
||||
type IsoOverlayOwnerCacheEntry = { signature: string; owner: IsoOverlayPlacement['owner'] };
|
||||
export const ISO_OVERLAY_PLACEMENT_CACHE_LIMIT = 2048;
|
||||
const isoOverlayPlacementCache = new WeakMap<
|
||||
@@ -797,11 +802,26 @@ export function buildIsoOverlayRenderScene(input: IsoOverlaySceneInput): IsoOver
|
||||
): IsoOverlayPlacement => {
|
||||
const collisionMode = input.resolveCollisions === false ? 'fit' : 'live';
|
||||
const cacheKey = `${collisionMode}\u0000${kind}\u0000${id}`;
|
||||
const signature = [floorAnchor[0], floorAnchor[1], plateHalfSize[0], plateHalfSize[1],
|
||||
preferredRoomId || '', wallHeight, visualOffset, unitsPerPixel,
|
||||
const shapeSignature = [floorAnchor[0], floorAnchor[1], plateHalfSize[0], plateHalfSize[1],
|
||||
preferredRoomId || '', wallHeight, visualOffset,
|
||||
input.layers.shadows ? 1 : 0, selected ? 1 : 0].join('|');
|
||||
const signature = `${shapeSignature}|${unitsPerPixel}`;
|
||||
const cached = lruRead(placements!, cacheKey);
|
||||
if (cached.hit && cached.value.signature === signature) return cached.value.placement;
|
||||
if (cached.hit && cached.value.shapeSignature === shapeSignature
|
||||
&& unitsPerPixel <= cached.value.unitsPerPixel) {
|
||||
const previous = cached.value.placement;
|
||||
const distanceAtNewScale = previous.nudgeDistanceCss
|
||||
* cached.value.unitsPerPixel / unitsPerPixel;
|
||||
// Zooming in only shrinks the required scene-unit safety gap. An
|
||||
// unchanged plate that was clear therefore stays clear; an unchanged
|
||||
// non-near plate stays non-near. Reuse the immutable scene placement so
|
||||
// Lit also keeps the raised SVG subtree. Once its CSS displacement would
|
||||
// exceed the public cap, fall through to the exact resolver.
|
||||
if (!previous.nearWallBefore
|
||||
|| previous.cleared && distanceAtNewScale <= ISO_OVERLAY_MAX_NUDGE_CSS_PX)
|
||||
return previous;
|
||||
}
|
||||
const ownerKey = `${kind}\u0000${id}`;
|
||||
const ownerSignature = [floorAnchor[0], floorAnchor[1], preferredRoomId || ''].join('|');
|
||||
const cachedOwner = lruRead(owners!, ownerKey);
|
||||
@@ -821,6 +841,9 @@ export function buildIsoOverlayRenderScene(input: IsoOverlaySceneInput): IsoOver
|
||||
preferredRoomId,
|
||||
ownerAlreadyResolved: true,
|
||||
resolvedOwner: owner,
|
||||
nudgeHintCss: cached.hit && cached.value.shapeSignature === shapeSignature
|
||||
? cached.value.placement.nudgeDistanceCss * cached.value.unitsPerPixel / unitsPerPixel
|
||||
: undefined,
|
||||
showBorders: true,
|
||||
wallSilhouettes: input.resolveCollisions === false ? [] : input.wallSilhouettes,
|
||||
wallGeometryValidated: true,
|
||||
@@ -834,7 +857,8 @@ export function buildIsoOverlayRenderScene(input: IsoOverlaySceneInput): IsoOver
|
||||
hovered: true,
|
||||
selected,
|
||||
});
|
||||
lruWrite(placements!, cacheKey, { signature, placement }, ISO_OVERLAY_PLACEMENT_CACHE_LIMIT);
|
||||
lruWrite(placements!, cacheKey, { signature, shapeSignature, unitsPerPixel, placement },
|
||||
ISO_OVERLAY_PLACEMENT_CACHE_LIMIT);
|
||||
return placement;
|
||||
};
|
||||
|
||||
|
||||
@@ -173,7 +173,10 @@ test('wall-aware nudge is deterministic, minimal, inward and never changes the f
|
||||
};
|
||||
const first = placement(input);
|
||||
const second = placement(input);
|
||||
const hinted = placement({ ...input, nudgeHintCss: first.nudgeDistanceCss });
|
||||
assert.deepEqual(second, first, 'identical structural and viewport inputs are stable');
|
||||
assert.deepEqual(hinted, first,
|
||||
'a cached CSS-distance hint is accepted only when the exact wall test proves it clear');
|
||||
assert.deepEqual(first.floorAnchor, [5, 50]);
|
||||
assert.deepEqual(first.floorScene, projectPlanPoint([5, 50], 0));
|
||||
assert.equal(first.nearWallBefore, true);
|
||||
|
||||
@@ -345,7 +345,7 @@ test('Stage 3 reuses pure overlay placements and fit probes skip collision searc
|
||||
rooms: [owner], wall_segments: [], room_drafts: [], partitions: [], wall_columns: [],
|
||||
};
|
||||
const wallSilhouettes = [{
|
||||
outer: buildIsoPlatePolygon([50, 50], [8, 60], ISO_WALL_HEIGHT),
|
||||
outer: buildIsoPlatePolygon([0, 50], [4, 60], ISO_WALL_HEIGHT),
|
||||
}];
|
||||
const input = {
|
||||
space,
|
||||
@@ -362,7 +362,7 @@ test('Stage 3 reuses pure overlay placements and fit probes skip collision searc
|
||||
kioskIconScale: 1,
|
||||
kioskFontScale: 1,
|
||||
stageSize: { width: 100, height: 100 },
|
||||
positionOf: () => ({ x: 50, y: 50 }),
|
||||
positionOf: () => ({ x: 5, y: 50 }),
|
||||
presentationOf: () => ({
|
||||
scale: 1, valueText: null, valueFullText: '', valueBadge: null,
|
||||
tempText: null, humText: null, lqiText: null,
|
||||
@@ -380,6 +380,13 @@ test('Stage 3 reuses pure overlay placements and fit probes skip collision searc
|
||||
assert.strictEqual(repeated.devices.get('device'), live.devices.get('device'),
|
||||
'unchanged HA/render passes reuse the exact pure placement result');
|
||||
assert.equal(live.devices.get('device')?.nearWallBefore, true);
|
||||
assert.equal(live.devices.get('device')?.cleared, true);
|
||||
|
||||
const zoomedIn = buildIsoOverlayRenderScene({
|
||||
...input, view: { x: 0, y: 0, w: 80, h: 80 },
|
||||
});
|
||||
assert.strictEqual(zoomedIn, live,
|
||||
'zooming in reuses a previously proved-safe immutable scene placement');
|
||||
|
||||
const fit = buildIsoOverlayRenderScene({ ...input, resolveCollisions: false });
|
||||
assert.equal(fit.devices.get('device')?.nearWallBefore, false,
|
||||
|
||||
Reference in New Issue
Block a user