zigbee2mqtt-windfront 1.5.2 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/dist/assets/{About-guM5jIIL.js → About-DUcioXxf.js} +2 -2
- package/dist/assets/About-DUcioXxf.js.br +0 -0
- package/dist/assets/Availability-Dv4Ph0Ye.js +1 -0
- package/dist/assets/Availability-Dv4Ph0Ye.js.br +0 -0
- package/dist/assets/Bind-CZsitKJf.js +1 -0
- package/dist/assets/Bind-CZsitKJf.js.br +0 -0
- package/dist/assets/Bridge-BBUz-kJW.js +1 -0
- package/dist/assets/Bridge-BBUz-kJW.js.br +0 -0
- package/dist/assets/{CheckboxField-DnsgrtmM.js → CheckboxField-Dx2QxjzC.js} +1 -1
- package/dist/assets/CheckboxField-Dx2QxjzC.js.br +0 -0
- package/dist/assets/{ClusterSinglePicker-DlPNbPK2.js → ClusterSinglePicker-DNRhvOBp.js} +1 -1
- package/dist/assets/ClusterSinglePicker-DNRhvOBp.js.br +0 -0
- package/dist/assets/{Clusters-CJHqlXOr.js → Clusters-BE_4RC5f.js} +1 -1
- package/dist/assets/Clusters-BE_4RC5f.js.br +0 -0
- package/dist/assets/Dashboard-D7evBMoe.js +1 -0
- package/dist/assets/Dashboard-D7evBMoe.js.br +0 -0
- package/dist/assets/{DashboardFeatureWrapper-BV-EJkYu.js → DashboardFeatureWrapper-BCosdUvy.js} +1 -1
- package/dist/assets/DashboardFeatureWrapper-BCosdUvy.js.br +0 -0
- package/dist/assets/{DebouncedInput-BbusN73N.js → DebouncedInput-Z7O3YrBh.js} +1 -1
- package/dist/assets/DebouncedInput-Z7O3YrBh.js.br +0 -0
- package/dist/assets/DevConsole-C81rFSZS.js +20 -0
- package/dist/assets/DevConsole-C81rFSZS.js.br +0 -0
- package/dist/assets/{DevConsole-CdaQK61e.js → DevConsole-CZhPDzNO.js} +1 -1
- package/dist/assets/DevConsole-CZhPDzNO.js.br +0 -0
- package/dist/assets/DeviceCard-DCId-Vs8.js +1 -0
- package/dist/assets/DeviceCard-DCId-Vs8.js.br +5 -0
- package/dist/assets/{DeviceControlEditName-CW6kAJai.js → DeviceControlEditName-BxC1B1Qj.js} +1 -1
- package/dist/assets/DeviceControlEditName-BxC1B1Qj.js.br +0 -0
- package/dist/assets/DeviceImage-BGLcF_MT.js +1 -0
- package/dist/assets/DeviceImage-BGLcF_MT.js.br +0 -0
- package/dist/assets/{DeviceInfo-DfhI34CI.js → DeviceInfo-CZRw9zfL.js} +2 -2
- package/dist/assets/DeviceInfo-CZRw9zfL.js.br +0 -0
- package/dist/assets/DevicePage-Bm-xmwWe.js +2 -0
- package/dist/assets/DevicePage-Bm-xmwWe.js.br +0 -0
- package/dist/assets/{DevicePicker-BPQGOPp-.js → DevicePicker-xS0T9qul.js} +1 -1
- package/dist/assets/DevicePicker-xS0T9qul.js.br +0 -0
- package/dist/assets/{DeviceSettings-DXxqeQBJ.js → DeviceSettings-IoZbTphm.js} +1 -1
- package/dist/assets/DeviceSettings-IoZbTphm.js.br +0 -0
- package/dist/assets/{DeviceSpecificSettings-BThCFadV.js → DeviceSpecificSettings-CHDH7O4h.js} +1 -1
- package/dist/assets/DeviceSpecificSettings-CHDH7O4h.js.br +0 -0
- package/dist/assets/Devices-CG9ex5aM.js +1 -0
- package/dist/assets/Devices-CG9ex5aM.js.br +0 -0
- package/dist/assets/{DevicesPage-B5NXgkRE.js → DevicesPage-CVqifZXT.js} +1 -1
- package/dist/assets/DevicesPage-CVqifZXT.js.br +0 -0
- package/dist/assets/{DisplayValue-DKwqD83w.js → DisplayValue-C55voi8G.js} +1 -1
- package/dist/assets/DisplayValue-C55voi8G.js.br +0 -0
- package/dist/assets/{Donate-nv8pXVg4.js → Donate-9qZhLZau.js} +1 -1
- package/dist/assets/Donate-9qZhLZau.js.br +0 -0
- package/dist/assets/{EndpointPicker-wR5nrVyy.js → EndpointPicker-DuGNCPo-.js} +1 -1
- package/dist/assets/EndpointPicker-DuGNCPo-.js.br +1 -0
- package/dist/assets/{Exposes-Cndo2Hi0.js → Exposes-Bbzl-29y.js} +1 -1
- package/dist/assets/Exposes-Bbzl-29y.js.br +2 -0
- package/dist/assets/Feature-BZc2FS2v.js +1 -0
- package/dist/assets/Feature-BZc2FS2v.js.br +0 -0
- package/dist/assets/Frontend-BnyqZoL6.js +1 -0
- package/dist/assets/Frontend-BnyqZoL6.js.br +0 -0
- package/dist/assets/GroupPage-DA95yJf-.js +2 -0
- package/dist/assets/GroupPage-DA95yJf-.js.br +0 -0
- package/dist/assets/{GroupSettings-CFgdJ-vx.js → GroupSettings-Bmjsrlz9.js} +1 -1
- package/dist/assets/GroupSettings-Bmjsrlz9.js.br +0 -0
- package/dist/assets/{Groups-PKw32Dqb.js → Groups-Dnuylsi8.js} +1 -1
- package/dist/assets/Groups-Dnuylsi8.js.br +0 -0
- package/dist/assets/{GroupsPage-BM9MSx3r.js → GroupsPage-DphLoexz.js} +1 -1
- package/dist/assets/GroupsPage-DphLoexz.js.br +0 -0
- package/dist/assets/{Health-BTbkKEto.js → Health-k9TFUygX.js} +1 -1
- package/dist/assets/Health-k9TFUygX.js.br +0 -0
- package/dist/assets/HomePage-CK6NM-T-.js +1 -0
- package/dist/assets/HomePage-CK6NM-T-.js.br +0 -0
- package/dist/assets/{InputField-D8fYIAZ2.js → InputField-CUhAi55r.js} +1 -1
- package/dist/assets/InputField-CUhAi55r.js.br +3 -0
- package/dist/assets/{Json-C6OVoNML.js → Json-CSdW868a.js} +1 -1
- package/dist/assets/Json-CSdW868a.js.br +0 -0
- package/dist/assets/{LastSeen-kmLjgf_4.js → LastSeen-BWjXmUSJ.js} +1 -1
- package/dist/assets/LastSeen-BWjXmUSJ.js.br +0 -0
- package/dist/assets/{LogsPage-Dv7tRxMp.js → LogsPage-3OuRzpPD.js} +1 -1
- package/dist/assets/LogsPage-3OuRzpPD.js.br +0 -0
- package/dist/assets/Lqi-CkhLMJ19.js +1 -0
- package/dist/assets/Lqi-CkhLMJ19.js.br +0 -0
- package/dist/assets/NetworkPage-D5gqpXsU.js +2 -0
- package/dist/assets/NetworkPage-D5gqpXsU.js.br +0 -0
- package/dist/assets/{NumberField-iJErwbzA.js → NumberField-Bu5IU0l2.js} +1 -1
- package/dist/assets/NumberField-Bu5IU0l2.js.br +0 -0
- package/dist/assets/{OtaPage-D9JG90cZ.js → OtaPage-r9Gto8-D.js} +1 -1
- package/dist/assets/OtaPage-r9Gto8-D.js.br +0 -0
- package/dist/assets/{PowerSource-DgbKMgpx.js → PowerSource-BV6oqaaB.js} +1 -1
- package/dist/assets/PowerSource-BV6oqaaB.js.br +0 -0
- package/dist/assets/{RawNetworkData-CxfFhrfx.js → RawNetworkData-DAbMk6t_.js} +9 -9
- package/dist/assets/RawNetworkData-DAbMk6t_.js.br +0 -0
- package/dist/assets/RawNetworkMap-DcUDlHgQ.js +4257 -0
- package/dist/assets/RawNetworkMap-DcUDlHgQ.js.br +0 -0
- package/dist/assets/RecallRemove-CrxvayYk.js +1 -0
- package/dist/assets/RecallRemove-CrxvayYk.js.br +0 -0
- package/dist/assets/Reporting-VXUgdiP4.js +1 -0
- package/dist/assets/Reporting-VXUgdiP4.js.br +0 -0
- package/dist/assets/Scene-BwaNCcX2.js +1 -0
- package/dist/assets/Scene-BwaNCcX2.js.br +0 -0
- package/dist/assets/{SelectField-CwoktH0d.js → SelectField-Ca16rphE.js} +1 -1
- package/dist/assets/SelectField-Ca16rphE.js.br +0 -0
- package/dist/assets/{Settings-BcaEyteR.js → Settings-VzG6rJhJ.js} +1 -1
- package/dist/assets/Settings-VzG6rJhJ.js.br +0 -0
- package/dist/assets/{SettingsList-C3vSq4jP.js → SettingsList-FVZvadEn.js} +1 -1
- package/dist/assets/SettingsList-FVZvadEn.js.br +0 -0
- package/dist/assets/{SettingsPage-ChO0o-ok.js → SettingsPage-CyWJ3spU.js} +2 -2
- package/dist/assets/SettingsPage-CyWJ3spU.js.br +0 -0
- package/dist/assets/State-khkziclY.js +1 -0
- package/dist/assets/State-khkziclY.js.br +0 -0
- package/dist/assets/{Table-D8Gdn1uG.js → Table-7bVWMaUR.js} +1 -1
- package/dist/assets/Table-7bVWMaUR.js.br +0 -0
- package/dist/assets/{TextareaField-Busy2yTR.js → TextareaField-DP_hdh3q.js} +1 -1
- package/dist/assets/TextareaField-DP_hdh3q.js.br +0 -0
- package/dist/assets/{Tools-B3Y0Qd8A.js → Tools-CvTVTFeR.js} +1 -1
- package/dist/assets/Tools-CvTVTFeR.js.br +0 -0
- package/dist/assets/TouchlinkPage-CFVn2b5R.js +1 -0
- package/dist/assets/TouchlinkPage-CFVn2b5R.js.br +0 -0
- package/dist/assets/{VendorLink-KoryP9lw.js → VendorLink-CH3XJ5NJ.js} +1 -1
- package/dist/assets/VendorLink-CH3XJ5NJ.js.br +0 -0
- package/dist/assets/{_createCompounder-Db7SjIIq.js → _createCompounder-DOVBRgWx.js} +1 -1
- package/dist/assets/_createCompounder-DOVBRgWx.js.br +0 -0
- package/dist/assets/apple-touch-icon-TxoCylrI.png +0 -0
- package/dist/assets/envs-CRUy-_iG.js +1 -0
- package/dist/assets/favicon-96x96-BP9bzx2f.png +0 -0
- package/dist/assets/favicon-C0HgnjBI.ico +0 -0
- package/dist/assets/favicon-D2_AfdO8.svg +3 -0
- package/dist/assets/favicon-D2_AfdO8.svg.br +0 -0
- package/dist/assets/{format-CsVfcRLB.js → format-B4QuVfKv.js} +1 -1
- package/dist/assets/format-B4QuVfKv.js.br +1 -0
- package/dist/assets/index-BccmZcnH.js +645 -0
- package/dist/assets/index-BccmZcnH.js.br +0 -0
- package/dist/assets/{index-DajxErfA.js → index-DTwwc0px.js} +1 -1
- package/dist/assets/index-DTwwc0px.js.br +0 -0
- package/dist/assets/{index-DGcjwAm-.css → index-LLsrh-Ne.css} +1 -1
- package/dist/assets/index-LLsrh-Ne.css.br +0 -0
- package/dist/assets/{jszip.min-2t6j1PLa.js → jszip.min-DLJrQ4fd.js} +1 -1
- package/dist/assets/jszip.min-DLJrQ4fd.js.br +0 -0
- package/dist/assets/site-DTEhrq36.webmanifest +21 -0
- package/dist/assets/snakeCase-DyM1sm95.js +1 -0
- package/dist/assets/snakeCase-DyM1sm95.js.br +0 -0
- package/dist/index.html +11 -8
- package/dist/index.html.br +0 -0
- package/package.json +17 -10
- package/dist/assets/About-guM5jIIL.js.br +0 -0
- package/dist/assets/Availability-9y0Errm-.js +0 -1
- package/dist/assets/Availability-9y0Errm-.js.br +0 -0
- package/dist/assets/Bind-Dzsbdj9O.js +0 -1
- package/dist/assets/Bind-Dzsbdj9O.js.br +0 -0
- package/dist/assets/Bridge-DhOd4BAF.js +0 -1
- package/dist/assets/Bridge-DhOd4BAF.js.br +0 -0
- package/dist/assets/CheckboxField-DnsgrtmM.js.br +0 -1
- package/dist/assets/ClusterSinglePicker-DlPNbPK2.js.br +0 -0
- package/dist/assets/Clusters-CJHqlXOr.js.br +0 -0
- package/dist/assets/Dashboard-DrykpWoV.js +0 -1
- package/dist/assets/Dashboard-DrykpWoV.js.br +0 -0
- package/dist/assets/DashboardFeatureWrapper-BV-EJkYu.js.br +0 -0
- package/dist/assets/DebouncedInput-BbusN73N.js.br +0 -0
- package/dist/assets/DevConsole-CdaQK61e.js.br +0 -0
- package/dist/assets/DevConsole-QAj8WJrx.js +0 -20
- package/dist/assets/DevConsole-QAj8WJrx.js.br +0 -0
- package/dist/assets/DeviceCard-BibgHF2R.js +0 -1
- package/dist/assets/DeviceCard-BibgHF2R.js.br +0 -0
- package/dist/assets/DeviceControlEditName-CW6kAJai.js.br +0 -0
- package/dist/assets/DeviceImage-XiUg0NFS.js +0 -1
- package/dist/assets/DeviceImage-XiUg0NFS.js.br +0 -0
- package/dist/assets/DeviceInfo-DfhI34CI.js.br +0 -0
- package/dist/assets/DevicePage-konyOtA_.js +0 -2
- package/dist/assets/DevicePage-konyOtA_.js.br +0 -0
- package/dist/assets/DevicePicker-BPQGOPp-.js.br +0 -0
- package/dist/assets/DeviceSettings-DXxqeQBJ.js.br +0 -0
- package/dist/assets/DeviceSpecificSettings-BThCFadV.js.br +0 -0
- package/dist/assets/Devices-CpkAlK0U.js +0 -1
- package/dist/assets/Devices-CpkAlK0U.js.br +0 -0
- package/dist/assets/DevicesPage-B5NXgkRE.js.br +0 -0
- package/dist/assets/DisplayValue-DKwqD83w.js.br +0 -0
- package/dist/assets/Donate-nv8pXVg4.js.br +0 -0
- package/dist/assets/EndpointPicker-wR5nrVyy.js.br +0 -0
- package/dist/assets/Exposes-Cndo2Hi0.js.br +0 -0
- package/dist/assets/Feature-DRiBEd30.js +0 -1
- package/dist/assets/Feature-DRiBEd30.js.br +0 -0
- package/dist/assets/Frontend-HvSxr47P.js +0 -1
- package/dist/assets/Frontend-HvSxr47P.js.br +0 -0
- package/dist/assets/GroupPage-CB6GFdZU.js +0 -2
- package/dist/assets/GroupPage-CB6GFdZU.js.br +0 -0
- package/dist/assets/GroupSettings-CFgdJ-vx.js.br +0 -0
- package/dist/assets/Groups-PKw32Dqb.js.br +0 -0
- package/dist/assets/GroupsPage-BM9MSx3r.js.br +0 -0
- package/dist/assets/Health-BTbkKEto.js.br +0 -0
- package/dist/assets/HomePage-DAV81oPD.js +0 -1
- package/dist/assets/HomePage-DAV81oPD.js.br +0 -0
- package/dist/assets/InputField-D8fYIAZ2.js.br +0 -0
- package/dist/assets/Json-C6OVoNML.js.br +0 -0
- package/dist/assets/LastSeen-kmLjgf_4.js.br +0 -0
- package/dist/assets/LogsPage-Dv7tRxMp.js.br +0 -0
- package/dist/assets/Lqi-BZ7lW9bx.js +0 -1
- package/dist/assets/Lqi-BZ7lW9bx.js.br +0 -0
- package/dist/assets/NetworkPage-Ln79YwqY.js +0 -2
- package/dist/assets/NetworkPage-Ln79YwqY.js.br +0 -0
- package/dist/assets/NumberField-iJErwbzA.js.br +0 -0
- package/dist/assets/OtaPage-D9JG90cZ.js.br +0 -0
- package/dist/assets/PowerSource-DgbKMgpx.js.br +0 -0
- package/dist/assets/RawNetworkData-CxfFhrfx.js.br +0 -0
- package/dist/assets/RawNetworkMap-CSbVvyka.js +0 -4256
- package/dist/assets/RawNetworkMap-CSbVvyka.js.br +0 -0
- package/dist/assets/RecallRemove-ByrNeUbK.js +0 -1
- package/dist/assets/RecallRemove-ByrNeUbK.js.br +0 -0
- package/dist/assets/Reporting-BKKOgcmJ.js +0 -1
- package/dist/assets/Reporting-BKKOgcmJ.js.br +0 -0
- package/dist/assets/Scene-org1InOA.js +0 -1
- package/dist/assets/Scene-org1InOA.js.br +0 -0
- package/dist/assets/SelectField-CwoktH0d.js.br +0 -0
- package/dist/assets/Settings-BcaEyteR.js.br +0 -0
- package/dist/assets/SettingsList-C3vSq4jP.js.br +0 -0
- package/dist/assets/SettingsPage-ChO0o-ok.js.br +0 -0
- package/dist/assets/State-_uoH9Qaz.js +0 -1
- package/dist/assets/State-_uoH9Qaz.js.br +0 -0
- package/dist/assets/Table-D8Gdn1uG.js.br +0 -0
- package/dist/assets/TextareaField-Busy2yTR.js.br +0 -0
- package/dist/assets/Tools-B3Y0Qd8A.js.br +0 -0
- package/dist/assets/TouchlinkPage-Bg_tWjMg.js +0 -1
- package/dist/assets/TouchlinkPage-Bg_tWjMg.js.br +0 -0
- package/dist/assets/VendorLink-KoryP9lw.js.br +0 -0
- package/dist/assets/_createCompounder-Db7SjIIq.js.br +0 -0
- package/dist/assets/apple-touch-icon-DxTaGN3y.png +0 -0
- package/dist/assets/envs-DFlyG_dH.js +0 -1
- package/dist/assets/favicon-B0wWasf1.ico +0 -0
- package/dist/assets/format-CsVfcRLB.js.br +0 -0
- package/dist/assets/index-B9KSRkAy.js +0 -644
- package/dist/assets/index-B9KSRkAy.js.br +0 -0
- package/dist/assets/index-DGcjwAm-.css.br +0 -0
- package/dist/assets/index-DajxErfA.js.br +0 -0
- package/dist/assets/jszip.min-2t6j1PLa.js.br +0 -0
- package/dist/assets/snakeCase-BsE9z82R.js +0 -1
- package/dist/assets/snakeCase-BsE9z82R.js.br +0 -0
package/README.md
CHANGED
|
@@ -10,11 +10,9 @@ https://github.com/Nerivec/zigbee2mqtt-windfront/wiki
|
|
|
10
10
|
|
|
11
11
|
> Based on https://github.com/nurikk/zigbee2mqtt-frontend
|
|
12
12
|
|
|
13
|
-
> [!IMPORTANT]
|
|
14
|
-
> Currently in beta test!
|
|
15
|
-
|
|
16
13
|

|
|
17
14
|

|
|
15
|
+

|
|
18
16
|

|
|
19
17
|
|
|
20
18
|
### 35 themes offered by the [design library](https://daisyui.com/docs/themes/#list-of-themes)!
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as x,b as v,j as e,L as b,a as h,
|
|
1
|
+
import{r as x,b as v,j as e,L as b,a as h,bX as p,bY as f,bZ as k,b_ as $,b$ as y,c0 as z,c1 as E,aq as u}from"./index-BccmZcnH.js";import{s as S}from"./snakeCase-DyM1sm95.js";import"./envs-CRUy-_iG.js";import"./_createCompounder-DOVBRgWx.js";const R="1.7.0",N={version:R};function m({name:t,data:s}){const r=[],{t:a}=v("stats");for(const n in s){const i=s[n];r.push(e.jsx("li",{children:e.jsxs(b,{to:"#",children:[n,": ",i]})},n))}return e.jsx("li",{children:e.jsxs("details",{children:[e.jsx("summary",{children:a(t)}),e.jsx("ul",{children:r})]})})}const L=x.memo(t=>{const{devices:s}=t,{t:r}=v(["stats","zigbee"]),a=x.useMemo(()=>{const n={},i={},l={},d={};for(const o of s){if(o.type==="Coordinator")continue;const c=r(`zigbee:${o.type}`),g=o.model_id||r("zigbee:unknown"),j=o.manufacturer||r("zigbee:unknown"),_=r(`zigbee:${S(o.power_source||"unknown")}`);n[c]=(n[c]||0)+1,i[_]=(i[_]||0)+1,l[g]=(l[g]||0)+1,d[j]=(d[j]||0)+1}return e.jsxs(e.Fragment,{children:[e.jsx(m,{name:"byType",data:n}),e.jsx(m,{name:"byPowerSource",data:i}),e.jsx(m,{name:"byModel",data:l}),e.jsx(m,{name:"byVendor",data:d})]})},[s,r]);return e.jsxs("ul",{children:[e.jsx("li",{children:e.jsxs(b,{to:"#",children:[r("total")," ",s.length-1]})}),a]})}),w=x.memo(()=>{const{t}=v("zigbee"),s=h(n=>n.bridgeInfo),r=h(n=>n.bridgeHealth),a={labels:"problem",title:"???",body:`<!-- MAKE SURE THIS IS NOT ALREADY POSTED ${u.slice(0,-4)} -->
|
|
2
2
|
|
|
3
3
|
### What happened?
|
|
4
4
|
|
|
@@ -22,4 +22,4 @@ os.load_average: \`${r.os.load_average.join(", ")}\`
|
|
|
22
22
|
os.memory_percent: \`${r.os.memory_percent}\`
|
|
23
23
|
process.memory_percent: \`${r.process.memory_percent}\`
|
|
24
24
|
process.uptime_sec: \`${Math.round(r.process.uptime_sec)}\`
|
|
25
|
-
`),e.jsx(b,{target:"_blank",rel:"noopener noreferrer",to:`${u}?${new URLSearchParams(a).toString()}`,className:"btn btn-ghost",children:t("report_problem")})});function
|
|
25
|
+
`),e.jsx(b,{target:"_blank",rel:"noopener noreferrer",to:`${u}?${new URLSearchParams(a).toString()}`,className:"btn btn-ghost",children:t("report_problem")})});function q(){const{t}=v("settings"),s=h(c=>c.bridgeInfo),r=h(c=>c.devices),n=s.version.match(/^\d+\.\d+\.\d+$/)===null?e.jsx("a",{className:"link link-hover text-secondary",target:"_blank",rel:"noopener noreferrer",href:`${p}dev/`,children:s.version}):e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:`${f}${s.version}`,children:s.version}),i=s.commit?e.jsxs(e.Fragment,{children:["commit:"," ",e.jsx("a",{className:"link",target:"_blank",rel:"noopener noreferrer",href:`${p}${s.commit}`,children:s.commit})]}):null,l=e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:`${E}${N.version}`,children:N.version}),d=e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:`${k}${s.zigbee_herdsman_converters.version}`,children:s.zigbee_herdsman_converters.version}),o=e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:`${$}${s.zigbee_herdsman.version}`,children:s.zigbee_herdsman.version});return e.jsxs("div",{className:"flex flex-col gap-3 items-center",children:[e.jsx(w,{}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("zigbee2mqtt_version")}),e.jsx("div",{className:"stat-value text-lg",children:n}),e.jsx("div",{className:"stat-desc",children:i})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("frontend_version")}),e.jsx("div",{className:"stat-value text-lg",children:l})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("zigbee_herdsman_converters_version")}),e.jsx("div",{className:"stat-value text-lg",children:d})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("zigbee_herdsman_version")}),e.jsx("div",{className:"stat-value text-lg",children:o})]})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("machine")}),e.jsx("div",{className:"stat-value text-lg",children:s.os.version}),e.jsxs("div",{className:"stat-desc",children:["CPU: ",s.os.cpus]}),e.jsxs("div",{className:"stat-desc",children:["RAM: ",s.os.memory_mb," MB"]})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("mqtt")}),e.jsx("div",{className:"stat-value text-lg",children:s.mqtt.server}),e.jsx("div",{className:"stat-desc",children:e.jsxs("a",{href:y,target:"_blank",rel:"noreferrer",className:"link link-hover",children:[t("version"),": ",s.mqtt.version]})})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("node_version")}),e.jsx("div",{className:"stat-value text-lg",children:e.jsx("a",{href:z,target:"_blank",rel:"noreferrer",className:"link link-hover",children:s.os.node_version})})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("coordinator")}),e.jsx("div",{className:"stat-value text-lg",children:s.coordinator.type}),e.jsx("div",{className:"stat-desc",children:e.jsx("span",{className:"badge badge-sm badge-primary",title:t("coordinator_ieee_address"),children:s.coordinator.ieee_address})}),e.jsxs("div",{className:"stat-desc",children:[t("revision"),": ",s.coordinator.meta.revision||t("zigbee:unknown")]})]})]}),e.jsx("ul",{className:"menu bg-base-100 rounded-box shadow min-w-sm",children:e.jsx("li",{children:e.jsxs("details",{open:!0,children:[e.jsx("summary",{children:t("stats")}),e.jsx(L,{devices:r})]})})})]})}export{q as default};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b,ar as m,j as e,T as d,F as l,av as u,e as j,B as f,y as x,z as p,r as h,aw as D}from"./index-BccmZcnH.js";import{D as _,R as w}from"./DeviceControlEditName-BxC1B1Qj.js";function C(i){const{device:a,otaState:t,renameDevice:o,configureDevice:s,interviewDevice:r,removeDevice:v}=i,{t:n}=b(["zigbee","common"]),c=a.interview_state===m.InProgress||a.interview_state===m.Pending||t==="updating";return e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(_,{name:a.friendly_name,renameDevice:o,homeassistantEnabled:i.homeassistantEnabled,style:"btn-outline btn-primary join-item btn-square"}),e.jsx(d,{className:"btn btn-outline btn-warning join-item btn-square",onClick:s,item:a.ieee_address,title:n("reconfigure"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),disabled:c,children:e.jsx(l,{icon:u})}),e.jsx(d,{className:"btn btn-outline btn-info join-item btn-square",onClick:r,item:a.ieee_address,title:n("interview"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),disabled:c,children:e.jsx(l,{icon:j})}),e.jsx(f,{onClick:async()=>await x.show(w,{device:a,removeDevice:v}),className:"btn btn-outline btn-error join-item btn-square",title:n("remove_device"),children:e.jsx(l,{icon:p})})]})}const E=h.memo(i=>{const{t:a}=b("availability"),{availability:t,availabilityFeatureEnabled:o,availabilityEnabledForDevice:s,disabled:r}=i;return r?e.jsx("span",{children:a("disabled")}):s??o?e.jsx("span",{className:t.state==="online"?"text-success":"text-error animate-pulse",children:a(t.state)}):e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:D,children:a("disabled")})});export{E as A,C as D};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as i,j as t,W as R,b as D,ai as I,aj as w,B as y,F as v,h as A,ak as O,a as E}from"./index-BccmZcnH.js";import{D as P}from"./DevicePicker-xS0T9qul.js";import{E as B}from"./EndpointPicker-DuGNCPo-.js";import"./envs-CRUy-_iG.js";import"./SelectField-Ca16rphE.js";const T=i.memo(s=>{const{clusters:n,onChange:l,label:a,value:e,disabled:d}=s,f=i.useCallback(u=>{const{checked:h,name:_}=u.target;let b=[...e];h?b.push(_):b=b.filter(N=>N!==_),l(b)},[l,e]),o=i.useMemo(()=>Array.from(n).sort((u,h)=>u.toString().localeCompare(h.toString())).map(u=>t.jsxs("label",{className:"label",title:u,children:[t.jsx("input",{className:"checkbox",type:"checkbox",checked:e.includes(u),name:u,value:u,onChange:f,disabled:d}),u]},u)),[n,f,e,d]);return t.jsxs("fieldset",{className:"fieldset",children:[a&&t.jsx("legend",{className:"fieldset-legend",children:a}),t.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:o})]})}),F=(s,n,l)=>{const{target:a}=s;return a.type==="group"?l.find(e=>e.id===a.id):n.find(e=>e.ieee_address===a.ieee_address)},U=i.memo(({devices:s,groups:n,device:l,rule:a})=>{const[e,d]=i.useState({rule:a}),{sendMessage:f}=i.useContext(R),{t:o}=D(["common","zigbee"]);i.useEffect(()=>{d({rule:a})},[a]);const u=i.useCallback(r=>{e.rule.source.endpoint=r,d({rule:e.rule})},[e.rule]),h=i.useCallback(r=>{r&&(I(r)?e.rule.target={type:"endpoint",ieee_address:r.ieee_address,endpoint:""}:e.rule.target={type:"group",id:r.id},e.rule.clusters=[],d({rule:e.rule}))},[e.rule]),_=i.useCallback(r=>{e.rule.target.type==="endpoint"&&(e.rule.target.endpoint=r,e.rule.clusters=[],d({rule:e.rule}))},[e.rule]),b=i.useCallback(r=>{e.rule.clusters=r,d({rule:e.rule})},[e.rule]),N=i.useCallback(async r=>{let p="",x;const{target:c}=e.rule;if(c.type==="group"){const m=n.find(C=>C.id===c.id);if(m)p=m.id;else{console.error("Target group does not exist:",c.id);return}}else if(c.type==="endpoint"){const m=s.find(C=>C.ieee_address===c.ieee_address);if(m)p=m.ieee_address,m.type!=="Coordinator"&&(x=c.endpoint);else{console.error("Target device does not exist:",c.ieee_address);return}}const g={from:l.ieee_address,from_endpoint:e.rule.source.endpoint,to:p,to_endpoint:x,clusters:e.rule.clusters};r==="Bind"?await f("bridge/request/device/bind",g):await f("bridge/request/device/unbind",g)},[l,e.rule,f,s,n]),S=i.useMemo(()=>w(l),[l]),j=F(e.rule,s,n),$=i.useMemo(()=>w(j),[j]),M=i.useMemo(()=>{const r=new Set(e.rule.clusters),p=l.endpoints[e.rule.source.endpoint],x=e.rule.target.type==="endpoint"&&e.rule.target.endpoint!=null?j?.endpoints[e.rule.target.endpoint]:void 0,c=e.rule.target.type==="group"||j?.type==="Coordinator";if(p&&(x||c))for(const g of[...p.clusters.input,...p.clusters.output])if(c)r.add(g);else{const m=p.clusters.input.includes(g)&&x?.clusters.output.includes(g),C=p.clusters.output.includes(g)&&x?.clusters.input.includes(g);(m||C||c)&&r.add(g)}return r},[l.endpoints,e,j]),k=i.useMemo(()=>{let r=!1;return e.rule.target.type==="endpoint"?r=!!(e.rule.source.endpoint&&e.rule.target.ieee_address&&e.rule.target.endpoint&&e.rule.clusters.length>0):e.rule.target.type==="group"&&(r=!!(e.rule.source.endpoint&&e.rule.target.id&&e.rule.clusters.length>0)),r},[e]);return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[t.jsx(B,{label:o("source_endpoint"),disabled:!e.rule.isNew,values:S,value:e.rule.source.endpoint,onChange:u}),t.jsx(P,{label:o("destination"),disabled:!e.rule.isNew,value:"ieee_address"in e.rule.target?e.rule.target.ieee_address:e.rule.target.id,devices:s,groups:n,onChange:h}),e.rule.target.type==="endpoint"?t.jsx(B,{label:o("destination_endpoint"),disabled:!e.rule.isNew,values:$,value:e.rule.target.endpoint,onChange:_}):null,t.jsx("div",{className:"grow w-128",children:t.jsx(T,{label:o("clusters"),clusters:M,value:e.rule.clusters,onChange:b})}),t.jsxs("fieldset",{className:"fieldset",children:[t.jsx("legend",{className:"fieldset-legend",children:o("actions")}),t.jsxs("div",{className:"join join-horizontal",children:[t.jsxs(y,{item:"Bind",disabled:!k,title:o("bind"),className:"btn btn-primary join-item",onClick:N,children:[t.jsx(v,{icon:A}),o("bind")," "]}),t.jsxs(y,{item:"Unbind",disabled:e.rule.isNew||!k,title:o("unbind"),className:"btn btn-error join-item",onClick:N,children:[t.jsx(v,{icon:O})," ",o("unbind")]})]})]})]}),t.jsx("div",{className:"divider"})]})}),V=s=>`${s.isNew}-${s.source.endpoint}-${s.source.ieee_address}-${"ieee_address"in s.target?s.target.ieee_address:s.target.id}-${s.clusters.join("-")}`,q=s=>{const n={};for(const l in s.endpoints){const a=s.endpoints[l];for(const e of a.bindings){let d="ieee_address"in e.target?`${e.target.ieee_address}-${e.target.endpoint}`:e.target.id;d=`${d}-${l}`,n[d]?n[d].clusters.push(e.cluster):n[d]={source:{ieee_address:s.ieee_address,endpoint:l},target:e.target,clusters:[e.cluster]}}}return Object.values(n)};function L(s){const{device:n}=s,l=E(o=>o.devices),a=E(o=>o.groups),[e,d]=i.useState({isNew:!0,target:{type:"endpoint",ieee_address:"",endpoint:""},source:{ieee_address:n.ieee_address,endpoint:""},clusters:[]}),f=i.useMemo(()=>q(n),[n]);return i.useEffect(()=>{d({isNew:!0,target:{type:"endpoint",ieee_address:"",endpoint:""},source:{ieee_address:n.ieee_address,endpoint:""},clusters:[]})},[n.ieee_address]),t.jsx("div",{className:"flex flex-col",children:[...f,e].map(o=>t.jsx(U,{rule:o,groups:a,device:n,devices:l},V(o)))})}export{L as default};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as t,j as e}from"./index-BccmZcnH.js";import{J as s}from"./Json-CSdW868a.js";import"./envs-CRUy-_iG.js";function a(){const o=t(r=>r.bridgeInfo);return e.jsx(s,{obj:o})}export{a as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as e}from"./index-
|
|
1
|
+
import{r,j as e}from"./index-BccmZcnH.js";const d=r.memo(s=>{const{label:a,detail:l,onChange:c,...t}=s;return e.jsxs("fieldset",{className:"fieldset",children:[a&&e.jsx("legend",{className:"fieldset-legend",children:a}),l?e.jsxs("label",{className:"label",children:[e.jsx("input",{className:`checkbox${s.required?" validator":""}`,type:"checkbox",onChange:c,...t}),l]}):e.jsx("input",{className:`checkbox${s.required?" validator":""}`,type:"checkbox",onChange:c,...t})]})});export{d as C};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,a as f,b as h,j as o}from"./index-
|
|
1
|
+
import{r as l,a as f,b as h,j as o}from"./index-BccmZcnH.js";import{S as g}from"./SelectField-Ca16rphE.js";const j=l.memo(d=>{const{cluster:s,device:a,onChange:p,label:m,...b}=d,i=f(e=>e.bridgeDefinitions),{t:u}=h("zigbee"),c=l.useMemo(()=>{const e=i.clusters[s];if(e)return e.attributes;const t=i.custom_clusters[a.ieee_address];if(t){const n=t[s];if(n)return n.attributes}return[]},[i,a.ieee_address,s]),r=l.useMemo(()=>{const e=[];for(const t in c)e.push(o.jsx("option",{value:t,children:t},t));return e},[c]);return o.jsxs(g,{name:"attribute_picker",label:m,onChange:e=>p(e.target.value,c[e.target.value]),disabled:r.length===0,...b,children:[o.jsx("option",{value:"",disabled:!0,children:u("select_attribute")}),r]})}),C=l.memo(d=>{const{clusters:s,onChange:a,value:p,label:m,disabled:b,...i}=d,{t:u}=h(["zigbee","common"]),c=l.useMemo(()=>{const r=[];if(Array.isArray(s))for(const e of s){const t=[];for(const n of e.clusters)t.push(o.jsx("option",{value:n,children:n},n));r.push(o.jsx("optgroup",{label:u(e.name),children:t},e.name))}else for(const e of s)r.push(o.jsx("option",{value:e,children:e},e));return r},[s,u]);return o.jsxs(g,{name:"attribute_picker",label:m,value:p,onChange:r=>a(r.target.value),disabled:b,...i,children:[o.jsx("option",{value:"",disabled:!0,children:u("select_cluster")}),c]})});export{j as A,C};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as a,r as u,j as s,F as c,
|
|
1
|
+
import{b as a,r as u,j as s,F as c,al as d,am as x}from"./index-BccmZcnH.js";import"./envs-CRUy-_iG.js";function h({device:t}){const{t:n}=a("zigbee"),o=u.useMemo(()=>{const l=[];for(const r in t.endpoints){const i=t.endpoints[r];l.push(s.jsx("li",{children:s.jsxs("details",{open:!0,children:[s.jsxs("summary",{children:[n("endpoint")," ",r]}),s.jsxs("ul",{children:[s.jsx("li",{children:s.jsxs("details",{children:[s.jsxs("summary",{children:[s.jsx(c,{icon:d})," ",n("output_clusters")]}),s.jsx("ul",{children:i.clusters.output.map(e=>s.jsx("li",{children:s.jsx("span",{className:"cursor-text select-text",children:e})},e))})]})}),s.jsx("li",{children:s.jsxs("details",{children:[s.jsxs("summary",{children:[s.jsx(c,{icon:x})," ",n("input_clusters")]}),s.jsx("ul",{children:i.clusters.input.map(e=>s.jsx("li",{children:s.jsx("span",{className:"cursor-text select-text",children:e})},e))})]})})]})]})},r))}return l},[t.endpoints,n]);return s.jsx("ul",{className:"menu bg-base-100 w-full",children:o})}export{h as default};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as f,r as a,W as A,b as w,s as u,v,w as j,x as S,j as e,B as b,y as N,F as p,z as T,f as F,A as L,C as R,E as k}from"./index-BccmZcnH.js";import{D as I}from"./DashboardFeatureWrapper-BCosdUvy.js";import{D as M}from"./DeviceCard-DCId-Vs8.js";import{D as q,R as B}from"./DeviceControlEditName-BxC1B1Qj.js";import{D as W}from"./DebouncedInput-Z7O3YrBh.js";import"./envs-CRUy-_iG.js";import"./Feature-BZc2FS2v.js";import"./DisplayValue-C55voi8G.js";import"./_createCompounder-DOVBRgWx.js";import"./LastSeen-BWjXmUSJ.js";import"./format-B4QuVfKv.js";import"./Lqi-CkhLMJ19.js";import"./PowerSource-BV6oqaaB.js";import"./snakeCase-DyM1sm95.js";import"./DeviceImage-BGLcF_MT.js";import"./index-DTwwc0px.js";import"./CheckboxField-Dx2QxjzC.js";import"./InputField-CUhAi55r.js";const $=["schedule_","_mode","_options","_startup","_type","inching_","cyclic_"],K=["battery","linkquality","options","position","programming","strength","voltage","warning","gradient","power_outage_memory","power_on_behavior"],U=["state","brightness","color_temp","mode","sound","occupancy","tamper","alarm","action","contact"],z=(i,c)=>{if(i){if(U.includes(i))return!0;for(const d of $)if(i.includes(d))return!1;if(K.includes(i))return!1}return!0};function ce(){const i=f(s=>s.deviceStates),c=f(s=>s.bridgeInfo.config),d=f(s=>s.devices),{sendMessage:n}=a.useContext(A),{t:l}=w(["zigbee","settings"]),[o,_]=a.useState(u.get(v,"")),[r,D]=a.useState(u.get(j,!1));a.useEffect(()=>{u.set(v,o)},[o]);const h=a.useCallback(async(s,t,m)=>{await n("bridge/request/device/rename",{from:s,to:t,homeassistant_rename:m,last:!1})},[n]),g=a.useCallback(async(s,t,m)=>{await n("bridge/request/device/remove",{id:s,force:t,block:m})},[n]),y=a.useCallback(s=>{u.set(j,s),D(s)},[]),C=a.useMemo(()=>{const s=[];for(const t of d)if(!t.disabled&&t.supported&&(!o||t.friendly_name.toLowerCase().includes(o.toLowerCase()))){const m=i[t.friendly_name]??{},x=t.definition?S(t.definition.exposes,z):[];x.length>0&&s.push(e.jsx("div",{className:`${r?"break-inside-avoid-column mb-3":"w-[23rem]"} card bg-base-200 rounded-box shadow-md`,children:e.jsx(M,{features:x,device:t,deviceState:m,onChange:async E=>await n(`${t.ieee_address}/set`,E),featureWrapperClass:I,lastSeenConfig:c.advanced.last_seen,children:e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(q,{name:t.friendly_name,renameDevice:h,homeassistantEnabled:c.homeassistant.enabled,style:"btn-outline btn-primary btn-square btn-sm join-item"}),e.jsx(b,{onClick:async()=>await N.show(B,{device:t,removeDevice:g}),className:"btn btn-outline btn-error btn-square btn-sm join-item",title:l("remove_device"),children:e.jsx(p,{icon:T})})]})})},t.ieee_address))}return s},[d,i,c.advanced.last_seen,c.homeassistant.enabled,n,g,h,l,o,r]);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-row justify-center items-center gap-3 mb-3",children:[e.jsxs("div",{className:"join",children:[e.jsxs("label",{className:"input w-64 join-item",children:[e.jsx(p,{icon:F}),e.jsx(W,{className:"",type:"search",onChange:s=>_(s.toString()),placeholder:l("common:search"),value:o})]}),e.jsx(b,{item:"",onClick:_,className:"btn btn-square join-item",title:l("common:clear"),children:e.jsx(p,{icon:L})})]}),e.jsx(b,{className:"btn btn-square",item:!r,onClick:y,title:`${l("settings:dashboard_column_display")}: ${r}`,children:e.jsx(p,{icon:r?R:k})})]}),e.jsx("div",{className:`${r?"columns-md":"flex flex-row flex-wrap justify-center"} gap-3 mb-3`,children:C})]})}export{ce as default};
|
|
Binary file
|
package/dist/assets/{DashboardFeatureWrapper-BV-EJkYu.js → DashboardFeatureWrapper-BCosdUvy.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,b as d,j as s,F as p}from"./index-
|
|
1
|
+
import{r as i,b as d,j as s,F as p}from"./index-BccmZcnH.js";import{c as u,s as x,d as f}from"./Feature-BZc2FS2v.js";const N=i.memo(o=>{const{children:c,feature:e,deviceValue:a,endpointSpecific:m}=o,n=e.unit,t=i.useMemo(()=>u(e.name,a,n),[n,e.name,a]),{t:l}=d("zigbee"),r=e.name==="state"?e.property:e.name;return s.jsxs("div",{className:"flex flex-row items-center gap-1 mb-2",children:[s.jsx(p,{icon:t[0],fixedWidth:!0,className:t[1],...t[2]}),s.jsxs("div",{className:"grow-1",title:r,children:[x(f(r)),!m&&s.jsx("span",{title:l("endpoint"),children:e.endpoint?` (${e.endpoint})`:null})]}),s.jsx("div",{className:"shrink-1",children:c})]})});export{N as D};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as t,j as c}from"./index-
|
|
1
|
+
import{r as t,j as c}from"./index-BccmZcnH.js";const p=t.memo(({value:e,onChange:u,debounce:o=500,...a})=>{const[s,m]=t.useState(e);return t.useEffect(()=>{m(e)},[e]),t.useEffect(()=>{const r=setTimeout(()=>{u(s)},o);return()=>clearTimeout(r)},[s,o,u]),c.jsx("input",{...a,value:s,onChange:r=>m(r.target.value)})});export{p as D};
|
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import{r as n,j as e,a5 as F,an as B,b as z,B as k,F as G,z as J,aj as V,W as R,a as L,G as K,ao as H,T as X,L as O,ap as Y,aq as P}from"./index-BccmZcnH.js";import{T as q}from"./TextareaField-DP_hdh3q.js";import{J as Z}from"./Json-CSdW868a.js";import{I as T}from"./InputField-CUhAi55r.js";import{C as M,A as Q}from"./ClusterSinglePicker-DNRhvOBp.js";import{E as ee}from"./EndpointPicker-DuGNCPo-.js";import"./envs-CRUy-_iG.js";import"./SelectField-Ca16rphE.js";const U=n.memo(({message:t})=>e.jsx("div",{className:"mockup-code w-full",children:e.jsx("pre",{"data-prefix":"~",className:F[t.level],children:e.jsxs("code",{children:["[",t.timestamp,"] ",t.message]})})})),te=[65,66,67,68];function se({value:t,onChange:p,attribute:i,definition:r,...o}){const u=te.includes(r.type)?"text":"number";return e.jsx("input",{type:u,value:t,onChange:d=>{const m=u==="number"?d.target.valueAsNumber:d.target.value;p(i,Number.isNaN(m)?void 0:m)},...o})}function ne({device:t,readDeviceAttributes:p,writeDeviceAttributes:i,lastLog:r}){const[o,u]=n.useState(B(t.endpoints)??""),[d,m]=n.useState(""),[l,f]=n.useState([]),[h,_]=n.useState(""),{t:c}=z(["common","zigbee"]),j=n.useCallback(s=>{m(""),f([]),u(s.toString())},[]),E=n.useCallback(s=>{f([]),m(s)},[]),v=n.useCallback((s,S)=>{if(!l.find(w=>w.attribute===s)){const w=l.concat([{attribute:s,definition:S}]);f(w)}},[l]),a=n.useCallback(s=>{_(s.target.value)},[]),b=n.useCallback(async()=>{await p(t.ieee_address,o,d,l.map(s=>s.attribute),h)},[t.ieee_address,o,d,l,h,p]),x=n.useCallback(async()=>{await i(t.ieee_address,o,d,l)},[t.ieee_address,o,d,l,i]),C=n.useMemo(()=>l.length>0&&e.jsx("fieldset",{className:"fieldset gap-2 p-3 rounded-box shadow-md",children:l.map(({attribute:s,value:S="",definition:w})=>e.jsxs("div",{className:"join join-horizontal min-w-xs",children:[e.jsxs("label",{className:"input join-item",children:[s,e.jsx(se,{value:S,attribute:s,definition:w,onChange:(D,$)=>{const A=Array.from(l),I=A.find(W=>W.attribute===D);I&&(I.value=$),f(A)}})]}),e.jsx(k,{className:"btn btn-error btn-outline join-item",item:s,onClick:D=>{const $=l.filter(A=>A.attribute!==D);f($)},children:e.jsx(G,{icon:J})})]},s))}),[l]),y=n.useMemo(()=>{const s=new Set;if(o){const S=t.endpoints[Number.parseInt(o,10)];if(S)for(const w of S.clusters.input)s.add(w)}return s},[t,o]),g=l.length===0||d==="",N=n.useMemo(()=>V(t),[t]);return o?e.jsxs("div",{className:"flex-1 flex flex-col gap-3",children:[e.jsx("h2",{className:"text-lg",children:c("zigbee:read_write_attributes")}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx(ee,{label:c("zigbee:endpoint"),values:N,value:o,onChange:j,required:!0}),e.jsx(M,{label:c("cluster"),clusters:y,value:d,onChange:E,required:!0}),e.jsx(Q,{label:c("attribute"),value:"",cluster:d,device:t,onChange:v}),e.jsx(T,{type:"text",name:"state_property",label:c("devConsole:state_property"),value:h,detail:`${c("optional")}. ${c("devConsole:state_property_info")}`,onChange:a})]}),C,e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(k,{disabled:g||l.some(s=>!!s.value),className:"btn btn-success join-item",onClick:b,children:c("read")}),e.jsx(k,{disabled:g,className:"btn btn-error join-item",onClick:x,children:c("write")})]}),r&&e.jsx(U,{message:r})]}):e.jsx("span",{children:"No endpoints"})}const ae=({device:t,lastLog:p})=>{const{t:i}=z(["common","zigbee"]),[r,o]=n.useState(1),[u,d]=n.useState(""),[m,l]=n.useState(""),[f,h]=n.useState("{}"),{sendMessage:_}=n.useContext(R),c=L(a=>a.bridgeDefinitions),j=n.useMemo(()=>{if(!u||!m)return!1;try{const a=JSON.parse(f);if(typeof a!="object"||Array.isArray(a)&&a.length>0&&typeof a[0]!="object")return!1}catch{return!1}return!0},[f,u,m]),E=n.useMemo(()=>{const a=t.endpoints[r],b=new Set,x=new Set,C=new Set,y=new Set,g=new Set;if(a){for(const s of a.clusters.input)b.add(s),x.add(s);for(const s of a.clusters.output)b.add(s),C.add(s)}if(c.custom_clusters[t.friendly_name])for(const s in c.custom_clusters[t.friendly_name])b.has(s)||(b.add(s),y.add(s));for(const s in c.clusters)b.has(s)||g.add(s);return[{name:"input_clusters",clusters:x},{name:"output_clusters",clusters:C},{name:"custom_clusters",clusters:y},{name:"other_zcl_clusters",clusters:g}]},[t.friendly_name,t.endpoints,r,c]),v=n.useCallback(async()=>{let a=Number.parseInt(m,10);Number.isNaN(a)&&(a=m),await _(`${t.ieee_address}/${r}/set`,{command:{cluster:u,command:a,payload:JSON.parse(f)}})},[u,t.ieee_address,m,f,r,_]);return e.jsxs("div",{className:"flex-1 flex flex-col gap-3",children:[e.jsx("h2",{className:"text-lg",children:i("execute_command")}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx(T,{type:"number",name:"endpoint",label:i("zigbee:endpoint"),min:1,max:255,value:r,onChange:a=>!!a.target.value&&o(a.target.valueAsNumber),required:!0}),e.jsx(M,{label:i("zigbee:cluster"),clusters:E,value:u,onChange:a=>{d(a)},required:!0}),e.jsx(T,{type:"text",name:"command",label:i("command"),value:m,placeholder:"state, color...",onChange:a=>l(a.target.value),pattern:"^\\d+|^\\w+",required:!0})]}),e.jsx(q,{name:"payload",label:i("payload"),rows:3,value:f,onChange:a=>h(a.target.value),className:"textarea validator w-full",required:!0}),e.jsx("div",{children:e.jsx(k,{onClick:v,disabled:!j,className:"btn btn-success",children:i("execute")})}),p&&e.jsx(U,{message:p})]})},oe=/^(zhc:tz: Read result of |z2m: Publish 'set' 'read' to |z2m: Publish 'set' 'write' to |zhc:tz: Wrote )/,re=n.memo(({device:t,externalDefinition:p})=>{const{t:i}=z("zigbee"),r=L(u=>u.bridgeInfo.zigbee_herdsman_converters.version),o={labels:"new device support",title:`[New device support] ${t.model_id} from ${t.manufacturer}`,body:`<!-- MAKE SURE THIS IS NOT ALREADY POSTED ${P.slice(0,-4)} -->
|
|
2
|
+
|
|
3
|
+
### Link
|
|
4
|
+
|
|
5
|
+
### What does/doesn't work with the external definition?
|
|
6
|
+
|
|
7
|
+
### Details
|
|
8
|
+
zigbee-herdsman-converters: \`${r}\`
|
|
9
|
+
software_build_id: \`${t.software_build_id}\`
|
|
10
|
+
date_code: \`${t.date_code}\`
|
|
11
|
+
endpoints:
|
|
12
|
+
\`\`\`json
|
|
13
|
+
${JSON.stringify(t.endpoints)}
|
|
14
|
+
\`\`\`
|
|
15
|
+
|
|
16
|
+
### External definition:
|
|
17
|
+
\`\`\`ts
|
|
18
|
+
${p}
|
|
19
|
+
\`\`\`
|
|
20
|
+
`};return e.jsx(O,{target:"_blank",rel:"noopener noreferrer",to:`${P}?${new URLSearchParams(o).toString()}`,className:"btn",children:i("request_support")})});function xe({device:t}){const p=K(),{sendMessage:i}=n.useContext(R),{t:r}=z(["devConsole","common"]),o=L(x=>x.lastNonDebugLog),[u,d]=n.useState(),[m,l]=n.useState(),[f,h]=n.useState(!1),[_,c]=n.useState(!1),j=L(x=>x.generatedExternalDefinitions[t.ieee_address]);n.useEffect(()=>{h(!1)},[t]),n.useEffect(()=>{o&&(o.message.startsWith("zhc:tz: Invoked ")?l(o):oe.test(o.message)&&d(o))},[o]);const E=n.useCallback(async(x,C,y,g,N)=>{const s={read:{cluster:y,attributes:g}};N&&(s.read.state_property=N),await i(`${x}/${C}/set`,s)},[i]),v=n.useCallback(async(x,C,y,g)=>{const N={write:{cluster:y,payload:{}}};for(const s of g)N.write.payload[s.attribute]=s.value;await i(`${x}/${C}/set`,N)},[i]),a=n.useCallback(async()=>{h(!0),await i("bridge/request/device/generate_external_definition",{id:t.ieee_address})},[i,t.ieee_address]),b=n.useCallback(()=>{p(H(t.friendly_name))},[p,t.friendly_name]);return e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsxs("div",{className:"flex flex-row justify-center items-center gap-2",children:[j?t.supported?null:e.jsx(re,{device:t,externalDefinition:j}):f?e.jsx("span",{className:"loading loading-infinity loading-xl"}):e.jsx(k,{className:"btn btn-primary",onClick:a,children:r("generate_external_definition")}),e.jsx(k,{item:!_,onClick:c,className:"btn btn-primary",children:r(_?"hide_definition":"show_definition")}),e.jsx(X,{className:"btn btn-error",onClick:b,title:r("reset_frontend_state"),modalDescription:r("common:dialog_confirmation_prompt"),modalCancelLabel:r("common:cancel"),children:r("reset_frontend_state")})]}),j&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"divider"}),e.jsx(q,{name:"generated_external_definition",label:r("generated_external_definition"),value:j,className:"textarea w-full",rows:8,readOnly:!0}),e.jsx(O,{to:Y,target:"_blank",rel:"noreferrer",className:"link link-primary self-end",children:r("common:documentation")})]}),_&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"divider"}),e.jsx(Z,{obj:t.definition??{},lines:12})]}),e.jsx("div",{className:"divider"}),e.jsxs("div",{className:"flex flex-row flex-wrap justify-evenly gap-4",children:[e.jsx(ne,{device:t,lastLog:u,readDeviceAttributes:E,writeDeviceAttributes:v}),e.jsx(ae,{device:t,lastLog:m})]})]})}export{xe as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,b as x,j as e,B as v,W as f,a as y,F as p,
|
|
1
|
+
import{r as o,b as x,j as e,B as v,W as f,a as y,F as p,M as g,cq as T,T as q,cr as w,cs as O,ct as R}from"./index-BccmZcnH.js";import{I as N}from"./InputField-CUhAi55r.js";import{S as E}from"./SelectField-Ca16rphE.js";import{T as S}from"./TextareaField-DP_hdh3q.js";import"./envs-CRUy-_iG.js";const k=["mqtt","external_converters","external_extensions"],M=()=>{const{t:n}=x(["devConsole","common"]),{sendMessage:c}=o.useContext(f),[r,l]=o.useState(""),[s,a]=o.useState("{}"),i=o.useMemo(()=>{if(!r)return!1;if(s!=="")try{const m=JSON.parse(s);if(typeof m!="object"||Array.isArray(m))return!1}catch{return!1}return!0},[r,s]),u=o.useCallback(async()=>{await c(r,s===""?s:JSON.parse(s))},[r,s,c]);return e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-lg mb-2",children:n("send_mqtt")}),e.jsxs("div",{className:"alert alert-info alert-soft",role:"alert",children:[e.jsx(p,{icon:g,size:"2xl"}),e.jsx("a",{href:R,target:"_blank",rel:"noreferrer",className:"link link-hover",children:n("common:read_the_docs_info")})]}),e.jsx(N,{type:"text",name:"topic",label:n("topic"),detail:n("mqtt_topic_info"),placeholder:"bridge/request/permit_join",value:r,onChange:m=>l(m.target.value),className:"input validator w-full",required:!0}),e.jsx(S,{name:"payload",label:n("common:payload"),rows:5,value:s,onChange:m=>a(m.target.value),className:"textarea validator w-full"}),e.jsx("div",{className:"join join-horizontal mt-2",children:e.jsx(v,{onClick:u,disabled:!i,className:"btn btn-success",children:n("common:send")})})]})},A=()=>{const{t:n}=x(["devConsole","common"]),{sendMessage:c}=o.useContext(f),r=y(t=>t.converters),[l,s]=o.useState(),[a,i]=o.useState({name:"",code:""}),u=o.useMemo(()=>(l||!!a.name)&&!!a.code,[l,a]),m=o.useCallback(t=>{if(t.target.value){const d=r.find(j=>j.name===t.target.value);d&&(s(d),i(d))}else s(void 0),i({name:"",code:""})},[r]),h=o.useCallback(t=>{i({name:t.target.value,code:a.code})},[a.code]),b=o.useCallback(t=>{i({name:a.name,code:t.target.value})},[a.name]),C=o.useCallback(async()=>{await c("bridge/request/converter/save",a)},[c,a]),_=o.useCallback(async()=>{await c("bridge/request/converter/remove",{name:a.name})},[c,a.name]);return e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-lg mb-2",children:n("add_update_external_converter")}),e.jsxs("div",{className:"alert alert-info alert-soft",role:"alert",children:[e.jsx(p,{icon:g,size:"2xl"}),e.jsx("a",{href:w,target:"_blank",rel:"noreferrer",className:"link link-hover",children:n("common:read_the_docs_info")}),e.jsx("a",{href:O,target:"_blank",rel:"noreferrer",className:"link link-hover",children:n("codespace_info")})]}),e.jsxs(E,{name:"converter_name_edit",label:n("select_converter_to_edit"),onChange:m,value:l?.name??"",children:[e.jsxs("option",{value:"",children:["N/A - ",n("create_new_converter")]}),r.map(t=>e.jsx("option",{value:t.name,children:t.name},t.name))]}),e.jsx(N,{name:"converter_name",label:n("common:name"),type:"text",onChange:h,value:a.name,readOnly:l!==void 0,required:!0}),e.jsx(S,{name:"converter_code",label:n("code"),rows:5,value:a.code,onChange:b,className:"textarea validator w-full",required:!0}),e.jsxs("div",{className:"join join-horizontal mt-2",children:[e.jsx(v,{onClick:C,disabled:!u,className:"btn btn-success join-item",children:n("common:save")}),e.jsx(q,{onClick:_,disabled:!l,className:"btn btn-error join-item",title:n("common:delete"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:n("common:delete")})]})]})},F=()=>{const{t:n}=x(["devConsole","common"]),{sendMessage:c}=o.useContext(f),r=y(t=>t.extensions),[l,s]=o.useState(),[a,i]=o.useState({name:"",code:""}),u=o.useMemo(()=>(l||!!a.name)&&!!a.code,[l,a]),m=o.useCallback(t=>{if(t.target.value){const d=r.find(j=>j.name===t.target.value);d&&(s(d),i(d))}else s(void 0),i({name:"",code:""})},[r]),h=o.useCallback(t=>{i({name:t.target.value,code:a.code})},[a.code]),b=o.useCallback(t=>{i({name:a.name,code:t.target.value})},[a.name]),C=o.useCallback(async()=>{await c("bridge/request/extension/save",a)},[c,a]),_=o.useCallback(async()=>{await c("bridge/request/extension/remove",{name:a.name})},[c,a.name]);return e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-lg mb-2",children:n("add_update_external_extension")}),e.jsxs("div",{className:"alert alert-info alert-soft",role:"alert",children:[e.jsx(p,{icon:g,size:"2xl"}),e.jsx("a",{href:T,target:"_blank",rel:"noreferrer",className:"link link-hover",children:n("common:read_the_docs_info")})]}),e.jsxs(E,{name:"extension_name_edit",label:n("select_extension_to_edit"),onChange:m,value:l?.name??"",children:[e.jsxs("option",{value:"",children:["N/A - ",n("create_new_extension")]}),r.map(t=>e.jsx("option",{value:t.name,children:t.name},t.name))]}),e.jsx(N,{name:"extension_name",label:n("common:name"),type:"text",onChange:h,value:a.name,readOnly:l!==void 0,required:!0}),e.jsx(S,{name:"extension_code",label:n("code"),rows:5,value:a.code,onChange:b,className:"textarea validator w-full",required:!0}),e.jsxs("div",{className:"join join-horizontal mt-2",children:[e.jsx(v,{onClick:C,disabled:!u,className:"btn btn-success join-item",children:n("common:save")}),e.jsx(q,{onClick:_,disabled:!l,className:"btn btn-error join-item",title:n("common:delete"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:n("common:delete")})]})]})};function B(){const[n,c]=o.useState(k[0]),{t:r}=x("devConsole"),l=o.useMemo(()=>{switch(n){case"mqtt":return e.jsx(M,{});case"external_converters":return e.jsx(A,{});case"external_extensions":return e.jsx(F,{})}return""},[n]);return e.jsxs("div",{className:"tabs tabs-border",children:[k.map(s=>e.jsx(v,{className:`tab${n===s?" tab-active":""}`,"aria-current":"page",item:s,onClick:c,children:r(s)},s)),e.jsx("div",{className:"tab-content block h-full bg-base-100 p-3",children:l})]})}export{B as default};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as f,b as j,j as s,L as u,F as h,aY as w}from"./index-BccmZcnH.js";import{F as N,g as y}from"./Feature-BZc2FS2v.js";import{L}from"./LastSeen-BWjXmUSJ.js";import{L as F}from"./Lqi-CkhLMJ19.js";import{P as _}from"./PowerSource-BV6oqaaB.js";import{D as $}from"./DeviceImage-BGLcF_MT.js";const E=f.memo(({onChange:n,onRead:i,device:e,endpoint:t,deviceState:a,lastSeenConfig:p,features:m,featureWrapperClass:c,children:g})=>{const{t:r}=j(["zigbee","devicePage"]),o=t!=null?e.endpoints[t]?.name:void 0,b=f.useMemo(()=>{const d=[];for(const l of m){const x=t!=null&&!!l.endpoint;(!x||Number(l.endpoint)===t||l.endpoint===o)&&d.push(s.jsx(N,{feature:l,device:e,deviceState:a,onChange:n,onRead:i,featureWrapperClass:c,minimal:!0,parentFeatures:[],endpointSpecific:x},y(l)))}return d},[o,e,t,a,m,c,n,i]);return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"card-body p-2",children:[s.jsxs("div",{className:"flex flex-row items-center gap-3 w-full",children:[s.jsx("div",{className:"flex-none h-11 w-11 overflow-visible",children:s.jsx($,{disabled:!1,device:e,otaState:a.update?.state})}),s.jsxs("div",{className:"min-w-0",children:[s.jsxs(u,{to:`/device/${e.ieee_address}/info`,className:"link link-hover",children:[e.friendly_name,t!=null?` (${r("endpoint")}: ${o?`${o} / `:""}${t})`:""]}),e.description&&s.jsx("div",{className:"text-xs opacity-50 truncate",title:e.description,children:e.description})]})]}),s.jsxs("div",{className:"text-sm w-full p-2",children:[b,s.jsxs("div",{className:"flex flex-row items-center gap-1 mt-3",children:[s.jsx("div",{className:"grow-1"}),s.jsxs(u,{to:`/device/${e.ieee_address}/exposes`,className:"btn btn-xs",children:[r("devicePage:exposes")," ",s.jsx(h,{icon:w,size:"lg"})]})]})]})]}),s.jsxs("div",{className:"flex flex-row flex-wrap gap-1 mx-2 mb-2 justify-around items-center",children:[s.jsx("span",{className:"badge badge-soft badge-ghost cursor-default",title:r("last_seen"),children:s.jsx(L,{lastSeen:a.last_seen,config:p})}),s.jsx("span",{className:"badge badge-soft badge-ghost cursor-default",title:r("lqi"),children:s.jsx(F,{value:a.linkquality})}),s.jsx("span",{className:"badge badge-soft badge-ghost cursor-default",title:r("power"),children:s.jsx(_,{device:e,batteryPercent:a.battery,batteryState:a.battery_state,batteryLow:a.battery_low,showLevel:!0})}),g]})]})});export{E as D};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
% !��T���¤���z�T�MFN�HF��\ Wk��F����� �+��*KT�NW�������"�/7�!��N� aP��PpBn
|
|
2
|
+
A$��Z�|/nwy��q������aq;��~����~pӟ�뵄��)������2��W����2Gg����R�ZB�&vt�K qt�t�~
|
|
3
|
+
��'�/�����wb��E��I���&�i�N�@�Wd�x2���3�������8PQH?i*�' �O��D��x��橧�{��8��[����HJQ�N�FA��֮�e��y�o�?A�C�=]�v����M���h�
|
|
4
|
+
�����.�=SpV���G:N�s)������� őĊj��+� �D��'"�!X��`�9�pz�S�u�'��O��tP�e+�O���-�g�c�t|���"�LU,���~�yaJ|'\���mV&,��%?Q�%��{��lP�``=����/ Z7s8�
|
|
5
|
+
�1�0`�6�Mk1�0�����I�C��s\��o��&�q�!�l�Z�~"�u,��4��bB_�q*�
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{y as h,Q as j,b as f,r as m,j as e,R as _,B as i,F as u,S as p}from"./index-BccmZcnH.js";import{C as b}from"./CheckboxField-Dx2QxjzC.js";import{I as k}from"./InputField-CUhAi55r.js";const R=h.create(c=>{const{device:o,removeDevice:s}=c,t=j(),{t:n}=f(["zigbee","common"]),[a,r]=m.useState({block:!1,force:!1}),d=v=>{const{checked:x,name:l}=v.target;r({...a,[l]:x})};return e.jsx(_,{isOpen:t.visible,title:`${n("remove_device")} ${o.friendly_name}`,footer:e.jsxs(e.Fragment,{children:[e.jsx(i,{className:"btn btn-neutral",onClick:t.remove,children:n("common:cancel")}),e.jsx(i,{className:"btn btn-error ms-1",onClick:async()=>{t.remove(),await s(o.ieee_address,a.force,a.block)},children:n("common:delete")})]}),children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(b,{label:n("force_remove"),name:"force",onChange:d,checked:a.force}),e.jsx("span",{className:"text-xs opacity-50",children:n("force_remove_notice")}),e.jsx(b,{label:n("block_join"),name:"block",onChange:d,checked:a.block})]})})}),g=h.create(c=>{const{homeassistantEnabled:o,name:s,renameDevice:t}=c,n=j(),{t:a}=f(["zigbee","common"]),[r,d]=m.useState(!1),[v,x]=m.useState(s);return m.useEffect(()=>{x(s)},[s]),e.jsx(_,{isOpen:n.visible,title:`${a("rename_device")} ${s}`,footer:e.jsxs(e.Fragment,{children:[e.jsx(i,{className:"btn btn-neutral",onClick:n.remove,children:a("common:cancel")}),e.jsx(i,{className:"btn btn-primary ms-1",onClick:async()=>{n.remove(),await t(s,v,r)},children:a("rename_device")})]}),children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(k,{name:"friendly_name",label:a("common:friendly_name"),onChange:l=>x(l.target.value),value:v,type:"text"}),o&&e.jsx(b,{label:a("update_Home_assistant_entity_id"),name:"update_Home_assistant_entity_id",onChange:l=>d(l.target.checked),checked:r})]})})}),D=m.memo(c=>{const{homeassistantEnabled:o,name:s,renameDevice:t,style:n}=c,{t:a}=f("zigbee");return e.jsx(i,{className:`btn ${n}`,onClick:async()=>await h.show(g,{name:s,renameDevice:t,homeassistantEnabled:o}),title:a("rename_device"),children:e.jsx(u,{icon:p})})});export{D,R};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as i,F as l,a3 as x,r as m,b as w,ar as b,at as O,cb as S,cc as P,O as N,cd as _}from"./index-BccmZcnH.js";import{g as D,a as y}from"./index-DTwwc0px.js";function I({error:r,children:e}){return r?i.jsx(l,{icon:x,size:"3x",className:"text-error"}):e}function p(r){"@babel/helpers - typeof";return p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(r)}function E(r,e){if(p(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e);if(p(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function A(r){var e=E(r,"string");return p(e)=="symbol"?e:e+""}function L(r,e,t){return(e=A(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var $=function(r){var e=r.crossOrigin,t=e===void 0?"":e;return function(n){return new Promise(function(o,s){var c=new Image;t&&(c.crossOrigin=t),c.onload=function(){c.decode?c.decode().then(o).catch(s):o()},c.onerror=s,c.src=n})}};function j(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable})),t.push.apply(t,n)}return t}function g(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?j(Object(t),!0).forEach(function(n){L(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):j(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var F=function(e){return e.filter(function(t){return t})},T=function(e){return Array.isArray(e)?e:[e]},u={},z=function(e,t){var n=!1;return new Promise(function(o,s){var c=function(d){return t(d).then(function(){n=!0,o(d)})};e.reduce(function(f,d){return f.catch(function(){if(!n)return c(d)})},c(e.shift())).catch(s)})};function B(r){var e=r.srcList,t=r.imgPromise,n=t===void 0?$({}):t,o=r.useSuspense,s=o===void 0?!0:o,c=m.useState(!1),f=c[1],d=F(T(e)),a=d.join("");if(u[a]||(u[a]={promise:z(d,n),cache:"pending",error:null}),u[a].cache==="resolved")return{src:u[a].src,isLoading:!1,error:null};if(u[a].cache==="rejected"){if(s)throw u[a].error;return{isLoading:!1,error:u[a].error,src:void 0}}if(u[a].promise.then(function(v){u[a]=g(g({},u[a]),{},{cache:"resolved",src:v}),s||f(a)}).catch(function(v){u[a]=g(g({},u[a]),{},{cache:"rejected",error:v}),s||f(a)}),s)throw u[a].promise;return{isLoading:!0,src:void 0,error:null}}const h=m.memo(({device:r={},className:e})=>{const t=r.definition?.icon,n=D(r),o=[];t&&o.push(t),n&&o.push(n),n!==y&&o.push(y);const{src:s}=B({srcList:o});return i.jsx("img",{alt:r.ieee_address,crossOrigin:"anonymous",src:s,className:e})}),K=m.memo(r=>{const{t:e}=w("zigbee"),{device:t={},disabled:n,otaState:o,className:s,noIndicator:c}=r,f=m.useMemo(()=>t.interview_state===b.InProgress?i.jsx("span",{title:e("interviewing"),children:i.jsx(l,{icon:O,spin:!0,className:"indicator-item indicator-bottom indicator-end text-info"})}):t.interview_state===b.Failed?i.jsx("span",{title:e("interview_failed"),children:i.jsx(l,{icon:x,beat:!0,className:"indicator-item indicator-bottom indicator-end text-error"})}):t.definition?.source==="generated"?i.jsx("span",{title:e("unsupported"),children:i.jsx(l,{icon:S,beat:!0,className:"indicator-item indicator-bottom indicator-end text-warning"})}):t.definition?.source==="external"?i.jsx("span",{title:e("unsupported"),children:i.jsx(l,{icon:P,className:"indicator-item indicator-bottom indicator-end text-info"})}):null,[t.interview_state,t.definition,e]);return i.jsx(m.Suspense,{fallback:i.jsx("img",{alt:t.ieee_address,src:y}),children:i.jsx(I,{children:c?i.jsx(h,{device:t,className:`grid place-items-center${s?` ${s}`:""}`}):i.jsxs("div",{className:"indicator w-full",children:[o==="updating"&&i.jsx("span",{title:e("updating_firmware"),children:i.jsx(l,{icon:N,spin:!0,className:"indicator-item indicator-top indicator-end text-info"})}),f,n&&i.jsx("span",{title:e("common:disabled"),children:i.jsx(l,{icon:_,className:"indicator-item indicator-middle indicator-center text-error",size:"2xl"})}),i.jsx(h,{device:t,className:`grid place-items-center${s?` ${s}`:""}`})]})})})});export{K as D};
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{y as S,Q as I,b as x,r,j as e,R as L,B as f,F as p,S as O,a as u,W as T,L as h,a3 as U,ar as _,as as P,at as N,ap as A,t as z,au as w,aq as y}from"./index-BccmZcnH.js";import{s as M}from"./snakeCase-DyM1sm95.js";import{D as H}from"./DeviceControlEditName-BxC1B1Qj.js";import{A as W,D as q}from"./Availability-Dv4Ph0Ye.js";import{T as F}from"./TextareaField-DP_hdh3q.js";import{D as G}from"./DeviceImage-BGLcF_MT.js";import{D as B}from"./DisplayValue-C55voi8G.js";import{L as V}from"./LastSeen-BWjXmUSJ.js";import{M as J,V as K}from"./VendorLink-CH3XJ5NJ.js";import{P as Y}from"./PowerSource-BV6oqaaB.js";import"./envs-CRUy-_iG.js";import"./_createCompounder-DOVBRgWx.js";import"./CheckboxField-Dx2QxjzC.js";import"./InputField-CUhAi55r.js";import"./index-DTwwc0px.js";import"./format-B4QuVfKv.js";const X=S.create(a=>{const{device:s,setDeviceDescription:t}=a,n=I(),{t:o}=x(["zigbee","common"]),[l,v]=r.useState(s.description||"");return r.useEffect(()=>{v(s.description||"")},[s.description]),e.jsx(L,{isOpen:n.visible,title:`${o("update_description")} ${s.friendly_name}`,footer:e.jsxs(e.Fragment,{children:[e.jsx(f,{className:"btn btn-neutral",onClick:n.remove,children:o("common:cancel")}),e.jsx(f,{className:"btn btn-primary ms-1",onClick:async()=>{n.remove(),await t(s.ieee_address,l)},children:o("zigbee:save_description")})]}),children:e.jsx("div",{className:"flex flex-col gap-2",children:e.jsx(F,{label:o("description"),name:"update_description",onChange:d=>v(d.target.value),rows:3,value:l})})})}),Z=r.memo(a=>{const{device:s,setDeviceDescription:t}=a,{t:n}=x("zigbee");return e.jsx(f,{className:`btn btn-link btn-sm${s.description?" btn-square":""}`,onClick:async()=>await S.show(X,{device:s,setDeviceDescription:t}),title:n("edit_description"),children:s.description?e.jsx(p,{icon:O}):n("edit_description")})}),Q=/\[(.*?)]\((.*?)\)/,ee={native:"badge-success",external:"badge-info",generated:"badge-warning"},se=(a,s)=>{if(!(a==="bindings"||a==="configured_reportings"||a==="scenes"))return s},te=r.memo(({device:a})=>{const{t:s}=x("zigbee"),t={labels:"enhancement",title:`[External Converter] ${a.model_id} from ${a.manufacturer}`,body:`<!-- MAKE SURE THIS IS NOT ALREADY POSTED ${w.slice(0,-4)} -->
|
|
2
2
|
|
|
3
3
|
This is my external converter for \`${a.model_id}\` from \`${a.manufacturer}\`
|
|
4
4
|
software_build_id: \`${a.software_build_id}\`
|
|
@@ -45,4 +45,4 @@ process.uptime_sec: \`${n.process.uptime_sec}\`
|
|
|
45
45
|
\`\`\`json
|
|
46
46
|
${JSON.stringify(n.devices[a.ieee_address]??{})}
|
|
47
47
|
\`\`\`
|
|
48
|
-
`),e.jsx(h,{target:"_blank",rel:"noopener noreferrer",to:`${y}?${new URLSearchParams(o).toString()}`,className:"btn btn-ghost",children:s("report_problem")})});function je(a){const{device:s}=a,{t}=x(["zigbee","availability"]),n=u(i=>i.deviceStates),o=u(i=>i.bridgeInfo.config),l=u(i=>i.availability),v=o.homeassistant.enabled,d=r.useMemo(()=>n[s.friendly_name]??{},[s.friendly_name,n]),{sendMessage:c}=r.useContext(T),j=r.useCallback(async(i,m,b)=>{await c("bridge/request/device/rename",{from:i,to:m,homeassistant_rename:b,last:void 0})},[c]),D=r.useCallback(async(i,m)=>{await c("bridge/request/device/options",{id:i,options:{description:m}})},[c]),E=r.useCallback(async i=>{await c("bridge/request/device/configure",{id:i})},[c]),k=r.useCallback(async(i,m,b)=>{await c("bridge/request/device/remove",{id:i,force:m,block:b})},[c]),$=r.useCallback(async i=>{await c("bridge/request/device/interview",{id:i})},[c]),g=o.devices[s.ieee_address]?.availability,C=r.useMemo(()=>{const i=s.definition?.description?Q.exec(s.definition?.description):void 0;if(i){const[,m,b]=i;return e.jsx(h,{target:"_blank",rel:"noopener noreferrer",to:b,className:"link link-hover",children:m})}return e.jsx(e.Fragment,{children:s.definition?.description})},[s.definition]),R=r.useMemo(()=>{switch(s.interview_state){case _.Pending:return e.jsx(p,{icon:N,className:"text-info"});case _.InProgress:return e.jsx(p,{icon:N,spin:!0,className:"text-info"});case _.Successful:return e.jsx(p,{icon:P,className:"text-success"});default:return e.jsx(p,{icon:U,beat:!0,className:"text-error"})}},[s.interview_state]);return e.jsxs("div",{className:"card lg:card-side bg-base-100",children:[e.jsx("figure",{className:"w-64 h-64",style:{overflow:"visible"},children:e.jsx(G,{device:s,otaState:d.update?.state,disabled:s.disabled,className:""})}),e.jsxs("div",{className:"card-body",children:[e.jsxs("h2",{className:"card-title",children:[s.friendly_name," (",s.ieee_address,")",e.jsx(H,{name:s.friendly_name,renameDevice:j,homeassistantEnabled:v,style:"btn-link btn-sm btn-square"})]}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsxs("span",{className:`badge ${s.definition?ee[s.definition.source]:""}`,children:[e.jsx(B,{name:"supported",value:s.supported}),s.definition?`: ${s.definition.source}`:""]}),!s.supported&&e.jsx("span",{className:"badge animate-bounce",children:e.jsx(h,{target:"_blank",rel:"noopener noreferrer",to:A,className:"link link-hover",children:t("how_to_add_support")})}),s.definition?.source==="external"&&e.jsx("span",{className:"badge animate-bounce",children:e.jsx(te,{device:s})}),e.jsxs("span",{className:"badge opacity-70",title:s.interview_state,children:[t("interview_state"),": ",R]})]}),e.jsxs("div",{children:[e.jsx("pre",{className:"inline",children:s.description||""}),e.jsx(Z,{device:s,setDeviceDescription:D})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:s.type}),e.jsx("div",{className:"stat-value text-xl",children:z(s.network_address)}),e.jsxs("div",{className:"stat-desc",children:[t("network_address_dec"),": ",s.network_address]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("last_seen")}),e.jsx("div",{className:"stat-value text-xl",children:e.jsx(V,{config:o.advanced.last_seen,lastSeen:d.last_seen})}),e.jsxs("div",{className:"stat-desc",children:[t("availability:availability"),": ",e.jsx(W,{availability:l[s.friendly_name]??{state:"offline"},disabled:s.disabled,availabilityFeatureEnabled:o.availability.enabled,availabilityEnabledForDevice:g!=null?!!g:void 0})]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("power")}),e.jsx("div",{className:"stat-value text-xl",children:e.jsx(Y,{showLevel:!0,device:s,batteryPercent:d.battery,batteryState:d.battery_state,batteryLow:d.battery_low})}),e.jsx("div",{className:"stat-desc",children:s.type==="GreenPower"?"GreenPower":t(M(s.power_source)||"unknown")})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("firmware_id")}),e.jsx("div",{className:"stat-value text-xl",children:s.software_build_id||t("unknown")}),e.jsx("div",{className:"stat-desc",children:s.date_code||t("unknown")})]})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("zigbee_model")}),e.jsx("div",{className:"stat-value text-xl",children:s.model_id}),e.jsxs("div",{className:"stat-desc",children:[s.manufacturer," (",C,")"]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("model")}),e.jsx("div",{className:"stat-value text-xl",children:e.jsx(J,{device:s})}),e.jsx("div",{className:"stat-desc",children:e.jsx(K,{device:s})})]})]}),e.jsxs("div",{className:"card-actions justify-end mt-2",children:[e.jsx(ae,{device:s}),e.jsx(q,{device:s,
|
|
48
|
+
`),e.jsx(h,{target:"_blank",rel:"noopener noreferrer",to:`${y}?${new URLSearchParams(o).toString()}`,className:"btn btn-ghost",children:s("report_problem")})});function je(a){const{device:s}=a,{t}=x(["zigbee","availability"]),n=u(i=>i.deviceStates),o=u(i=>i.bridgeInfo.config),l=u(i=>i.availability),v=o.homeassistant.enabled,d=r.useMemo(()=>n[s.friendly_name]??{},[s.friendly_name,n]),{sendMessage:c}=r.useContext(T),j=r.useCallback(async(i,m,b)=>{await c("bridge/request/device/rename",{from:i,to:m,homeassistant_rename:b,last:void 0})},[c]),D=r.useCallback(async(i,m)=>{await c("bridge/request/device/options",{id:i,options:{description:m}})},[c]),E=r.useCallback(async i=>{await c("bridge/request/device/configure",{id:i})},[c]),k=r.useCallback(async(i,m,b)=>{await c("bridge/request/device/remove",{id:i,force:m,block:b})},[c]),$=r.useCallback(async i=>{await c("bridge/request/device/interview",{id:i})},[c]),g=o.devices[s.ieee_address]?.availability,C=r.useMemo(()=>{const i=s.definition?.description?Q.exec(s.definition?.description):void 0;if(i){const[,m,b]=i;return e.jsx(h,{target:"_blank",rel:"noopener noreferrer",to:b,className:"link link-hover",children:m})}return e.jsx(e.Fragment,{children:s.definition?.description})},[s.definition]),R=r.useMemo(()=>{switch(s.interview_state){case _.Pending:return e.jsx(p,{icon:N,className:"text-info"});case _.InProgress:return e.jsx(p,{icon:N,spin:!0,className:"text-info"});case _.Successful:return e.jsx(p,{icon:P,className:"text-success"});default:return e.jsx(p,{icon:U,beat:!0,className:"text-error"})}},[s.interview_state]);return e.jsxs("div",{className:"card lg:card-side bg-base-100",children:[e.jsx("figure",{className:"w-64 h-64",style:{overflow:"visible"},children:e.jsx(G,{device:s,otaState:d.update?.state,disabled:s.disabled,className:""})}),e.jsxs("div",{className:"card-body",children:[e.jsxs("h2",{className:"card-title",children:[s.friendly_name," (",s.ieee_address,")",e.jsx(H,{name:s.friendly_name,renameDevice:j,homeassistantEnabled:v,style:"btn-link btn-sm btn-square"})]}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsxs("span",{className:`badge ${s.definition?ee[s.definition.source]:""}`,children:[e.jsx(B,{name:"supported",value:s.supported}),s.definition?`: ${s.definition.source}`:""]}),!s.supported&&e.jsx("span",{className:"badge animate-bounce",children:e.jsx(h,{target:"_blank",rel:"noopener noreferrer",to:A,className:"link link-hover",children:t("how_to_add_support")})}),s.definition?.source==="external"&&e.jsx("span",{className:"badge animate-bounce",children:e.jsx(te,{device:s})}),e.jsxs("span",{className:"badge opacity-70",title:s.interview_state,children:[t("interview_state"),": ",R]})]}),e.jsxs("div",{children:[e.jsx("pre",{className:"inline",children:s.description||""}),e.jsx(Z,{device:s,setDeviceDescription:D})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:s.type}),e.jsx("div",{className:"stat-value text-xl",children:z(s.network_address)}),e.jsxs("div",{className:"stat-desc",children:[t("network_address_dec"),": ",s.network_address]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("last_seen")}),e.jsx("div",{className:"stat-value text-xl",children:e.jsx(V,{config:o.advanced.last_seen,lastSeen:d.last_seen})}),e.jsxs("div",{className:"stat-desc",children:[t("availability:availability"),": ",e.jsx(W,{availability:l[s.friendly_name]??{state:"offline"},disabled:s.disabled,availabilityFeatureEnabled:o.availability.enabled,availabilityEnabledForDevice:g!=null?!!g:void 0})]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("power")}),e.jsx("div",{className:"stat-value text-xl",children:e.jsx(Y,{showLevel:!0,device:s,batteryPercent:d.battery,batteryState:d.battery_state,batteryLow:d.battery_low})}),e.jsx("div",{className:"stat-desc",children:s.type==="GreenPower"?"GreenPower":t(M(s.power_source)||"unknown")})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("firmware_id")}),e.jsx("div",{className:"stat-value text-xl",children:s.software_build_id||t("unknown")}),e.jsx("div",{className:"stat-desc",children:s.date_code||t("unknown")})]})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("zigbee_model")}),e.jsx("div",{className:"stat-value text-xl",children:s.model_id}),e.jsxs("div",{className:"stat-desc",children:[s.manufacturer," (",C,")"]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("model")}),e.jsx("div",{className:"stat-value text-xl",children:e.jsx(J,{device:s})}),e.jsx("div",{className:"stat-desc",children:e.jsx(K,{device:s})})]})]}),e.jsxs("div",{className:"card-actions justify-end mt-2",children:[e.jsx(ae,{device:s}),e.jsx(q,{device:s,otaState:d.update?.state,homeassistantEnabled:v,configureDevice:E,renameDevice:j,removeDevice:k,interviewDevice:$})]})]})]})}export{je as default};
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Bind-CZsitKJf.js","./index-BccmZcnH.js","./envs-CRUy-_iG.js","./index-LLsrh-Ne.css","./DevicePicker-xS0T9qul.js","./SelectField-Ca16rphE.js","./EndpointPicker-DuGNCPo-.js","./Clusters-BE_4RC5f.js","./DevConsole-C81rFSZS.js","./TextareaField-DP_hdh3q.js","./Json-CSdW868a.js","./InputField-CUhAi55r.js","./ClusterSinglePicker-DNRhvOBp.js","./DeviceInfo-CZRw9zfL.js","./snakeCase-DyM1sm95.js","./_createCompounder-DOVBRgWx.js","./DeviceControlEditName-BxC1B1Qj.js","./CheckboxField-Dx2QxjzC.js","./Availability-Dv4Ph0Ye.js","./DeviceImage-BGLcF_MT.js","./index-DTwwc0px.js","./DisplayValue-C55voi8G.js","./LastSeen-BWjXmUSJ.js","./format-B4QuVfKv.js","./VendorLink-CH3XJ5NJ.js","./PowerSource-BV6oqaaB.js","./DeviceSettings-IoZbTphm.js","./SettingsList-FVZvadEn.js","./NumberField-Bu5IU0l2.js","./DeviceSpecificSettings-CHDH7O4h.js","./Feature-BZc2FS2v.js","./Exposes-Bbzl-29y.js","./Groups-Dnuylsi8.js","./Reporting-VXUgdiP4.js","./Scene-BwaNCcX2.js","./RecallRemove-CrxvayYk.js","./DashboardFeatureWrapper-BCosdUvy.js","./State-khkziclY.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as i,b as p,j as e,L as x,P as j,F as c,f as v,a as f,d as g,u as y,N as r,e as b,g as h,h as N,i as E,k as T,l as w,m as L,n as P,o as $,p as D,q as A,_ as l}from"./index-BccmZcnH.js";import"./envs-CRUy-_iG.js";const I=i.memo(({devices:a,currentDevice:d,tab:t="info"})=>{const[m,_]=i.useState(""),{t:s}=p("common"),o=i.useMemo(()=>a.filter(n=>n.type!=="Coordinator"&&n.friendly_name.toLowerCase().includes(m.toLowerCase())&&n.ieee_address!==d?.ieee_address).map(n=>e.jsx("li",{children:e.jsx(x,{to:`/device/${n.ieee_address}/${t}`,onClick:()=>_(""),className:"dropdown-item",children:n.friendly_name})},n.ieee_address)),[a,d,m,t]);return e.jsxs(j,{name:"header-device-selector",buttonChildren:`${d?`${d.friendly_name} (${d.ieee_address})`:s("unknown_device")}`,dropdownStyle:"dropdown-start",children:[e.jsxs("label",{className:"input",children:[e.jsx(c,{icon:v}),e.jsx("input",{type:"search",placeholder:s("type_to_filter"),onChange:n=>_(n.target.value),value:m})]},"search"),o]})}),R=i.lazy(async()=>await l(()=>import("./Bind-CZsitKJf.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),C=i.lazy(async()=>await l(()=>import("./Clusters-BE_4RC5f.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),O=i.lazy(async()=>await l(()=>import("./DevConsole-C81rFSZS.js"),__vite__mapDeps([8,1,2,3,9,10,11,12,5,6]),import.meta.url)),S=i.lazy(async()=>await l(()=>import("./DeviceInfo-CZRw9zfL.js"),__vite__mapDeps([13,1,2,3,14,15,16,17,11,18,9,19,20,21,22,23,24,25]),import.meta.url)),z=i.lazy(async()=>await l(()=>import("./DeviceSettings-IoZbTphm.js"),__vite__mapDeps([26,1,2,3,27,17,11,28,5]),import.meta.url)),V=i.lazy(async()=>await l(()=>import("./DeviceSpecificSettings-CHDH7O4h.js"),__vite__mapDeps([29,1,2,3,30,21,15]),import.meta.url)),k=i.lazy(async()=>await l(()=>import("./Exposes-Bbzl-29y.js"),__vite__mapDeps([31,1,2,3,30,21,15]),import.meta.url)),M=i.lazy(async()=>await l(()=>import("./Groups-Dnuylsi8.js"),__vite__mapDeps([32,1,2,3,6,5]),import.meta.url)),F=i.lazy(async()=>await l(()=>import("./Reporting-VXUgdiP4.js"),__vite__mapDeps([33,1,2,3,11,12,5,6]),import.meta.url)),G=i.lazy(async()=>await l(()=>import("./Scene-BwaNCcX2.js"),__vite__mapDeps([34,1,2,3,35,36,30,21,15,11,5]),import.meta.url)),B=i.lazy(async()=>await l(()=>import("./State-khkziclY.js"),__vite__mapDeps([37,1,2,3,10]),import.meta.url));function H(){const{t:a}=p(["devicePage","common"]),d=f(u=>u.devices),{deviceId:t,tab:m}=g(),_=y(),s=t?d.find(u=>u.ieee_address===t):void 0;i.useEffect(()=>{s&&(m?s.type==="Coordinator"&&_("/settings/about",{replace:!0}):_(s.type==="Coordinator"?"/settings/about":`/device/${s.ieee_address}/info`,{replace:!0}))},[m,s,_]);const o=({isActive:u})=>u?"tab tab-active":"tab",n=i.useMemo(()=>{if(!s)return e.jsx("div",{className:"flex-auto justify-center items-center",children:a("common:unknown_device")});switch(m){case"info":return e.jsx(S,{device:s});case"exposes":return e.jsx(k,{device:s});case"bind":return e.jsx(R,{device:s});case"reporting":return e.jsx(F,{device:s});case"settings":return e.jsx(z,{device:s});case"settings-specific":return e.jsx(V,{device:s});case"state":return e.jsx(B,{device:s});case"clusters":return e.jsx(C,{device:s});case"groups":return e.jsx(M,{device:s});case"scene":return e.jsx(G,{device:s});case"dev-console":return e.jsx(O,{device:s})}},[s,m,a]);return e.jsxs(e.Fragment,{children:[e.jsx(I,{devices:d,currentDevice:s,tab:m}),e.jsxs("div",{className:"tabs tabs-border mt-2",children:[e.jsxs(r,{to:`/device/${t}/info`,className:o,children:[e.jsx(c,{icon:b,className:"me-2"}),a("about")]}),e.jsxs(r,{to:`/device/${t}/exposes`,className:o,children:[e.jsx(c,{icon:h,className:"me-2"}),a("exposes")]}),e.jsxs(r,{to:`/device/${t}/bind`,className:o,children:[e.jsx(c,{icon:N,className:"me-2"}),a("bind")]}),e.jsxs(r,{to:`/device/${t}/reporting`,className:o,children:[e.jsx(c,{icon:E,className:"me-2"}),a("reporting")]}),e.jsxs(r,{to:`/device/${t}/settings`,className:o,children:[e.jsx(c,{icon:T,className:"me-2"}),a("settings")]}),e.jsxs(r,{to:`/device/${t}/settings-specific`,className:o,children:[e.jsx(c,{icon:w,className:"me-2"}),a("settings_specific")]}),e.jsxs(r,{to:`/device/${t}/state`,className:o,children:[e.jsx(c,{icon:L,className:"me-2"}),a("state")]}),e.jsxs(r,{to:`/device/${t}/clusters`,className:o,children:[e.jsx(c,{icon:P,className:"me-2"}),a("clusters")]}),e.jsxs(r,{to:`/device/${t}/groups`,className:o,children:[e.jsx(c,{icon:$,className:"me-2"}),a("groups")]}),e.jsxs(r,{to:`/device/${t}/scene`,className:o,children:[e.jsx(c,{icon:D,className:"me-2"}),a("scene")]}),e.jsxs(r,{to:`/device/${t}/dev-console`,className:o,children:[e.jsx(c,{icon:A,className:"me-2"}),a("dev_console")]}),e.jsx("div",{className:"tab-content block h-full bg-base-100 p-3",children:n})]})]})}export{H as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as d,b as x,j as t}from"./index-
|
|
1
|
+
import{r as d,b as x,j as t}from"./index-BccmZcnH.js";import{S as j}from"./SelectField-Ca16rphE.js";const _=d.memo(c=>{const{t:i}=x("common"),{devices:l,value:p,label:u,onChange:a,groups:r=[],...m}=c,h=s=>{const{value:n}=s.target;if(n.startsWith("0x"))a(l.find(e=>e.ieee_address===n));else{const e=Number.parseInt(n,10);a(r.find(o=>e===o.id))}},f=d.useMemo(()=>{const s=[],n=l.map(e=>t.jsxs("option",{title:e.definition?.description,value:e.ieee_address,children:[e.friendly_name," ",e.definition?.model?`(${e.definition?.model})`:""]},e.ieee_address));if(r?.length){const e=r.map(o=>t.jsx("option",{value:o.id,children:o.friendly_name},o.id));s.push(t.jsx("optgroup",{label:i("groups"),children:e},"Groups")),s.push(t.jsx("optgroup",{label:i("devices"),children:n},"Devices"))}else s.push(...n);return s},[l,r,i]);return t.jsxs(j,{name:"device_picker",label:u,value:p,onChange:h,...m,children:[t.jsx("option",{value:"",disabled:!0,children:i("select_device")}),f]})});export{_ as D};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as c,a as d,r,W as m,j as e,F as l,
|
|
1
|
+
import{b as c,a as d,r,W as m,j as e,F as l,M as p,ax as f,ay as g}from"./index-BccmZcnH.js";import{S as x}from"./SettingsList-FVZvadEn.js";import"./envs-CRUy-_iG.js";import"./CheckboxField-Dx2QxjzC.js";import"./InputField-CUhAi55r.js";import"./NumberField-Bu5IU0l2.js";import"./SelectField-Ca16rphE.js";function C({device:s}){const{t:a}=c(["settings","common"]),t=d(o=>o.bridgeInfo),{sendMessage:i}=r.useContext(m),n=r.useCallback(async o=>{await i("bridge/request/device/options",{id:s.ieee_address,options:o})},[i,s.ieee_address]);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[e.jsx(l,{icon:p,size:"2xl"}),e.jsx("a",{href:f,target:"_blank",rel:"noreferrer",className:"link link-hover",children:a("common:read_the_docs_info")})]}),e.jsx(x,{schema:t.config_schema.definitions.device??{properties:{}},data:g({},t.config.device_options,t.config.devices[s.ieee_address]),set:n})]})}export{C as default};
|
|
Binary file
|
package/dist/assets/{DeviceSpecificSettings-BThCFadV.js → DeviceSpecificSettings-CHDH7O4h.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as p,a as u,r as a,W as c,j as i}from"./index-
|
|
1
|
+
import{b as p,a as u,r as a,W as c,j as i}from"./index-BccmZcnH.js";import{F as d,a as f,g}from"./Feature-BZc2FS2v.js";import"./envs-CRUy-_iG.js";import"./DisplayValue-C55voi8G.js";import"./_createCompounder-DOVBRgWx.js";function F({device:e}){const{t:r}=p(["exposes"]),o=u(s=>s.bridgeInfo),{sendMessage:t}=a.useContext(c),n=a.useCallback(async s=>{await t("bridge/request/device/options",{id:e.ieee_address,options:s})},[t,e.ieee_address]);return e.definition?.options?.length?i.jsx("div",{className:"list bg-base-100",children:e.definition.options.map(s=>i.jsx(d,{feature:s,device:e,deviceState:o.config.devices[e.ieee_address]??{},onChange:n,featureWrapperClass:f,parentFeatures:[]},g(s)))}):r("empty_exposes_definition")}export{F as default};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t,aj as v,b as f,W as g,j as e,B as j,x as C,T as h,F as _,z as S,a as x}from"./index-BccmZcnH.js";import{i as D,R as k,A as w}from"./RecallRemove-CrxvayYk.js";import{D as M}from"./DevicePicker-xS0T9qul.js";import{E as y}from"./EndpointPicker-DuGNCPo-.js";import{D as N}from"./DashboardFeatureWrapper-BCosdUvy.js";import{D as F}from"./DeviceCard-DCId-Vs8.js";import"./envs-CRUy-_iG.js";import"./Feature-BZc2FS2v.js";import"./DisplayValue-C55voi8G.js";import"./_createCompounder-DOVBRgWx.js";import"./InputField-CUhAi55r.js";import"./SelectField-Ca16rphE.js";import"./LastSeen-BWjXmUSJ.js";import"./format-B4QuVfKv.js";import"./Lqi-CkhLMJ19.js";import"./PowerSource-BV6oqaaB.js";import"./snakeCase-DyM1sm95.js";import"./DeviceImage-BGLcF_MT.js";import"./index-DTwwc0px.js";const E=t.memo(({devices:r,group:n})=>{const[i,o]=t.useState(""),[a,u]=t.useState(""),l=t.useMemo(()=>v(r.find(m=>m.ieee_address===a)),[a,r]),{t:d}=f(["groups","zigbee"]),{sendMessage:s}=t.useContext(g),c=t.useCallback(m=>{u(m.ieee_address);const b=v(m);o(b.values().next().value)},[]),p=t.useCallback(async()=>await s("bridge/request/group/members/add",{group:n.id.toString(),endpoint:i,device:a}),[s,n.id,i,a]);return e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-lg font-semibold",children:d("add_to_group_header")}),e.jsxs("div",{className:"mb-3",children:[e.jsx(M,{label:d("zigbee:device"),value:a,devices:r,onChange:c}),e.jsx(y,{label:d("zigbee:endpoint"),values:l,value:i,onChange:m=>o(m),disabled:!a})]}),e.jsx(j,{onClick:p,className:"btn btn-primary",disabled:i==null||i===""||!a,children:d("add_to_group")})]})}),A=t.memo(r=>{const{removeDeviceFromGroup:n,groupMember:i,device:o,deviceState:a,lastSeenConfig:u,setDeviceState:l}=r,{endpoint:d}=i,{t:s}=f(["groups","common"]),c=t.useMemo(()=>o.definition?C(o.definition.exposes,D):[],[o]),p=t.useCallback(async b=>await l(o.ieee_address,b),[o.ieee_address,l]),m=t.useCallback(async()=>await n(o.ieee_address,d),[o.ieee_address,d,n]);return e.jsx(F,{features:c,device:o,endpoint:d,deviceState:a,onChange:p,featureWrapperClass:N,lastSeenConfig:u,children:e.jsx(h,{onClick:m,className:"btn btn-square btn-outline btn-error btn-sm",title:s("remove_from_group"),modalDescription:s("common:dialog_confirmation_prompt"),modalCancelLabel:s("common:cancel"),children:e.jsx(_,{icon:S})})})}),R=t.memo(({devices:r,group:n})=>{const i=x(s=>s.deviceStates),o=x(s=>s.bridgeInfo.config.advanced.last_seen),{sendMessage:a}=t.useContext(g),u=t.useCallback(async(s,c)=>await a("bridge/request/group/members/remove",{device:s,endpoint:c,group:n.id.toString()}),[a,n.id]),l=t.useCallback(async(s,c)=>{await a(`${s}/set`,c)},[a]),d=t.useMemo(()=>{const s=[];for(const c of n.members){const p=r.find(m=>m.ieee_address===c.ieee_address);p&&s.push(e.jsx("div",{className:"w-[23rem] card bg-base-200 rounded-box shadow-md",children:e.jsx(A,{removeDeviceFromGroup:u,device:p,groupMember:c,deviceState:i[p.friendly_name]??{},lastSeenConfig:o,setDeviceState:l})},`${c.ieee_address}-${c.endpoint}`))}return s},[n,r,o,i,u,l]);return e.jsx("div",{className:"flex flex-row flex-wrap justify-center gap-3",children:d})});function Z({group:r}){const n=x(i=>i.devices);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-row flex-wrap justify-evenly gap-4 mb-4",children:[e.jsx("div",{className:"flex-1",children:e.jsx(E,{devices:n,group:r})}),e.jsx("div",{className:"flex-1",children:e.jsx(k,{target:r})}),e.jsx("div",{className:"flex-1",children:e.jsx(w,{target:r,deviceState:{}})})]}),e.jsx(R,{devices:n,group:r})]})}export{Z as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as n,W as E,a as c,s as w,D as j,b as q,j as a,t as k,c as M,L as C}from"./index-
|
|
1
|
+
import{r as n,W as E,a as c,s as w,D as j,b as q,j as a,t as k,c as M,L as C}from"./index-BccmZcnH.js";import{A as I,D as T}from"./Availability-Dv4Ph0Ye.js";import{D as A}from"./DeviceImage-BGLcF_MT.js";import{C as F}from"./CheckboxField-Dx2QxjzC.js";import{T as H}from"./Table-7bVWMaUR.js";import{L as P}from"./LastSeen-BWjXmUSJ.js";import{L as O}from"./Lqi-CkhLMJ19.js";import{M as V,V as B}from"./VendorLink-CH3XJ5NJ.js";import{P as R}from"./PowerSource-BV6oqaaB.js";import"./envs-CRUy-_iG.js";import"./DeviceControlEditName-BxC1B1Qj.js";import"./InputField-CUhAi55r.js";import"./index-DTwwc0px.js";import"./DebouncedInput-Z7O3YrBh.js";import"./format-B4QuVfKv.js";import"./DisplayValue-C55voi8G.js";import"./snakeCase-DyM1sm95.js";import"./_createCompounder-DOVBRgWx.js";function re(){const{sendMessage:r}=n.useContext(E),m=c(e=>e.devices),f=c(e=>e.deviceStates),t=c(e=>e.bridgeInfo.config),g=c(e=>e.availability),[o,D]=n.useState(w.get(j,!1)),[d,S]=n.useState(!1),{t:s}=q(["zigbee","common","availability"]),b=n.useMemo(()=>{const e=[];for(const i of m)if(i.type!=="Coordinator"&&(!o||!i.disabled)){const l=f[i.friendly_name]??{},p=t.devices[i.ieee_address]?.availability;if(d){if(i.power_source!=="Battery")continue;if("battery"in l){if(l.battery>=20)continue}else if("battery_state"in l){if(l.battery_state!=="low")continue}else if("battery_low"in l){if(!l.battery_low)continue}else continue}e.push({device:i,state:l,availabilityState:g[i.friendly_name]??{state:"offline"},availabilityEnabledForDevice:p!=null?!!p:void 0})}return e},[m,f,t.devices,g,o,d]),u=n.useCallback(e=>{w.set(j,e.target.checked),D(e.target.checked)},[]),v=n.useCallback(e=>{S(e.target.checked)},[]),y=n.useCallback(async(e,i,l)=>{await r("bridge/request/device/rename",{from:e,to:i,homeassistant_rename:l,last:void 0})},[r]),h=n.useCallback(async e=>{await r("bridge/request/device/configure",{id:e})},[r]),x=n.useCallback(async(e,i,l)=>{await r("bridge/request/device/remove",{id:e,force:i,block:l})},[r]),_=n.useCallback(async e=>{await r("bridge/request/device/interview",{id:e})},[r]),N=n.useMemo(()=>[{id:"friendly_name",header:s("common:friendly_name"),accessorFn:({device:e})=>[e.friendly_name,e.description].join(" "),cell:({row:{original:{device:e,state:i}}})=>a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("div",{className:"avatar",children:a.jsx("div",{className:"h-11 w-11",style:{overflow:"visible"},children:a.jsx(A,{device:e,otaState:i.update?.state,disabled:e.disabled})})}),a.jsxs("div",{className:"flex-grow flex flex-col",children:[a.jsx(C,{to:`/device/${e.ieee_address}/info`,className:"link link-hover",children:e.friendly_name}),e.description&&a.jsx("div",{className:"max-w-3xs text-xs opacity-50 truncate",title:e.description,children:e.description}),a.jsx("div",{className:"flex flex-row gap-1 mt-0.5 items-center",children:a.jsx("span",{className:"badge badge-soft badge-sm badge-ghost cursor-default",title:s("power"),children:a.jsx(R,{device:e,batteryPercent:i.battery,batteryState:i.battery_state,batteryLow:i.battery_low,showLevel:!0})})})]})]}),filterFn:"includesString"},{id:"ieee_address",header:s("ieee_address"),accessorFn:({device:e})=>[e.ieee_address,k(e.network_address,4),e.network_address].join(" "),cell:({row:{original:{device:e}}})=>a.jsxs(a.Fragment,{children:[a.jsx("div",{children:a.jsx(C,{to:`/device/${e.ieee_address}/info`,className:"link link-hover",children:e.ieee_address})}),a.jsxs("div",{className:"flex flex-row gap-1",children:[a.jsx("span",{className:"badge badge-ghost badge-sm cursor-default",title:s("network_address_hex"),children:k(e.network_address,4)}),a.jsx("span",{className:"badge badge-ghost badge-sm cursor-default",title:s("network_address_dec"),children:e.network_address})]})]}),filterFn:"includesString",sortingFn:(e,i)=>e.original.device.ieee_address.localeCompare(i.original.device.ieee_address)},{id:"model",header:s("model"),accessorFn:({device:e})=>[e.definition?.model,e.model_id,e.definition?.vendor,e.manufacturer].join(" "),cell:({row:{original:{device:e}}})=>a.jsxs(a.Fragment,{children:[a.jsx(V,{device:e}),a.jsx("div",{className:"flex flex-row gap-1",children:a.jsx("span",{className:"badge badge-ghost badge-sm",title:s("manufacturer"),children:a.jsx(B,{device:e})})})]}),filterFn:"includesString"},{id:"type",header:s("type"),accessorFn:({device:e})=>s(e.type),cell:({row:{original:{device:e}}})=>s(e.type),enableColumnFilter:!1},{id:"lqi",header:s("lqi"),accessorFn:({state:e})=>e.linkquality,cell:({row:{original:{state:e}}})=>a.jsx(O,{value:e.linkquality}),enableColumnFilter:!1},{id:"last_seen",header:s("last_seen"),accessorFn:({state:e})=>M(e.last_seen,t.advanced.last_seen)?.getTime(),cell:({row:{original:{state:e}}})=>a.jsx(P,{lastSeen:e.last_seen,config:t.advanced.last_seen}),enableColumnFilter:!1},{id:"availability",header:s("availability:availability"),accessorFn:({availabilityState:e})=>e.state,cell:({row:{original:{device:e,availabilityState:i,availabilityEnabledForDevice:l}}})=>a.jsx(I,{disabled:e.disabled,availability:i,availabilityEnabledForDevice:l,availabilityFeatureEnabled:t.availability.enabled}),enableColumnFilter:!1,sortingFn:(e,i)=>e.original.device.disabled||e.original.availabilityEnabledForDevice===!1?1:i.original.device.disabled||i.original.availabilityEnabledForDevice===!1?-1:e.original.availabilityState.state.localeCompare(i.original.availabilityState.state)},{id:"actions",header:()=>a.jsxs(a.Fragment,{children:[a.jsx(F,{name:"battery_low_only",detail:s("common:battery_low_only"),onChange:v,checked:d,className:"checkbox checkbox-sm"}),a.jsx(F,{name:"hide_disabled",detail:s("common:hide_disabled"),onChange:u,checked:o,className:"checkbox checkbox-sm"})]}),cell:({row:{original:{device:e,state:i}}})=>a.jsx(T,{device:e,otaState:i.update?.state,homeassistantEnabled:t.homeassistant.enabled,renameDevice:y,removeDevice:x,configureDevice:h,interviewDevice:_}),enableSorting:!1,enableColumnFilter:!1}],[o,d,t.advanced.last_seen,t.availability.enabled,t.homeassistant.enabled,u,v,y,x,h,_,s]),L=n.useMemo(()=>({friendly_name:!0,ieee_address:!0,model:!0,type:!1,lqi:!0,last_seen:t.advanced.last_seen!=="disable",availability:t.availability.enabled||b.some(e=>e.availabilityEnabledForDevice),actions:!0}),[t.advanced.last_seen,t.availability.enabled,b]);return a.jsx(H,{id:"all-devices",columns:N,data:b,visibleColumns:L})}export{re as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as n,b as c,j as r}from"./index-
|
|
1
|
+
import{r as n,b as c,j as r}from"./index-BccmZcnH.js";const u=n.memo(s=>{const{value:t,name:a}=s,{t:e}=c("values");switch(a){case"contact":return e(t?"closed":"open");case"occupancy":return e(t?"occupied":"clear");case"water_leak":return t?r.jsx("span",{className:"text-error animate-pulse",children:e("leaking")}):e("clear");case"tamper":return t?r.jsx("span",{className:"text-error animate-pulse",children:e("tampered")}):e("clear");case"supported":return e(t?"supported":"not_supported");default:return e(t?"true":"false")}}),o=n.memo(s=>{const{t}=c("values"),{value:a}=s;switch(typeof a){case"boolean":return r.jsx(u,{...s});case"undefined":return"N/A";case"object":return a===null?t("null"):JSON.stringify(a);case"string":return a===""?r.jsx("span",{className:"text-xs opacity-50",children:t("empty_string")}):a;default:return JSON.stringify(a)}});export{o as D};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as n,j as e,F as o,
|
|
1
|
+
import{b as n,j as e,F as o,cu as r}from"./index-BccmZcnH.js";import"./envs-CRUy-_iG.js";const t=[e.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-center justify-items-center",children:[e.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.buymeacoffee.com/Nerivec",className:"h-10",children:e.jsx("img",{alt:"Nerivec",crossOrigin:"anonymous",src:"https://img.buymeacoffee.com/button-api/?text=Thanks Nerivec&emoji=☕&slug=Nerivec&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff",className:"h-10"})}),e.jsxs("a",{target:"_blank",rel:"noopener noreferrer",className:"btn btn-secondary",href:"https://github.com/sponsors/Nerivec",children:[e.jsx(o,{icon:r}),"Sponsor Nerivec on Github"]})]},"Nerivec"),e.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-center justify-items-center",children:[e.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.buymeacoffee.com/koenkk",className:"h-10",children:e.jsx("img",{alt:"koenkk",crossOrigin:"anonymous",src:"https://img.buymeacoffee.com/button-api/?text=Thanks Koenkk&emoji=☕&slug=koenkk&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff",className:"h-10"})}),e.jsxs("a",{target:"_blank",rel:"noopener noreferrer",className:"btn btn-secondary",href:"https://github.com/sponsors/Koenkk",children:[e.jsx(o,{icon:r}),"Sponsor Koenkk on Github"]})]},"koenkk")];function i(){const{t:s}=n("settings");return e.jsxs("div",{className:"flex flex-col gap-3 items-center",children:[s("donation_text"),t.sort(()=>Math.random()-.5)]})}export{i as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,b as h,j as t}from"./index-
|
|
1
|
+
import{r,b as h,j as t}from"./index-BccmZcnH.js";import{S as x}from"./SelectField-Ca16rphE.js";const j=r.memo(l=>{const{value:s,values:n,disabled:c,onChange:p,label:d,...u}=l,{t:a}=h("common"),i=n.size===1,m=r.useMemo(()=>{const e=[];for(const o of n)e.push(t.jsx("option",{value:o,children:o},o));return e},[n]);return t.jsxs(x,{name:"endpoint_picker",label:d,value:s,onChange:e=>p(e.target.value),title:i?a("the_only_endpoint"):"",disabled:s&&i||c,...u,children:[t.jsx("option",{value:"",disabled:!0,children:a("select_endpoint")}),m]})});export{j as E};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
,@���~�6m�g�\��;E�"N��<�O6C���Ȧ�����GT[A!�!����/�����b��K*�9T�Q|�>��`>)�� ���<���-�N_v�,���/k�Bw�[����t/��9�Aɹ>�5�l�������"���< ⻠п3t.�ww3��2*s�[M�����: 9�L쬰'a����*�6�b�&ڎhi���0�ǧ�l�'�i`sL2���>g�������}"��0t�i����NB�������T7���ᐜ����C��n����{�NcT����6Do�3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as c,r as a,W as u,a as l,j as r}from"./index-
|
|
1
|
+
import{b as c,r as a,W as u,a as l,j as r}from"./index-BccmZcnH.js";import{F as m,a as x,g as f}from"./Feature-BZc2FS2v.js";import"./envs-CRUy-_iG.js";import"./DisplayValue-C55voi8G.js";import"./_createCompounder-DOVBRgWx.js";function F(o){const{device:e}=o,{t:i}=c(["exposes"]),{sendMessage:t}=a.useContext(u),n=l(s=>s.deviceStates[e.friendly_name]??{}),p=a.useCallback(async s=>{await t(`${e.ieee_address}/set`,s)},[t,e.ieee_address]),d=a.useCallback(async s=>{await t(`${e.ieee_address}/get`,s)},[t,e.ieee_address]);return e.definition?.exposes?.length?r.jsx("div",{className:"list bg-base-100",children:e.definition.exposes.map(s=>r.jsx(m,{feature:s,device:e,deviceState:n,onChange:p,onRead:d,featureWrapperClass:x,parentFeatures:[]},f(s)))}):i("empty_exposes_definition")}export{F as default};
|