zigbee2mqtt-windfront 1.5.1 → 1.5.2

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.
Files changed (200) hide show
  1. package/dist/assets/{About-CjM5WomG.js → About-guM5jIIL.js} +1 -1
  2. package/dist/assets/About-guM5jIIL.js.br +0 -0
  3. package/dist/assets/{Availability-BiumPUeO.js → Availability-9y0Errm-.js} +1 -1
  4. package/dist/assets/Availability-9y0Errm-.js.br +0 -0
  5. package/dist/assets/{Bind-DjOXtTM6.js → Bind-Dzsbdj9O.js} +1 -1
  6. package/dist/assets/Bind-Dzsbdj9O.js.br +0 -0
  7. package/dist/assets/Bridge-DhOd4BAF.js +1 -0
  8. package/dist/assets/Bridge-DhOd4BAF.js.br +0 -0
  9. package/dist/assets/{CheckboxField-De0QHbsG.js → CheckboxField-DnsgrtmM.js} +1 -1
  10. package/dist/assets/CheckboxField-DnsgrtmM.js.br +1 -0
  11. package/dist/assets/{ClusterSinglePicker-Di8d-bx5.js → ClusterSinglePicker-DlPNbPK2.js} +1 -1
  12. package/dist/assets/ClusterSinglePicker-DlPNbPK2.js.br +0 -0
  13. package/dist/assets/{Clusters-EXal5imX.js → Clusters-CJHqlXOr.js} +1 -1
  14. package/dist/assets/Clusters-CJHqlXOr.js.br +0 -0
  15. package/dist/assets/{Dashboard-DNnODdKY.js → Dashboard-DrykpWoV.js} +1 -1
  16. package/dist/assets/Dashboard-DrykpWoV.js.br +0 -0
  17. package/dist/assets/{DashboardFeatureWrapper-TlB_F76s.js → DashboardFeatureWrapper-BV-EJkYu.js} +1 -1
  18. package/dist/assets/DashboardFeatureWrapper-BV-EJkYu.js.br +0 -0
  19. package/dist/assets/{DebouncedInput-C8tkXJ7U.js → DebouncedInput-BbusN73N.js} +1 -1
  20. package/dist/assets/DebouncedInput-BbusN73N.js.br +0 -0
  21. package/dist/assets/{DevConsole-BCcxO2rX.js → DevConsole-CdaQK61e.js} +1 -1
  22. package/dist/assets/DevConsole-CdaQK61e.js.br +0 -0
  23. package/dist/assets/{DevConsole-YqbpD45I.js → DevConsole-QAj8WJrx.js} +1 -1
  24. package/dist/assets/DevConsole-QAj8WJrx.js.br +0 -0
  25. package/dist/assets/{DeviceCard-C9vw9b6F.js → DeviceCard-BibgHF2R.js} +1 -1
  26. package/dist/assets/DeviceCard-BibgHF2R.js.br +0 -0
  27. package/dist/assets/{DeviceControlEditName-BObC136U.js → DeviceControlEditName-CW6kAJai.js} +1 -1
  28. package/dist/assets/DeviceControlEditName-CW6kAJai.js.br +0 -0
  29. package/dist/assets/{DeviceImage-DshByPQQ.js → DeviceImage-XiUg0NFS.js} +1 -1
  30. package/dist/assets/DeviceImage-XiUg0NFS.js.br +0 -0
  31. package/dist/assets/{DeviceInfo-V522QLe7.js → DeviceInfo-DfhI34CI.js} +1 -1
  32. package/dist/assets/DeviceInfo-DfhI34CI.js.br +0 -0
  33. package/dist/assets/{DevicePage-BGbRRkF3.js → DevicePage-konyOtA_.js} +2 -2
  34. package/dist/assets/DevicePage-konyOtA_.js.br +0 -0
  35. package/dist/assets/{DevicePicker-DUSP1774.js → DevicePicker-BPQGOPp-.js} +1 -1
  36. package/dist/assets/DevicePicker-BPQGOPp-.js.br +0 -0
  37. package/dist/assets/{DeviceSettings-BPsmP0OM.js → DeviceSettings-DXxqeQBJ.js} +1 -1
  38. package/dist/assets/DeviceSettings-DXxqeQBJ.js.br +0 -0
  39. package/dist/assets/{DeviceSpecificSettings-eDupl8hE.js → DeviceSpecificSettings-BThCFadV.js} +1 -1
  40. package/dist/assets/DeviceSpecificSettings-BThCFadV.js.br +0 -0
  41. package/dist/assets/{Devices-TK6OH5en.js → Devices-CpkAlK0U.js} +1 -1
  42. package/dist/assets/Devices-CpkAlK0U.js.br +0 -0
  43. package/dist/assets/{DevicesPage-DCVj8eRe.js → DevicesPage-B5NXgkRE.js} +1 -1
  44. package/dist/assets/DevicesPage-B5NXgkRE.js.br +0 -0
  45. package/dist/assets/{DisplayValue-CfKoGI0j.js → DisplayValue-DKwqD83w.js} +1 -1
  46. package/dist/assets/DisplayValue-DKwqD83w.js.br +0 -0
  47. package/dist/assets/{Donate-B_P_Qsjc.js → Donate-nv8pXVg4.js} +1 -1
  48. package/dist/assets/Donate-nv8pXVg4.js.br +0 -0
  49. package/dist/assets/{EndpointPicker-CKjImsmQ.js → EndpointPicker-wR5nrVyy.js} +1 -1
  50. package/dist/assets/EndpointPicker-wR5nrVyy.js.br +0 -0
  51. package/dist/assets/{Exposes-CY4p-R2G.js → Exposes-Cndo2Hi0.js} +1 -1
  52. package/dist/assets/Exposes-Cndo2Hi0.js.br +0 -0
  53. package/dist/assets/{Feature-DKsa0Oda.js → Feature-DRiBEd30.js} +1 -1
  54. package/dist/assets/Feature-DRiBEd30.js.br +0 -0
  55. package/dist/assets/{Frontend-V9wqeWFl.js → Frontend-HvSxr47P.js} +1 -1
  56. package/dist/assets/Frontend-HvSxr47P.js.br +0 -0
  57. package/dist/assets/{GroupPage-NDEFGCAo.js → GroupPage-CB6GFdZU.js} +2 -2
  58. package/dist/assets/GroupPage-CB6GFdZU.js.br +0 -0
  59. package/dist/assets/{GroupSettings-C9hZwz-c.js → GroupSettings-CFgdJ-vx.js} +1 -1
  60. package/dist/assets/GroupSettings-CFgdJ-vx.js.br +0 -0
  61. package/dist/assets/{Groups-BBXSMxiv.js → Groups-PKw32Dqb.js} +1 -1
  62. package/dist/assets/Groups-PKw32Dqb.js.br +0 -0
  63. package/dist/assets/{GroupsPage-Bjp4L8m8.js → GroupsPage-BM9MSx3r.js} +1 -1
  64. package/dist/assets/GroupsPage-BM9MSx3r.js.br +0 -0
  65. package/dist/assets/{Health-DaYm6W6j.js → Health-BTbkKEto.js} +1 -1
  66. package/dist/assets/Health-BTbkKEto.js.br +0 -0
  67. package/dist/assets/{HomePage-_eUNylSo.js → HomePage-DAV81oPD.js} +1 -1
  68. package/dist/assets/HomePage-DAV81oPD.js.br +0 -0
  69. package/dist/assets/{InputField-D4dIbfoE.js → InputField-D8fYIAZ2.js} +1 -1
  70. package/dist/assets/InputField-D8fYIAZ2.js.br +0 -0
  71. package/dist/assets/{Json-CL1gHmYN.js → Json-C6OVoNML.js} +1 -1
  72. package/dist/assets/Json-C6OVoNML.js.br +0 -0
  73. package/dist/assets/{LastSeen-CUs1Vb2e.js → LastSeen-kmLjgf_4.js} +1 -1
  74. package/dist/assets/LastSeen-kmLjgf_4.js.br +0 -0
  75. package/dist/assets/{LogsPage-Rn9K7jry.js → LogsPage-Dv7tRxMp.js} +1 -1
  76. package/dist/assets/LogsPage-Dv7tRxMp.js.br +0 -0
  77. package/dist/assets/{Lqi-DXzNBOZd.js → Lqi-BZ7lW9bx.js} +1 -1
  78. package/dist/assets/Lqi-BZ7lW9bx.js.br +0 -0
  79. package/dist/assets/{NetworkPage-B-vdyAjg.js → NetworkPage-Ln79YwqY.js} +2 -2
  80. package/dist/assets/NetworkPage-Ln79YwqY.js.br +0 -0
  81. package/dist/assets/{NumberField-1g9cUedG.js → NumberField-iJErwbzA.js} +1 -1
  82. package/dist/assets/NumberField-iJErwbzA.js.br +0 -0
  83. package/dist/assets/{OtaPage-xoAmQlkN.js → OtaPage-D9JG90cZ.js} +1 -1
  84. package/dist/assets/OtaPage-D9JG90cZ.js.br +0 -0
  85. package/dist/assets/{PowerSource-DHbzVhTD.js → PowerSource-DgbKMgpx.js} +1 -1
  86. package/dist/assets/PowerSource-DgbKMgpx.js.br +0 -0
  87. package/dist/assets/{RawNetworkData-BA35YEdR.js → RawNetworkData-CxfFhrfx.js} +1 -1
  88. package/dist/assets/RawNetworkData-CxfFhrfx.js.br +0 -0
  89. package/dist/assets/RawNetworkMap-CSbVvyka.js +4256 -0
  90. package/dist/assets/RawNetworkMap-CSbVvyka.js.br +0 -0
  91. package/dist/assets/{RecallRemove-UfYYwosz.js → RecallRemove-ByrNeUbK.js} +1 -1
  92. package/dist/assets/RecallRemove-ByrNeUbK.js.br +0 -0
  93. package/dist/assets/{Reporting-D-T0p7pR.js → Reporting-BKKOgcmJ.js} +1 -1
  94. package/dist/assets/Reporting-BKKOgcmJ.js.br +0 -0
  95. package/dist/assets/Scene-org1InOA.js +1 -0
  96. package/dist/assets/Scene-org1InOA.js.br +0 -0
  97. package/dist/assets/{SelectField-BFSZ1jgU.js → SelectField-CwoktH0d.js} +1 -1
  98. package/dist/assets/SelectField-CwoktH0d.js.br +0 -0
  99. package/dist/assets/{Settings-8U06br4I.js → Settings-BcaEyteR.js} +1 -1
  100. package/dist/assets/Settings-BcaEyteR.js.br +0 -0
  101. package/dist/assets/{SettingsList-B5lRPdmf.js → SettingsList-C3vSq4jP.js} +1 -1
  102. package/dist/assets/SettingsList-C3vSq4jP.js.br +0 -0
  103. package/dist/assets/{SettingsPage-JGHlT8fi.js → SettingsPage-ChO0o-ok.js} +2 -2
  104. package/dist/assets/SettingsPage-ChO0o-ok.js.br +0 -0
  105. package/dist/assets/State-_uoH9Qaz.js +1 -0
  106. package/dist/assets/State-_uoH9Qaz.js.br +0 -0
  107. package/dist/assets/{Table-BvIilxHn.js → Table-D8Gdn1uG.js} +1 -1
  108. package/dist/assets/Table-D8Gdn1uG.js.br +0 -0
  109. package/dist/assets/{TextareaField-DgNWd4bB.js → TextareaField-Busy2yTR.js} +1 -1
  110. package/dist/assets/TextareaField-Busy2yTR.js.br +0 -0
  111. package/dist/assets/{Tools-BQw74JrP.js → Tools-B3Y0Qd8A.js} +1 -1
  112. package/dist/assets/Tools-B3Y0Qd8A.js.br +0 -0
  113. package/dist/assets/{TouchlinkPage-Dkq8XRUw.js → TouchlinkPage-Bg_tWjMg.js} +1 -1
  114. package/dist/assets/TouchlinkPage-Bg_tWjMg.js.br +0 -0
  115. package/dist/assets/{VendorLink-AmsYWJKL.js → VendorLink-KoryP9lw.js} +1 -1
  116. package/dist/assets/VendorLink-KoryP9lw.js.br +0 -0
  117. package/dist/assets/{_createCompounder-CDCf6N6Y.js → _createCompounder-Db7SjIIq.js} +1 -1
  118. package/dist/assets/_createCompounder-Db7SjIIq.js.br +0 -0
  119. package/dist/assets/{format-CFXT8pE2.js → format-CsVfcRLB.js} +1 -1
  120. package/dist/assets/format-CsVfcRLB.js.br +0 -0
  121. package/dist/assets/{index-iXNIEDco.js → index-B9KSRkAy.js} +3 -3
  122. package/dist/assets/index-B9KSRkAy.js.br +0 -0
  123. package/dist/assets/{index-Dncflq5A.js → index-DajxErfA.js} +1 -1
  124. package/dist/assets/index-DajxErfA.js.br +0 -0
  125. package/dist/assets/{jszip.min-D1cnnDNI.js → jszip.min-2t6j1PLa.js} +1 -1
  126. package/dist/assets/jszip.min-2t6j1PLa.js.br +0 -0
  127. package/dist/assets/snakeCase-BsE9z82R.js +1 -0
  128. package/dist/assets/snakeCase-BsE9z82R.js.br +0 -0
  129. package/dist/index.html +1 -1
  130. package/dist/index.html.br +0 -0
  131. package/package.json +2 -2
  132. package/dist/assets/About-CjM5WomG.js.br +0 -0
  133. package/dist/assets/Availability-BiumPUeO.js.br +0 -0
  134. package/dist/assets/Bind-DjOXtTM6.js.br +0 -0
  135. package/dist/assets/Bridge-D1gYoITl.js +0 -1
  136. package/dist/assets/Bridge-D1gYoITl.js.br +0 -0
  137. package/dist/assets/CheckboxField-De0QHbsG.js.br +0 -0
  138. package/dist/assets/ClusterSinglePicker-Di8d-bx5.js.br +0 -0
  139. package/dist/assets/Clusters-EXal5imX.js.br +0 -0
  140. package/dist/assets/Dashboard-DNnODdKY.js.br +0 -0
  141. package/dist/assets/DashboardFeatureWrapper-TlB_F76s.js.br +0 -0
  142. package/dist/assets/DebouncedInput-C8tkXJ7U.js.br +0 -0
  143. package/dist/assets/DevConsole-BCcxO2rX.js.br +0 -0
  144. package/dist/assets/DevConsole-YqbpD45I.js.br +0 -0
  145. package/dist/assets/DeviceCard-C9vw9b6F.js.br +0 -0
  146. package/dist/assets/DeviceControlEditName-BObC136U.js.br +0 -0
  147. package/dist/assets/DeviceImage-DshByPQQ.js.br +0 -0
  148. package/dist/assets/DeviceInfo-V522QLe7.js.br +0 -0
  149. package/dist/assets/DevicePage-BGbRRkF3.js.br +0 -0
  150. package/dist/assets/DevicePicker-DUSP1774.js.br +0 -0
  151. package/dist/assets/DeviceSettings-BPsmP0OM.js.br +0 -0
  152. package/dist/assets/DeviceSpecificSettings-eDupl8hE.js.br +0 -0
  153. package/dist/assets/Devices-TK6OH5en.js.br +0 -0
  154. package/dist/assets/DevicesPage-DCVj8eRe.js.br +0 -0
  155. package/dist/assets/DisplayValue-CfKoGI0j.js.br +0 -0
  156. package/dist/assets/Donate-B_P_Qsjc.js.br +0 -0
  157. package/dist/assets/EndpointPicker-CKjImsmQ.js.br +0 -0
  158. package/dist/assets/Exposes-CY4p-R2G.js.br +0 -3
  159. package/dist/assets/Feature-DKsa0Oda.js.br +0 -0
  160. package/dist/assets/Frontend-V9wqeWFl.js.br +0 -0
  161. package/dist/assets/GroupPage-NDEFGCAo.js.br +0 -0
  162. package/dist/assets/GroupSettings-C9hZwz-c.js.br +0 -0
  163. package/dist/assets/Groups-BBXSMxiv.js.br +0 -0
  164. package/dist/assets/GroupsPage-Bjp4L8m8.js.br +0 -0
  165. package/dist/assets/Health-DaYm6W6j.js.br +0 -0
  166. package/dist/assets/HomePage-_eUNylSo.js.br +0 -0
  167. package/dist/assets/InputField-D4dIbfoE.js.br +0 -0
  168. package/dist/assets/Json-CL1gHmYN.js.br +0 -0
  169. package/dist/assets/LastSeen-CUs1Vb2e.js.br +0 -0
  170. package/dist/assets/LogsPage-Rn9K7jry.js.br +0 -0
  171. package/dist/assets/Lqi-DXzNBOZd.js.br +0 -0
  172. package/dist/assets/NetworkPage-B-vdyAjg.js.br +0 -0
  173. package/dist/assets/NumberField-1g9cUedG.js.br +0 -0
  174. package/dist/assets/OtaPage-xoAmQlkN.js.br +0 -0
  175. package/dist/assets/PowerSource-DHbzVhTD.js.br +0 -0
  176. package/dist/assets/RawNetworkData-BA35YEdR.js.br +0 -0
  177. package/dist/assets/RawNetworkMap-IKJdBkYI.js +0 -4256
  178. package/dist/assets/RawNetworkMap-IKJdBkYI.js.br +0 -0
  179. package/dist/assets/RecallRemove-UfYYwosz.js.br +0 -0
  180. package/dist/assets/Reporting-D-T0p7pR.js.br +0 -0
  181. package/dist/assets/Scene-CBkAt36p.js +0 -1
  182. package/dist/assets/Scene-CBkAt36p.js.br +0 -0
  183. package/dist/assets/SelectField-BFSZ1jgU.js.br +0 -5
  184. package/dist/assets/Settings-8U06br4I.js.br +0 -0
  185. package/dist/assets/SettingsList-B5lRPdmf.js.br +0 -0
  186. package/dist/assets/SettingsPage-JGHlT8fi.js.br +0 -0
  187. package/dist/assets/State-qRhsFF8C.js +0 -1
  188. package/dist/assets/State-qRhsFF8C.js.br +0 -0
  189. package/dist/assets/Table-BvIilxHn.js.br +0 -0
  190. package/dist/assets/TextareaField-DgNWd4bB.js.br +0 -0
  191. package/dist/assets/Tools-BQw74JrP.js.br +0 -0
  192. package/dist/assets/TouchlinkPage-Dkq8XRUw.js.br +0 -0
  193. package/dist/assets/VendorLink-AmsYWJKL.js.br +0 -0
  194. package/dist/assets/_createCompounder-CDCf6N6Y.js.br +0 -0
  195. package/dist/assets/format-CFXT8pE2.js.br +0 -0
  196. package/dist/assets/index-Dncflq5A.js.br +0 -1
  197. package/dist/assets/index-iXNIEDco.js.br +0 -0
  198. package/dist/assets/jszip.min-D1cnnDNI.js.br +0 -0
  199. package/dist/assets/snakeCase-2EvkzqTo.js +0 -1
  200. package/dist/assets/snakeCase-2EvkzqTo.js.br +0 -0
@@ -1,4 +1,4 @@
1
- import{r as x,b as v,j as e,L as b,a as h,bU as p,bV as f,bW as k,bX as $,bY as y,bZ as z,b_ as E,ap as u}from"./index-iXNIEDco.js";import{s as S}from"./snakeCase-2EvkzqTo.js";import"./envs-DFlyG_dH.js";import"./_createCompounder-CDCf6N6Y.js";const R="1.5.1",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)} -->
1
+ import{r as x,b as v,j as e,L as b,a as h,bU as p,bV as f,bW as k,bX as $,bY as y,bZ as z,b_ as E,ap as u}from"./index-B9KSRkAy.js";import{s as S}from"./snakeCase-BsE9z82R.js";import"./envs-DFlyG_dH.js";import"./_createCompounder-Db7SjIIq.js";const R="1.5.2",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
 
Binary file
@@ -1 +1 @@
1
- import{b,aq as m,j as e,S as d,F as l,au as u,e as j,B as x,x as f,y as p,r as h,av as D}from"./index-iXNIEDco.js";import{D as _,R as w}from"./DeviceControlEditName-BObC136U.js";function C(t){const{device:a,state:i,renameDevice:s,configureDevice:o,interviewDevice:r,removeDevice:v}=t,{t:n}=b(["zigbee","common"]),c=a.interview_state===m.InProgress||a.interview_state===m.Pending||i&&i.update?.state==="updating";return e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(_,{name:a.friendly_name,renameDevice:s,homeassistantEnabled:t.homeassistantEnabled,style:"btn-outline btn-primary join-item btn-square"}),e.jsx(d,{className:"btn btn-outline btn-warning join-item btn-square",onClick:o,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(x,{onClick:async()=>await f.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(t=>{const{t:a}=b("availability"),{availability:i,availabilityFeatureEnabled:s,availabilityEnabledForDevice:o,disabled:r}=t;return r?e.jsx("span",{children:a("disabled")}):o??s?e.jsx("span",{className:i.state==="online"?"text-success":"text-error animate-pulse",children:a(i.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};
1
+ import{b,aq as m,j as e,S as d,F as l,au as u,e as j,B as x,x as f,y as p,r as h,av as D}from"./index-B9KSRkAy.js";import{D as _,R as w}from"./DeviceControlEditName-CW6kAJai.js";function C(t){const{device:a,state:i,renameDevice:s,configureDevice:o,interviewDevice:r,removeDevice:v}=t,{t:n}=b(["zigbee","common"]),c=a.interview_state===m.InProgress||a.interview_state===m.Pending||i&&i.update?.state==="updating";return e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(_,{name:a.friendly_name,renameDevice:s,homeassistantEnabled:t.homeassistantEnabled,style:"btn-outline btn-primary join-item btn-square"}),e.jsx(d,{className:"btn btn-outline btn-warning join-item btn-square",onClick:o,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(x,{onClick:async()=>await f.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(t=>{const{t:a}=b("availability"),{availability:i,availabilityFeatureEnabled:s,availabilityEnabledForDevice:o,disabled:r}=t;return r?e.jsx("span",{children:a("disabled")}):o??s?e.jsx("span",{className:i.state==="online"?"text-success":"text-error animate-pulse",children:a(i.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};
@@ -1 +1 @@
1
- import{r as d,j as s,W as D,b as I,ah as A,ai as k,B as y,F as E,h as O,aj as P,a as B}from"./index-iXNIEDco.js";import{D as T}from"./DevicePicker-DUSP1774.js";import{E as S}from"./EndpointPicker-CKjImsmQ.js";import"./envs-DFlyG_dH.js";import"./SelectField-BFSZ1jgU.js";const F=d.memo(o=>{const{clusters:n,onChange:a,label:l,value:t,disabled:e}=o,p=d.useCallback(r=>{const{checked:h,name:_}=r.target;let b=[...t];h?b.push(_):b=b.filter(v=>v!==_),a(b)},[a,t]),u=d.useMemo(()=>Array.from(n).sort((r,h)=>r.toString().localeCompare(h.toString())).map(r=>s.jsxs("label",{className:"label",title:r,children:[s.jsx("input",{className:"checkbox",type:"checkbox",checked:t.includes(r),name:r,value:r,onChange:p,disabled:e}),r]},r)),[n,p,t,e]);return s.jsxs("fieldset",{className:"fieldset",children:[l&&s.jsx("legend",{className:"fieldset-legend",children:l}),s.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:u})]})}),U=(o,n,a)=>{const{target:l}=o;return l.type==="group"?a.find(t=>t.id===l.id):n.find(t=>t.ieee_address===l.ieee_address)},V=d.memo(o=>{const{devices:n,groups:a,device:l,rule:t}=o,[e,p]=d.useState({rule:t}),{sendMessage:u}=d.useContext(D),{t:r}=I(["common","zigbee"]);d.useEffect(()=>{p({rule:t})},[t]);const h=d.useCallback(i=>{e.rule.source.endpoint=i,p({rule:e.rule})},[e.rule]),_=d.useCallback(i=>{i&&(A(i)?e.rule.target={type:"endpoint",ieee_address:i.ieee_address,endpoint:""}:e.rule.target={type:"group",id:i.id},e.rule.clusters=[],p({rule:e.rule}))},[e.rule]),b=d.useCallback(i=>{e.rule.target.type==="endpoint"&&(e.rule.target.endpoint=i,e.rule.clusters=[],p({rule:e.rule}))},[e.rule]),v=d.useCallback(i=>{e.rule.clusters=i,p({rule:e.rule})},[e.rule]),N=d.useCallback(async i=>{let g="",x;const{target:c}=e.rule;if(c.type==="group"){const m=a.find(C=>C.id===c.id);if(m)g=m.id;else{console.error("Target group does not exist:",c.id);return}}else if(c.type==="endpoint"){const m=n.find(C=>C.ieee_address===c.ieee_address);if(m)g=m.ieee_address,m.type!=="Coordinator"&&(x=c.endpoint);else{console.error("Target device does not exist:",c.ieee_address);return}}const f={from:l.ieee_address,from_endpoint:e.rule.source.endpoint,to:g,to_endpoint:x,clusters:e.rule.clusters};i==="Bind"?await u("bridge/request/device/bind",f):await u("bridge/request/device/unbind",f)},[l,e.rule,u,n,a]),$=d.useMemo(()=>k(l),[l]),j=U(e.rule,n,a),M=d.useMemo(()=>k(j),[j]),R=d.useMemo(()=>{const i=new Set(e.rule.clusters),g=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(g&&(x||c))for(const f of[...g.clusters.input,...g.clusters.output])if(c)i.add(f);else{const m=g.clusters.input.includes(f)&&x?.clusters.output.includes(f),C=g.clusters.output.includes(f)&&x?.clusters.input.includes(f);(m||C||c)&&i.add(f)}return i},[l.endpoints,e,j]),w=d.useMemo(()=>{let i=!1;return e.rule.target.type==="endpoint"?i=!!(e.rule.source.endpoint&&e.rule.target.ieee_address&&e.rule.target.endpoint&&e.rule.clusters.length>0):e.rule.target.type==="group"&&(i=!!(e.rule.source.endpoint&&e.rule.target.id&&e.rule.clusters.length>0)),i},[e]);return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[s.jsx(S,{label:r("source_endpoint"),disabled:!e.rule.isNew,values:$,value:e.rule.source.endpoint,onChange:h}),s.jsx(T,{label:r("destination"),disabled:!e.rule.isNew,value:"ieee_address"in e.rule.target?e.rule.target.ieee_address:e.rule.target.id,devices:n,groups:a,onChange:_}),e.rule.target.type==="endpoint"?s.jsx(S,{label:r("destination_endpoint"),disabled:!e.rule.isNew,values:M,value:e.rule.target.endpoint,onChange:b}):null,s.jsx("div",{className:"grow w-128",children:s.jsx(F,{label:r("clusters"),clusters:R,value:e.rule.clusters,onChange:v})}),s.jsxs("fieldset",{className:"fieldset",children:[s.jsx("legend",{className:"fieldset-legend",children:r("actions")}),s.jsxs("div",{className:"join join-horizontal",children:[s.jsxs(y,{item:"Bind",disabled:!w,title:r("bind"),className:"btn btn-primary join-item",onClick:N,children:[s.jsx(E,{icon:O}),r("bind")," "]}),s.jsxs(y,{item:"Unbind",disabled:e.rule.isNew||!w,title:r("unbind"),className:"btn btn-error join-item",onClick:N,children:[s.jsx(E,{icon:P})," ",r("unbind")]})]})]})]}),s.jsx("div",{className:"divider"})]})}),q=o=>`${o.isNew}-${o.source.endpoint}-${o.source.ieee_address}-${"ieee_address"in o.target?o.target.ieee_address:o.target.id}-${o.clusters.join("-")}`,z=o=>{const n={};for(const a in o.endpoints){const l=o.endpoints[a];for(const t of l.bindings){let e="ieee_address"in t.target?`${t.target.ieee_address}-${t.target.endpoint}`:t.target.id;e=`${e}-${a}`,n[e]?n[e].clusters.push(t.cluster):n[e]={source:{ieee_address:o.ieee_address,endpoint:a},target:t.target,clusters:[t.cluster]}}}return Object.values(n)};function J(o){const{device:n}=o,a=B(u=>u.devices),l=B(u=>u.groups),[t,e]=d.useState({isNew:!0,target:{type:"endpoint",ieee_address:"",endpoint:""},source:{ieee_address:n.ieee_address,endpoint:""},clusters:[]}),p=d.useMemo(()=>z(n),[n]);return d.useEffect(()=>{e({isNew:!0,target:{type:"endpoint",ieee_address:"",endpoint:""},source:{ieee_address:n.ieee_address,endpoint:""},clusters:[]})},[n.ieee_address]),s.jsx("div",{className:"flex flex-col",children:[...p,t].map(u=>s.jsx(V,{rule:u,groups:l,device:n,devices:a},q(u)))})}export{J as default};
1
+ import{r as d,j as s,W as D,b as I,ah as A,ai as k,B as y,F as E,h as O,aj as P,a as B}from"./index-B9KSRkAy.js";import{D as T}from"./DevicePicker-BPQGOPp-.js";import{E as S}from"./EndpointPicker-wR5nrVyy.js";import"./envs-DFlyG_dH.js";import"./SelectField-CwoktH0d.js";const F=d.memo(o=>{const{clusters:n,onChange:a,label:l,value:t,disabled:e}=o,p=d.useCallback(r=>{const{checked:h,name:_}=r.target;let b=[...t];h?b.push(_):b=b.filter(v=>v!==_),a(b)},[a,t]),u=d.useMemo(()=>Array.from(n).sort((r,h)=>r.toString().localeCompare(h.toString())).map(r=>s.jsxs("label",{className:"label",title:r,children:[s.jsx("input",{className:"checkbox",type:"checkbox",checked:t.includes(r),name:r,value:r,onChange:p,disabled:e}),r]},r)),[n,p,t,e]);return s.jsxs("fieldset",{className:"fieldset",children:[l&&s.jsx("legend",{className:"fieldset-legend",children:l}),s.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:u})]})}),U=(o,n,a)=>{const{target:l}=o;return l.type==="group"?a.find(t=>t.id===l.id):n.find(t=>t.ieee_address===l.ieee_address)},V=d.memo(o=>{const{devices:n,groups:a,device:l,rule:t}=o,[e,p]=d.useState({rule:t}),{sendMessage:u}=d.useContext(D),{t:r}=I(["common","zigbee"]);d.useEffect(()=>{p({rule:t})},[t]);const h=d.useCallback(i=>{e.rule.source.endpoint=i,p({rule:e.rule})},[e.rule]),_=d.useCallback(i=>{i&&(A(i)?e.rule.target={type:"endpoint",ieee_address:i.ieee_address,endpoint:""}:e.rule.target={type:"group",id:i.id},e.rule.clusters=[],p({rule:e.rule}))},[e.rule]),b=d.useCallback(i=>{e.rule.target.type==="endpoint"&&(e.rule.target.endpoint=i,e.rule.clusters=[],p({rule:e.rule}))},[e.rule]),v=d.useCallback(i=>{e.rule.clusters=i,p({rule:e.rule})},[e.rule]),N=d.useCallback(async i=>{let g="",x;const{target:c}=e.rule;if(c.type==="group"){const m=a.find(C=>C.id===c.id);if(m)g=m.id;else{console.error("Target group does not exist:",c.id);return}}else if(c.type==="endpoint"){const m=n.find(C=>C.ieee_address===c.ieee_address);if(m)g=m.ieee_address,m.type!=="Coordinator"&&(x=c.endpoint);else{console.error("Target device does not exist:",c.ieee_address);return}}const f={from:l.ieee_address,from_endpoint:e.rule.source.endpoint,to:g,to_endpoint:x,clusters:e.rule.clusters};i==="Bind"?await u("bridge/request/device/bind",f):await u("bridge/request/device/unbind",f)},[l,e.rule,u,n,a]),$=d.useMemo(()=>k(l),[l]),j=U(e.rule,n,a),M=d.useMemo(()=>k(j),[j]),R=d.useMemo(()=>{const i=new Set(e.rule.clusters),g=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(g&&(x||c))for(const f of[...g.clusters.input,...g.clusters.output])if(c)i.add(f);else{const m=g.clusters.input.includes(f)&&x?.clusters.output.includes(f),C=g.clusters.output.includes(f)&&x?.clusters.input.includes(f);(m||C||c)&&i.add(f)}return i},[l.endpoints,e,j]),w=d.useMemo(()=>{let i=!1;return e.rule.target.type==="endpoint"?i=!!(e.rule.source.endpoint&&e.rule.target.ieee_address&&e.rule.target.endpoint&&e.rule.clusters.length>0):e.rule.target.type==="group"&&(i=!!(e.rule.source.endpoint&&e.rule.target.id&&e.rule.clusters.length>0)),i},[e]);return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[s.jsx(S,{label:r("source_endpoint"),disabled:!e.rule.isNew,values:$,value:e.rule.source.endpoint,onChange:h}),s.jsx(T,{label:r("destination"),disabled:!e.rule.isNew,value:"ieee_address"in e.rule.target?e.rule.target.ieee_address:e.rule.target.id,devices:n,groups:a,onChange:_}),e.rule.target.type==="endpoint"?s.jsx(S,{label:r("destination_endpoint"),disabled:!e.rule.isNew,values:M,value:e.rule.target.endpoint,onChange:b}):null,s.jsx("div",{className:"grow w-128",children:s.jsx(F,{label:r("clusters"),clusters:R,value:e.rule.clusters,onChange:v})}),s.jsxs("fieldset",{className:"fieldset",children:[s.jsx("legend",{className:"fieldset-legend",children:r("actions")}),s.jsxs("div",{className:"join join-horizontal",children:[s.jsxs(y,{item:"Bind",disabled:!w,title:r("bind"),className:"btn btn-primary join-item",onClick:N,children:[s.jsx(E,{icon:O}),r("bind")," "]}),s.jsxs(y,{item:"Unbind",disabled:e.rule.isNew||!w,title:r("unbind"),className:"btn btn-error join-item",onClick:N,children:[s.jsx(E,{icon:P})," ",r("unbind")]})]})]})]}),s.jsx("div",{className:"divider"})]})}),q=o=>`${o.isNew}-${o.source.endpoint}-${o.source.ieee_address}-${"ieee_address"in o.target?o.target.ieee_address:o.target.id}-${o.clusters.join("-")}`,z=o=>{const n={};for(const a in o.endpoints){const l=o.endpoints[a];for(const t of l.bindings){let e="ieee_address"in t.target?`${t.target.ieee_address}-${t.target.endpoint}`:t.target.id;e=`${e}-${a}`,n[e]?n[e].clusters.push(t.cluster):n[e]={source:{ieee_address:o.ieee_address,endpoint:a},target:t.target,clusters:[t.cluster]}}}return Object.values(n)};function J(o){const{device:n}=o,a=B(u=>u.devices),l=B(u=>u.groups),[t,e]=d.useState({isNew:!0,target:{type:"endpoint",ieee_address:"",endpoint:""},source:{ieee_address:n.ieee_address,endpoint:""},clusters:[]}),p=d.useMemo(()=>z(n),[n]);return d.useEffect(()=>{e({isNew:!0,target:{type:"endpoint",ieee_address:"",endpoint:""},source:{ieee_address:n.ieee_address,endpoint:""},clusters:[]})},[n.ieee_address]),s.jsx("div",{className:"flex flex-col",children:[...p,t].map(u=>s.jsx(V,{rule:u,groups:l,device:n,devices:a},q(u)))})}export{J as default};
Binary file
@@ -0,0 +1 @@
1
+ import{a as t,j as e}from"./index-B9KSRkAy.js";import{J as s}from"./Json-C6OVoNML.js";import"./envs-DFlyG_dH.js";function a(){const o=t(r=>r.bridgeInfo);return e.jsx(s,{obj:o})}export{a as default};
@@ -1 +1 @@
1
- import{r,j as e}from"./index-iXNIEDco.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};
1
+ import{r,j as e}from"./index-B9KSRkAy.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};
@@ -0,0 +1 @@
1
+ ������ר{�e�A��-q �X9��
2
  ���}��[�
@@ -1 +1 @@
1
- import{r as l,a as f,b as h,j as o}from"./index-iXNIEDco.js";import{S as g}from"./SelectField-BFSZ1jgU.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};
1
+ import{r as l,a as f,b as h,j as o}from"./index-B9KSRkAy.js";import{S as g}from"./SelectField-CwoktH0d.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};
@@ -1 +1 @@
1
- import{b as a,r as u,j as s,F as c,ak as d,al as x}from"./index-iXNIEDco.js";import"./envs-DFlyG_dH.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};
1
+ import{b as a,r as u,j as s,F as c,ak as d,al as x}from"./index-B9KSRkAy.js";import"./envs-DFlyG_dH.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};
@@ -1 +1 @@
1
- import{a as v,r as c,W as N,b as S,s as _,v as D,w as C,j as e,B as x,x as F,F as g,y as T,f as R,z as k,A as L,C as I}from"./index-iXNIEDco.js";import{D as M}from"./DashboardFeatureWrapper-TlB_F76s.js";import{D as q}from"./DeviceCard-C9vw9b6F.js";import{D as B,R as $}from"./DeviceControlEditName-BObC136U.js";import{D as W}from"./DebouncedInput-C8tkXJ7U.js";import"./envs-DFlyG_dH.js";import"./Feature-DKsa0Oda.js";import"./DisplayValue-CfKoGI0j.js";import"./_createCompounder-CDCf6N6Y.js";import"./LastSeen-CUs1Vb2e.js";import"./format-CFXT8pE2.js";import"./Lqi-DXzNBOZd.js";import"./PowerSource-DHbzVhTD.js";import"./snakeCase-2EvkzqTo.js";import"./DeviceImage-DshByPQQ.js";import"./index-Dncflq5A.js";import"./CheckboxField-De0QHbsG.js";import"./InputField-D4dIbfoE.js";const K=["schedule_","_mode","_options","_startup","_type","inching_","cyclic_"],U=["battery","linkquality","options","position","programming","strength","voltage","warning","gradient","power_outage_memory","power_on_behavior"],z=["state","brightness","color_temp","mode","sound","occupancy","tamper","alarm","action","contact"],H=(a,i)=>{if(a){if(z.includes(a))return!0;for(const l of K)if(a.includes(l))return!1;if(U.includes(a))return!1}return!0},E=(a,i={})=>{const{property:l,name:o,access:d}=a;if(H(o)){if("features"in a&&a.features&&a.features.length>0){const n=[],f=l?i[l]:i;for(const r of a.features){const u=E(r,f);u&&!n.some(b=>b.property===u.property)&&n.push(u)}return{...a,features:n}}return{...a}}};function le(){const a=v(s=>s.deviceStates),i=v(s=>s.bridgeInfo.config),l=v(s=>s.devices),{sendMessage:o}=c.useContext(N),{t:d}=S(["zigbee","settings"]),[n,f]=c.useState(_.get(D,"")),[r,u]=c.useState(_.get(C,!1));c.useEffect(()=>{_.set(D,n)},[n]);const b=c.useCallback(async(s,t,m)=>{await o("bridge/request/device/rename",{from:s,to:t,homeassistant_rename:m,last:!1})},[o]),j=c.useCallback(async(s,t,m)=>{await o("bridge/request/device/remove",{id:s,force:t,block:m})},[o]),w=c.useCallback(s=>{_.set(C,s),u(s)},[]),A=c.useMemo(()=>{const s=[];for(const t of l)if(!t.disabled&&t.supported&&(!n||t.friendly_name.toLowerCase().includes(n.toLowerCase()))){const m=a[t.friendly_name]??{},h=[];if(t.definition?.exposes)for(const p of t.definition.exposes){const y=E(p,m);if(y&&(h.push(y),h.length===10))break}h.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(q,{features:h,device:t,deviceState:m,onChange:async p=>await o(`${t.ieee_address}/set`,p),onRead:async p=>await o(`${t.ieee_address}/get`,p),featureWrapperClass:M,lastSeenConfig:i.advanced.last_seen,children:e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(B,{name:t.friendly_name,renameDevice:b,homeassistantEnabled:i.homeassistant.enabled,style:"btn-outline btn-primary btn-square btn-sm join-item"}),e.jsx(x,{onClick:async()=>await F.show($,{device:t,removeDevice:j}),className:"btn btn-outline btn-error btn-square btn-sm join-item",title:d("remove_device"),children:e.jsx(g,{icon:T})})]})})},t.ieee_address))}return s},[l,a,i.advanced.last_seen,i.homeassistant.enabled,o,j,b,d,n,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(g,{icon:R}),e.jsx(W,{className:"",type:"search",onChange:s=>f(s.toString()),placeholder:d("common:search"),value:n})]}),e.jsx(x,{item:"",onClick:f,className:"btn btn-square join-item",title:d("common:clear"),children:e.jsx(g,{icon:k})})]}),e.jsx(x,{className:"btn btn-square",item:!r,onClick:w,title:`${d("settings:dashboard_column_display")}: ${r}`,children:e.jsx(g,{icon:r?L:I})})]}),e.jsx("div",{className:`${r?"columns-md":"flex flex-row flex-wrap justify-center"} gap-3 mb-3`,children:A})]})}export{le as default};
1
+ import{a as v,r as c,W as N,b as S,s as _,v as D,w as C,j as e,B as x,x as F,F as g,y as T,f as R,z as k,A as L,C as I}from"./index-B9KSRkAy.js";import{D as M}from"./DashboardFeatureWrapper-BV-EJkYu.js";import{D as q}from"./DeviceCard-BibgHF2R.js";import{D as B,R as $}from"./DeviceControlEditName-CW6kAJai.js";import{D as W}from"./DebouncedInput-BbusN73N.js";import"./envs-DFlyG_dH.js";import"./Feature-DRiBEd30.js";import"./DisplayValue-DKwqD83w.js";import"./_createCompounder-Db7SjIIq.js";import"./LastSeen-kmLjgf_4.js";import"./format-CsVfcRLB.js";import"./Lqi-BZ7lW9bx.js";import"./PowerSource-DgbKMgpx.js";import"./snakeCase-BsE9z82R.js";import"./DeviceImage-XiUg0NFS.js";import"./index-DajxErfA.js";import"./CheckboxField-DnsgrtmM.js";import"./InputField-D8fYIAZ2.js";const K=["schedule_","_mode","_options","_startup","_type","inching_","cyclic_"],U=["battery","linkquality","options","position","programming","strength","voltage","warning","gradient","power_outage_memory","power_on_behavior"],z=["state","brightness","color_temp","mode","sound","occupancy","tamper","alarm","action","contact"],H=(a,i)=>{if(a){if(z.includes(a))return!0;for(const l of K)if(a.includes(l))return!1;if(U.includes(a))return!1}return!0},E=(a,i={})=>{const{property:l,name:o,access:d}=a;if(H(o)){if("features"in a&&a.features&&a.features.length>0){const n=[],f=l?i[l]:i;for(const r of a.features){const u=E(r,f);u&&!n.some(b=>b.property===u.property)&&n.push(u)}return{...a,features:n}}return{...a}}};function le(){const a=v(s=>s.deviceStates),i=v(s=>s.bridgeInfo.config),l=v(s=>s.devices),{sendMessage:o}=c.useContext(N),{t:d}=S(["zigbee","settings"]),[n,f]=c.useState(_.get(D,"")),[r,u]=c.useState(_.get(C,!1));c.useEffect(()=>{_.set(D,n)},[n]);const b=c.useCallback(async(s,t,m)=>{await o("bridge/request/device/rename",{from:s,to:t,homeassistant_rename:m,last:!1})},[o]),j=c.useCallback(async(s,t,m)=>{await o("bridge/request/device/remove",{id:s,force:t,block:m})},[o]),w=c.useCallback(s=>{_.set(C,s),u(s)},[]),A=c.useMemo(()=>{const s=[];for(const t of l)if(!t.disabled&&t.supported&&(!n||t.friendly_name.toLowerCase().includes(n.toLowerCase()))){const m=a[t.friendly_name]??{},h=[];if(t.definition?.exposes)for(const p of t.definition.exposes){const y=E(p,m);if(y&&(h.push(y),h.length===10))break}h.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(q,{features:h,device:t,deviceState:m,onChange:async p=>await o(`${t.ieee_address}/set`,p),onRead:async p=>await o(`${t.ieee_address}/get`,p),featureWrapperClass:M,lastSeenConfig:i.advanced.last_seen,children:e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(B,{name:t.friendly_name,renameDevice:b,homeassistantEnabled:i.homeassistant.enabled,style:"btn-outline btn-primary btn-square btn-sm join-item"}),e.jsx(x,{onClick:async()=>await F.show($,{device:t,removeDevice:j}),className:"btn btn-outline btn-error btn-square btn-sm join-item",title:d("remove_device"),children:e.jsx(g,{icon:T})})]})})},t.ieee_address))}return s},[l,a,i.advanced.last_seen,i.homeassistant.enabled,o,j,b,d,n,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(g,{icon:R}),e.jsx(W,{className:"",type:"search",onChange:s=>f(s.toString()),placeholder:d("common:search"),value:n})]}),e.jsx(x,{item:"",onClick:f,className:"btn btn-square join-item",title:d("common:clear"),children:e.jsx(g,{icon:k})})]}),e.jsx(x,{className:"btn btn-square",item:!r,onClick:w,title:`${d("settings:dashboard_column_display")}: ${r}`,children:e.jsx(g,{icon:r?L:I})})]}),e.jsx("div",{className:`${r?"columns-md":"flex flex-row flex-wrap justify-center"} gap-3 mb-3`,children:A})]})}export{le as default};
@@ -1 +1 @@
1
- import{r as i,b as d,j as s,F as p}from"./index-iXNIEDco.js";import{c as u,s as x,d as f}from"./Feature-DKsa0Oda.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};
1
+ import{r as i,b as d,j as s,F as p}from"./index-B9KSRkAy.js";import{c as u,s as x,d as f}from"./Feature-DRiBEd30.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};
@@ -1 +1 @@
1
- import{r as t,j as c}from"./index-iXNIEDco.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};
1
+ import{r as t,j as c}from"./index-B9KSRkAy.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};
@@ -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,K as g,cn as w,S as q,co as T,cp as O,cq as R}from"./index-iXNIEDco.js";import{I as N}from"./InputField-D4dIbfoE.js";import{S as E}from"./SelectField-BFSZ1jgU.js";import{T as S}from"./TextareaField-DgNWd4bB.js";import"./envs-DFlyG_dH.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:T,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:w,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};
1
+ import{r as o,b as x,j as e,B as v,W as f,a as y,F as p,K as g,cn as w,S as q,co as T,cp as O,cq as R}from"./index-B9KSRkAy.js";import{I as N}from"./InputField-D8fYIAZ2.js";import{S as E}from"./SelectField-CwoktH0d.js";import{T as S}from"./TextareaField-Busy2yTR.js";import"./envs-DFlyG_dH.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:T,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:w,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};
@@ -1,4 +1,4 @@
1
- import{r as t,j as e,a4 as B,am as G,b as z,B as S,F as J,y as V,ai as K,W as O,a as D,E as H,an as X,S as Y,L as q,ao as Z,ap as R}from"./index-iXNIEDco.js";import{T as M}from"./TextareaField-DgNWd4bB.js";import{J as Q}from"./Json-CL1gHmYN.js";import{I as P}from"./InputField-D4dIbfoE.js";import{C as U,A as ee}from"./ClusterSinglePicker-Di8d-bx5.js";import{E as te}from"./EndpointPicker-CKjImsmQ.js";import"./envs-DFlyG_dH.js";import"./SelectField-BFSZ1jgU.js";const W=t.memo(o=>{const{message:n}=o;return e.jsx("div",{className:"mockup-code w-full",children:e.jsx("pre",{"data-prefix":"~",className:B[n.level],children:e.jsxs("code",{children:["[",n.timestamp,"] ",n.message]})})})}),se=[65,66,67,68];function ne(o){const{value:n,onChange:u,attribute:r,definition:i,...d}=o,b=se.includes(i.type)?"text":"number";return e.jsx("input",{type:b,value:n,onChange:f=>{const p=b==="number"?f.target.valueAsNumber:f.target.value;u(r,Number.isNaN(p)?void 0:p)},...d})}function ae(o){const{device:n,readDeviceAttributes:u,writeDeviceAttributes:r,lastLog:i}=o,[d,b]=t.useState(G(n.endpoints)??""),[f,p]=t.useState(""),[c,x]=t.useState([]),[h,N]=t.useState(""),{t:l}=z(["common","zigbee"]),k=t.useCallback(s=>{p(""),x([]),b(s.toString())},[]),E=t.useCallback(s=>{x([]),p(s)},[]),A=t.useCallback((s,w)=>{if(!c.find(y=>y.attribute===s)){const y=c.concat([{attribute:s,definition:w}]);x(y)}},[c]),a=t.useCallback(s=>{N(s.target.value)},[]),m=t.useCallback(async()=>{await u(n.ieee_address,d,f,c.map(s=>s.attribute),h)},[n.ieee_address,d,f,c,h,u]),_=t.useCallback(async()=>{await r(n.ieee_address,d,f,c)},[n.ieee_address,d,f,c,r]),j=t.useMemo(()=>c.length>0&&e.jsx("fieldset",{className:"fieldset gap-2 p-3 rounded-box shadow-md",children:c.map(({attribute:s,value:w="",definition:y})=>e.jsxs("div",{className:"join join-horizontal min-w-xs",children:[e.jsxs("label",{className:"input join-item",children:[s,e.jsx(ne,{value:w,attribute:s,definition:y,onChange:($,I)=>{const L=Array.from(c),T=L.find(F=>F.attribute===$);T&&(T.value=I),x(L)}})]}),e.jsx(S,{className:"btn btn-error btn-outline join-item",item:s,onClick:$=>{const I=c.filter(L=>L.attribute!==$);x(I)},children:e.jsx(J,{icon:V})})]},s))}),[c]),C=t.useMemo(()=>{const s=new Set;if(d){const w=n.endpoints[Number.parseInt(d,10)];if(w)for(const y of w.clusters.input)s.add(y)}return s},[n,d]),g=c.length===0||f==="",v=t.useMemo(()=>K(n),[n]);return d?e.jsxs("div",{className:"flex-1 flex flex-col gap-3",children:[e.jsx("h2",{className:"text-lg",children:l("zigbee:read_write_attributes")}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx(te,{label:l("zigbee:endpoint"),values:v,value:d,onChange:k,required:!0}),e.jsx(U,{label:l("cluster"),clusters:C,value:f,onChange:E,required:!0}),e.jsx(ee,{label:l("attribute"),value:"",cluster:f,device:n,onChange:A}),e.jsx(P,{type:"text",name:"state_property",label:l("devConsole:state_property"),value:h,detail:`${l("optional")}. ${l("devConsole:state_property_info")}`,onChange:a})]}),j,e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(S,{disabled:g||c.some(s=>!!s.value),className:"btn btn-success join-item",onClick:m,children:l("read")}),e.jsx(S,{disabled:g,className:"btn btn-error join-item",onClick:_,children:l("write")})]}),i&&e.jsx(W,{message:i})]}):e.jsx("span",{children:"No endpoints"})}const oe=o=>{const{device:n,lastLog:u}=o,{t:r}=z(["common","zigbee"]),[i,d]=t.useState(1),[b,f]=t.useState(""),[p,c]=t.useState(""),[x,h]=t.useState("{}"),{sendMessage:N}=t.useContext(O),l=D(a=>a.bridgeDefinitions),k=t.useMemo(()=>{if(!b||!p)return!1;try{const a=JSON.parse(x);if(typeof a!="object"||Array.isArray(a)&&a.length>0&&typeof a[0]!="object")return!1}catch{return!1}return!0},[x,b,p]),E=t.useMemo(()=>{const a=n.endpoints[i],m=new Set,_=new Set,j=new Set,C=new Set,g=new Set;if(a){for(const s of a.clusters.input)m.add(s),_.add(s);for(const s of a.clusters.output)m.add(s),j.add(s)}if(l.custom_clusters[n.friendly_name])for(const s in l.custom_clusters[n.friendly_name])m.has(s)||(m.add(s),C.add(s));for(const s in l.clusters)m.has(s)||g.add(s);return[{name:"input_clusters",clusters:_},{name:"output_clusters",clusters:j},{name:"custom_clusters",clusters:C},{name:"other_zcl_clusters",clusters:g}]},[n.friendly_name,n.endpoints,i,l]),A=t.useCallback(async()=>{let a=Number.parseInt(p,10);Number.isNaN(a)&&(a=p),await N(`${n.ieee_address}/${i}/set`,{command:{cluster:b,command:a,payload:JSON.parse(x)}})},[b,n.ieee_address,p,x,i,N]);return e.jsxs("div",{className:"flex-1 flex flex-col gap-3",children:[e.jsx("h2",{className:"text-lg",children:r("execute_command")}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx(P,{type:"number",name:"endpoint",label:r("zigbee:endpoint"),min:1,max:255,value:i,onChange:a=>!!a.target.value&&d(a.target.valueAsNumber),required:!0}),e.jsx(U,{label:r("zigbee:cluster"),clusters:E,value:b,onChange:a=>{f(a)},required:!0}),e.jsx(P,{type:"text",name:"command",label:r("command"),value:p,placeholder:"state, color...",onChange:a=>c(a.target.value),pattern:"^\\d+|^\\w+",required:!0})]}),e.jsx(M,{name:"payload",label:r("payload"),rows:3,value:x,onChange:a=>h(a.target.value),className:"textarea validator w-full",required:!0}),e.jsx("div",{children:e.jsx(S,{onClick:A,disabled:!k,className:"btn btn-success",children:r("execute")})}),u&&e.jsx(W,{message:u})]})},re=/^(zhc:tz: Read result of |z2m: Publish 'set' 'read' to |z2m: Publish 'set' 'write' to |zhc:tz: Wrote )/,ie=t.memo(({device:o,externalDefinition:n})=>{const{t:u}=z("zigbee"),r=D(d=>d.bridgeInfo.zigbee_herdsman_converters.version),i={labels:"new device support",title:`[New device support] ${o.model_id} from ${o.manufacturer}`,body:`<!-- MAKE SURE THIS IS NOT ALREADY POSTED ${R.slice(0,-4)} -->
1
+ import{r as t,j as e,a4 as B,am as G,b as z,B as S,F as J,y as V,ai as K,W as O,a as D,E as H,an as X,S as Y,L as q,ao as Z,ap as R}from"./index-B9KSRkAy.js";import{T as M}from"./TextareaField-Busy2yTR.js";import{J as Q}from"./Json-C6OVoNML.js";import{I as P}from"./InputField-D8fYIAZ2.js";import{C as U,A as ee}from"./ClusterSinglePicker-DlPNbPK2.js";import{E as te}from"./EndpointPicker-wR5nrVyy.js";import"./envs-DFlyG_dH.js";import"./SelectField-CwoktH0d.js";const W=t.memo(o=>{const{message:n}=o;return e.jsx("div",{className:"mockup-code w-full",children:e.jsx("pre",{"data-prefix":"~",className:B[n.level],children:e.jsxs("code",{children:["[",n.timestamp,"] ",n.message]})})})}),se=[65,66,67,68];function ne(o){const{value:n,onChange:u,attribute:r,definition:i,...d}=o,b=se.includes(i.type)?"text":"number";return e.jsx("input",{type:b,value:n,onChange:f=>{const p=b==="number"?f.target.valueAsNumber:f.target.value;u(r,Number.isNaN(p)?void 0:p)},...d})}function ae(o){const{device:n,readDeviceAttributes:u,writeDeviceAttributes:r,lastLog:i}=o,[d,b]=t.useState(G(n.endpoints)??""),[f,p]=t.useState(""),[c,x]=t.useState([]),[h,N]=t.useState(""),{t:l}=z(["common","zigbee"]),k=t.useCallback(s=>{p(""),x([]),b(s.toString())},[]),E=t.useCallback(s=>{x([]),p(s)},[]),A=t.useCallback((s,w)=>{if(!c.find(y=>y.attribute===s)){const y=c.concat([{attribute:s,definition:w}]);x(y)}},[c]),a=t.useCallback(s=>{N(s.target.value)},[]),m=t.useCallback(async()=>{await u(n.ieee_address,d,f,c.map(s=>s.attribute),h)},[n.ieee_address,d,f,c,h,u]),_=t.useCallback(async()=>{await r(n.ieee_address,d,f,c)},[n.ieee_address,d,f,c,r]),j=t.useMemo(()=>c.length>0&&e.jsx("fieldset",{className:"fieldset gap-2 p-3 rounded-box shadow-md",children:c.map(({attribute:s,value:w="",definition:y})=>e.jsxs("div",{className:"join join-horizontal min-w-xs",children:[e.jsxs("label",{className:"input join-item",children:[s,e.jsx(ne,{value:w,attribute:s,definition:y,onChange:($,I)=>{const L=Array.from(c),T=L.find(F=>F.attribute===$);T&&(T.value=I),x(L)}})]}),e.jsx(S,{className:"btn btn-error btn-outline join-item",item:s,onClick:$=>{const I=c.filter(L=>L.attribute!==$);x(I)},children:e.jsx(J,{icon:V})})]},s))}),[c]),C=t.useMemo(()=>{const s=new Set;if(d){const w=n.endpoints[Number.parseInt(d,10)];if(w)for(const y of w.clusters.input)s.add(y)}return s},[n,d]),g=c.length===0||f==="",v=t.useMemo(()=>K(n),[n]);return d?e.jsxs("div",{className:"flex-1 flex flex-col gap-3",children:[e.jsx("h2",{className:"text-lg",children:l("zigbee:read_write_attributes")}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx(te,{label:l("zigbee:endpoint"),values:v,value:d,onChange:k,required:!0}),e.jsx(U,{label:l("cluster"),clusters:C,value:f,onChange:E,required:!0}),e.jsx(ee,{label:l("attribute"),value:"",cluster:f,device:n,onChange:A}),e.jsx(P,{type:"text",name:"state_property",label:l("devConsole:state_property"),value:h,detail:`${l("optional")}. ${l("devConsole:state_property_info")}`,onChange:a})]}),j,e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(S,{disabled:g||c.some(s=>!!s.value),className:"btn btn-success join-item",onClick:m,children:l("read")}),e.jsx(S,{disabled:g,className:"btn btn-error join-item",onClick:_,children:l("write")})]}),i&&e.jsx(W,{message:i})]}):e.jsx("span",{children:"No endpoints"})}const oe=o=>{const{device:n,lastLog:u}=o,{t:r}=z(["common","zigbee"]),[i,d]=t.useState(1),[b,f]=t.useState(""),[p,c]=t.useState(""),[x,h]=t.useState("{}"),{sendMessage:N}=t.useContext(O),l=D(a=>a.bridgeDefinitions),k=t.useMemo(()=>{if(!b||!p)return!1;try{const a=JSON.parse(x);if(typeof a!="object"||Array.isArray(a)&&a.length>0&&typeof a[0]!="object")return!1}catch{return!1}return!0},[x,b,p]),E=t.useMemo(()=>{const a=n.endpoints[i],m=new Set,_=new Set,j=new Set,C=new Set,g=new Set;if(a){for(const s of a.clusters.input)m.add(s),_.add(s);for(const s of a.clusters.output)m.add(s),j.add(s)}if(l.custom_clusters[n.friendly_name])for(const s in l.custom_clusters[n.friendly_name])m.has(s)||(m.add(s),C.add(s));for(const s in l.clusters)m.has(s)||g.add(s);return[{name:"input_clusters",clusters:_},{name:"output_clusters",clusters:j},{name:"custom_clusters",clusters:C},{name:"other_zcl_clusters",clusters:g}]},[n.friendly_name,n.endpoints,i,l]),A=t.useCallback(async()=>{let a=Number.parseInt(p,10);Number.isNaN(a)&&(a=p),await N(`${n.ieee_address}/${i}/set`,{command:{cluster:b,command:a,payload:JSON.parse(x)}})},[b,n.ieee_address,p,x,i,N]);return e.jsxs("div",{className:"flex-1 flex flex-col gap-3",children:[e.jsx("h2",{className:"text-lg",children:r("execute_command")}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx(P,{type:"number",name:"endpoint",label:r("zigbee:endpoint"),min:1,max:255,value:i,onChange:a=>!!a.target.value&&d(a.target.valueAsNumber),required:!0}),e.jsx(U,{label:r("zigbee:cluster"),clusters:E,value:b,onChange:a=>{f(a)},required:!0}),e.jsx(P,{type:"text",name:"command",label:r("command"),value:p,placeholder:"state, color...",onChange:a=>c(a.target.value),pattern:"^\\d+|^\\w+",required:!0})]}),e.jsx(M,{name:"payload",label:r("payload"),rows:3,value:x,onChange:a=>h(a.target.value),className:"textarea validator w-full",required:!0}),e.jsx("div",{children:e.jsx(S,{onClick:A,disabled:!k,className:"btn btn-success",children:r("execute")})}),u&&e.jsx(W,{message:u})]})},re=/^(zhc:tz: Read result of |z2m: Publish 'set' 'read' to |z2m: Publish 'set' 'write' to |zhc:tz: Wrote )/,ie=t.memo(({device:o,externalDefinition:n})=>{const{t:u}=z("zigbee"),r=D(d=>d.bridgeInfo.zigbee_herdsman_converters.version),i={labels:"new device support",title:`[New device support] ${o.model_id} from ${o.manufacturer}`,body:`<!-- MAKE SURE THIS IS NOT ALREADY POSTED ${R.slice(0,-4)} -->
2
2
 
3
3
  ### Link
4
4
 
@@ -1 +1 @@
1
- import{r as f,b as j,j as s,L as u,F as h,aV as w}from"./index-iXNIEDco.js";import{F as N,g as y}from"./Feature-DKsa0Oda.js";import{L}from"./LastSeen-CUs1Vb2e.js";import{L as F}from"./Lqi-DXzNBOZd.js";import{P as _}from"./PowerSource-DHbzVhTD.js";import{D as $}from"./DeviceImage-DshByPQQ.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};
1
+ import{r as f,b as j,j as s,L as u,F as h,aV as w}from"./index-B9KSRkAy.js";import{F as N,g as y}from"./Feature-DRiBEd30.js";import{L}from"./LastSeen-kmLjgf_4.js";import{L as F}from"./Lqi-BZ7lW9bx.js";import{P as _}from"./PowerSource-DgbKMgpx.js";import{D as $}from"./DeviceImage-XiUg0NFS.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};
@@ -1 +1 @@
1
- import{x as h,O as j,b as f,r as m,j as e,Q as _,B as i,F as u,R as p}from"./index-iXNIEDco.js";import{C as b}from"./CheckboxField-De0QHbsG.js";import{I as k}from"./InputField-D4dIbfoE.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};
1
+ import{x as h,O as j,b as f,r as m,j as e,Q as _,B as i,F as u,R as p}from"./index-B9KSRkAy.js";import{C as b}from"./CheckboxField-DnsgrtmM.js";import{I as k}from"./InputField-D8fYIAZ2.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};
@@ -1 +1 @@
1
- import{j as a,F as l,a2 as x,r as d,b as w,aq as b,as as O,c8 as S,c9 as P,M as N,ca as _}from"./index-iXNIEDco.js";import{g as D,a as y}from"./index-Dncflq5A.js";function I({error:r,children:e}){return r?a.jsx(l,{icon:x,size:"3x",className:"text-error",title:"Missing image"}):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 i=t.call(r,e);if(p(i)!="object")return i;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(i){return new Promise(function(n,o){var c=new Image;t&&(c.crossOrigin=t),c.onload=function(){c.decode?c.decode().then(n).catch(o):n()},c.onerror=o,c.src=i})}};function j(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}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(i){L(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):j(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}var F=function(e){return e.filter(function(t){return t})},M=function(e){return Array.isArray(e)?e:[e]},u={},T=function(e,t){var i=!1;return new Promise(function(n,o){var c=function(m){return t(m).then(function(){i=!0,n(m)})};e.reduce(function(f,m){return f.catch(function(){if(!i)return c(m)})},c(e.shift())).catch(o)})};function q(r){var e=r.srcList,t=r.imgPromise,i=t===void 0?$({}):t,n=r.useSuspense,o=n===void 0?!0:n,c=d.useState(!1),f=c[1],m=F(M(e)),s=m.join("");if(u[s]||(u[s]={promise:T(m,i),cache:"pending",error:null}),u[s].cache==="resolved")return{src:u[s].src,isLoading:!1,error:null};if(u[s].cache==="rejected"){if(o)throw u[s].error;return{isLoading:!1,error:u[s].error,src:void 0}}if(u[s].promise.then(function(v){u[s]=g(g({},u[s]),{},{cache:"resolved",src:v}),o||f(s)}).catch(function(v){u[s]=g(g({},u[s]),{},{cache:"rejected",error:v}),o||f(s)}),o)throw u[s].promise;return{isLoading:!0,src:void 0,error:null}}const h=d.memo(({device:r={},className:e})=>{const t=r.definition?.icon,i=D(r),n=[];t&&n.push(t),i&&n.push(i),i!==y&&n.push(y);const{src:o}=q({srcList:n});return a.jsx("img",{alt:r.ieee_address,crossOrigin:"anonymous",src:o,className:e})}),k=d.memo(r=>{const{t:e}=w("zigbee"),{device:t={},disabled:i,otaState:n,className:o,noIndicator:c}=r,f=d.useMemo(()=>t.interview_state===b.InProgress?a.jsx(l,{icon:O,spin:!0,title:e("interviewing"),className:"indicator-item indicator-bottom indicator-end text-info"}):t.interview_state===b.Failed?a.jsx(l,{icon:x,beat:!0,title:e("interview_failed"),className:"indicator-item indicator-bottom indicator-end text-error"}):t.definition?.source==="generated"?a.jsx(l,{icon:S,beat:!0,title:e("unsupported"),className:"indicator-item indicator-bottom indicator-end text-warning"}):t.definition?.source==="external"?a.jsx(l,{icon:P,title:e("unsupported"),className:"indicator-item indicator-bottom indicator-end text-info"}):null,[t.interview_state,t.definition,e]);return a.jsx(d.Suspense,{fallback:a.jsx("img",{alt:t.ieee_address,src:y}),children:a.jsx(I,{children:c?a.jsx(h,{device:t,className:`grid place-items-center${o?` ${o}`:""}`}):a.jsxs("div",{className:"indicator w-full",children:[n==="updating"&&a.jsx(l,{icon:N,spin:!0,title:e("updating_firmware"),className:"indicator-item indicator-top indicator-end text-info"}),f,i&&a.jsx(l,{icon:_,title:e("common:disabled"),className:"indicator-item indicator-middle indicator-center text-error",size:"2xl"}),a.jsx(h,{device:t,className:`grid place-items-center${o?` ${o}`:""}`})]})})})});export{k as D};
1
+ import{j as a,F as l,a2 as x,r as d,b as w,aq as b,as as O,c8 as S,c9 as P,M as N,ca as _}from"./index-B9KSRkAy.js";import{g as D,a as y}from"./index-DajxErfA.js";function I({error:r,children:e}){return r?a.jsx(l,{icon:x,size:"3x",className:"text-error",title:"Missing image"}):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 i=t.call(r,e);if(p(i)!="object")return i;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(i){return new Promise(function(n,o){var c=new Image;t&&(c.crossOrigin=t),c.onload=function(){c.decode?c.decode().then(n).catch(o):n()},c.onerror=o,c.src=i})}};function j(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}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(i){L(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):j(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}var F=function(e){return e.filter(function(t){return t})},M=function(e){return Array.isArray(e)?e:[e]},u={},T=function(e,t){var i=!1;return new Promise(function(n,o){var c=function(m){return t(m).then(function(){i=!0,n(m)})};e.reduce(function(f,m){return f.catch(function(){if(!i)return c(m)})},c(e.shift())).catch(o)})};function q(r){var e=r.srcList,t=r.imgPromise,i=t===void 0?$({}):t,n=r.useSuspense,o=n===void 0?!0:n,c=d.useState(!1),f=c[1],m=F(M(e)),s=m.join("");if(u[s]||(u[s]={promise:T(m,i),cache:"pending",error:null}),u[s].cache==="resolved")return{src:u[s].src,isLoading:!1,error:null};if(u[s].cache==="rejected"){if(o)throw u[s].error;return{isLoading:!1,error:u[s].error,src:void 0}}if(u[s].promise.then(function(v){u[s]=g(g({},u[s]),{},{cache:"resolved",src:v}),o||f(s)}).catch(function(v){u[s]=g(g({},u[s]),{},{cache:"rejected",error:v}),o||f(s)}),o)throw u[s].promise;return{isLoading:!0,src:void 0,error:null}}const h=d.memo(({device:r={},className:e})=>{const t=r.definition?.icon,i=D(r),n=[];t&&n.push(t),i&&n.push(i),i!==y&&n.push(y);const{src:o}=q({srcList:n});return a.jsx("img",{alt:r.ieee_address,crossOrigin:"anonymous",src:o,className:e})}),k=d.memo(r=>{const{t:e}=w("zigbee"),{device:t={},disabled:i,otaState:n,className:o,noIndicator:c}=r,f=d.useMemo(()=>t.interview_state===b.InProgress?a.jsx(l,{icon:O,spin:!0,title:e("interviewing"),className:"indicator-item indicator-bottom indicator-end text-info"}):t.interview_state===b.Failed?a.jsx(l,{icon:x,beat:!0,title:e("interview_failed"),className:"indicator-item indicator-bottom indicator-end text-error"}):t.definition?.source==="generated"?a.jsx(l,{icon:S,beat:!0,title:e("unsupported"),className:"indicator-item indicator-bottom indicator-end text-warning"}):t.definition?.source==="external"?a.jsx(l,{icon:P,title:e("unsupported"),className:"indicator-item indicator-bottom indicator-end text-info"}):null,[t.interview_state,t.definition,e]);return a.jsx(d.Suspense,{fallback:a.jsx("img",{alt:t.ieee_address,src:y}),children:a.jsx(I,{children:c?a.jsx(h,{device:t,className:`grid place-items-center${o?` ${o}`:""}`}):a.jsxs("div",{className:"indicator w-full",children:[n==="updating"&&a.jsx(l,{icon:N,spin:!0,title:e("updating_firmware"),className:"indicator-item indicator-top indicator-end text-info"}),f,i&&a.jsx(l,{icon:_,title:e("common:disabled"),className:"indicator-item indicator-middle indicator-center text-error",size:"2xl"}),a.jsx(h,{device:t,className:`grid place-items-center${o?` ${o}`:""}`})]})})})});export{k as D};
@@ -1,4 +1,4 @@
1
- import{x as S,O as I,b as x,r,j as e,Q as L,B as f,F as p,R as O,a as u,W as T,L as h,a2 as U,aq as _,ar as P,as as N,ao as A,t as z,at as w,ap as y}from"./index-iXNIEDco.js";import{s as M}from"./snakeCase-2EvkzqTo.js";import{D as H}from"./DeviceControlEditName-BObC136U.js";import{A as W,D as q}from"./Availability-BiumPUeO.js";import{T as F}from"./TextareaField-DgNWd4bB.js";import{D as G}from"./DeviceImage-DshByPQQ.js";import{D as B}from"./DisplayValue-CfKoGI0j.js";import{L as V}from"./LastSeen-CUs1Vb2e.js";import{M as J,V as K}from"./VendorLink-AmsYWJKL.js";import{P as Y}from"./PowerSource-DHbzVhTD.js";import"./envs-DFlyG_dH.js";import"./_createCompounder-CDCf6N6Y.js";import"./CheckboxField-De0QHbsG.js";import"./InputField-D4dIbfoE.js";import"./index-Dncflq5A.js";import"./format-CFXT8pE2.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)} -->
1
+ import{x as S,O as I,b as x,r,j as e,Q as L,B as f,F as p,R as O,a as u,W as T,L as h,a2 as U,aq as _,ar as P,as as N,ao as A,t as z,at as w,ap as y}from"./index-B9KSRkAy.js";import{s as M}from"./snakeCase-BsE9z82R.js";import{D as H}from"./DeviceControlEditName-CW6kAJai.js";import{A as W,D as q}from"./Availability-9y0Errm-.js";import{T as F}from"./TextareaField-Busy2yTR.js";import{D as G}from"./DeviceImage-XiUg0NFS.js";import{D as B}from"./DisplayValue-DKwqD83w.js";import{L as V}from"./LastSeen-kmLjgf_4.js";import{M as J,V as K}from"./VendorLink-KoryP9lw.js";import{P as Y}from"./PowerSource-DgbKMgpx.js";import"./envs-DFlyG_dH.js";import"./_createCompounder-Db7SjIIq.js";import"./CheckboxField-DnsgrtmM.js";import"./InputField-D8fYIAZ2.js";import"./index-DajxErfA.js";import"./format-CsVfcRLB.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}\`
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Bind-DjOXtTM6.js","./index-iXNIEDco.js","./envs-DFlyG_dH.js","./index-DGcjwAm-.css","./DevicePicker-DUSP1774.js","./SelectField-BFSZ1jgU.js","./EndpointPicker-CKjImsmQ.js","./Clusters-EXal5imX.js","./DevConsole-YqbpD45I.js","./TextareaField-DgNWd4bB.js","./Json-CL1gHmYN.js","./InputField-D4dIbfoE.js","./ClusterSinglePicker-Di8d-bx5.js","./DeviceInfo-V522QLe7.js","./snakeCase-2EvkzqTo.js","./_createCompounder-CDCf6N6Y.js","./DeviceControlEditName-BObC136U.js","./CheckboxField-De0QHbsG.js","./Availability-BiumPUeO.js","./DeviceImage-DshByPQQ.js","./index-Dncflq5A.js","./DisplayValue-CfKoGI0j.js","./LastSeen-CUs1Vb2e.js","./format-CFXT8pE2.js","./VendorLink-AmsYWJKL.js","./PowerSource-DHbzVhTD.js","./DeviceSettings-BPsmP0OM.js","./SettingsList-B5lRPdmf.js","./NumberField-1g9cUedG.js","./DeviceSpecificSettings-eDupl8hE.js","./Feature-DKsa0Oda.js","./Exposes-CY4p-R2G.js","./Groups-BBXSMxiv.js","./Reporting-D-T0p7pR.js","./Scene-CBkAt36p.js","./RecallRemove-UfYYwosz.js","./DashboardFeatureWrapper-TlB_F76s.js","./State-qRhsFF8C.js"])))=>i.map(i=>d[i]);
2
- import{r as t,b as p,j as e,L as v,P as x,F as r,f as j,a as f,d as b,u as g,N as n,e as y,g as h,h as N,i as E,k as T,l as w,m as D,n as L,o as P,p as $,q as A,_ as l}from"./index-iXNIEDco.js";import"./envs-DFlyG_dH.js";const I=t.memo(i=>{const{devices:u,currentDevice:a,tab:m="info"}=i,[d,s]=t.useState(""),{t:o}=p("common"),_=t.useMemo(()=>u.filter(c=>c.type!=="Coordinator"&&c.friendly_name.toLowerCase().includes(d.toLowerCase())&&c.ieee_address!==a?.ieee_address).map(c=>e.jsx("li",{children:e.jsx(v,{to:`/device/${c.ieee_address}/${m}`,onClick:()=>s(""),className:"dropdown-item",children:c.friendly_name})},c.ieee_address)),[u,a,d,m]);return e.jsxs(x,{name:"header-device-selector",buttonChildren:`${a?`${a.friendly_name} (${a.ieee_address})`:o("unknown_device")}`,dropdownStyle:"dropdown-start",children:[e.jsxs("label",{className:"input",children:[e.jsx(r,{icon:j}),e.jsx("input",{type:"search",placeholder:o("type_to_filter"),onChange:c=>s(c.target.value),value:d})]},"search"),_]})}),R=t.lazy(async()=>await l(()=>import("./Bind-DjOXtTM6.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),C=t.lazy(async()=>await l(()=>import("./Clusters-EXal5imX.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),O=t.lazy(async()=>await l(()=>import("./DevConsole-YqbpD45I.js"),__vite__mapDeps([8,1,2,3,9,10,11,12,5,6]),import.meta.url)),S=t.lazy(async()=>await l(()=>import("./DeviceInfo-V522QLe7.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=t.lazy(async()=>await l(()=>import("./DeviceSettings-BPsmP0OM.js"),__vite__mapDeps([26,1,2,3,27,17,11,28,5]),import.meta.url)),V=t.lazy(async()=>await l(()=>import("./DeviceSpecificSettings-eDupl8hE.js"),__vite__mapDeps([29,1,2,3,30,21,15]),import.meta.url)),k=t.lazy(async()=>await l(()=>import("./Exposes-CY4p-R2G.js"),__vite__mapDeps([31,1,2,3,30,21,15]),import.meta.url)),M=t.lazy(async()=>await l(()=>import("./Groups-BBXSMxiv.js"),__vite__mapDeps([32,1,2,3,6,5]),import.meta.url)),F=t.lazy(async()=>await l(()=>import("./Reporting-D-T0p7pR.js"),__vite__mapDeps([33,1,2,3,11,12,5,6]),import.meta.url)),G=t.lazy(async()=>await l(()=>import("./Scene-CBkAt36p.js"),__vite__mapDeps([34,1,2,3,35,36,30,21,15,11,5]),import.meta.url)),B=t.lazy(async()=>await l(()=>import("./State-qRhsFF8C.js"),__vite__mapDeps([37,1,2,3,10]),import.meta.url));function H(){const{t:i}=p(["devicePage","common"]),u=f(c=>c.devices),{deviceId:a,tab:m}=b(),d=g(),s=a?u.find(c=>c.ieee_address===a):void 0;t.useEffect(()=>{s&&(m?s.type==="Coordinator"&&d("/settings/about",{replace:!0}):d(s.type==="Coordinator"?"/settings/about":`/device/${s.ieee_address}/info`,{replace:!0}))},[m,s,d]);const o=({isActive:c})=>c?"tab tab-active":"tab",_=t.useMemo(()=>{if(!s)return e.jsx("div",{className:"flex-auto justify-center items-center",children:i("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,i]);return e.jsxs(e.Fragment,{children:[e.jsx(I,{devices:u,currentDevice:s,tab:m}),e.jsxs("div",{className:"tabs tabs-border mt-2",children:[e.jsxs(n,{to:`/device/${a}/info`,className:o,children:[e.jsx(r,{icon:y,className:"me-2"}),i("about")]}),e.jsxs(n,{to:`/device/${a}/exposes`,className:o,children:[e.jsx(r,{icon:h,className:"me-2"}),i("exposes")]}),e.jsxs(n,{to:`/device/${a}/bind`,className:o,children:[e.jsx(r,{icon:N,className:"me-2"}),i("bind")]}),e.jsxs(n,{to:`/device/${a}/reporting`,className:o,children:[e.jsx(r,{icon:E,className:"me-2"}),i("reporting")]}),e.jsxs(n,{to:`/device/${a}/settings`,className:o,children:[e.jsx(r,{icon:T,className:"me-2"}),i("settings")]}),e.jsxs(n,{to:`/device/${a}/settings-specific`,className:o,children:[e.jsx(r,{icon:w,className:"me-2"}),i("settings_specific")]}),e.jsxs(n,{to:`/device/${a}/state`,className:o,children:[e.jsx(r,{icon:D,className:"me-2"}),i("state")]}),e.jsxs(n,{to:`/device/${a}/clusters`,className:o,children:[e.jsx(r,{icon:L,className:"me-2"}),i("clusters")]}),e.jsxs(n,{to:`/device/${a}/groups`,className:o,children:[e.jsx(r,{icon:P,className:"me-2"}),i("groups")]}),e.jsxs(n,{to:`/device/${a}/scene`,className:o,children:[e.jsx(r,{icon:$,className:"me-2"}),i("scene")]}),e.jsxs(n,{to:`/device/${a}/dev-console`,className:o,children:[e.jsx(r,{icon:A,className:"me-2"}),i("dev_console")]}),e.jsx("div",{className:"tab-content block h-full bg-base-100 p-3",children:_})]})]})}export{H as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Bind-Dzsbdj9O.js","./index-B9KSRkAy.js","./envs-DFlyG_dH.js","./index-DGcjwAm-.css","./DevicePicker-BPQGOPp-.js","./SelectField-CwoktH0d.js","./EndpointPicker-wR5nrVyy.js","./Clusters-CJHqlXOr.js","./DevConsole-QAj8WJrx.js","./TextareaField-Busy2yTR.js","./Json-C6OVoNML.js","./InputField-D8fYIAZ2.js","./ClusterSinglePicker-DlPNbPK2.js","./DeviceInfo-DfhI34CI.js","./snakeCase-BsE9z82R.js","./_createCompounder-Db7SjIIq.js","./DeviceControlEditName-CW6kAJai.js","./CheckboxField-DnsgrtmM.js","./Availability-9y0Errm-.js","./DeviceImage-XiUg0NFS.js","./index-DajxErfA.js","./DisplayValue-DKwqD83w.js","./LastSeen-kmLjgf_4.js","./format-CsVfcRLB.js","./VendorLink-KoryP9lw.js","./PowerSource-DgbKMgpx.js","./DeviceSettings-DXxqeQBJ.js","./SettingsList-C3vSq4jP.js","./NumberField-iJErwbzA.js","./DeviceSpecificSettings-BThCFadV.js","./Feature-DRiBEd30.js","./Exposes-Cndo2Hi0.js","./Groups-PKw32Dqb.js","./Reporting-BKKOgcmJ.js","./Scene-org1InOA.js","./RecallRemove-ByrNeUbK.js","./DashboardFeatureWrapper-BV-EJkYu.js","./State-_uoH9Qaz.js"])))=>i.map(i=>d[i]);
2
+ import{r as t,b as p,j as e,L as v,P as x,F as r,f as j,a as f,d as b,u as g,N as n,e as y,g as h,h as N,i as E,k as T,l as w,m as D,n as L,o as P,p as $,q as A,_ as l}from"./index-B9KSRkAy.js";import"./envs-DFlyG_dH.js";const I=t.memo(i=>{const{devices:u,currentDevice:a,tab:m="info"}=i,[d,s]=t.useState(""),{t:o}=p("common"),_=t.useMemo(()=>u.filter(c=>c.type!=="Coordinator"&&c.friendly_name.toLowerCase().includes(d.toLowerCase())&&c.ieee_address!==a?.ieee_address).map(c=>e.jsx("li",{children:e.jsx(v,{to:`/device/${c.ieee_address}/${m}`,onClick:()=>s(""),className:"dropdown-item",children:c.friendly_name})},c.ieee_address)),[u,a,d,m]);return e.jsxs(x,{name:"header-device-selector",buttonChildren:`${a?`${a.friendly_name} (${a.ieee_address})`:o("unknown_device")}`,dropdownStyle:"dropdown-start",children:[e.jsxs("label",{className:"input",children:[e.jsx(r,{icon:j}),e.jsx("input",{type:"search",placeholder:o("type_to_filter"),onChange:c=>s(c.target.value),value:d})]},"search"),_]})}),R=t.lazy(async()=>await l(()=>import("./Bind-Dzsbdj9O.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),C=t.lazy(async()=>await l(()=>import("./Clusters-CJHqlXOr.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),O=t.lazy(async()=>await l(()=>import("./DevConsole-QAj8WJrx.js"),__vite__mapDeps([8,1,2,3,9,10,11,12,5,6]),import.meta.url)),S=t.lazy(async()=>await l(()=>import("./DeviceInfo-DfhI34CI.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=t.lazy(async()=>await l(()=>import("./DeviceSettings-DXxqeQBJ.js"),__vite__mapDeps([26,1,2,3,27,17,11,28,5]),import.meta.url)),V=t.lazy(async()=>await l(()=>import("./DeviceSpecificSettings-BThCFadV.js"),__vite__mapDeps([29,1,2,3,30,21,15]),import.meta.url)),k=t.lazy(async()=>await l(()=>import("./Exposes-Cndo2Hi0.js"),__vite__mapDeps([31,1,2,3,30,21,15]),import.meta.url)),M=t.lazy(async()=>await l(()=>import("./Groups-PKw32Dqb.js"),__vite__mapDeps([32,1,2,3,6,5]),import.meta.url)),F=t.lazy(async()=>await l(()=>import("./Reporting-BKKOgcmJ.js"),__vite__mapDeps([33,1,2,3,11,12,5,6]),import.meta.url)),G=t.lazy(async()=>await l(()=>import("./Scene-org1InOA.js"),__vite__mapDeps([34,1,2,3,35,36,30,21,15,11,5]),import.meta.url)),B=t.lazy(async()=>await l(()=>import("./State-_uoH9Qaz.js"),__vite__mapDeps([37,1,2,3,10]),import.meta.url));function H(){const{t:i}=p(["devicePage","common"]),u=f(c=>c.devices),{deviceId:a,tab:m}=b(),d=g(),s=a?u.find(c=>c.ieee_address===a):void 0;t.useEffect(()=>{s&&(m?s.type==="Coordinator"&&d("/settings/about",{replace:!0}):d(s.type==="Coordinator"?"/settings/about":`/device/${s.ieee_address}/info`,{replace:!0}))},[m,s,d]);const o=({isActive:c})=>c?"tab tab-active":"tab",_=t.useMemo(()=>{if(!s)return e.jsx("div",{className:"flex-auto justify-center items-center",children:i("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,i]);return e.jsxs(e.Fragment,{children:[e.jsx(I,{devices:u,currentDevice:s,tab:m}),e.jsxs("div",{className:"tabs tabs-border mt-2",children:[e.jsxs(n,{to:`/device/${a}/info`,className:o,children:[e.jsx(r,{icon:y,className:"me-2"}),i("about")]}),e.jsxs(n,{to:`/device/${a}/exposes`,className:o,children:[e.jsx(r,{icon:h,className:"me-2"}),i("exposes")]}),e.jsxs(n,{to:`/device/${a}/bind`,className:o,children:[e.jsx(r,{icon:N,className:"me-2"}),i("bind")]}),e.jsxs(n,{to:`/device/${a}/reporting`,className:o,children:[e.jsx(r,{icon:E,className:"me-2"}),i("reporting")]}),e.jsxs(n,{to:`/device/${a}/settings`,className:o,children:[e.jsx(r,{icon:T,className:"me-2"}),i("settings")]}),e.jsxs(n,{to:`/device/${a}/settings-specific`,className:o,children:[e.jsx(r,{icon:w,className:"me-2"}),i("settings_specific")]}),e.jsxs(n,{to:`/device/${a}/state`,className:o,children:[e.jsx(r,{icon:D,className:"me-2"}),i("state")]}),e.jsxs(n,{to:`/device/${a}/clusters`,className:o,children:[e.jsx(r,{icon:L,className:"me-2"}),i("clusters")]}),e.jsxs(n,{to:`/device/${a}/groups`,className:o,children:[e.jsx(r,{icon:P,className:"me-2"}),i("groups")]}),e.jsxs(n,{to:`/device/${a}/scene`,className:o,children:[e.jsx(r,{icon:$,className:"me-2"}),i("scene")]}),e.jsxs(n,{to:`/device/${a}/dev-console`,className:o,children:[e.jsx(r,{icon:A,className:"me-2"}),i("dev_console")]}),e.jsx("div",{className:"tab-content block h-full bg-base-100 p-3",children:_})]})]})}export{H as default};
@@ -1 +1 @@
1
- import{r as d,b as x,j as t}from"./index-iXNIEDco.js";import{S as j}from"./SelectField-BFSZ1jgU.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};
1
+ import{r as d,b as x,j as t}from"./index-B9KSRkAy.js";import{S as j}from"./SelectField-CwoktH0d.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};
@@ -1 +1 @@
1
- import{b as c,a as d,r,W as m,j as e,F as l,K as p,aw as f,ax as g}from"./index-iXNIEDco.js";import{S as x}from"./SettingsList-B5lRPdmf.js";import"./envs-DFlyG_dH.js";import"./CheckboxField-De0QHbsG.js";import"./InputField-D4dIbfoE.js";import"./NumberField-1g9cUedG.js";import"./SelectField-BFSZ1jgU.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};
1
+ import{b as c,a as d,r,W as m,j as e,F as l,K as p,aw as f,ax as g}from"./index-B9KSRkAy.js";import{S as x}from"./SettingsList-C3vSq4jP.js";import"./envs-DFlyG_dH.js";import"./CheckboxField-DnsgrtmM.js";import"./InputField-D8fYIAZ2.js";import"./NumberField-iJErwbzA.js";import"./SelectField-CwoktH0d.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};
@@ -1 +1 @@
1
- import{b as p,a as u,r as a,W as c,j as i}from"./index-iXNIEDco.js";import{F as d,a as f,g}from"./Feature-DKsa0Oda.js";import"./envs-DFlyG_dH.js";import"./DisplayValue-CfKoGI0j.js";import"./_createCompounder-CDCf6N6Y.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};
1
+ import{b as p,a as u,r as a,W as c,j as i}from"./index-B9KSRkAy.js";import{F as d,a as f,g}from"./Feature-DRiBEd30.js";import"./envs-DFlyG_dH.js";import"./DisplayValue-DKwqD83w.js";import"./_createCompounder-Db7SjIIq.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};
@@ -1 +1 @@
1
- import{r as o,a as b,ai as h,b as C,W as j,j as e,B as S,S as D,F as w,y as k}from"./index-iXNIEDco.js";import{g as y,R as M,A as F}from"./RecallRemove-UfYYwosz.js";import{D as N}from"./DevicePicker-DUSP1774.js";import{E as R}from"./EndpointPicker-CKjImsmQ.js";import{D as E}from"./DashboardFeatureWrapper-TlB_F76s.js";import{D as A}from"./DeviceCard-C9vw9b6F.js";import"./envs-DFlyG_dH.js";import"./Feature-DKsa0Oda.js";import"./DisplayValue-CfKoGI0j.js";import"./_createCompounder-CDCf6N6Y.js";import"./InputField-D4dIbfoE.js";import"./SelectField-BFSZ1jgU.js";import"./LastSeen-CUs1Vb2e.js";import"./format-CFXT8pE2.js";import"./Lqi-DXzNBOZd.js";import"./PowerSource-DHbzVhTD.js";import"./snakeCase-2EvkzqTo.js";import"./DeviceImage-DshByPQQ.js";import"./index-Dncflq5A.js";const G=o.memo(n=>{const[i,m]=o.useState(""),[a,g]=o.useState(""),{group:c}=n,d=b(s=>s.devices),l=o.useMemo(()=>h(d.find(s=>s.ieee_address===a)),[a,d]),{t:r}=C(["groups","zigbee"]),{sendMessage:u}=o.useContext(j),t=o.useCallback(s=>{g(s.ieee_address);const p=h(s);m(p.values().next().value)},[]);return e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-lg font-semibold",children:r("add_to_group_header")}),e.jsxs("div",{className:"mb-3",children:[e.jsx(N,{label:r("zigbee:device"),value:a,devices:d,onChange:t}),e.jsx(R,{label:r("zigbee:endpoint"),values:l,value:i,onChange:s=>m(s)})]}),e.jsx(S,{onClick:async()=>await u("bridge/request/group/members/add",{group:c.id.toString(),endpoint:i,device:a}),className:"btn btn-primary",children:r("add_to_group")})]})}),I=o.memo(n=>{const{removeDeviceFromGroup:i,groupMember:m,device:a,deviceState:g,lastSeenConfig:c,setDeviceState:d,getDeviceState:l}=n,{endpoint:r}=m,{t:u}=C(["groups","common"]),t=o.useMemo(()=>{const v=[];for(const _ of a.definition?.exposes??[]){const x=y(_);if(x&&(v.push(x),v.length===10))break}return v},[a]),s=o.useCallback(async v=>await d(a.ieee_address,v),[a.ieee_address,d]),p=o.useCallback(async v=>await l(a.ieee_address,v),[a.ieee_address,l]),f=o.useCallback(async()=>await i(a.ieee_address,r),[a.ieee_address,r,i]);return e.jsx(A,{features:t,device:a,endpoint:r,deviceState:g,onChange:s,onRead:p,featureWrapperClass:E,lastSeenConfig:c,children:e.jsx(D,{onClick:f,className:"btn btn-square btn-outline btn-error btn-sm",title:u("remove_from_group"),modalDescription:u("common:dialog_confirmation_prompt"),modalCancelLabel:u("common:cancel"),children:e.jsx(w,{icon:k})})})}),W=o.memo(n=>{const{group:i}=n,m=b(t=>t.devices),a=b(t=>t.deviceStates),g=b(t=>t.bridgeInfo.config.advanced.last_seen),{sendMessage:c}=o.useContext(j),d=o.useCallback(async(t,s)=>await c("bridge/request/group/members/remove",{device:t,endpoint:s,group:i.id.toString()}),[c,i.id]),l=o.useCallback(async(t,s)=>{await c(`${t}/set`,s)},[c]),r=o.useCallback(async(t,s)=>{await c(`${t}/get`,s)},[c]),u=o.useMemo(()=>{const t=[];for(const s of i.members){const p=m.find(f=>f.ieee_address===s.ieee_address);p&&t.push(e.jsx("div",{className:"w-[23rem] card bg-base-200 rounded-box shadow-md",children:e.jsx(I,{removeDeviceFromGroup:d,device:p,groupMember:s,deviceState:a[p.friendly_name]??{},lastSeenConfig:g,setDeviceState:l,getDeviceState:r})},`${s.ieee_address}-${s.endpoint}`))}return t},[i,m,g,a,d,l,r]);return e.jsx("div",{className:"flex flex-row flex-wrap justify-center gap-3",children:u})});function te({group:n}){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(G,{group:n})}),e.jsx("div",{className:"flex-1",children:e.jsx(M,{target:n,deviceState:{}})}),e.jsx("div",{className:"flex-1",children:e.jsx(F,{target:n,deviceState:{}})})]}),e.jsx(W,{group:n})]})}export{te as default};
1
+ import{r as o,a as b,ai as h,b as C,W as j,j as e,B as S,S as D,F as w,y as k}from"./index-B9KSRkAy.js";import{g as y,R as M,A as F}from"./RecallRemove-ByrNeUbK.js";import{D as N}from"./DevicePicker-BPQGOPp-.js";import{E as R}from"./EndpointPicker-wR5nrVyy.js";import{D as E}from"./DashboardFeatureWrapper-BV-EJkYu.js";import{D as A}from"./DeviceCard-BibgHF2R.js";import"./envs-DFlyG_dH.js";import"./Feature-DRiBEd30.js";import"./DisplayValue-DKwqD83w.js";import"./_createCompounder-Db7SjIIq.js";import"./InputField-D8fYIAZ2.js";import"./SelectField-CwoktH0d.js";import"./LastSeen-kmLjgf_4.js";import"./format-CsVfcRLB.js";import"./Lqi-BZ7lW9bx.js";import"./PowerSource-DgbKMgpx.js";import"./snakeCase-BsE9z82R.js";import"./DeviceImage-XiUg0NFS.js";import"./index-DajxErfA.js";const G=o.memo(n=>{const[i,m]=o.useState(""),[a,g]=o.useState(""),{group:c}=n,d=b(s=>s.devices),l=o.useMemo(()=>h(d.find(s=>s.ieee_address===a)),[a,d]),{t:r}=C(["groups","zigbee"]),{sendMessage:u}=o.useContext(j),t=o.useCallback(s=>{g(s.ieee_address);const p=h(s);m(p.values().next().value)},[]);return e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"text-lg font-semibold",children:r("add_to_group_header")}),e.jsxs("div",{className:"mb-3",children:[e.jsx(N,{label:r("zigbee:device"),value:a,devices:d,onChange:t}),e.jsx(R,{label:r("zigbee:endpoint"),values:l,value:i,onChange:s=>m(s)})]}),e.jsx(S,{onClick:async()=>await u("bridge/request/group/members/add",{group:c.id.toString(),endpoint:i,device:a}),className:"btn btn-primary",children:r("add_to_group")})]})}),I=o.memo(n=>{const{removeDeviceFromGroup:i,groupMember:m,device:a,deviceState:g,lastSeenConfig:c,setDeviceState:d,getDeviceState:l}=n,{endpoint:r}=m,{t:u}=C(["groups","common"]),t=o.useMemo(()=>{const v=[];for(const _ of a.definition?.exposes??[]){const x=y(_);if(x&&(v.push(x),v.length===10))break}return v},[a]),s=o.useCallback(async v=>await d(a.ieee_address,v),[a.ieee_address,d]),p=o.useCallback(async v=>await l(a.ieee_address,v),[a.ieee_address,l]),f=o.useCallback(async()=>await i(a.ieee_address,r),[a.ieee_address,r,i]);return e.jsx(A,{features:t,device:a,endpoint:r,deviceState:g,onChange:s,onRead:p,featureWrapperClass:E,lastSeenConfig:c,children:e.jsx(D,{onClick:f,className:"btn btn-square btn-outline btn-error btn-sm",title:u("remove_from_group"),modalDescription:u("common:dialog_confirmation_prompt"),modalCancelLabel:u("common:cancel"),children:e.jsx(w,{icon:k})})})}),W=o.memo(n=>{const{group:i}=n,m=b(t=>t.devices),a=b(t=>t.deviceStates),g=b(t=>t.bridgeInfo.config.advanced.last_seen),{sendMessage:c}=o.useContext(j),d=o.useCallback(async(t,s)=>await c("bridge/request/group/members/remove",{device:t,endpoint:s,group:i.id.toString()}),[c,i.id]),l=o.useCallback(async(t,s)=>{await c(`${t}/set`,s)},[c]),r=o.useCallback(async(t,s)=>{await c(`${t}/get`,s)},[c]),u=o.useMemo(()=>{const t=[];for(const s of i.members){const p=m.find(f=>f.ieee_address===s.ieee_address);p&&t.push(e.jsx("div",{className:"w-[23rem] card bg-base-200 rounded-box shadow-md",children:e.jsx(I,{removeDeviceFromGroup:d,device:p,groupMember:s,deviceState:a[p.friendly_name]??{},lastSeenConfig:g,setDeviceState:l,getDeviceState:r})},`${s.ieee_address}-${s.endpoint}`))}return t},[i,m,g,a,d,l,r]);return e.jsx("div",{className:"flex flex-row flex-wrap justify-center gap-3",children:u})});function te({group:n}){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(G,{group:n})}),e.jsx("div",{className:"flex-1",children:e.jsx(M,{target:n,deviceState:{}})}),e.jsx("div",{className:"flex-1",children:e.jsx(F,{target:n,deviceState:{}})})]}),e.jsx(W,{group:n})]})}export{te as default};
@@ -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-iXNIEDco.js";import{A as I,D as T}from"./Availability-BiumPUeO.js";import{D as A}from"./DeviceImage-DshByPQQ.js";import{C as F}from"./CheckboxField-De0QHbsG.js";import{T as H}from"./Table-BvIilxHn.js";import{L as P}from"./LastSeen-CUs1Vb2e.js";import{L as O}from"./Lqi-DXzNBOZd.js";import{M as V,V as B}from"./VendorLink-AmsYWJKL.js";import{P as R}from"./PowerSource-DHbzVhTD.js";import"./envs-DFlyG_dH.js";import"./DeviceControlEditName-BObC136U.js";import"./InputField-D4dIbfoE.js";import"./index-Dncflq5A.js";import"./DebouncedInput-C8tkXJ7U.js";import"./format-CFXT8pE2.js";import"./DisplayValue-CfKoGI0j.js";import"./snakeCase-2EvkzqTo.js";import"./_createCompounder-CDCf6N6Y.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,state:i,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};
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-B9KSRkAy.js";import{A as I,D as T}from"./Availability-9y0Errm-.js";import{D as A}from"./DeviceImage-XiUg0NFS.js";import{C as F}from"./CheckboxField-DnsgrtmM.js";import{T as H}from"./Table-D8Gdn1uG.js";import{L as P}from"./LastSeen-kmLjgf_4.js";import{L as O}from"./Lqi-BZ7lW9bx.js";import{M as V,V as B}from"./VendorLink-KoryP9lw.js";import{P as R}from"./PowerSource-DgbKMgpx.js";import"./envs-DFlyG_dH.js";import"./DeviceControlEditName-CW6kAJai.js";import"./InputField-D8fYIAZ2.js";import"./index-DajxErfA.js";import"./DebouncedInput-BbusN73N.js";import"./format-CsVfcRLB.js";import"./DisplayValue-DKwqD83w.js";import"./snakeCase-BsE9z82R.js";import"./_createCompounder-Db7SjIIq.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,state:i,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};
@@ -1 +1 @@
1
- import{r as n,b as c,j as r}from"./index-iXNIEDco.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};
1
+ import{r as n,b as c,j as r}from"./index-B9KSRkAy.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};
@@ -1 +1 @@
1
- import{b as n,j as e,F as o,cr as r}from"./index-iXNIEDco.js";import"./envs-DFlyG_dH.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};
1
+ import{b as n,j as e,F as o,cr as r}from"./index-B9KSRkAy.js";import"./envs-DFlyG_dH.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};
@@ -1 +1 @@
1
- import{r,b as h,j as t}from"./index-iXNIEDco.js";import{S as x}from"./SelectField-BFSZ1jgU.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};
1
+ import{r,b as h,j as t}from"./index-B9KSRkAy.js";import{S as x}from"./SelectField-CwoktH0d.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};
@@ -1 +1 @@
1
- import{b as c,r as a,W as u,a as l,j as r}from"./index-iXNIEDco.js";import{F as m,a as x,g as f}from"./Feature-DKsa0Oda.js";import"./envs-DFlyG_dH.js";import"./DisplayValue-CfKoGI0j.js";import"./_createCompounder-CDCf6N6Y.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};
1
+ import{b as c,r as a,W as u,a as l,j as r}from"./index-B9KSRkAy.js";import{F as m,a as x,g as f}from"./Feature-DRiBEd30.js";import"./envs-DFlyG_dH.js";import"./DisplayValue-DKwqD83w.js";import"./_createCompounder-Db7SjIIq.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};