zigbee2mqtt-windfront 2.11.0 → 2.11.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 (398) hide show
  1. package/dist/assets/About-u_K5AZBw.js +10 -0
  2. package/dist/assets/About-u_K5AZBw.js.br +0 -0
  3. package/dist/assets/ActivityPage-Bm6In5Hq.js +1 -0
  4. package/dist/assets/ActivityPage-Bm6In5Hq.js.br +0 -0
  5. package/dist/assets/Bind-C6sg7bPb.js +1 -0
  6. package/dist/assets/Bind-C6sg7bPb.js.br +0 -0
  7. package/dist/assets/BindRow-BKDKGpV6.js +1 -0
  8. package/dist/assets/BindRow-BKDKGpV6.js.br +0 -0
  9. package/dist/assets/BindingsPage-BfprNvku.js +1 -0
  10. package/dist/assets/BindingsPage-BfprNvku.js.br +0 -0
  11. package/dist/assets/Bridge-CDuI230f.js +1 -0
  12. package/dist/assets/Bridge-CDuI230f.js.br +0 -0
  13. package/dist/assets/CheckboxField-CwZ6yoAm.js +1 -0
  14. package/dist/assets/CheckboxField-CwZ6yoAm.js.br +0 -0
  15. package/dist/assets/ClusterSinglePicker-5fDwaVWA.js +1 -0
  16. package/dist/assets/ClusterSinglePicker-5fDwaVWA.js.br +0 -0
  17. package/dist/assets/Clusters-ZdndbAtX.js +1 -0
  18. package/dist/assets/Clusters-ZdndbAtX.js.br +0 -0
  19. package/dist/assets/ContributePage-nI92_vHt.js +1 -0
  20. package/dist/assets/ContributePage-nI92_vHt.js.br +0 -0
  21. package/dist/assets/Dashboard-CnQhIMbL.js +1 -0
  22. package/dist/assets/Dashboard-CnQhIMbL.js.br +0 -0
  23. package/dist/assets/DashboardFeatureWrapper-DGHjt4Ah.js +1 -0
  24. package/dist/assets/DashboardFeatureWrapper-DGHjt4Ah.js.br +0 -0
  25. package/dist/assets/DebouncedInput-Dvnvqm-L.js +1 -0
  26. package/dist/assets/DebouncedInput-Dvnvqm-L.js.br +0 -0
  27. package/dist/assets/DevConsole-DAC0U9F-.js +9 -0
  28. package/dist/assets/DevConsole-DAC0U9F-.js.br +0 -0
  29. package/dist/assets/DevConsole-DM9e2AD0.js +1 -0
  30. package/dist/assets/DevConsole-DM9e2AD0.js.br +0 -0
  31. package/dist/assets/DeviceCard-vHwXtt-g.js +1 -0
  32. package/dist/assets/DeviceCard-vHwXtt-g.js.br +0 -0
  33. package/dist/assets/DeviceImage-DIhbuI22.js +1 -0
  34. package/dist/assets/DeviceImage-DIhbuI22.js.br +0 -0
  35. package/dist/assets/DeviceInfo-DMlhhJ5S.js +27 -0
  36. package/dist/assets/DeviceInfo-DMlhhJ5S.js.br +0 -0
  37. package/dist/assets/DevicePage-_QRngIjg.js +2 -0
  38. package/dist/assets/DevicePage-_QRngIjg.js.br +0 -0
  39. package/dist/assets/DevicePicker-BzI6-dAt.js +1 -0
  40. package/dist/assets/DevicePicker-BzI6-dAt.js.br +0 -0
  41. package/dist/assets/DeviceSettings-CmVCsUr6.js +1 -0
  42. package/dist/assets/DeviceSettings-CmVCsUr6.js.br +0 -0
  43. package/dist/assets/DeviceSpecificSettings-Df8cyo1J.js +1 -0
  44. package/dist/assets/DeviceSpecificSettings-Df8cyo1J.js.br +0 -0
  45. package/dist/assets/Devices-DQM58oru.js +1 -0
  46. package/dist/assets/Devices-DQM58oru.js.br +0 -0
  47. package/dist/assets/DevicesPage-CsLeAYjh.js +1 -0
  48. package/dist/assets/DevicesPage-CsLeAYjh.js.br +0 -0
  49. package/dist/assets/DisplayValue-D9Ja0Su_.js +1 -0
  50. package/dist/assets/DisplayValue-D9Ja0Su_.js.br +0 -0
  51. package/dist/assets/Docs-BoLjSXt0.js +3 -0
  52. package/dist/assets/Docs-BoLjSXt0.js.br +0 -0
  53. package/dist/assets/Duration-C7CArIrQ.js +1 -0
  54. package/dist/assets/Duration-C7CArIrQ.js.br +0 -0
  55. package/dist/assets/EndpointPicker-C6CQyxjG.js +1 -0
  56. package/dist/assets/EndpointPicker-C6CQyxjG.js.br +0 -0
  57. package/dist/assets/Exposes-BYLx7fOJ.js +1 -0
  58. package/dist/assets/Exposes-BYLx7fOJ.js.br +0 -0
  59. package/dist/assets/Exposes-DjP2xuHo.js +1 -0
  60. package/dist/assets/Exposes-DjP2xuHo.js.br +0 -0
  61. package/dist/assets/FeatureWrapper-BGeGFgyv.js +1 -0
  62. package/dist/assets/FeatureWrapper-BGeGFgyv.js.br +0 -0
  63. package/dist/assets/FrontendSettingsPage-Z3Dthtra.js +1 -0
  64. package/dist/assets/FrontendSettingsPage-Z3Dthtra.js.br +0 -0
  65. package/dist/assets/GroupPage-BFUGwOcJ.js +2 -0
  66. package/dist/assets/GroupPage-BFUGwOcJ.js.br +0 -0
  67. package/dist/assets/GroupSettings-B3BpgADM.js +1 -0
  68. package/dist/assets/GroupSettings-B3BpgADM.js.br +0 -0
  69. package/dist/assets/Groups-jFnV32B_.js +1 -0
  70. package/dist/assets/Groups-jFnV32B_.js.br +0 -0
  71. package/dist/assets/GroupsPage-DOwhSQnJ.js +1 -0
  72. package/dist/assets/GroupsPage-DOwhSQnJ.js.br +0 -0
  73. package/dist/assets/Health-CKNc9GDj.js +1 -0
  74. package/dist/assets/Health-CKNc9GDj.js.br +0 -0
  75. package/dist/assets/HomePage-CphSQPzP.js +1 -0
  76. package/dist/assets/HomePage-CphSQPzP.js.br +0 -0
  77. package/dist/assets/IndeterminateCheckbox-BME-t8ID.js +1 -0
  78. package/dist/assets/IndeterminateCheckbox-BME-t8ID.js.br +2 -0
  79. package/dist/assets/InfoAlert-DFbRmsjR.js +1 -0
  80. package/dist/assets/InfoAlert-DFbRmsjR.js.br +0 -0
  81. package/dist/assets/InputField-IMyvy6Mz.js +1 -0
  82. package/dist/assets/InputField-IMyvy6Mz.js.br +0 -0
  83. package/dist/assets/Json-DfMgtumA.js +1 -0
  84. package/dist/assets/Json-DfMgtumA.js.br +0 -0
  85. package/dist/assets/LastSeen-sm0titIc.js +1 -0
  86. package/dist/assets/LastSeen-sm0titIc.js.br +2 -0
  87. package/dist/assets/LogsPage-DZ1sH5ex.js +1 -0
  88. package/dist/assets/LogsPage-DZ1sH5ex.js.br +0 -0
  89. package/dist/assets/Lqi-BErKiqkS.js +1 -0
  90. package/dist/assets/Lqi-BErKiqkS.js.br +0 -0
  91. package/dist/assets/NetworkPage-DAMnoLGU.js +2 -0
  92. package/dist/assets/NetworkPage-DAMnoLGU.js.br +0 -0
  93. package/dist/assets/NumberField-RWSAKGZO.js +1 -0
  94. package/dist/assets/NumberField-RWSAKGZO.js.br +0 -0
  95. package/dist/assets/OtaControlGroup-D_De-Lbp.js +1 -0
  96. package/dist/assets/OtaControlGroup-D_De-Lbp.js.br +0 -0
  97. package/dist/assets/OtaPage-B2rfDHeE.js +1 -0
  98. package/dist/assets/OtaPage-B2rfDHeE.js.br +0 -0
  99. package/dist/assets/PowerSource-CSWJpU_d.js +1 -0
  100. package/dist/assets/PowerSource-CSWJpU_d.js.br +0 -0
  101. package/dist/assets/RawNetworkData-CtXYseB7.js +20 -0
  102. package/dist/assets/RawNetworkData-CtXYseB7.js.br +0 -0
  103. package/dist/assets/RawNetworkMap-rI1m5JIj.js +4187 -0
  104. package/dist/assets/RawNetworkMap-rI1m5JIj.js.br +0 -0
  105. package/dist/assets/RecallRemove-DYqjMF_w.js +1 -0
  106. package/dist/assets/RecallRemove-DYqjMF_w.js.br +0 -0
  107. package/dist/assets/RemoveDeviceModal-BAMdW2gO.js +1 -0
  108. package/dist/assets/RemoveDeviceModal-BAMdW2gO.js.br +0 -0
  109. package/dist/assets/Reporting-eW5xeT00.js +1 -0
  110. package/dist/assets/Reporting-eW5xeT00.js.br +0 -0
  111. package/dist/assets/ReportingPage-DNc_0xcj.js +1 -0
  112. package/dist/assets/ReportingPage-DNc_0xcj.js.br +0 -0
  113. package/dist/assets/ReportingRow-DRqp5ptx.js +1 -0
  114. package/dist/assets/ReportingRow-DRqp5ptx.js.br +0 -0
  115. package/dist/assets/Scene-CVTjaTv9.js +1 -0
  116. package/dist/assets/Scene-CVTjaTv9.js.br +0 -0
  117. package/dist/assets/SelectField-BQBsNhlB.js +1 -0
  118. package/dist/assets/SelectField-BQBsNhlB.js.br +0 -0
  119. package/dist/assets/Settings-6Tco9Hbm.js +1 -0
  120. package/dist/assets/Settings-6Tco9Hbm.js.br +0 -0
  121. package/dist/assets/SettingsList-CNu-T855.js +1 -0
  122. package/dist/assets/SettingsList-CNu-T855.js.br +0 -0
  123. package/dist/assets/SettingsPage-C2llsybi.js +2 -0
  124. package/dist/assets/SettingsPage-C2llsybi.js.br +0 -0
  125. package/dist/assets/State-BMbkppJG.js +1 -0
  126. package/dist/assets/State-BMbkppJG.js.br +0 -0
  127. package/dist/assets/Table-DYy-oYCW.js +1 -0
  128. package/dist/assets/Table-DYy-oYCW.js.br +0 -0
  129. package/dist/assets/TextareaField-DTp8LLQE.js +1 -0
  130. package/dist/assets/TextareaField-DTp8LLQE.js.br +0 -0
  131. package/dist/assets/TimeAgo-DVPpOI6f.js +1 -0
  132. package/dist/assets/TimeAgo-DVPpOI6f.js.br +0 -0
  133. package/dist/assets/Tools-CBUd6h0A.js +1 -0
  134. package/dist/assets/Tools-CBUd6h0A.js.br +0 -0
  135. package/dist/assets/TouchlinkPage-Cw1Y1f_S.js +1 -0
  136. package/dist/assets/TouchlinkPage-Cw1Y1f_S.js.br +0 -0
  137. package/dist/assets/VendorLink-CPWZg0eW.js +1 -0
  138. package/dist/assets/VendorLink-CPWZg0eW.js.br +0 -0
  139. package/dist/assets/_createCompounder-BuXEc9F7.js +1 -0
  140. package/dist/assets/_createCompounder-BuXEc9F7.js.br +0 -0
  141. package/dist/assets/defineProperty-CegpTSss.js +1 -0
  142. package/dist/assets/defineProperty-CegpTSss.js.br +0 -0
  143. package/dist/assets/envs-CRUy-_iG.js +1 -0
  144. package/dist/assets/extends-CF3RwP-h.js +1 -0
  145. package/dist/assets/extends-CF3RwP-h.js.br +0 -0
  146. package/dist/assets/floating-ui.dom-DbzrgdRQ.js +1 -0
  147. package/dist/assets/floating-ui.dom-DbzrgdRQ.js.br +0 -0
  148. package/dist/assets/floating-ui.react-BC-AM6K8.js +1 -0
  149. package/dist/assets/floating-ui.react-BC-AM6K8.js.br +0 -0
  150. package/dist/assets/index-Bs7zcW7e.js +1 -0
  151. package/dist/assets/index-Bs7zcW7e.js.br +0 -0
  152. package/dist/assets/index-CCf1BEwD.js +1 -0
  153. package/dist/assets/index-CCf1BEwD.js.br +0 -0
  154. package/dist/assets/index-CsCgDwc5.js +1 -0
  155. package/dist/assets/index-CsCgDwc5.js.br +1 -0
  156. package/dist/assets/index-CwXNofQJ.css +1 -0
  157. package/dist/assets/index-CwXNofQJ.css.br +0 -0
  158. package/dist/assets/index-a36IMXuN.js +582 -0
  159. package/dist/assets/index-a36IMXuN.js.br +0 -0
  160. package/dist/assets/isObject--vsEa_js.js +1 -0
  161. package/dist/assets/isObject--vsEa_js.js.br +0 -0
  162. package/dist/assets/isObjectLike-BQssIl0N.js +1 -0
  163. package/dist/assets/isObjectLike-BQssIl0N.js.br +0 -0
  164. package/dist/assets/jszip.min-B6cjF1YH.js +2 -0
  165. package/dist/assets/jszip.min-B6cjF1YH.js.br +0 -0
  166. package/dist/assets/merge-Cd_RtVsp.js +1 -0
  167. package/dist/assets/merge-Cd_RtVsp.js.br +0 -0
  168. package/dist/assets/oui-B7Gqtu1L.js +1 -0
  169. package/dist/assets/oui-B7Gqtu1L.js.br +0 -0
  170. package/dist/assets/react-select.esm-s6La4tfe.js +6 -0
  171. package/dist/assets/react-select.esm-s6La4tfe.js.br +0 -0
  172. package/dist/assets/snakeCase-BMb4_GjJ.js +1 -0
  173. package/dist/assets/snakeCase-BMb4_GjJ.js.br +0 -0
  174. package/dist/assets/startCase-K7WbZvzP.js +1 -0
  175. package/dist/assets/startCase-K7WbZvzP.js.br +0 -0
  176. package/dist/assets/useColumnCount-BMdgoihj.js +1 -0
  177. package/dist/assets/useColumnCount-BMdgoihj.js.br +0 -0
  178. package/dist/assets/useSearch-BULPL_5W.js +1 -0
  179. package/dist/assets/useSearch-BULPL_5W.js.br +0 -0
  180. package/dist/assets/useTable-BftZChSj.js +4 -0
  181. package/dist/assets/useTable-BftZChSj.js.br +0 -0
  182. package/dist/index.html +3 -14
  183. package/dist/index.html.br +0 -0
  184. package/dist/onboarding/assets/index-6Bc6HVAP.js +572 -0
  185. package/dist/onboarding/assets/index-6Bc6HVAP.js.br +0 -0
  186. package/dist/onboarding/assets/index-Bl9UTIun.css +1 -0
  187. package/dist/onboarding/assets/index-Bl9UTIun.css.br +0 -0
  188. package/dist/onboarding/index.html +2 -2
  189. package/dist/onboarding/index.html.br +0 -0
  190. package/package.json +22 -22
  191. package/dist/assets/About-DAjLQfLw.js +0 -10
  192. package/dist/assets/About-DAjLQfLw.js.br +0 -0
  193. package/dist/assets/ActivityPage-T-7dGjBV.js +0 -1
  194. package/dist/assets/ActivityPage-T-7dGjBV.js.br +0 -0
  195. package/dist/assets/Availability-CPqL8wxZ.js +0 -1
  196. package/dist/assets/Availability-CPqL8wxZ.js.br +0 -0
  197. package/dist/assets/Bind-9H8Ygq6_.js +0 -1
  198. package/dist/assets/Bind-9H8Ygq6_.js.br +0 -0
  199. package/dist/assets/BindRow-BqbLxL4R.js +0 -1
  200. package/dist/assets/BindRow-BqbLxL4R.js.br +0 -0
  201. package/dist/assets/BindingsPage-B3k9YTTK.js +0 -1
  202. package/dist/assets/BindingsPage-B3k9YTTK.js.br +0 -0
  203. package/dist/assets/Bridge-B79sBna4.js +0 -1
  204. package/dist/assets/Bridge-B79sBna4.js.br +0 -0
  205. package/dist/assets/Button-C09wmyxO.js +0 -1
  206. package/dist/assets/Button-C09wmyxO.js.br +0 -0
  207. package/dist/assets/CheckboxField-CzFe1pWJ.js +0 -1
  208. package/dist/assets/CheckboxField-CzFe1pWJ.js.br +0 -0
  209. package/dist/assets/ClusterSinglePicker-DF_DhA2_.js +0 -1
  210. package/dist/assets/ClusterSinglePicker-DF_DhA2_.js.br +0 -0
  211. package/dist/assets/Clusters-CIrSZ1ES.js +0 -1
  212. package/dist/assets/Clusters-CIrSZ1ES.js.br +0 -0
  213. package/dist/assets/ContributePage-BeJWzGeF.js +0 -1
  214. package/dist/assets/ContributePage-BeJWzGeF.js.br +0 -0
  215. package/dist/assets/Dashboard-BzrHBmyg.js +0 -1
  216. package/dist/assets/Dashboard-BzrHBmyg.js.br +0 -0
  217. package/dist/assets/DashboardFeatureWrapper-xH2Rdw9Q.js +0 -1
  218. package/dist/assets/DashboardFeatureWrapper-xH2Rdw9Q.js.br +0 -0
  219. package/dist/assets/DebouncedInput-BY9cMtPz.js +0 -1
  220. package/dist/assets/DebouncedInput-BY9cMtPz.js.br +0 -0
  221. package/dist/assets/DevConsole-C-2uF7AP.js +0 -1
  222. package/dist/assets/DevConsole-C-2uF7AP.js.br +0 -0
  223. package/dist/assets/DevConsole-DTNqfNCp.js +0 -8
  224. package/dist/assets/DevConsole-DTNqfNCp.js.br +0 -0
  225. package/dist/assets/DeviceCard-Ds-P0T0L.js +0 -1
  226. package/dist/assets/DeviceCard-Ds-P0T0L.js.br +0 -0
  227. package/dist/assets/DeviceImage-CXlsJhdp.js +0 -1
  228. package/dist/assets/DeviceImage-CXlsJhdp.js.br +0 -0
  229. package/dist/assets/DeviceInfo-BVoM2RRf.js +0 -27
  230. package/dist/assets/DeviceInfo-BVoM2RRf.js.br +0 -0
  231. package/dist/assets/DevicePage-B0Z7z5KY.js +0 -2
  232. package/dist/assets/DevicePage-B0Z7z5KY.js.br +0 -0
  233. package/dist/assets/DevicePicker-DEKNbCXB.js +0 -1
  234. package/dist/assets/DevicePicker-DEKNbCXB.js.br +0 -0
  235. package/dist/assets/DeviceSettings-CJI6LRl6.js +0 -1
  236. package/dist/assets/DeviceSettings-CJI6LRl6.js.br +0 -0
  237. package/dist/assets/DeviceSpecificSettings-BSfI6iA1.js +0 -1
  238. package/dist/assets/DeviceSpecificSettings-BSfI6iA1.js.br +0 -0
  239. package/dist/assets/Devices-DjSVB8Ol.js +0 -1
  240. package/dist/assets/Devices-DjSVB8Ol.js.br +0 -0
  241. package/dist/assets/DevicesPage-Cvv1ffRU.js +0 -1
  242. package/dist/assets/DevicesPage-Cvv1ffRU.js.br +0 -0
  243. package/dist/assets/DisplayValue-DFsRQsrg.js +0 -1
  244. package/dist/assets/DisplayValue-DFsRQsrg.js.br +0 -0
  245. package/dist/assets/Docs-2JBekN1z.js +0 -3
  246. package/dist/assets/Docs-2JBekN1z.js.br +0 -0
  247. package/dist/assets/Duration-BUu3glx6.js +0 -1
  248. package/dist/assets/Duration-BUu3glx6.js.br +0 -0
  249. package/dist/assets/EndpointPicker-CSugtgbJ.js +0 -1
  250. package/dist/assets/EndpointPicker-CSugtgbJ.js.br +0 -0
  251. package/dist/assets/Exposes-BIUuYxZ-.js +0 -1
  252. package/dist/assets/Exposes-BIUuYxZ-.js.br +0 -0
  253. package/dist/assets/Exposes-DfcXtDKb.js +0 -1
  254. package/dist/assets/Exposes-c6kIvJhH.js +0 -1
  255. package/dist/assets/Exposes-c6kIvJhH.js.br +0 -0
  256. package/dist/assets/FeatureWrapper-DEHOZ1_c.js +0 -1
  257. package/dist/assets/FeatureWrapper-DEHOZ1_c.js.br +0 -0
  258. package/dist/assets/FrontendSettingsPage-B5HPTOU1.js +0 -1
  259. package/dist/assets/FrontendSettingsPage-B5HPTOU1.js.br +0 -0
  260. package/dist/assets/GroupPage-DFx_LtMd.js +0 -2
  261. package/dist/assets/GroupPage-DFx_LtMd.js.br +0 -0
  262. package/dist/assets/GroupSettings-Ctb-l0d4.js +0 -1
  263. package/dist/assets/GroupSettings-Ctb-l0d4.js.br +0 -0
  264. package/dist/assets/Groups-Tuy41GAz.js +0 -1
  265. package/dist/assets/Groups-Tuy41GAz.js.br +0 -0
  266. package/dist/assets/GroupsPage-DBV8Zvrk.js +0 -1
  267. package/dist/assets/GroupsPage-DBV8Zvrk.js.br +0 -0
  268. package/dist/assets/Health-BwHg6021.js +0 -1
  269. package/dist/assets/Health-BwHg6021.js.br +0 -0
  270. package/dist/assets/HomePage-qiA6-buQ.js +0 -1
  271. package/dist/assets/HomePage-qiA6-buQ.js.br +0 -0
  272. package/dist/assets/IndeterminateCheckbox-CAvqBmLF.js +0 -1
  273. package/dist/assets/IndeterminateCheckbox-CAvqBmLF.js.br +0 -0
  274. package/dist/assets/InfoAlert-CHgsiNoZ.js +0 -1
  275. package/dist/assets/InfoAlert-CHgsiNoZ.js.br +0 -0
  276. package/dist/assets/InputField--ZMqg114.js +0 -1
  277. package/dist/assets/InputField--ZMqg114.js.br +0 -0
  278. package/dist/assets/Json-DWlaTYN_.js +0 -1
  279. package/dist/assets/Json-DWlaTYN_.js.br +0 -0
  280. package/dist/assets/LastSeen-DZTP2CnK.js +0 -1
  281. package/dist/assets/LastSeen-DZTP2CnK.js.br +0 -0
  282. package/dist/assets/LogsPage-BaWQ5c4E.js +0 -1
  283. package/dist/assets/LogsPage-BaWQ5c4E.js.br +0 -0
  284. package/dist/assets/Lqi-va07g-tn.js +0 -1
  285. package/dist/assets/Lqi-va07g-tn.js.br +0 -1
  286. package/dist/assets/Modal-DkH2V1VC.js +0 -1
  287. package/dist/assets/Modal-DkH2V1VC.js.br +0 -0
  288. package/dist/assets/NetworkPage-UkjMLTq2.js +0 -2
  289. package/dist/assets/NetworkPage-UkjMLTq2.js.br +0 -0
  290. package/dist/assets/NumberField-CgBWn-Gs.js +0 -1
  291. package/dist/assets/NumberField-CgBWn-Gs.js.br +0 -0
  292. package/dist/assets/OtaControlGroup-DwpR1GB_.js +0 -1
  293. package/dist/assets/OtaControlGroup-DwpR1GB_.js.br +0 -0
  294. package/dist/assets/OtaPage-arj2Q69P.js +0 -1
  295. package/dist/assets/OtaPage-arj2Q69P.js.br +0 -0
  296. package/dist/assets/PowerSource-Pz7Bfb6S.js +0 -1
  297. package/dist/assets/PowerSource-Pz7Bfb6S.js.br +0 -0
  298. package/dist/assets/RawNetworkData-BYoKiVGU.js +0 -20
  299. package/dist/assets/RawNetworkData-BYoKiVGU.js.br +0 -0
  300. package/dist/assets/RawNetworkMap-BF0C-pU5.js +0 -4183
  301. package/dist/assets/RawNetworkMap-BF0C-pU5.js.br +0 -0
  302. package/dist/assets/RecallRemove-DHfef3S1.js +0 -1
  303. package/dist/assets/RecallRemove-DHfef3S1.js.br +0 -0
  304. package/dist/assets/RemoveDeviceModal-B7NqbupW.js +0 -1
  305. package/dist/assets/RemoveDeviceModal-B7NqbupW.js.br +0 -0
  306. package/dist/assets/Reporting-DYh5JQzx.js +0 -1
  307. package/dist/assets/Reporting-DYh5JQzx.js.br +0 -0
  308. package/dist/assets/ReportingPage-BLVZSgeo.js +0 -1
  309. package/dist/assets/ReportingPage-BLVZSgeo.js.br +0 -0
  310. package/dist/assets/ReportingRow-DXZEf2vY.js +0 -1
  311. package/dist/assets/ReportingRow-DXZEf2vY.js.br +0 -0
  312. package/dist/assets/Scene-KYXW6bAC.js +0 -1
  313. package/dist/assets/Scene-KYXW6bAC.js.br +0 -0
  314. package/dist/assets/Select-ef7c0426.esm-DELyZaz8.js +0 -6
  315. package/dist/assets/Select-ef7c0426.esm-DELyZaz8.js.br +0 -0
  316. package/dist/assets/SelectField-CiAuVYZq.js +0 -1
  317. package/dist/assets/SelectField-CiAuVYZq.js.br +0 -0
  318. package/dist/assets/Settings-CftZIWqy.js +0 -1
  319. package/dist/assets/Settings-CftZIWqy.js.br +0 -0
  320. package/dist/assets/SettingsList-cB7_nCRL.js +0 -1
  321. package/dist/assets/SettingsList-cB7_nCRL.js.br +0 -0
  322. package/dist/assets/SettingsPage-BtJjpTKs.js +0 -2
  323. package/dist/assets/SettingsPage-BtJjpTKs.js.br +0 -0
  324. package/dist/assets/State-D77N0vaS.js +0 -1
  325. package/dist/assets/State-D77N0vaS.js.br +0 -0
  326. package/dist/assets/Table-C3iXCYbr.js +0 -1
  327. package/dist/assets/Table-C3iXCYbr.js.br +0 -0
  328. package/dist/assets/TableSearch-MGqlMDuh.js +0 -4
  329. package/dist/assets/TableSearch-MGqlMDuh.js.br +0 -0
  330. package/dist/assets/TextareaField-CWDMDAzr.js +0 -1
  331. package/dist/assets/TextareaField-CWDMDAzr.js.br +0 -0
  332. package/dist/assets/TimeAgo-CvmaD1n4.js +0 -1
  333. package/dist/assets/TimeAgo-CvmaD1n4.js.br +0 -0
  334. package/dist/assets/Tools-DMHprPOs.js +0 -1
  335. package/dist/assets/Tools-DMHprPOs.js.br +0 -0
  336. package/dist/assets/TouchlinkPage-DBxsdMgN.js +0 -1
  337. package/dist/assets/TouchlinkPage-DBxsdMgN.js.br +0 -0
  338. package/dist/assets/VendorLink-Jm24ebj5.js +0 -1
  339. package/dist/assets/VendorLink-Jm24ebj5.js.br +0 -0
  340. package/dist/assets/_createCompounder-BILaihi7.js +0 -1
  341. package/dist/assets/_createCompounder-BILaihi7.js.br +0 -0
  342. package/dist/assets/consts-ACU3OL1g.js +0 -1
  343. package/dist/assets/consts-ACU3OL1g.js.br +0 -0
  344. package/dist/assets/device-CWMG6uQC.js +0 -1
  345. package/dist/assets/device-CWMG6uQC.js.br +0 -0
  346. package/dist/assets/dist-CfE5hTP4.js +0 -558
  347. package/dist/assets/dist-CfE5hTP4.js.br +0 -0
  348. package/dist/assets/envs-DWZQH-AC.js +0 -1
  349. package/dist/assets/extends-lXRikpl0.js +0 -1
  350. package/dist/assets/extends-lXRikpl0.js.br +0 -0
  351. package/dist/assets/features-BSYFOmr-.js +0 -1
  352. package/dist/assets/features-BSYFOmr-.js.br +0 -0
  353. package/dist/assets/floating-ui.dom-Bdt9HdJ7.js +0 -1
  354. package/dist/assets/floating-ui.dom-Bdt9HdJ7.js.br +0 -0
  355. package/dist/assets/floating-ui.react-DzkqpTVq.js +0 -1
  356. package/dist/assets/floating-ui.react-DzkqpTVq.js.br +0 -0
  357. package/dist/assets/index-D3pYOruP.js +0 -22
  358. package/dist/assets/index-D3pYOruP.js.br +0 -0
  359. package/dist/assets/index-DfWIRG7b.css +0 -2
  360. package/dist/assets/index-DfWIRG7b.css.br +0 -0
  361. package/dist/assets/isObject-D5MxFwns.js +0 -1
  362. package/dist/assets/isObject-D5MxFwns.js.br +0 -0
  363. package/dist/assets/isObjectLike-CBVcfcwF.js +0 -1
  364. package/dist/assets/isObjectLike-CBVcfcwF.js.br +0 -0
  365. package/dist/assets/jsx-runtime-C5tU7uY8.js +0 -1
  366. package/dist/assets/jsx-runtime-C5tU7uY8.js.br +0 -0
  367. package/dist/assets/jszip.min-Dl1Awxit.js +0 -2
  368. package/dist/assets/jszip.min-Dl1Awxit.js.br +0 -0
  369. package/dist/assets/localStoreConsts-BEZFCCkV.js +0 -1
  370. package/dist/assets/localStoreConsts-BEZFCCkV.js.br +0 -0
  371. package/dist/assets/merge-Cm7ReLF9.js +0 -1
  372. package/dist/assets/merge-Cm7ReLF9.js.br +0 -0
  373. package/dist/assets/network-page-F8DXvCJ1.js +0 -1
  374. package/dist/assets/network-page-F8DXvCJ1.js.br +0 -0
  375. package/dist/assets/react-dom-hbu23gpx.js +0 -1
  376. package/dist/assets/react-dom-hbu23gpx.js.br +0 -0
  377. package/dist/assets/react-select.esm-D6gkf1g1.js +0 -1
  378. package/dist/assets/react-select.esm-D6gkf1g1.js.br +0 -0
  379. package/dist/assets/rolldown-runtime-B1FJdls4.js +0 -1
  380. package/dist/assets/rolldown-runtime-B1FJdls4.js.br +0 -0
  381. package/dist/assets/shallow-inzhGNJg.js +0 -1
  382. package/dist/assets/shallow-inzhGNJg.js.br +0 -0
  383. package/dist/assets/snakeCase-0YGV1fIQ.js +0 -1
  384. package/dist/assets/snakeCase-0YGV1fIQ.js.br +0 -0
  385. package/dist/assets/startCase-uNz46yT6.js +0 -1
  386. package/dist/assets/startCase-uNz46yT6.js.br +0 -0
  387. package/dist/assets/store-DGIKh3zK.js +0 -2
  388. package/dist/assets/store-DGIKh3zK.js.br +0 -0
  389. package/dist/assets/store2-BXEcxMC-.js +0 -1
  390. package/dist/assets/store2-BXEcxMC-.js.br +0 -0
  391. package/dist/assets/useColumnCount-D-zut-DS.js +0 -1
  392. package/dist/assets/useColumnCount-D-zut-DS.js.br +0 -0
  393. package/dist/assets/useSearch-CpSD1aTn.js +0 -1
  394. package/dist/assets/useSearch-CpSD1aTn.js.br +0 -0
  395. package/dist/onboarding/assets/index-Ct6Y91qL.js +0 -572
  396. package/dist/onboarding/assets/index-Ct6Y91qL.js.br +0 -0
  397. package/dist/onboarding/assets/index-m2L9a6gW.css +0 -2
  398. package/dist/onboarding/assets/index-m2L9a6gW.css.br +0 -0
Binary file
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";var r=e(t(),1),i=n(),a=(0,r.memo)(e=>{let{label:t,detail:n,onChange:r,...a}=e;return(0,i.jsxs)(`fieldset`,{className:`fieldset`,children:[t&&(0,i.jsxs)(`legend`,{className:`fieldset-legend`,children:[t,e.required?` *`:``]}),n?(0,i.jsxs)(`label`,{className:`label`,children:[(0,i.jsx)(`input`,{className:`checkbox ${e.required?`validator`:``}`,type:`checkbox`,onChange:r,...a}),n]}):(0,i.jsx)(`input`,{className:`checkbox ${e.required?`validator`:``}`,type:`checkbox`,onChange:r,...a})]})});export{a as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r}from"./store-DGIKh3zK.js";import{t as i}from"./shallow-inzhGNJg.js";import{D as a}from"./consts-ACU3OL1g.js";import{f as o}from"./index-D3pYOruP.js";import{t as s}from"./react-select.esm-D6gkf1g1.js";var c=function(e){return e[e.NO_DATA=0]=`NO_DATA`,e[e.DATA8=8]=`DATA8`,e[e.DATA16=9]=`DATA16`,e[e.DATA24=10]=`DATA24`,e[e.DATA32=11]=`DATA32`,e[e.DATA40=12]=`DATA40`,e[e.DATA48=13]=`DATA48`,e[e.DATA56=14]=`DATA56`,e[e.DATA64=15]=`DATA64`,e[e.BOOLEAN=16]=`BOOLEAN`,e[e.BITMAP8=24]=`BITMAP8`,e[e.BITMAP16=25]=`BITMAP16`,e[e.BITMAP24=26]=`BITMAP24`,e[e.BITMAP32=27]=`BITMAP32`,e[e.BITMAP40=28]=`BITMAP40`,e[e.BITMAP48=29]=`BITMAP48`,e[e.BITMAP56=30]=`BITMAP56`,e[e.BITMAP64=31]=`BITMAP64`,e[e.UINT8=32]=`UINT8`,e[e.UINT16=33]=`UINT16`,e[e.UINT24=34]=`UINT24`,e[e.UINT32=35]=`UINT32`,e[e.UINT40=36]=`UINT40`,e[e.UINT48=37]=`UINT48`,e[e.UINT56=38]=`UINT56`,e[e.UINT64=39]=`UINT64`,e[e.INT8=40]=`INT8`,e[e.INT16=41]=`INT16`,e[e.INT24=42]=`INT24`,e[e.INT32=43]=`INT32`,e[e.INT40=44]=`INT40`,e[e.INT48=45]=`INT48`,e[e.INT56=46]=`INT56`,e[e.INT64=47]=`INT64`,e[e.ENUM8=48]=`ENUM8`,e[e.ENUM16=49]=`ENUM16`,e[e.SEMI_PREC=56]=`SEMI_PREC`,e[e.SINGLE_PREC=57]=`SINGLE_PREC`,e[e.DOUBLE_PREC=58]=`DOUBLE_PREC`,e[e.OCTET_STR=65]=`OCTET_STR`,e[e.CHAR_STR=66]=`CHAR_STR`,e[e.LONG_OCTET_STR=67]=`LONG_OCTET_STR`,e[e.LONG_CHAR_STR=68]=`LONG_CHAR_STR`,e[e.ARRAY=72]=`ARRAY`,e[e.STRUCT=76]=`STRUCT`,e[e.SET=80]=`SET`,e[e.BAG=81]=`BAG`,e[e.TOD=224]=`TOD`,e[e.DATE=225]=`DATE`,e[e.UTC=226]=`UTC`,e[e.CLUSTER_ID=232]=`CLUSTER_ID`,e[e.ATTR_ID=233]=`ATTR_ID`,e[e.BAC_OID=234]=`BAC_OID`,e[e.IEEE_ADDR=240]=`IEEE_ADDR`,e[e.SEC_KEY=241]=`SEC_KEY`,e[e.UNKNOWN=255]=`UNKNOWN`,e}({}),l=function(e){return e[e.USE_DATA_TYPE=1e3]=`USE_DATA_TYPE`,e[e.LIST_UINT8=1001]=`LIST_UINT8`,e[e.LIST_UINT16=1002]=`LIST_UINT16`,e[e.LIST_UINT24=1003]=`LIST_UINT24`,e[e.LIST_UINT32=1004]=`LIST_UINT32`,e[e.LIST_ZONEINFO=1005]=`LIST_ZONEINFO`,e[e.EXTENSION_FIELD_SETS=1006]=`EXTENSION_FIELD_SETS`,e[e.LIST_THERMO_TRANSITIONS=1007]=`LIST_THERMO_TRANSITIONS`,e[e.BUFFER=1008]=`BUFFER`,e[e.GPD_FRAME=1009]=`GPD_FRAME`,e[e.STRUCTURED_SELECTOR=1010]=`STRUCTURED_SELECTOR`,e[e.LIST_TUYA_DATAPOINT_VALUES=1011]=`LIST_TUYA_DATAPOINT_VALUES`,e[e.LIST_MIBOXER_ZONES=1012]=`LIST_MIBOXER_ZONES`,e[e.BIG_ENDIAN_UINT24=1013]=`BIG_ENDIAN_UINT24`,e[e.MI_STRUCT=1014]=`MI_STRUCT`,e}({}),u=e=>e.type>=c.UINT8&&e.type<=c.INT64||e.type>=c.SEMI_PREC&&e.type<=c.DOUBLE_PREC||e.type>=c.TOD&&e.type<=c.UTC,d=(e,t,n)=>{let r=e.custom_clusters[t];if(r){let e=r[n];if(e)return e.attributes}let i=e.clusters[n];return i?i.attributes:{}},f=(e,t,n,r)=>d(e,t,n)[r],p=(e,t,n)=>{let r=e.custom_clusters[t];if(r){let e=r[n];if(e)return e.commands}let i=e.clusters[n];return i?i.commands:{}},m=e(t(),1),h=n(),g=(0,m.memo)(({sourceIdx:e,cluster:t,device:n,onChange:c,value:l,label:u,required:f,disabled:p})=>{let g=r(i(t=>t.bridgeDefinitions[e])),{t:_}=o(`zigbee`),v=(0,m.useMemo)(()=>d(g,n.ieee_address,t),[g,n.ieee_address,t]),y=(0,m.useMemo)(()=>{let e=[];for(let t in v)e.push({value:t,label:t});return e},[v]),b=(0,m.useMemo)(()=>l==null||l===``?null:y.find(e=>e.value===l)??null,[l,y]);return(0,h.jsxs)(`fieldset`,{className:`fieldset`,children:[u&&(0,h.jsxs)(`legend`,{className:`fieldset-legend`,children:[u,f?` *`:``]}),(0,h.jsx)(s,{unstyled:!0,placeholder:_(e=>e.select_attribute),"aria-label":u??_(e=>e.select_attribute),options:y,value:b,isSearchable:!0,isDisabled:p,onChange:e=>{e!=null&&c(e.value,v[e.value])},className:`min-w-64`,classNames:a})]})}),_=(0,m.memo)(({clusters:e,onChange:t,value:n,label:r,disabled:i,required:c})=>{let{t:l}=o([`zigbee`,`common`]),[u,d]=(0,m.useMemo)(()=>{let t=[],n=[];if(Array.isArray(e))for(let r of e){let e=[];for(let t of r.clusters){let r={value:t,label:t};e.push(r),n.push(r)}e.sort((e,t)=>e.label.localeCompare(t.label)),t.push({label:l(e=>e[r.name]),options:e})}else{let r=[];for(let t of e){let e={value:t,label:t};r.push(e),n.push(e)}r.sort((e,t)=>e.label.localeCompare(t.label)),t.push({label:l(e=>e.cluster),options:r})}return[t,n]},[e,l]),f=(0,m.useMemo)(()=>n==null||n===``?null:d.find(e=>e.value===n)??null,[n,d]);return(0,h.jsxs)(`fieldset`,{className:`fieldset`,children:[r&&(0,h.jsxs)(`legend`,{className:`fieldset-legend`,children:[r,c?` *`:``]}),(0,h.jsx)(s,{unstyled:!0,placeholder:l(e=>e.select_cluster),"aria-label":r??l(e=>e.select_cluster),options:u,value:f,isSearchable:!0,isDisabled:i,onChange:e=>{e!=null&&t(e.value)},className:`min-w-64`,classNames:a})]})});export{p as a,u as c,d as i,g as n,l as o,f as r,c as s,_ as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{o as r,s as i,t as a}from"./dist-CfE5hTP4.js";import{f as o}from"./index-D3pYOruP.js";var s=e(t(),1),c=n();function l({device:e}){let{t}=o(`zigbee`);return(0,c.jsx)(`ul`,{className:`menu bg-base-100 w-full`,children:(0,s.useMemo)(()=>{let n=[];for(let o in e.endpoints){let s=e.endpoints[o];n.push((0,c.jsx)(`li`,{children:(0,c.jsxs)(`details`,{open:!0,children:[(0,c.jsxs)(`summary`,{children:[t(e=>e.endpoint),` `,o]}),(0,c.jsxs)(`ul`,{children:[(0,c.jsx)(`li`,{children:(0,c.jsxs)(`details`,{children:[(0,c.jsxs)(`summary`,{children:[(0,c.jsx)(a,{icon:r}),` `,t(e=>e.output_clusters)]}),(0,c.jsx)(`ul`,{children:s.clusters.output.map(e=>(0,c.jsx)(`li`,{children:(0,c.jsx)(`span`,{className:`cursor-text select-text`,children:e})},e))})]})}),(0,c.jsx)(`li`,{children:(0,c.jsxs)(`details`,{children:[(0,c.jsxs)(`summary`,{children:[(0,c.jsx)(a,{icon:i}),` `,t(e=>e.input_clusters)]}),(0,c.jsx)(`ul`,{children:s.clusters.input.map(e=>(0,c.jsx)(`li`,{children:(0,c.jsx)(`span`,{className:`cursor-text select-text`,children:e})},e))})]})})]})]})},o))}return n},[e.endpoints,t])})}export{l as default};
Binary file
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-C5tU7uY8.js";import{a as t,c as n,l as r,o as i,s as a}from"./consts-ACU3OL1g.js";import{Ot as o,ft as s,t as c}from"./dist-CfE5hTP4.js";import{f as l}from"./index-D3pYOruP.js";var u=e(),d=[(0,u.jsxs)(`div`,{className:`flex flex-col gap-3 items-center`,children:[(0,u.jsx)(`a`,{target:`_blank`,rel:`noopener noreferrer`,href:`https://www.buymeacoffee.com/Nerivec`,className:`h-10`,children:(0,u.jsx)(`img`,{alt:`Nerivec`,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`})}),(0,u.jsxs)(`a`,{target:`_blank`,rel:`noopener noreferrer`,className:`btn btn-secondary`,href:`https://github.com/sponsors/Nerivec`,children:[(0,u.jsx)(c,{icon:o}),`Sponsor Nerivec on Github`]})]},`Nerivec`),(0,u.jsxs)(`div`,{className:`flex flex-col gap-3 items-center`,children:[(0,u.jsx)(`a`,{target:`_blank`,rel:`noopener noreferrer`,href:`https://www.buymeacoffee.com/koenkk`,className:`h-10`,children:(0,u.jsx)(`img`,{alt:`koenkk`,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`})}),(0,u.jsxs)(`a`,{target:`_blank`,rel:`noopener noreferrer`,className:`btn btn-secondary`,href:`https://github.com/sponsors/Koenkk`,children:[(0,u.jsx)(c,{icon:o}),`Sponsor Koenkk on Github`]})]},`koenkk`)];function f(){let{t:e}=l(`contribute`);return(0,u.jsx)(`div`,{className:`mb-3`,children:(0,u.jsxs)(`div`,{className:`flex flex-col gap-6 items-center`,children:[(0,u.jsxs)(`div`,{className:`flex flex-col gap-3 items-center`,children:[e(e=>e.donation_text),d.sort(()=>Math.random()-.5)]}),(0,u.jsx)(`h2`,{className:`text-lg font-bold`,children:e(e=>e.development)}),(0,u.jsx)(`p`,{children:e(e=>e.contributing)}),(0,u.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-4 justify-center`,children:[(0,u.jsxs)(`a`,{className:`link link-hover link-primary`,target:`_blank`,rel:`noopener noreferrer`,href:i,children:[`WindFront`,(0,u.jsx)(c,{icon:s,size:`lg`,className:`ms-1`})]}),(0,u.jsxs)(`a`,{className:`link link-hover link-primary`,target:`_blank`,rel:`noopener noreferrer`,href:t,children:[e(e=>e.translation),(0,u.jsx)(c,{icon:s,size:`lg`,className:`ms-1`})]})]}),(0,u.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-4 justify-center`,children:[(0,u.jsxs)(`a`,{className:`link link-hover link-primary`,target:`_blank`,rel:`noopener noreferrer`,href:a,children:[`Zigbee2MQTT`,(0,u.jsx)(c,{icon:s,size:`lg`,className:`ms-1`})]}),(0,u.jsxs)(`a`,{className:`link link-hover link-primary`,target:`_blank`,rel:`noopener noreferrer`,href:n,children:[`Zigbee Herdsman Converters`,(0,u.jsx)(c,{icon:s,size:`lg`,className:`ms-1`})]}),(0,u.jsxs)(`a`,{className:`link link-hover link-primary`,target:`_blank`,rel:`noopener noreferrer`,href:r,children:[`Zigbee Herdsman`,(0,u.jsx)(c,{icon:s,size:`lg`,className:`ms-1`})]})]})]})})}export{f as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{n as r}from"./Modal-DkH2V1VC.js";import{c as i,i as a,n as o,t as s,v as c}from"./store-DGIKh3zK.js";import{m as l,t as u,vr as d}from"./dist-CfE5hTP4.js";import{t as f}from"./Button-C09wmyxO.js";import{f as p,i as m,t as h}from"./index-D3pYOruP.js";import{t as g}from"./RemoveDeviceModal-B7NqbupW.js";import{n as _,t as v}from"./useColumnCount-D-zut-DS.js";import{t as y}from"./DashboardFeatureWrapper-xH2Rdw9Q.js";import{t as b}from"./DeviceCard-Ds-P0T0L.js";import{n as x,t as S}from"./TableSearch-MGqlMDuh.js";var C=e(t(),1),w=n(),T=({original:{sourceIdx:e,device:t,deviceState:n,deviceAvailability:i,features:a,lastSeenConfig:o,removeDevice:s}})=>{let{t:c}=p(`zigbee`),l=(0,C.useCallback)(async n=>{await m(e,`${t.ieee_address}/set`,n)},[e,t.ieee_address]);return(0,w.jsx)(`div`,{className:`mb-3 card bg-base-200 rounded-box shadow-md ${i===`disabled`?`card-dash border-warning/40`:i===`offline`?`card-border border-error/50`:`card-border border-base-300`}`,children:(0,w.jsx)(b,{features:a,sourceIdx:e,device:t,deviceState:n,onChange:l,featureWrapperClass:y,lastSeenConfig:o,children:(0,w.jsx)(`div`,{className:`join join-horizontal`,children:(0,w.jsx)(f,{onClick:async()=>await r.show(g,{sourceIdx:e,device:t,removeDevice:s}),className:`btn btn-outline btn-error btn-square btn-sm join-item tooltip-left`,title:c(e=>e.remove_device),children:(0,w.jsx)(u,{icon:d})})})})})},E=e=>e?.data?(0,w.jsx)(T,{...e.data}):null;function D(){let{t:e}=p([`common`,`zigbee`,`availability`]),t=a(e=>e.deviceStates),n=a(e=>e.availability),r=a(e=>e.deviceDashboardFeatures),d=a(e=>e.bridgeInfo),g=a(e=>e.devices),y=v(),b=(0,C.useCallback)(async(e,t,n,r)=>{await m(e,`bridge/request/device/remove`,{id:t,force:n,block:r})},[]),T=(0,C.useMemo)(()=>{let e=[];for(let i=0;i<o.length;i++){let a=d[i].config.advanced.last_seen,o=d[i].config.availability.enabled;for(let s of g[i]){if(s.disabled||!s.supported||!s.definition)continue;let c=r[i][s.ieee_address];if(!c||c.length===0)continue;let l=new Set,u=new Set;for(let e of c)if(`features`in e&&e.features){for(let t of e.features)t.type&&l.add(t.type),t.name&&u.add(t.name);e.type&&l.add(e.type)}else e.type&&l.add(e.type),e.name&&u.add(e.name);let f=t[i][s.friendly_name]??{},p;s.power_source===`Battery`&&(p=!1,`battery`in f?f.battery<20&&(p=!0):`battery_state`in f?f.battery_state===`low`&&(p=!0):`battery_low`in f&&(p=!!f.battery_low));let m=`disabled`;if(!s.disabled){let e=d[i].config.devices[s.ieee_address]?.availability;m=(e==null?void 0:!!e)??o?n[i][s.friendly_name]?.state??`offline`:`disabled`}e.push({sourceIdx:i,device:s,deviceState:f,deviceAvailability:m,batteryLow:p,features:c,featureTypes:Array.from(l),featureNames:Array.from(u),lastSeenConfig:a,removeDevice:b})}}return e},[g,t,r,d,n,b]),D=x({id:`dashboard-devices`,columns:(0,C.useMemo)(()=>[{id:`source`,accessorFn:({sourceIdx:e})=>s[e],filterFn:`equals`,meta:{filterVariant:`select`,showFacetedOccurrences:!0}},{id:`friendly_name`,header:e(e=>e.friendly_name),accessorFn:({device:e})=>`${e.friendly_name} ${e.description??``}`,sortingFn:(e,t)=>e.original.device.friendly_name.localeCompare(t.original.device.friendly_name),filterFn:`includesString`,meta:{filterVariant:`text`,textFaceted:!0}},{id:`ieee_address`,header:e(e=>e.ieee_address,{ns:`zigbee`}),accessorFn:({device:e})=>`${e.ieee_address} ${c(e.network_address,4)} ${e.network_address}`,filterFn:`includesString`,meta:{filterVariant:`text`}},{id:`availability`,header:e(e=>e.availability,{ns:`availability`}),accessorFn:({deviceAvailability:t})=>e(e=>e[t],{ns:`availability`}),filterFn:`equals`,meta:{filterVariant:`select`,showFacetedOccurrences:!0}},{id:`type`,header:e(e=>e.type,{ns:`zigbee`}),accessorFn:({device:t})=>e(e=>e[t.type],{ns:`zigbee`}),filterFn:`equals`,meta:{filterVariant:`select`,showFacetedOccurrences:!0}},{id:`state`,header:e(e=>e.state),accessorFn:({deviceState:e})=>e.state,filterFn:`equals`,meta:{filterVariant:`select`,showFacetedOccurrences:!0}},{id:`lqi`,header:e(e=>e.lqi,{ns:`zigbee`}),accessorFn:({deviceState:e})=>e.linkquality,filterFn:`inNumberRange`,meta:{filterVariant:`range`}},{id:`last_seen`,header:e(e=>e.last_seen,{ns:`zigbee`}),accessorFn:({deviceState:e,lastSeenConfig:t})=>{let n=i(e.last_seen,t);return n?Math.round((Date.now()-n)/1e3/60):void 0},enableGlobalFilter:!1,filterFn:`inNumberRange`,meta:{filterVariant:`range`,tooltip:e(e=>e.last_seen_filter_info)}},{id:`battery_low`,header:e(e=>e.battery_low,{ns:`zigbee`}),accessorFn:({batteryLow:e})=>e===void 0?`N/A`:e,filterFn:`equals`,meta:{filterVariant:`boolean`}},{id:`feature_type`,header:e(e=>e.feature_type),accessorFn:({featureTypes:e})=>e,filterFn:`arrIncludes`,meta:{filterVariant:`arrSelect`},enableGlobalFilter:!1},{id:`feature_name`,header:e(e=>e.feature_name),accessorFn:({featureNames:e})=>e,filterFn:`arrIncludes`,meta:{filterVariant:`arrSelect`},enableGlobalFilter:!1}],[e]),data:T,sorting:[{id:`friendly_name`,desc:!1}]}),{rows:O}=D.table.getRowModel();return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(h,{children:(0,w.jsx)(S,{...D})}),(0,w.jsx)(`div`,{children:(0,w.jsx)(_,{useWindowScroll:!0,columnCount:y,data:O,ItemContent:E,className:`gap-3`},`dashboard-${O.length}-${D.globalFilter}`)}),(0,w.jsx)(`div`,{className:`sticky z-9 bottom-0 pb-1 w-full flex flex-row justify-end sm:hidden`,children:(0,w.jsx)(f,{title:e(e=>e.scroll_to_top),className:`btn btn-primary btn-square`,onClick:()=>{window.scrollTo(0,0)},children:(0,w.jsx)(u,{icon:l})})})]})}export{D as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{t}from"./jsx-runtime-C5tU7uY8.js";import{t as n}from"./dist-CfE5hTP4.js";import{f as r}from"./index-D3pYOruP.js";import{t as i}from"./startCase-uNz46yT6.js";import{n as a}from"./features-BSYFOmr-.js";var o=e(i(),1),s=t();function c({children:e,feature:t,deviceValue:i,endpointSpecific:c}){let l=t.unit,[u,d]=a(t.name,i,l),{t:f}=r(`zigbee`),p=t.name===`state`?t.property:t.name;return(0,s.jsxs)(`div`,{className:`flex flex-row items-center gap-1 mb-2`,children:[(0,s.jsx)(n,{icon:u,className:d}),(0,s.jsxs)(`div`,{className:`grow-1`,title:p,children:[(0,o.default)(p),!c&&(0,s.jsx)(`span`,{title:f(e=>e.endpoint),children:t.endpoint?` (${t.endpoint})`:null})]}),(0,s.jsx)(`div`,{className:`shrink-1 *:bg-base-200`,children:e})]})}export{c as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";var r=e(t(),1),i=n(),a=(0,r.memo)(({value:e,onChange:t,debounce:n=500,...a})=>{let[o,s]=(0,r.useState)(e.toString()),c=(0,r.useRef)(!1),l=(0,r.useRef)(void 0);(0,r.useEffect)(()=>{s(e.toString())},[e]),(0,r.useEffect)(()=>{if(l.current===o)return;if(c.current===!1){l.current=o,c.current=!0;return}let e=setTimeout(()=>{l.current!==o&&(l.current=o,t(o))},n);return()=>clearTimeout(e)},[o,n,t]);let u=(0,r.useCallback)(e=>{s(e.target.value)},[]),d=(0,r.useCallback)(e=>{e.key===`Escape`&&(e.preventDefault(),s(``))},[]);return(0,i.jsx)(`input`,{...a,type:`text`,value:o,onChange:u,onKeyDown:d})});export{a as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r}from"./store-DGIKh3zK.js";import{t as i}from"./shallow-inzhGNJg.js";import{C as a,d as o,m as s,u as c}from"./consts-ACU3OL1g.js";import{t as l}from"./Button-C09wmyxO.js";import{f as u,i as d,l as f,r as p}from"./index-D3pYOruP.js";import{t as m}from"./SelectField-CiAuVYZq.js";import{t as h}from"./TextareaField-CWDMDAzr.js";import{t as g}from"./InputField--ZMqg114.js";import{t as _}from"./InfoAlert-CHgsiNoZ.js";var v=e(t(),1),y=n(),b=({sourceIdx:e})=>{let{t}=u([`devConsole`,`common`]),[n,r]=(0,v.useState)(``),[i,o]=(0,v.useState)(`{}`),s=(0,v.useMemo)(()=>{if(!n)return!1;if(i!==``)try{let e=JSON.parse(i);if(typeof e!=`object`||Array.isArray(e))return!1}catch{return!1}return!0},[n,i]),c=(0,v.useCallback)(async()=>{await d(e,n,i===``?i:JSON.parse(i))},[e,n,i]);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`h2`,{className:`text-lg mb-2`,children:t(e=>e.send_mqtt)}),(0,y.jsx)(_,{children:(0,y.jsx)(`a`,{href:a,target:`_blank`,rel:`noreferrer`,className:`link link-hover`,children:t(e=>e.read_the_docs_info,{ns:`common`})})}),(0,y.jsx)(g,{type:`text`,name:`topic`,label:t(e=>e.topic),detail:t(e=>e.mqtt_topic_info),placeholder:`bridge/request/permit_join`,value:n,onChange:e=>r(e.target.value),className:`input validator w-full`,required:!0}),(0,y.jsx)(h,{name:`payload`,label:t(e=>e.payload,{ns:`common`}),rows:5,value:i,onChange:e=>o(e.target.value),className:`textarea validator w-full`}),(0,y.jsx)(`div`,{className:`join join-horizontal mt-2`,children:(0,y.jsx)(l,{onClick:c,disabled:!s,className:`btn btn-success`,children:t(e=>e.send,{ns:`common`})})})]})},x=({sourceIdx:e})=>{let{t}=u([`devConsole`,`common`]),n=r(i(t=>t.converters[e])),[a,s]=(0,v.useState)(),[f,b]=(0,v.useState)({name:``,code:``}),x=(0,v.useMemo)(()=>(a||!!f.name)&&!!f.code,[a,f]),S=(0,v.useCallback)(e=>{if(e.target.value){let t=n.find(t=>t.name===e.target.value);t&&(s(t),b(t))}else s(void 0),b({name:``,code:``})},[n]),C=(0,v.useCallback)(e=>{b(t=>({name:e.target.value,code:t.code}))},[]),w=(0,v.useCallback)(e=>{b(t=>({name:t.name,code:e.target.value}))},[]),T=(0,v.useCallback)(async()=>{await d(e,`bridge/request/converter/save`,f)},[e,f]),E=(0,v.useCallback)(async()=>{await d(e,`bridge/request/converter/remove`,{name:f.name})},[e,f.name]);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`h2`,{className:`text-lg mb-2`,children:t(e=>e.add_update_external_converter)}),(0,y.jsxs)(_,{children:[(0,y.jsx)(`a`,{href:o,target:`_blank`,rel:`noreferrer`,className:`link link-hover`,children:t(e=>e.read_the_docs_info,{ns:`common`})}),(0,y.jsx)(`a`,{href:c,target:`_blank`,rel:`noreferrer`,className:`link link-hover`,children:t(e=>e.codespace_info)})]}),(0,y.jsxs)(m,{name:`converter_name_edit`,label:t(e=>e.select_converter_to_edit),onChange:S,value:a?.name??``,children:[(0,y.jsxs)(`option`,{value:``,children:[`N/A - `,t(e=>e.create_new_converter)]}),n.map(e=>(0,y.jsx)(`option`,{value:e.name,children:e.name},e.name))]}),(0,y.jsx)(g,{name:`converter_name`,label:t(e=>e.name,{ns:`common`}),type:`text`,onChange:C,value:f.name,readOnly:a!==void 0,required:!0}),(0,y.jsx)(h,{name:`converter_code`,label:t(e=>e.code),rows:5,value:f.code,onChange:w,className:`textarea validator w-full`,required:!0}),(0,y.jsxs)(`div`,{className:`join join-horizontal mt-2`,children:[(0,y.jsx)(l,{onClick:T,disabled:!x,className:`btn btn-success join-item`,children:t(e=>e.save,{ns:`common`})}),(0,y.jsx)(p,{onClick:E,disabled:!a,className:`btn btn-error join-item`,title:t(e=>e.delete,{ns:`common`}),modalDescription:t(e=>e.dialog_confirmation_prompt,{ns:`common`}),modalCancelLabel:t(e=>e.cancel,{ns:`common`}),children:t(e=>e.delete,{ns:`common`})})]})]})},S=({sourceIdx:e})=>{let{t}=u([`devConsole`,`common`]),n=r(i(t=>t.extensions[e])),[a,o]=(0,v.useState)(),[c,f]=(0,v.useState)({name:``,code:``}),b=(0,v.useMemo)(()=>(a||!!c.name)&&!!c.code,[a,c]),x=(0,v.useCallback)(e=>{if(e.target.value){let t=n.find(t=>t.name===e.target.value);t&&(o(t),f(t))}else o(void 0),f({name:``,code:``})},[n]),S=(0,v.useCallback)(e=>{f(t=>({name:e.target.value,code:t.code}))},[]),C=(0,v.useCallback)(e=>{f(t=>({name:t.name,code:e.target.value}))},[]),w=(0,v.useCallback)(async()=>{await d(e,`bridge/request/extension/save`,c)},[e,c]),T=(0,v.useCallback)(async()=>{await d(e,`bridge/request/extension/remove`,{name:c.name})},[e,c.name]);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`h2`,{className:`text-lg mb-2`,children:t(e=>e.add_update_external_extension)}),(0,y.jsx)(_,{children:(0,y.jsx)(`a`,{href:s,target:`_blank`,rel:`noreferrer`,className:`link link-hover`,children:t(e=>e.read_the_docs_info,{ns:`common`})})}),(0,y.jsxs)(m,{name:`extension_name_edit`,label:t(e=>e.select_extension_to_edit),onChange:x,value:a?.name??``,children:[(0,y.jsxs)(`option`,{value:``,children:[`N/A - `,t(e=>e.create_new_extension)]}),n.map(e=>(0,y.jsx)(`option`,{value:e.name,children:e.name},e.name))]}),(0,y.jsx)(g,{name:`extension_name`,label:t(e=>e.name,{ns:`common`}),type:`text`,onChange:S,value:c.name,readOnly:a!==void 0,required:!0}),(0,y.jsx)(h,{name:`extension_code`,label:t(e=>e.code),rows:5,value:c.code,onChange:C,className:`textarea validator w-full`,required:!0}),(0,y.jsxs)(`div`,{className:`join join-horizontal mt-2`,children:[(0,y.jsx)(l,{onClick:w,disabled:!b,className:`btn btn-success join-item`,children:t(e=>e.save,{ns:`common`})}),(0,y.jsx)(p,{onClick:T,disabled:!a,className:`btn btn-error join-item`,title:t(e=>e.delete,{ns:`common`}),modalDescription:t(e=>e.dialog_confirmation_prompt,{ns:`common`}),modalCancelLabel:t(e=>e.cancel,{ns:`common`}),children:t(e=>e.delete,{ns:`common`})})]})]})},C=({sourceIdx:e})=>{let{t}=u([`devConsole`,`common`]),n=r(i(t=>t.bridgeDefinitions[e].actions??[])),[o,s]=(0,v.useState)(`raw`),[c,f]=(0,v.useState)(`{}`),p=(0,v.useMemo)(()=>{if(!o)return!1;if(c!==``)try{let e=JSON.parse(c);if(typeof e!=`object`||Array.isArray(e))return!1}catch{return!1}return!0},[o,c]),g=(0,v.useCallback)(e=>{e.target.value&&s(e.target.value)},[]),b=(0,v.useCallback)(async()=>{await d(e,`bridge/request/action`,{action:o,params:c===``?c:JSON.parse(c)})},[e,o,c]);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`h2`,{className:`text-lg mb-2`,children:t(e=>e.actions)}),(0,y.jsx)(_,{children:(0,y.jsx)(`a`,{href:a,target:`_blank`,rel:`noreferrer`,className:`link link-hover`,children:t(e=>e.read_the_docs_info,{ns:`common`})})}),(0,y.jsx)(m,{name:`action`,label:t(e=>e.action),onChange:g,value:o,children:n.map(e=>(0,y.jsx)(`option`,{value:e,children:e},e))}),(0,y.jsx)(h,{name:`payload`,label:t(e=>e.payload,{ns:`common`}),rows:5,value:c,onChange:e=>f(e.target.value),className:`textarea validator w-full`}),(0,y.jsx)(`div`,{className:`join join-horizontal mt-2`,children:(0,y.jsx)(l,{onClick:b,disabled:!p,className:`btn btn-success`,children:t(e=>e.send,{ns:`common`})})})]})};function w(e,t){switch(t){case`mqtt`:return(0,y.jsx)(b,{sourceIdx:e});case`external_converters`:return(0,y.jsx)(x,{sourceIdx:e});case`external_extensions`:return(0,y.jsx)(S,{sourceIdx:e});case`actions`:return(0,y.jsx)(C,{sourceIdx:e})}}var T=({isActive:e})=>e?`tab tab-active`:`tab`;function E({sourceIdx:e,tab:t}){let{t:n}=u(`devConsole`);return(0,y.jsxs)(`div`,{className:`tabs tabs-border`,children:[(0,y.jsx)(f,{to:`/settings/${e}/dev-console/mqtt`,className:T,children:n(e=>e.mqtt)}),(0,y.jsx)(f,{to:`/settings/${e}/dev-console/external_converters`,className:T,children:n(e=>e.external_converters)}),(0,y.jsx)(f,{to:`/settings/${e}/dev-console/external_extensions`,className:T,children:n(e=>e.external_extensions)}),(0,y.jsx)(f,{to:`/settings/${e}/dev-console/actions`,className:T,children:n(e=>e.actions)}),(0,y.jsx)(`div`,{className:`tab-content block h-full bg-base-100 p-3`,children:w(e,t)})]})}export{E as default};
@@ -1,8 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r,l as i,s as a}from"./store-DGIKh3zK.js";import{t as o}from"./shallow-inzhGNJg.js";import{D as s,M as c,b as l}from"./consts-ACU3OL1g.js";import{En as u,Nn as d,en as f,pn as p,rt as m,t as h,vr as g}from"./dist-CfE5hTP4.js";import{t as _}from"./Button-C09wmyxO.js";import{c as v,f as y,i as b,r as x}from"./index-D3pYOruP.js";import{t as S}from"./react-select.esm-D6gkf1g1.js";import{t as C}from"./EndpointPicker-CSugtgbJ.js";import{t as w}from"./TextareaField-CWDMDAzr.js";import{t as T}from"./Json-DWlaTYN_.js";import{a as E,n as D,o as O,s as k,t as A}from"./ClusterSinglePicker-DF_DhA2_.js";import{t as j}from"./InputField--ZMqg114.js";var M=e(t(),1),N=n(),P=(0,M.memo)(({message:e})=>(0,N.jsx)(`div`,{className:`mockup-code w-full before:content-none`,children:(0,N.jsx)(`pre`,{"data-prefix":`~`,className:l[e.level],children:(0,N.jsxs)(`code`,{children:[`[`,e.timestamp,`] `,e.message]})})})),F=e=>{switch(e){case k.ARRAY:case k.SET:case k.BAG:return`{"elementType": TODO, "elements": [TODO]}`;case k.STRUCT:return`[{"elmType": TODO, "elmVal": TODO}]`;case k.TOD:return`{"hours": TODO, "minutes": TODO, "seconds": TODO, "hundredths": TODO}`;case k.DATE:return`{"year": TODO, "month": TODO, "dayOfMonth": TODO, "dayOfWeek": TODO}`;case k.SEC_KEY:return`[TODO]`}};function I({value:e,onChange:t,attribute:n,definition:r}){if(r.type===k.ARRAY||r.type===k.STRUCT||r.type===k.SET||r.type===k.BAG||r.type===k.TOD||r.type===k.DATE||r.type===k.SEC_KEY)return(0,N.jsx)(`input`,{type:`text`,className:`flex-1 input`,value:e!=null&&e!==``?typeof e==`object`?JSON.stringify(e):e:void 0,placeholder:F(r.type),onChange:e=>{t(n,e.target.value)},onBlur:e=>{e.target.value&&t(n,JSON.parse(e.target.value))},disabled:!r.write});let i=r.type===k.IEEE_ADDR||r.type>=k.OCTET_STR&&r.type<=k.LONG_CHAR_STR?`text`:`number`;return(0,N.jsx)(`input`,{type:i,value:e==null||typeof e==`string`||typeof e==`number`?e:void 0,min:r.minExcl?r.minExcl+1:r.min,max:r.maxExcl?r.maxExcl-1:r.max,minLength:r.minLen??r.length,maxLength:r.maxLen??r.length,onChange:e=>{let r=i===`number`?e.target.valueAsNumber:e.target.value;t(n,Number.isNaN(r)?void 0:r)},disabled:!r.write,className:`flex-1 input validator`})}var L=(0,M.memo)(({sourceIdx:e,device:t,read:n,write:s,readReporting:c,lastLog:l})=>{let d=r(o(t=>t.bridgeDefinitions[e])),[v,b]=(0,M.useState)(i(t.endpoints)??``),[S,w]=(0,M.useState)(``),[T,E]=(0,M.useState)([]),[O,F]=(0,M.useState)(``),{t:L}=y([`common`,`zigbee`,`devConsole`]),R=(0,M.useCallback)(e=>{w(``),E([]),b(e.toString())},[]),z=(0,M.useCallback)(e=>{E([]),w(e)},[]),B=(0,M.useCallback)((e,t)=>{T.find(t=>t.attribute===e)||E(T.concat([{attribute:e,definition:t}]))},[T]),V=(0,M.useCallback)(e=>{F(e.target.value)},[]),H=(0,M.useCallback)(async()=>{await n(v,S,T.map(e=>e.attribute),O)},[v,S,T,O,n]),U=(0,M.useCallback)(async()=>{await s(v,S,T)},[v,S,T,s]),W=(0,M.useCallback)(async()=>{await c(v,S,T.map(e=>({attribute:e.attribute})))},[v,S,T,c]),G=(0,M.useMemo)(()=>T.length>0&&(0,N.jsx)(`fieldset`,{className:`fieldset gap-1 p-3 bg-base-200 rounded-box shadow-md border border-base-300 w-full`,children:T.map(({attribute:e,value:t=``,definition:n})=>(0,N.jsxs)(`div`,{className:`w-full flex flex-row items-center rounded-box p-1.5 hover:bg-base-100`,children:[(0,N.jsxs)(`div`,{className:`flex-1 self-center text-[0.85rem] flex flex-row items-center gap-1`,children:[e,` (`,k[n.type],`)`,n.required?null:(0,N.jsx)(`span`,{className:`tooltip tooltip-right`,"data-tip":L(e=>e.attribute_not_required,{ns:`zigbee`}),children:(0,N.jsx)(h,{icon:u,className:`text-warning`})}),n.read===!1?(0,N.jsx)(`span`,{className:`tooltip tooltip-right`,"data-tip":L(e=>e.attribute_not_readable,{ns:`zigbee`}),children:(0,N.jsx)(h,{icon:f,className:`text-error`})}):null,n.write?null:(0,N.jsx)(`span`,{className:`tooltip tooltip-right`,"data-tip":L(e=>e.attribute_not_writable,{ns:`zigbee`}),children:(0,N.jsx)(h,{icon:p,className:`text-error`})}),n.report?null:(0,N.jsx)(`span`,{className:`tooltip tooltip-right`,"data-tip":L(e=>e.attribute_report_not_required,{ns:`zigbee`}),children:(0,N.jsx)(h,{icon:m,className:`text-warning`})})]}),(0,N.jsx)(_,{className:`btn btn-error btn-outline mx-2`,item:e,onClick:e=>{E(T.filter(t=>t.attribute!==e))},children:(0,N.jsx)(h,{icon:g})}),(0,N.jsx)(I,{value:t,attribute:e,definition:n,onChange:(e,t)=>{let n=Array.from(T),r=n.find(t=>t.attribute===e);r&&(r.value=t),E(n)}})]},e))}),[T,L]),K=(0,M.useMemo)(()=>{let e=new Set,n=new Set,r=new Set;if(v){let i=t.endpoints[Number.parseInt(v,10)],a=new Set;if(d.custom_clusters[t.ieee_address])for(let e in d.custom_clusters[t.ieee_address])a.has(e)||(a.add(e),n.add(e));if(i)for(let t of i.clusters.input)a.has(t)||(a.add(t),e.add(t));for(let e in d.clusters)a.has(e)||r.add(e)}return[{name:`custom_clusters`,clusters:n},{name:`input_clusters`,clusters:e},{name:`other_zcl_clusters`,clusters:r}]},[t,v,d]),q=T.length===0||S===``,J=(0,M.useMemo)(()=>a(t),[t]);return v?(0,N.jsxs)(`div`,{className:`flex-1 flex flex-col gap-3 w-full`,children:[(0,N.jsx)(`h2`,{className:`text-lg`,children:L(e=>e.read_write_attributes,{ns:`zigbee`})}),(0,N.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-2`,children:[(0,N.jsx)(C,{label:L(e=>e.endpoint,{ns:`zigbee`}),values:J,value:v,onChange:R,required:!0}),(0,N.jsx)(A,{label:L(e=>e.cluster),clusters:K,value:S,onChange:z,required:!0}),(0,N.jsx)(D,{sourceIdx:e,label:L(e=>e.attribute),value:``,cluster:S,device:t,onChange:B}),(0,N.jsx)(j,{type:`text`,name:`state_property`,label:L(e=>e.state_property,{ns:`devConsole`}),value:O,detail:`${L(e=>e.optional)}. ${L(e=>e.state_property_info,{ns:`devConsole`})}`,onChange:V})]}),G,(0,N.jsxs)(`div`,{className:`w-full flex flex-row flex-wrap justify-between gap-2`,children:[(0,N.jsxs)(`div`,{className:`w-full flex flex-row justify-between`,children:[(0,N.jsxs)(_,{disabled:q||T.some(e=>e.definition.read===!1||e.value!=null&&e.value!==``),className:`btn btn-success`,onClick:H,children:[(0,N.jsx)(h,{icon:f}),L(e=>e.read)]}),(0,N.jsxs)(_,{disabled:q||T.some(e=>!e.definition.write),className:`btn btn-error`,onClick:U,children:[(0,N.jsx)(h,{icon:p}),L(e=>e.write)]})]}),(0,N.jsxs)(x,{disabled:q||T.some(e=>e.value!=null&&e.value!==``),className:`btn btn-accent`,onClick:W,title:L(e=>e.sync_reporting),modalDescription:L(e=>e.dialog_confirmation_prompt),modalCancelLabel:L(e=>e.cancel),children:[(0,N.jsx)(h,{icon:m}),L(e=>e.sync_reporting)]})]}),l&&(0,N.jsx)(P,{message:l})]}):(0,N.jsx)(`span`,{children:`No endpoints`})}),R=(0,M.memo)(({sourceIdx:e,cluster:t,device:n,onChange:i,value:a,label:c,required:l,disabled:u})=>{let d=r(o(t=>t.bridgeDefinitions[e])),{t:f}=y(`zigbee`),p=(0,M.useMemo)(()=>E(d,n.ieee_address,t),[d,n.ieee_address,t]),m=(0,M.useMemo)(()=>{let e=[];for(let t in p)e.push({value:t,label:t});return e},[p]),h=(0,M.useMemo)(()=>a==null||a===``?null:m.find(e=>e.value===a)??null,[a,m]);return(0,N.jsxs)(`fieldset`,{className:`fieldset`,children:[c&&(0,N.jsxs)(`legend`,{className:`fieldset-legend`,children:[c,l?` *`:``]}),(0,N.jsx)(S,{unstyled:!0,placeholder:f(e=>e.select_command),"aria-label":c??f(e=>e.select_command),options:m,value:h,isSearchable:!0,isDisabled:u,onChange:e=>{e!=null&&i(e.value,p[e.value])},className:`min-w-64`,classNames:s})]})}),z=e=>{if(e){let t=`[`;for(let n of e){t+=`{${n.type}`;for(let e in n)e!==`type`&&(t+=` ${e}=${n[e]}`);t+=`}`}return`${t}]`}},B=(0,M.memo)(({sourceIdx:e,device:t,lastLog:n})=>{let{t:i}=y([`common`,`zigbee`]),[a,s]=(0,M.useState)(1),[c,l]=(0,M.useState)(``),[f,p]=(0,M.useState)(``),[m,g]=(0,M.useState)(null),[v,x]=(0,M.useState)(`{}`),S=r(o(t=>t.bridgeDefinitions[e])),C=(0,M.useMemo)(()=>{if(!c||!f)return!1;try{let e=JSON.parse(v);if(typeof e!=`object`||Array.isArray(e)&&e.length>0&&typeof e[0]!=`object`)return!1}catch{return!1}return!0},[v,c,f]),T=(0,M.useMemo)(()=>{let e=t.endpoints[a],n=new Set,r=new Set,i=new Set,o=new Set,s=new Set;if(S.custom_clusters[t.ieee_address])for(let e in S.custom_clusters[t.ieee_address])n.has(e)||(n.add(e),o.add(e));if(e){for(let t of e.clusters.input)n.has(t)||(n.add(t),r.add(t));for(let t of e.clusters.output)n.has(t)||(n.add(t),i.add(t))}for(let e in S.clusters)n.has(e)||s.add(e);return[{name:`custom_clusters`,clusters:o},{name:`input_clusters`,clusters:r},{name:`output_clusters`,clusters:i},{name:`other_zcl_clusters`,clusters:s}]},[t.ieee_address,t.endpoints,a,S]),E=(0,M.useCallback)((e,t)=>{p(e),g(t);let n=`{
2
- `,r=t.parameters.length-1;for(let e=0;e<t.parameters.length;e++){let i=t.parameters[e];n+=` "${i.name}": TODO${e===r?``:`,`}\n`}n+=`}`,x(n)},[]),D=(0,M.useCallback)(async()=>{let n=Number.parseInt(f,10);Number.isNaN(n)&&(n=f),await b(e,`${t.ieee_address}/${a}/set`,{command:{cluster:c,command:n,payload:JSON.parse(v)}})},[e,c,t.ieee_address,f,v,a]);return(0,N.jsxs)(`div`,{className:`flex-1 flex flex-col gap-3 w-full`,children:[(0,N.jsx)(`h2`,{className:`text-lg`,children:i(e=>e.execute_command)}),(0,N.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-2`,children:[(0,N.jsx)(j,{type:`number`,name:`endpoint`,label:i(e=>e.endpoint,{ns:`zigbee`}),min:1,max:255,value:a,onChange:e=>!!e.target.value&&s(e.target.valueAsNumber),required:!0}),(0,N.jsx)(A,{label:i(e=>e.cluster,{ns:`zigbee`}),clusters:T,value:c,onChange:e=>{l(e)},required:!0}),(0,N.jsx)(R,{sourceIdx:e,label:i(e=>e.command),value:f,cluster:c,device:t,onChange:E})]}),m?(0,N.jsxs)(`div`,{className:`list`,children:[m.required&&m.response==null?null:(0,N.jsx)(`div`,{className:`list-row p-1`,children:(0,N.jsxs)(`div`,{className:`flex flex-row gap-2`,children:[m.required?null:(0,N.jsx)(`span`,{className:`tooltip tooltip-right`,"data-tip":i(e=>e.command_not_required,{ns:`zigbee`}),children:(0,N.jsx)(h,{icon:u,className:`text-warning`})}),m.response==null?null:(0,N.jsx)(`span`,{className:`tooltip tooltip-right`,"data-tip":i(e=>e.command_has_response,{ns:`zigbee`}),children:(0,N.jsx)(h,{icon:d,className:`text-accent`})})]})}),m.parameters.length>0?m.parameters.map(e=>(0,N.jsxs)(`div`,{className:`list-row p-1`,children:[(0,N.jsxs)(`div`,{children:[e.name,`: `,k[e.type]??O[e.type]]}),(0,N.jsxs)(`div`,{className:`flex flex-row gap-2 justify-end`,children:[e.min==null?null:(0,N.jsxs)(`span`,{children:[`Min: `,e.min]}),e.minExcl==null?null:(0,N.jsxs)(`span`,{children:[`Min excl: `,e.minExcl]}),e.max==null?null:(0,N.jsxs)(`span`,{children:[`Max: `,e.max]}),e.maxExcl==null?null:(0,N.jsxs)(`span`,{children:[`Max excl: `,e.maxExcl]}),e.minLen==null?null:(0,N.jsxs)(`span`,{children:[`Min len: `,e.minLen]}),e.maxLen==null?null:(0,N.jsxs)(`span`,{children:[`Max len: `,e.maxLen]}),e.length==null?null:(0,N.jsxs)(`span`,{children:[`Length: `,e.length]}),e.special==null?null:(0,N.jsxs)(`span`,{children:[`Special: [`,e.special.map(e=>`${e[0]}=${e[1]}`).join(` `),`]`]}),e.conditions==null?null:(0,N.jsxs)(`span`,{children:[`Conditions: `,z(e.conditions)]})]})]},e.name)):(0,N.jsx)(N.Fragment,{children:`NO PARAMETER`})]}):null,(0,N.jsx)(w,{name:`payload`,label:i(e=>e.payload),rows:(v.match(/\n/g)||``).length+1,value:v,onChange:e=>x(e.target.value),className:`textarea validator w-full`,required:!0,disabled:m?.parameters.length===0}),(0,N.jsx)(`div`,{children:(0,N.jsx)(_,{onClick:D,disabled:!C,className:`btn btn-success`,children:i(e=>e.execute)})}),n&&(0,N.jsx)(P,{message:n})]})}),V=(0,M.memo)(({sourceIdx:e,device:t,externalDefinition:n})=>{let{t:i}=y(`zigbee`),a=r(o(t=>t.bridgeInfo[e])),s={template:`new_device_support.yaml`,title:`[New device support]: ${t.model_id} from ${t.manufacturer}`,z2m_version:`${a.version} (${a.commit})`,notes:`
3
- software_build_id: \`${t.software_build_id}\`
4
- date_code: \`${t.date_code}\`
5
- endpoints:
6
- \`\`\`json
7
- ${JSON.stringify(t.endpoints)}
8
- \`\`\``,external_definition:n};return(0,N.jsx)(v,{target:`_blank`,rel:`noopener noreferrer`,to:`${c}?${new URLSearchParams(s).toString()}`,className:`btn`,children:i(e=>e.request_support)})}),H=/^(zhc:tz: Read result of |z2m: Publish 'set' 'read' to |z2m: Publish 'set' 'write' to |zhc:tz: Wrote )/;function U({sourceIdx:e,device:t}){let{t:n}=y([`devConsole`,`common`]),i=r(o(n=>n.generatedExternalDefinitions[e][t.ieee_address])),a=r(o(t=>t.logs[e].findLast(e=>e.message.startsWith(`zhc:tz: Invoked `)))),s=r(o(t=>t.logs[e].findLast(e=>H.test(e.message)))),c=r(e=>e.resetDeviceState),[l,u]=(0,M.useState)(!1),[d,f]=(0,M.useState)(!1);(0,M.useEffect)(()=>{u(!1)},[t]);let p=(0,M.useCallback)(async(n,r,i,a)=>{let o={read:{cluster:r,attributes:i}};a&&(o.read.state_property=a),await b(e,`${t.ieee_address}/${n}/set`,o)},[e,t.ieee_address]),m=(0,M.useCallback)(async(n,r,i)=>{let a={write:{cluster:r,payload:{}}};for(let e of i)a.write.payload[e.attribute]=e.value;await b(e,`${t.ieee_address}/${n}/set`,a)},[e,t.ieee_address]),h=(0,M.useCallback)(async(n,r,i)=>{await b(e,`bridge/request/device/reporting/read`,{id:t.ieee_address,endpoint:n,cluster:r,configs:i})},[e,t.ieee_address]),g=(0,M.useCallback)(async()=>{u(!0),await b(e,`bridge/request/device/generate_external_definition`,{id:t.ieee_address})},[e,t.ieee_address]),S=(0,M.useCallback)(()=>{c(e,t.friendly_name)},[e,t.friendly_name,c]);return(0,N.jsxs)(`div`,{className:`flex flex-col gap-3 w-full`,children:[(0,N.jsxs)(`div`,{className:`flex flex-row flex-wrap justify-center items-center gap-2`,children:[i?t.supported?null:(0,N.jsx)(V,{sourceIdx:e,device:t,externalDefinition:i}):l?(0,N.jsx)(`span`,{className:`loading loading-infinity loading-xl`}):(0,N.jsx)(_,{className:`btn btn-primary`,onClick:g,children:n(e=>e.generate_external_definition)}),(0,N.jsx)(_,{item:!d,onClick:f,className:`btn btn-primary`,children:n(e=>d?e.hide_definition:e.show_definition)}),(0,N.jsx)(x,{className:`btn btn-error`,onClick:S,title:n(e=>e.reset_frontend_state),modalDescription:n(e=>e.dialog_confirmation_prompt,{ns:`common`}),modalCancelLabel:n(e=>e.cancel,{ns:`common`}),children:n(e=>e.reset_frontend_state)})]}),i&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`div`,{className:`divider`}),(0,N.jsx)(w,{name:`generated_external_definition`,label:n(e=>e.generated_external_definition),value:i,className:`textarea w-full`,rows:8,readOnly:!0}),(0,N.jsx)(v,{to:`https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html`,target:`_blank`,rel:`noreferrer`,className:`link link-primary self-end`,children:n(e=>e.documentation,{ns:`common`})})]}),d&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`div`,{className:`divider`}),(0,N.jsx)(T,{obj:t.definition??{},lines:12})]}),(0,N.jsx)(`div`,{className:`divider`}),(0,N.jsx)(L,{sourceIdx:e,device:t,read:p,write:m,readReporting:h,lastLog:s}),(0,N.jsx)(`div`,{className:`divider`}),(0,N.jsx)(B,{sourceIdx:e,device:t,lastLog:a})]})}export{U as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{Fn as r,t as i}from"./dist-CfE5hTP4.js";import{c as a,f as o,n as s}from"./index-D3pYOruP.js";import{t as c}from"./DeviceImage-CXlsJhdp.js";import{t as l}from"./LastSeen-DZTP2CnK.js";import{t as u}from"./PowerSource-Pz7Bfb6S.js";import{n as d}from"./startCase-uNz46yT6.js";import{r as f}from"./features-BSYFOmr-.js";import{t as p}from"./Lqi-va07g-tn.js";var m=e(t(),1),h=n(),g=(0,m.memo)(({onChange:e,onRead:t,sourceIdx:n,hideSourceDot:g,device:_,endpoint:v,deviceState:y,lastSeenConfig:b,features:x,featureWrapperClass:S,children:C})=>{let{t:w}=o([`zigbee`,`common`]),T=v==null?void 0:_.endpoints[v]?.name,E=(0,m.useMemo)(()=>{let n=[];for(let r of x){let i=v!=null&&!!r.endpoint;(!i||Number(r.endpoint)===v||r.endpoint===T)&&n.push((0,h.jsx)(d,{feature:r,device:_,deviceState:y,onChange:e,onRead:t,featureWrapperClass:S,minimal:!0,parentFeatures:[],endpointSpecific:i},f(r)))}return n},[T,_,v,y,x,S,e,t]);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`div`,{className:`card-body p-2`,children:[(0,h.jsxs)(`div`,{className:`flex flex-row items-center gap-3 w-full`,children:[(0,h.jsx)(`div`,{className:`flex-none h-11 w-11 overflow-visible`,children:(0,h.jsx)(c,{disabled:!1,device:_,otaState:y.update?.state})}),(0,h.jsxs)(`div`,{className:`min-w-0`,children:[(0,h.jsxs)(a,{to:`/device/${n}/${_.ieee_address}/info`,className:`link link-hover font-semibold`,children:[_.friendly_name,v==null?``:` (${w(e=>e.endpoint)}: ${T?`${T} / `:``}${v})`]}),_.description&&(0,h.jsx)(`div`,{className:`text-xs opacity-50 truncate`,title:_.description,children:_.description}),(0,h.jsx)(`div`,{className:`text-xs opacity-50`,children:(0,h.jsx)(l,{lastSeen:y.last_seen,config:b})}),!g&&(0,h.jsx)(`span`,{className:`absolute top-2 right-2`,children:(0,h.jsx)(s,{idx:n,autoHide:!0})})]})]}),(0,h.jsx)(`div`,{className:`text-sm w-full p-2`,children:E}),(0,h.jsx)(`div`,{className:`flex flex-row justify-end mb-2`,children:(0,h.jsxs)(a,{to:`/device/${n}/${_.ieee_address}/exposes`,className:`btn btn-xs`,children:[w(e=>e.exposes,{ns:`common`}),` `,(0,h.jsx)(i,{icon:r,size:`lg`})]})})]}),(0,h.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-1 mx-2 mb-2 justify-around items-center`,children:[(0,h.jsx)(`span`,{className:`badge badge-soft badge-ghost cursor-default tooltip`,"data-tip":w(e=>e.lqi),children:(0,h.jsx)(p,{value:y.linkquality})}),(0,h.jsx)(`span`,{className:`badge badge-soft badge-ghost cursor-default tooltip`,"data-tip":w(e=>e.power),children:(0,h.jsx)(u,{device:_,batteryPercent:y.battery,batteryState:y.battery_state,batteryLow:y.battery_low,showLevel:!0})}),C]})]})});export{g as t};
@@ -1 +0,0 @@
1
- import{i as e,t}from"./rolldown-runtime-B1FJdls4.js";import{n,t as r}from"./jsx-runtime-C5tU7uY8.js";import{_ as i}from"./consts-ACU3OL1g.js";import{Dn as a,Xn as o,Zn as s,h as c,nr as l,t as u,ut as d}from"./dist-CfE5hTP4.js";import{f}from"./index-D3pYOruP.js";import{r as p,t as m}from"./device-CWMG6uQC.js";var h=r();function g({error:e,children:t}){return e?(0,h.jsx)(u,{icon:d,size:`3x`,className:`text-error`}):t}var _=t(((e,t)=>{function n(e){"@babel/helpers - typeof";return t.exports=n=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},t.exports.__esModule=!0,t.exports.default=t.exports,n(e)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),v=t(((e,t)=>{var n=_().default;function r(e,t){if(n(e)!=`object`||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||`default`);if(n(i)!=`object`)return i;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports})),y=t(((e,t)=>{var n=_().default,r=v();function i(e){var t=r(e,`string`);return n(t)==`symbol`?t:t+``}t.exports=i,t.exports.__esModule=!0,t.exports.default=t.exports})),b=t(((e,t)=>{var n=y();function r(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports})),x=t(((e,t)=>{function n(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),S=t(((e,t)=>{(function(r,i){typeof e==`object`&&t!==void 0?i(e,b(),x(),n()):typeof define==`function`&&define.amd?define([`exports`,`@babel/runtime/helpers/defineProperty`,`@babel/runtime/helpers/objectWithoutPropertiesLoose`,`react`],i):(r=typeof globalThis>`u`?r||self:globalThis,i(r.Img={},r._defineProperty,r._objectWithoutPropertiesLoose,r.React))})(e,function(e,t,n,r){function i(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e){for(var t,n=1;n<arguments.length;n++)t=arguments[n]==null?{}:arguments[n],n%2?a(Object(t),!0).forEach(function(n){u.default(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))});return e}function s(e){var t=e.srcList,n=e.imgPromise,i=n===void 0?p({decode:!0}):n,a=e.useSuspense,s=a===void 0||a,c=r.useState(!1)[1],l=m(h(t)),u=l.join(``);if(g[u]||(g[u]={promise:_(l,i),cache:`pending`,error:null}),g[u].cache===`resolved`)return{src:g[u].src,isLoading:!1,error:null};if(g[u].cache===`rejected`){if(s)throw g[u].error;return{isLoading:!1,error:g[u].error,src:void 0}}if(g[u].promise.then(function(e){g[u]=o(o({},g[u]),{},{cache:`resolved`,src:e}),s||c(u)}).catch(function(e){g[u]=o(o({},g[u]),{},{cache:`rejected`,error:e}),s||c(u)}),s)throw g[u].promise;return{isLoading:!0,src:void 0,error:null}}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t,n=1;n<arguments.length;n++)t=arguments[n]==null?{}:arguments[n],n%2?c(Object(t),!0).forEach(function(n){u.default(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))});return e}var u=i(t),d=i(n),f=i(r),p=function(e){var t=e.decode,n=e.crossOrigin,r=n===void 0?``:n;return function(e){return new Promise(function(n,i){var a=new Image;r&&(a.crossOrigin=r),a.onload=function(){(t===void 0||t)&&a.decode?a.decode().then(n).catch(i):n()},a.onerror=i,a.src=e})}},m=function(e){return e.filter(function(e){return e})},h=function(e){return Array.isArray(e)?e:[e]},g={},_=function(e,t){var n=!1;return new Promise(function(r,i){var a=function(e){return t(e).then(function(){n=!0,r(e)})};e.reduce(function(e,t){return e.catch(function(){if(!n)return a(t)})},a(e.shift())).catch(i)})},v=[`decode`,`src`,`loader`,`unloader`,`container`,`loaderContainer`,`unloaderContainer`,`imgPromise`,`crossorigin`,`useSuspense`],y=function(e){return e};e.Img=function(e){var t=e.decode,n=e.src,r=n===void 0?[]:n,i=e.loader,a=i===void 0?null:i,o=e.unloader,c=o===void 0?null:o,u=e.container,m=u===void 0?y:u,h=e.loaderContainer,g=h===void 0?y:h,_=e.unloaderContainer,b=_===void 0?y:_,x=e.imgPromise,S=e.crossorigin,C=e.useSuspense,w=C!==void 0&&C,T=d.default(e,v);x||=p({decode:t===void 0||t,crossOrigin:S});var E=s({srcList:r,imgPromise:x,useSuspense:w}),D=E.src,O=E.isLoading;return D?m(f.default.createElement(`img`,l({src:D},T))):!w&&O?g(a):!w&&c?b(c):null},e.useImage=s,Object.defineProperty(e,`__esModule`,{value:!0})})})),C=e(n(),1),w=S(),T=(0,C.memo)(({device:e={},className:t})=>{let n=e.definition?.icon,r=m(e),i=[];n&&i.push(n),r&&i.push(r),r!==``+new URL(`generic-zigbee-device-Dj-9sUqG.png`,import.meta.url).href&&i.push(p);let{src:a}=(0,w.useImage)({srcList:i});return(0,h.jsx)(`img`,{alt:e.ieee_address,src:a,className:`object-contain ${t??``}`})}),E=(0,C.memo)(e=>{let{t}=f([`zigbee`,`common`]),{device:n={},disabled:r,otaState:m,className:_,noIndicator:v}=e,y=(0,C.useMemo)(()=>n.interview_state===i.InProgress?(0,h.jsx)(`span`,{title:t(e=>e.interviewing),children:(0,h.jsx)(u,{icon:o,spin:!0,className:`indicator-item indicator-bottom indicator-end text-info`})}):n.interview_state===i.Failed?(0,h.jsx)(`span`,{title:t(e=>e.interview_failed),children:(0,h.jsx)(u,{icon:d,beat:!0,className:`indicator-item indicator-bottom indicator-end text-error`})}):n.definition?.source===`generated`?(0,h.jsx)(`span`,{title:t(e=>e.unsupported),children:(0,h.jsx)(u,{icon:a,beat:!0,className:`indicator-item indicator-bottom indicator-end text-warning`})}):n.definition?.source===`external`?(0,h.jsx)(`span`,{title:t(e=>e.unsupported),children:(0,h.jsx)(u,{icon:s,className:`indicator-item indicator-bottom indicator-end text-info`})}):null,[n.interview_state,n.definition,t]);return(0,h.jsx)(C.Suspense,{fallback:(0,h.jsx)(`img`,{alt:n.ieee_address,src:p}),children:(0,h.jsx)(g,{children:v?(0,h.jsx)(T,{device:n,className:`grid place-items-center${_?` ${_}`:``}`}):(0,h.jsxs)(`div`,{className:`indicator w-full`,children:[m===`updating`&&(0,h.jsx)(`span`,{title:t(e=>e.updating_firmware),children:(0,h.jsx)(u,{icon:l,spin:!0,className:`indicator-item indicator-top indicator-end text-info`})}),y,r&&(0,h.jsx)(`span`,{title:t(e=>e.disabled,{ns:`common`}),children:(0,h.jsx)(u,{icon:c,className:`indicator-item indicator-middle indicator-center text-error`,size:`2xl`})}),(0,h.jsx)(T,{device:n,className:`grid place-items-center${_?` ${_}`:``}`})]})})})});export{E as t};
@@ -1,27 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{n as r,r as i,t as a}from"./Modal-DkH2V1VC.js";import{i as o,n as s,r as c,v as l}from"./store-DGIKh3zK.js";import{t as u}from"./shallow-inzhGNJg.js";import{M as d,_ as f}from"./consts-ACU3OL1g.js";import{Xn as p,j as m,st as h,t as g,ut as _}from"./dist-CfE5hTP4.js";import{t as v}from"./Button-C09wmyxO.js";import{c as y,f as b,i as x,n as S}from"./index-D3pYOruP.js";import{t as C}from"./TextareaField-CWDMDAzr.js";import{t as w}from"./snakeCase-0YGV1fIQ.js";import{i as T,n as E,r as D,t as O}from"./Availability-CPqL8wxZ.js";import{n as ee}from"./device-CWMG6uQC.js";import{t as k}from"./DeviceImage-CXlsJhdp.js";import{i as A,t as j}from"./OtaControlGroup-DwpR1GB_.js";import{n as M,t as N}from"./VendorLink-Jm24ebj5.js";import{t as P}from"./DisplayValue-DFsRQsrg.js";import{t as F}from"./LastSeen-DZTP2CnK.js";import{t as I}from"./PowerSource-Pz7Bfb6S.js";var L=e(w(),1),R=e(t(),1),z=n(),B=r.create(({device:e,setDeviceDescription:t})=>{let n=i(),{t:r}=b([`zigbee`,`common`]),[o,s]=(0,R.useState)(e.description||``);return(0,R.useEffect)(()=>{s(e.description||``)},[e.description]),(0,R.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),n.remove())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,z.jsx)(a,{isOpen:n.visible,title:`${r(e=>e.update_description)} ${e.friendly_name}`,footer:(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(v,{className:`btn btn-neutral`,onClick:n.remove,children:r(e=>e.cancel,{ns:`common`})}),(0,z.jsx)(v,{className:`btn btn-primary ms-1`,onClick:async()=>{n.remove(),await t(e.ieee_address,o)},children:r(e=>e.save_description)})]}),children:(0,z.jsx)(`div`,{className:`flex flex-col gap-2`,children:(0,z.jsx)(C,{label:r(e=>e.description),name:`update_description`,onChange:e=>s(e.target.value),rows:3,value:o})})})}),V=(0,R.memo)(({device:e,setDeviceDescription:t})=>{let{t:n}=b(`zigbee`);return(0,z.jsx)(v,{className:`btn btn-link btn-md ${e.description?`btn-square`:``} tooltip-bottom`,onClick:async()=>await r.show(B,{device:e,setDeviceDescription:t}),title:n(e=>e.edit_description),children:e.description?(0,z.jsx)(g,{icon:h}):n(e=>e.edit_description)})}),H=/\[(.*?)]\((.*?)\)/,U={native:`badge-success`,external:`badge-info`,generated:`badge-warning`},W=(e,t)=>{if(!(e===`bindings`||e===`configured_reportings`||e===`scenes`))return t},G=(0,R.memo)(({sourceIdx:e,device:t})=>{let{t:n}=b(`zigbee`),r=o(u(t=>t.bridgeInfo[e])),i={template:`external_converter.yaml`,title:`[External Converter]: ${t.model_id} from ${t.manufacturer}`,z2m_version:`${r.version} (${r.commit})`,notes:`
2
- software_build_id: \`${t.software_build_id}\`
3
- date_code: \`${t.date_code}\`
4
- endpoints:
5
- \`\`\`json
6
- ${JSON.stringify(t.endpoints,W)}
7
- \`\`\``};return(0,z.jsx)(y,{target:`_blank`,rel:`noopener noreferrer`,to:`${d}?${new URLSearchParams(i).toString()}`,className:`link link-hover`,children:n(e=>e.submit_converter)})}),K=(0,R.memo)(({sourceIdx:e,device:t})=>{let{t:n}=b(`zigbee`),r=o(u(t=>t.bridgeInfo[e])),i=o(u(t=>t.bridgeHealth[e])),a=t.definition;if(!a)return null;let s=a.model===t.model_id?``:` (${a.model})`,c={template:`problem_report.yaml`,title:`[${t.model_id}${s} / ${t.manufacturer}] ???`,z2m_version:`${r.version} (${r.commit})`,adapter_fwversion:JSON.stringify(r.coordinator.meta),adapter:r.coordinator.type,setup:`os: \`${r.os.version}\`
8
- node: \`${r.os.node_version}\`
9
- ha: \`${r.config.homeassistant.enabled}\``,notes:`
10
- #### Device
11
- definition: \`${a.model}\` - \`${a.vendor}\` (\`v${a.version??`0.0.0`}\`)
12
- software_build_id: \`${t.software_build_id}\`
13
- date_code: \`${t.date_code}\`
14
- endpoints:
15
- \`\`\`json
16
- ${JSON.stringify(t.endpoints)}
17
- \`\`\``};return i.response_time>0&&(c.notes+=`
18
- ##### Health
19
- time: \`${new Date(i.response_time)}\`
20
- os.load_average: \`${i.os.load_average.join(`, `)}\`
21
- os.memory_percent: \`${i.os.memory_percent}\`
22
- process.memory_percent: \`${i.process.memory_percent}\`
23
- process.uptime_sec: \`${Math.round(i.process.uptime_sec)}\`
24
- \`\`\`json
25
- ${JSON.stringify(i.devices[t.ieee_address]??{})}
26
- \`\`\`
27
- `),(0,z.jsx)(y,{target:`_blank`,rel:`noopener noreferrer`,to:`${d}?${new URLSearchParams(c).toString()}`,className:`btn btn-ghost`,children:n(e=>e.report_problem)})});function q({sourceIdx:e,device:t}){let{t:n}=b([`zigbee`,`availability`,`common`,`ota`]),r=o(u(t=>t.deviceStates[e])),i=o(u(t=>t.bridgeInfo[e].config)),a=o(u(t=>t.availability[e])),d=o(u(t=>t.recentActivity[e])),h=i.homeassistant.enabled,v=r[t.friendly_name]??{},C=d[t.friendly_name],w=(0,R.useMemo)(()=>ee(t),[t]),B=(0,R.useMemo)(()=>A(v.update?.installed_version),[v.update?.installed_version]),W=(0,R.useMemo)(()=>T.get(t.ieee_address.slice(2,8))??`?`,[t.ieee_address]),q=(0,R.useCallback)(async(t,n)=>{await x(e,`bridge/request/device/options`,{id:t,options:{description:n}})},[e]),J=(0,R.useCallback)(async(e,t,n,r)=>{await x(e,`bridge/request/device/rename`,{from:t,to:n,homeassistant_rename:r,last:void 0})},[]),Y=(0,R.useCallback)(async([e,t])=>{await x(e,`bridge/request/device/configure`,{id:t})},[]),X=(0,R.useCallback)(async([e,t])=>{await x(e,`bridge/request/device/interview`,{id:t})},[]),Z=(0,R.useCallback)(async(e,t,n,r)=>{await x(e,`bridge/request/device/remove`,{id:t,force:n,block:r})},[]),Q=(0,R.useCallback)(async({sourceIdx:e,ieee:t,...n})=>await x(e,`bridge/request/device/ota_update/check`,{id:t,...n}),[]),te=(0,R.useCallback)(async({sourceIdx:e,ieee:t,downgrade:n,...r})=>await x(e,n?`bridge/request/device/ota_update/update/downgrade`:`bridge/request/device/ota_update/update`,{id:t,...r}),[]),ne=(0,R.useCallback)(async({sourceIdx:e,ieee:t,downgrade:n,...r})=>await x(e,n?`bridge/request/device/ota_update/schedule/downgrade`:`bridge/request/device/ota_update/schedule`,{id:t,...r}),[]),re=(0,R.useCallback)(async({sourceIdx:e,ieee:t})=>await x(e,`bridge/request/device/ota_update/unschedule`,{id:t}),[]),$=i.devices[t.ieee_address]?.availability,ie=(0,R.useMemo)(()=>{let e=t.definition?.description?H.exec(t.definition?.description):void 0;if(e){let[,t,n]=e;return(0,z.jsx)(y,{target:`_blank`,rel:`noopener noreferrer`,to:n,className:`link link-hover`,children:t})}return(0,z.jsx)(z.Fragment,{children:t.definition?.description})},[t.definition]),ae=(0,R.useMemo)(()=>{switch(t.interview_state){case f.Pending:return(0,z.jsx)(g,{icon:p,className:`text-info`});case f.InProgress:return(0,z.jsx)(g,{icon:p,spin:!0,className:`text-info`});case f.Successful:return(0,z.jsx)(g,{icon:m,className:`text-success`});default:return(0,z.jsx)(g,{icon:_,beat:!0,className:`text-error`})}},[t.interview_state]);return(0,z.jsxs)(`div`,{className:`card lg:card-side bg-base-100`,children:[(0,z.jsx)(`figure`,{className:`w-64 h-64`,style:{overflow:`visible`},children:(0,z.jsx)(k,{device:t,otaState:v.update?.state,disabled:t.disabled,noIndicator:!0})}),(0,z.jsxs)(`div`,{className:`card-body py-0 px-3`,children:[(0,z.jsxs)(`h2`,{className:`card-title`,children:[t.friendly_name,(0,z.jsx)(D,{sourceIdx:e,name:t.friendly_name,renameDevice:J,homeassistantEnabled:h,style:`btn-link btn-md btn-square`})]}),(0,z.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-2`,children:[(0,z.jsxs)(`span`,{className:`badge ${t.definition?U[t.definition.source]:``}`,children:[(0,z.jsx)(P,{name:`supported`,value:t.supported}),t.definition?`: ${t.definition.source}`:``]}),!t.supported&&(0,z.jsx)(`span`,{className:`badge`,children:(0,z.jsx)(y,{target:`_blank`,rel:`noopener noreferrer`,to:`https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html`,className:`link link-hover`,children:n(e=>e.how_to_add_support)})}),t.definition?.source===`external`&&(0,z.jsx)(`span`,{className:`badge`,children:(0,z.jsx)(G,{sourceIdx:e,device:t})}),(0,z.jsxs)(`span`,{className:`badge opacity-70 tooltip tooltip-bottom`,"data-tip":t.interview_state,children:[n(e=>e.interview_state),`: `,ae]})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`pre`,{className:`inline text-wrap break-all`,children:t.description||``}),(0,z.jsx)(V,{device:t,setDeviceDescription:q})]}),(0,z.jsxs)(`div`,{className:`grid grid-cols-[max-content_1fr] gap-x-3 gap-y-2 text-wrap`,children:[(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:n(e=>e.type)}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`font-semibold`,children:t.type}),(0,z.jsxs)(`p`,{className:`text-base-content/50`,children:[t.type===`GreenPower`?`GreenPower`:n(e=>e[(0,L.default)(t.power_source)]||e.unknown),(0,z.jsx)(`span`,{className:`ms-3`,children:(0,z.jsx)(I,{showLevel:!0,device:t,batteryPercent:v.battery,batteryState:v.battery_state,batteryLow:v.battery_low})})]})]}),(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:n(e=>e.ieee_address)}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`font-semibold font-mono`,children:t.ieee_address}),(0,z.jsx)(`p`,{className:`text-base-content/50`,children:(0,z.jsxs)(`span`,{className:`tooltip tooltip-bottom`,children:[(0,z.jsxs)(`span`,{className:`tooltip-content`,children:[`Organizationally Unique Identifier`,(0,z.jsx)(`br`,{}),`(IEEE Vendor Prefix)`]}),`OUI: `,W]})})]}),(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:n(e=>e.network_address)}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`font-semibold`,children:(0,z.jsx)(`span`,{className:`tooltip tooltip-bottom`,"data-tip":n(e=>e.network_address_hex),children:(0,z.jsx)(`span`,{className:`font-mono`,children:l(t.network_address)})})}),(0,z.jsxs)(`p`,{className:`text-base-content/50`,children:[n(e=>e.network_address_dec),`: `,(0,z.jsx)(`span`,{className:`font-mono`,children:t.network_address})]})]}),(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:n(e=>e.zigbee_model)}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`font-semibold break-all`,children:t.model_id}),(0,z.jsx)(`p`,{className:`text-base-content/50`,children:t.manufacturer})]}),(0,z.jsxs)(`div`,{className:`font-semibold text-base-content/70`,children:[n(e=>e.definition,{ns:`common`}),` (Zigbee2MQTT)`]}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsxs)(`p`,{className:`font-semibold break-all`,children:[(0,z.jsx)(M,{modelId:t.model_id,supported:t.supported,definitionModel:t.definition?.model,icon:!0}),t.definition?.version&&t.definition.version!==`0.0.0`?` (v${t.definition.version})`:null]}),(0,z.jsxs)(`p`,{className:`text-base-content/50`,children:[ie,` (`,(0,z.jsx)(N,{supported:t.supported,definitionVendor:t.definition?.vendor,icon:!0}),`)`]})]}),t.software_build_id?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:n(e=>e.firmware_id)}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`font-semibold`,children:t.software_build_id||`N/A`}),(0,z.jsx)(`p`,{className:`text-base-content/50`,children:t.date_code||`N/A`})]})]}):null,w?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:n(e=>e.firmware_version,{ns:`ota`})}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsxs)(`p`,{className:`font-semibold`,children:[v.update?.installed_version??n(e=>e.unknown),(0,z.jsx)(`span`,{className:`ms-3`,children:(0,z.jsx)(j,{sourceIdx:e,device:t,otaSettings:i.ota,state:v.update,onCheckClick:Q,onUpdateClick:te,onScheduleClick:ne,onUnscheduleClick:re})})]}),B?(0,z.jsxs)(`p`,{className:`text-base-content/50`,children:[n(e=>e.app,{ns:`ota`}),`: `,`${B[0]} build ${B[1]}`,` | `,n(e=>e.stack,{ns:`ota`}),`: `,`${B[2]} build ${B[3]}`]}):null]})]}):null,(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:n(e=>e.last_seen)}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`font-semibold`,children:(0,z.jsx)(F,{config:i.advanced.last_seen,lastSeen:v.last_seen,fallback:n(e=>e.disabled,{ns:`common`})})}),(0,z.jsxs)(`p`,{className:`text-base-content/50`,children:[n(e=>e.availability,{ns:`availability`}),`: `,(0,z.jsx)(O,{availability:a[t.friendly_name]?.state??`offline`,disabled:t.disabled,availabilityFeatureEnabled:i.availability.enabled,availabilityEnabledForDevice:$==null?void 0:!!$})]})]}),C&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:n(e=>e.recent_activity,{ns:`common`})}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsxs)(`p`,{className:`font-semibold break-all`,children:[(0,z.jsx)(S,{idx:e,autoHide:!0}),C.desc]}),(0,z.jsx)(`p`,{className:`text-base-content/50`,children:new Date(C.timestamp).toLocaleString()})]})]}),(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:`MQTT`}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsxs)(`p`,{className:`font-semibold break-all`,children:[i.mqtt.base_topic,`/`,t.friendly_name]}),(0,z.jsx)(`p`,{className:`text-base-content/0`,children:`-`})]}),c&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`font-semibold text-base-content/70`,children:n(e=>e.source,{ns:`common`})}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`font-semibold`,children:(0,z.jsx)(S,{idx:e,alwaysShowName:!0})}),(0,z.jsx)(`p`,{className:`text-base-content/50`,children:s[e]})]})]})]}),(0,z.jsxs)(`div`,{className:`card-actions justify-center md:justify-end mt-2 me-4`,children:[t.supported&&(0,z.jsx)(K,{sourceIdx:e,device:t}),(0,z.jsx)(E,{sourceIdx:e,device:t,otaState:v.update?.state,homeassistantEnabled:h,renameDevice:J,configureDevice:Y,interviewDevice:X,removeDevice:Z})]})]})]})}export{q as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Bind-9H8Ygq6_.js","./rolldown-runtime-B1FJdls4.js","./index-D3pYOruP.js","./store-DGIKh3zK.js","./jsx-runtime-C5tU7uY8.js","./consts-ACU3OL1g.js","./envs-DWZQH-AC.js","./Modal-DkH2V1VC.js","./react-dom-hbu23gpx.js","./dist-CfE5hTP4.js","./store2-BXEcxMC-.js","./shallow-inzhGNJg.js","./Button-C09wmyxO.js","./localStoreConsts-BEZFCCkV.js","./index-DfWIRG7b.css","./floating-ui.react-DzkqpTVq.js","./floating-ui.dom-Bdt9HdJ7.js","./BindRow-BqbLxL4R.js","./react-select.esm-D6gkf1g1.js","./Select-ef7c0426.esm-DELyZaz8.js","./extends-lXRikpl0.js","./DevicePicker-DEKNbCXB.js","./EndpointPicker-CSugtgbJ.js","./SelectField-CiAuVYZq.js","./Clusters-CIrSZ1ES.js","./DevConsole-DTNqfNCp.js","./InputField--ZMqg114.js","./TextareaField-CWDMDAzr.js","./ClusterSinglePicker-DF_DhA2_.js","./Json-DWlaTYN_.js","./DeviceInfo-BVoM2RRf.js","./DeviceImage-CXlsJhdp.js","./device-CWMG6uQC.js","./snakeCase-0YGV1fIQ.js","./_createCompounder-BILaihi7.js","./isObjectLike-CBVcfcwF.js","./Availability-CPqL8wxZ.js","./CheckboxField-CzFe1pWJ.js","./RemoveDeviceModal-B7NqbupW.js","./OtaControlGroup-DwpR1GB_.js","./VendorLink-Jm24ebj5.js","./DisplayValue-DFsRQsrg.js","./LastSeen-DZTP2CnK.js","./TimeAgo-CvmaD1n4.js","./PowerSource-Pz7Bfb6S.js","./DeviceSettings-CJI6LRl6.js","./merge-Cm7ReLF9.js","./isObject-D5MxFwns.js","./InfoAlert-CHgsiNoZ.js","./SettingsList-cB7_nCRL.js","./NumberField-CgBWn-Gs.js","./DeviceSpecificSettings-BSfI6iA1.js","./startCase-uNz46yT6.js","./features-BSYFOmr-.js","./FeatureWrapper-DEHOZ1_c.js","./Docs-2JBekN1z.js","./Exposes-DfcXtDKb.js","./Exposes-BIUuYxZ-.js","./Groups-Tuy41GAz.js","./useColumnCount-D-zut-DS.js","./Reporting-DYh5JQzx.js","./ReportingRow-DXZEf2vY.js","./Scene-KYXW6bAC.js","./RecallRemove-DHfef3S1.js","./DashboardFeatureWrapper-xH2Rdw9Q.js","./State-D77N0vaS.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{S as r,i,n as a,u as o}from"./store-DGIKh3zK.js";import{t as s}from"./shallow-inzhGNJg.js";import{D as c}from"./consts-ACU3OL1g.js";import{D as l,Gt as u,J as d,Y as f,jn as p,jr as m,kr as h,ln as g,p as _,rt as v,t as y,yt as b,zt as x}from"./dist-CfE5hTP4.js";import{d as S,f as C,l as w,n as T,t as E,u as D}from"./index-D3pYOruP.js";import{t as O}from"./react-select.esm-D6gkf1g1.js";var k=e(t(),1),A=n(),j=(0,k.memo)(({currentSourceIdx:e,currentDevice:t,tab:n=`info`})=>{let{t:r}=C(`common`),o=i(e=>e.devices),s=D(),l=(0,k.useCallback)(e=>{e&&s(e.link)},[s]),u=(0,k.useMemo)(()=>{let r=[];for(let i=0;i<a.length;i++)for(let a of o[i])a.type===`Coordinator`||i===e&&a.ieee_address===t?.ieee_address||r.push({value:a.friendly_name,label:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(T,{idx:i,autoHide:!0,namePostfix:` – `}),` `,a.friendly_name]}),name:`${i} ${a.friendly_name}`,link:`/device/${i}/${a.ieee_address}/${n}`});return r.sort((e,t)=>e.name.localeCompare(t.name)),r},[o,e,t,n]);return(0,A.jsx)(O,{unstyled:!0,placeholder:t&&e!==void 0?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(T,{idx:e,autoHide:!0,namePostfix:` – `}),` `,t.friendly_name]}):r(e=>e.select_device),"aria-label":r(e=>e.select_device),options:u,isSearchable:!0,onChange:l,className:`min-w-48 sm:w-auto me-2`,classNames:c})}),M=(0,k.lazy)(async()=>await r(()=>import(`./Bind-9H8Ygq6_.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url)),N=(0,k.lazy)(async()=>await r(()=>import(`./Clusters-CIrSZ1ES.js`),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)),P=(0,k.lazy)(async()=>await r(()=>import(`./DevConsole-DTNqfNCp.js`),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,12,13,14,18,19,20,16,26,27,28,22,23,29]),import.meta.url)),F=(0,k.lazy)(async()=>await r(()=>import(`./DeviceInfo-BVoM2RRf.js`),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,11,12,13,14,31,32,33,34,35,36,37,26,38,27,39,15,16,23,40,41,42,43,44]),import.meta.url)),I=(0,k.lazy)(async()=>await r(()=>import(`./DeviceSettings-CJI6LRl6.js`),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10,11,12,13,14,46,35,47,48,49,37,26,50,23]),import.meta.url)),L=(0,k.lazy)(async()=>await r(()=>import(`./DeviceSpecificSettings-BSfI6iA1.js`),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10,11,12,13,14,52,34,35,47,53,41,54]),import.meta.url)),R=(0,k.lazy)(async()=>await r(()=>import(`./Docs-2JBekN1z.js`),__vite__mapDeps([55,1,3,4,5,6,9,11]),import.meta.url)),z=(0,k.lazy)(async()=>await r(()=>import(`./Exposes-DfcXtDKb.js`),__vite__mapDeps([56,57,1,2,3,4,5,6,7,8,9,10,11,12,13,14,52,34,35,47,53,41,54]),import.meta.url)),B=(0,k.lazy)(async()=>await r(()=>import(`./Groups-Tuy41GAz.js`),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10,11,12,13,14,59,18,19,20,16,22,23]),import.meta.url)),V=(0,k.lazy)(async()=>await r(()=>import(`./Reporting-DYh5JQzx.js`),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,61,26,28,18,19,20]),import.meta.url)),H=(0,k.lazy)(async()=>await r(()=>import(`./Scene-KYXW6bAC.js`),__vite__mapDeps([62,3,1,4,5,6,63,2,7,8,9,10,11,12,13,14,19,20,16,52,34,35,47,53,41,64,26]),import.meta.url)),U=(0,k.lazy)(async()=>await r(()=>import(`./State-D77N0vaS.js`),__vite__mapDeps([65,3,1,4,5,6,11,29]),import.meta.url));function W(e,t,n){let r=`${e}-${n.ieee_address}`;switch(t){case`info`:return(0,A.jsx)(F,{sourceIdx:e,device:n},r);case`exposes`:return(0,A.jsx)(z,{sourceIdx:e,device:n},r);case`bind`:return(0,A.jsx)(M,{sourceIdx:e,device:n},r);case`reporting`:return(0,A.jsx)(V,{sourceIdx:e,device:n},r);case`settings`:return(0,A.jsx)(I,{sourceIdx:e,ieeeAddress:n.ieee_address},r);case`settings-specific`:return(0,A.jsx)(L,{sourceIdx:e,device:n},r);case`state`:return(0,A.jsx)(U,{sourceIdx:e,friendlyName:n.friendly_name},r);case`clusters`:return(0,A.jsx)(N,{device:n},r);case`groups`:return(0,A.jsx)(B,{sourceIdx:e,device:n},r);case`scene`:return(0,A.jsx)(H,{sourceIdx:e,device:n},r);case`dev-console`:return(0,A.jsx)(P,{sourceIdx:e,device:n},r);case`docs`:return n.definition?.model?(0,A.jsx)(R,{sourceIdx:e,definitionModel:n.definition.model},r):null}}var G=({isActive:e})=>e?`tab tab-active`:`tab`;function K(){let e=D(),{t}=C([`devicePage`,`common`]),{sourceIdx:n,deviceId:r,tab:a}=S(),[c,T]=o(n),O=i(s(e=>r?e.devices[c].find(e=>e.ieee_address===r):void 0));return(0,k.useEffect)(()=>{n&&T&&O?O.type===`Coordinator`?e(`/settings/${n}/about`,{replace:!0}):a||e(`/device/${n}/${O.ieee_address}/info`,{replace:!0}):e(`/devices`,{replace:!0})},[n,T,a,O,e]),(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(E,{children:(0,A.jsx)(j,{currentSourceIdx:c,currentDevice:O,tab:a})}),(0,A.jsxs)(`div`,{className:`tabs tabs-border`,children:[(0,A.jsxs)(w,{to:`/device/${c}/${r}/info`,className:G,children:[(0,A.jsx)(y,{icon:x,className:`me-2`}),t(e=>e.about)]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/exposes`,className:G,children:[(0,A.jsx)(y,{icon:h,className:`me-2`}),t(e=>e.exposes,{ns:`common`})]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/bind`,className:G,children:[(0,A.jsx)(y,{icon:u,className:`me-2`}),t(e=>e.bind)]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/reporting`,className:G,children:[(0,A.jsx)(y,{icon:v,className:`me-2`}),t(e=>e.reporting)]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/settings`,className:G,children:[(0,A.jsx)(y,{icon:f,className:`me-2`}),t(e=>e.settings)]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/settings-specific`,className:G,children:[(0,A.jsx)(y,{icon:d,className:`me-2`}),t(e=>e.settings_specific)]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/state`,className:G,children:[(0,A.jsx)(y,{icon:_,className:`me-2`}),t(e=>e.state)]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/clusters`,className:G,children:[(0,A.jsx)(y,{icon:p,className:`me-2`}),t(e=>e.clusters)]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/groups`,className:G,children:[(0,A.jsx)(y,{icon:g,className:`me-2`}),t(e=>e.groups)]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/scene`,className:G,children:[(0,A.jsx)(y,{icon:m,className:`me-2`}),t(e=>e.scene)]}),(0,A.jsxs)(w,{to:`/device/${c}/${r}/dev-console`,className:G,children:[(0,A.jsx)(y,{icon:l,className:`me-2`}),t(e=>e.dev_console)]}),O?.supported&&O.definition?.source===`native`?(0,A.jsxs)(w,{to:`/device/${c}/${r}/docs`,className:G,children:[(0,A.jsx)(y,{icon:b,className:`me-2`}),t(e=>e.docs)]}):null,(0,A.jsx)(`div`,{className:`tab-content block h-full bg-base-100 p-3`,children:a&&O?W(c,a,O):(0,A.jsx)(`div`,{className:`flex-auto justify-center items-center`,children:t(e=>e.unknown_device,{ns:`common`})})})]})]})}export{K as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{D as r}from"./consts-ACU3OL1g.js";import{f as i}from"./index-D3pYOruP.js";import{t as a}from"./react-select.esm-D6gkf1g1.js";var o=e(t(),1),s=n(),c=(0,o.memo)(({devices:e,value:t,label:n,detail:c,required:l,disabled:u,onChange:d,groups:f=[]})=>{let{t:p}=i(`common`),m=t=>{if(t)if(t.value.startsWith(`0x`))d(e.find(e=>e.ieee_address===t.value));else{let e=Number.parseInt(t.value,10);d(f.find(t=>e===t.id))}},h=(0,o.useMemo)(()=>{let t=[],n=e.map(e=>({value:e.ieee_address,label:`${e.friendly_name} ${e.definition?.model?`(${e.definition?.model})`:``}`})).sort((e,t)=>e.label.localeCompare(t.label));if(f?.length){let e=f.map(e=>({value:`${e.id}`,label:e.friendly_name})).sort((e,t)=>e.label.localeCompare(t.label));t.push({label:p(e=>e.devices),options:n}),t.push({label:p(e=>e.groups),options:e})}else t.push({label:p(e=>e.devices),options:n});return t},[e,f,p]),g=(0,o.useMemo)(()=>t==null||t===``?null:typeof t==`number`?h[1]?.options.find(e=>e.value===`${t}`)??null:h[0]?.options.find(e=>e.value===t)??null,[t,h]);return(0,s.jsxs)(`fieldset`,{className:`fieldset`,children:[n&&(0,s.jsxs)(`legend`,{className:`fieldset-legend`,children:[n,l?` *`:``]}),(0,s.jsx)(a,{unstyled:!0,placeholder:p(e=>e.select_device),"aria-label":n??p(e=>e.select_device),options:h,value:g,isSearchable:!0,isDisabled:u,onChange:m,className:`min-w-64`,classNames:r}),c&&(0,s.jsx)(`span`,{className:`label`,children:c})]})});export{c as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r}from"./store-DGIKh3zK.js";import{t as i}from"./shallow-inzhGNJg.js";import{p as a}from"./consts-ACU3OL1g.js";import{f as o,i as s}from"./index-D3pYOruP.js";import{t as c}from"./merge-Cm7ReLF9.js";import{t as l}from"./InfoAlert-CHgsiNoZ.js";import{t as u}from"./SettingsList-cB7_nCRL.js";var d=e(c(),1),f=e(t(),1),p=n();function m({sourceIdx:e,ieeeAddress:t}){let{t:n}=o([`settings`,`common`]),c=r(i(t=>t.bridgeInfo[e])),m=(0,f.useCallback)(async n=>{await s(e,`bridge/request/device/options`,{id:t,options:n})},[e,t]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(l,{children:(0,p.jsx)(`a`,{href:a,target:`_blank`,rel:`noreferrer`,className:`link link-hover`,children:n(e=>e.read_the_docs_info,{ns:`common`})})}),(0,p.jsx)(u,{schema:c.config_schema.definitions.device??{properties:{}},data:(0,d.default)({},c.config.device_options,c.config.devices[t]),set:m,namespace:`definitions-device`})]})}export{m as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r}from"./store-DGIKh3zK.js";import{t as i}from"./shallow-inzhGNJg.js";import{f as a,i as o}from"./index-D3pYOruP.js";import{n as s}from"./startCase-uNz46yT6.js";import{r as c}from"./features-BSYFOmr-.js";import{t as l}from"./FeatureWrapper-DEHOZ1_c.js";var u=e(t(),1),d=n();function f({sourceIdx:e,device:t}){let{t:n}=a(`common`),f=r(i(t=>t.bridgeInfo[e])),p=(0,u.useCallback)(async n=>{await o(e,`bridge/request/device/options`,{id:t.ieee_address,options:n})},[e,t.ieee_address]);return t.definition?.options?.length?(0,d.jsx)(`div`,{className:`list bg-base-100`,children:t.definition.options.map(e=>(0,d.jsx)(s,{feature:e,device:t,deviceState:f.config.devices[t.ieee_address]??{},onChange:p,featureWrapperClass:l,parentFeatures:[]},c(e)))}):n(e=>e.empty_exposes_definition)}export{f as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r,s as i}from"./store-DGIKh3zK.js";import{t as a}from"./shallow-inzhGNJg.js";import{t as o,vr as s}from"./dist-CfE5hTP4.js";import{t as c}from"./Button-C09wmyxO.js";import{f as l,i as u,r as d}from"./index-D3pYOruP.js";import{t as f}from"./DevicePicker-DEKNbCXB.js";import{t as p}from"./EndpointPicker-CSugtgbJ.js";import{n as m,t as h}from"./useColumnCount-D-zut-DS.js";import{t as g}from"./DashboardFeatureWrapper-xH2Rdw9Q.js";import{n as _,t as v}from"./RecallRemove-DHfef3S1.js";import{t as y}from"./DeviceCard-Ds-P0T0L.js";var b=e(t(),1),x=n(),S=(0,b.memo)(({sourceIdx:e,devices:t,group:n})=>{let[r,a]=(0,b.useState)(``),[o,s]=(0,b.useState)(``),d=(0,b.useMemo)(()=>i(t.find(e=>e.ieee_address===o)),[o,t]),{t:m}=l([`groups`,`zigbee`]),h=(0,b.useCallback)(e=>{s(e.ieee_address),a(i(e).values().next().value)},[]),g=(0,b.useCallback)(async()=>await u(e,`bridge/request/group/members/add`,{group:n.id.toString(),endpoint:r,device:o}),[e,n.id,r,o]);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h2`,{className:`text-lg font-semibold`,children:m(e=>e.add_to_group_header)}),(0,x.jsxs)(`div`,{className:`mb-3`,children:[(0,x.jsx)(f,{label:m(e=>e.device,{ns:`zigbee`}),value:o,devices:t,onChange:h}),(0,x.jsx)(p,{label:m(e=>e.endpoint,{ns:`zigbee`}),values:d,value:r,onChange:e=>a(e),disabled:!o})]}),(0,x.jsx)(c,{onClick:g,className:`btn btn-primary`,disabled:r==null||r===``||!o,children:m(e=>e.add_to_group)})]})}),C=({sourceIdx:e,device:t,deviceState:n,deviceAvailability:i,groupMember:c,lastSeenConfig:u,removeDeviceFromGroup:f,setDeviceState:p})=>{let{endpoint:m}=c,{t:h}=l([`groups`,`common`]),_=r(a(n=>n.deviceScenesFeatures[e][t.ieee_address]??[])),v=(0,b.useCallback)(async e=>await p(t.ieee_address,e),[t.ieee_address,p]),S=(0,b.useCallback)(async()=>await f(t.ieee_address,m),[t.ieee_address,m,f]);return(0,x.jsx)(`div`,{className:`mb-3 card card-border bg-base-200 rounded-box shadow-md ${i===`offline`?`border-error/50`:`border-base-300`}`,children:(0,x.jsx)(y,{sourceIdx:e,hideSourceDot:!0,features:_,device:t,endpoint:m,deviceState:n,onChange:v,featureWrapperClass:g,lastSeenConfig:u,children:(0,x.jsx)(d,{onClick:S,className:`btn btn-square btn-outline btn-error btn-sm`,title:h(e=>e.remove_from_group),modalDescription:h(e=>e.dialog_confirmation_prompt,{ns:`common`}),modalCancelLabel:h(e=>e.cancel,{ns:`common`}),children:(0,x.jsx)(o,{icon:s})})})})},w=e=>e?.data?(0,x.jsx)(C,{...e.data}):null,T=(0,b.memo)(({sourceIdx:e,devices:t,group:n})=>{let i=r(e=>e.availability),o=r(e=>e.bridgeInfo),s=r(a(t=>t.deviceStates[e])),c=r(a(t=>t.bridgeInfo[e].config.advanced.last_seen)),l=h(),d=(0,b.useCallback)(async(t,r)=>await u(e,`bridge/request/group/members/remove`,{device:t,endpoint:r,group:n.id.toString()}),[e,n.id]),f=(0,b.useCallback)(async(t,n)=>{await u(e,`${t}/set`,n)},[e]),p=(0,b.useMemo)(()=>{let r=[],a=o[e].config.availability.enabled;for(let l of n.members){let n=t.find(e=>e.ieee_address===l.ieee_address);if(n){let t=`disabled`;if(!n.disabled){let r=o[e].config.devices[n.ieee_address]?.availability;t=(r==null?void 0:!!r)??a?i[e][n.friendly_name]?.state??`offline`:`disabled`}r.push({sourceIdx:e,groupMember:l,device:n,deviceState:s[n.friendly_name]??{},deviceAvailability:t,lastSeenConfig:c,removeDeviceFromGroup:d,setDeviceState:f})}}return r.sort((e,t)=>e.device.ieee_address.localeCompare(t.device.ieee_address)),r},[e,n,t,c,s,o,i,d,f]);return(0,x.jsx)(`div`,{children:(0,x.jsx)(m,{useWindowScroll:!0,columnCount:l,data:p,ItemContent:w,className:`gap-3`},`groupmembers-${p.length}`)})});function E({sourceIdx:e,group:t}){let n=r(a(t=>t.devices[e]));return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-4 mb-4 w-full`,children:[(0,x.jsx)(`div`,{className:`card card-border bg-base-200 border-base-300 rounded-box shadow-md flex-1`,children:(0,x.jsx)(`div`,{className:`card-body p-4`,children:(0,x.jsx)(S,{sourceIdx:e,devices:n,group:t})})}),(0,x.jsx)(`div`,{className:`card card-border bg-base-200 border-base-300 rounded-box shadow-md flex-1`,children:(0,x.jsx)(`div`,{className:`card-body p-4`,children:(0,x.jsx)(v,{sourceIdx:e,target:t})})}),(0,x.jsx)(`div`,{className:`card card-border bg-base-200 border-base-300 rounded-box shadow-md flex-1`,children:(0,x.jsx)(`div`,{className:`card-body p-4`,children:(0,x.jsx)(_,{sourceIdx:e,target:t,deviceState:{}})})})]}),(0,x.jsx)(T,{sourceIdx:e,devices:n,group:t})]})}export{E as default};
Binary file
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{c as r,i,n as a,r as o,t as s,v as c}from"./store-DGIKh3zK.js";import{Hn as l,t as u}from"./dist-CfE5hTP4.js";import{c as d,f,i as p,n as m,t as h}from"./index-D3pYOruP.js";import{i as g,n as _,t as v}from"./Availability-CPqL8wxZ.js";import{t as y}from"./DeviceImage-CXlsJhdp.js";import{n as b,t as x}from"./VendorLink-Jm24ebj5.js";import{t as S}from"./LastSeen-DZTP2CnK.js";import{t as C}from"./Lqi-va07g-tn.js";import{n as w,t as T}from"./TableSearch-MGqlMDuh.js";import{t as E}from"./Table-C3iXCYbr.js";var D=e(t(),1),O=n();function k(){let e=i(e=>e.devices),t=i(e=>e.deviceStates),n=i(e=>e.bridgeInfo),k=i(e=>e.availability),{t:A}=f([`zigbee`,`common`,`availability`]),j=(0,D.useMemo)(()=>{let r=[];for(let i=0;i<a.length;i++)for(let a of e[i])if(a.type!==`Coordinator`){let e=t[i][a.friendly_name]??{},o=n[i].config.devices[a.ieee_address]?.availability,s=g.get(a.ieee_address.slice(2,8))??`?`,c;a.power_source===`Battery`&&(c=!1,`battery`in e?e.battery<20&&(c=!0):`battery_state`in e?e.battery_state===`low`&&(c=!0):`battery_low`in e&&(c=!!e.battery_low)),r.push({sourceIdx:i,device:a,state:e,availabilityState:k[i][a.friendly_name]?.state??`offline`,availabilityEnabledForDevice:o==null?void 0:!!o,batteryLow:c,oui:s})}return r},[e,t,n,k]),M=(0,D.useCallback)(async(e,t,n,r)=>{await p(e,`bridge/request/device/rename`,{from:t,to:n,homeassistant_rename:r,last:void 0})},[]),N=(0,D.useCallback)(async([e,t])=>{await p(e,`bridge/request/device/configure`,{id:t})},[]),P=(0,D.useCallback)(async([e,t])=>{await p(e,`bridge/request/device/interview`,{id:t})},[]),F=(0,D.useCallback)(async(e,t,n,r)=>{await p(e,`bridge/request/device/remove`,{id:t,force:n,block:r})},[]),I=w({id:`all-devices`,columns:(0,D.useMemo)(()=>[{id:`source`,size:60,header:()=>(0,O.jsx)(`span`,{title:A(e=>e.source,{ns:`common`}),children:(0,O.jsx)(u,{icon:l})}),accessorFn:({sourceIdx:e})=>s[e],cell:({row:{original:{sourceIdx:e}}})=>(0,O.jsx)(m,{idx:e,nameClassName:`hidden md:inline-block`}),filterFn:`equals`,meta:{filterVariant:`select`,showFacetedOccurrences:!0}},{id:`friendly_name`,size:250,minSize:175,header:A(e=>e.friendly_name,{ns:`common`}),accessorFn:({device:e})=>`${e.friendly_name} ${e.description??``}`,cell:({row:{original:{sourceIdx:e,device:t,state:n}}})=>(0,O.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,O.jsx)(`div`,{className:`avatar`,children:(0,O.jsx)(`div`,{className:`h-11 w-11`,style:{overflow:`visible`},children:(0,O.jsx)(y,{device:t,otaState:n.update?.state,disabled:t.disabled})})}),(0,O.jsxs)(`div`,{className:`flex-grow flex flex-col min-w-0`,children:[(0,O.jsx)(d,{to:`/device/${e}/${t.ieee_address}/info`,className:`link link-hover truncate`,children:t.friendly_name}),t.description&&(0,O.jsx)(`div`,{className:`max-w-3xs text-xs opacity-50 truncate`,title:t.description,children:t.description})]})]}),sortingFn:(e,t)=>e.original.device.friendly_name.localeCompare(t.original.device.friendly_name),filterFn:`includesString`,meta:{filterVariant:`text`,textFaceted:!0}},{id:`ieee_address`,minSize:175,header:A(e=>e.ieee_address),accessorFn:({device:e})=>`${e.ieee_address} ${c(e.network_address,4)} ${e.network_address}`,cell:({row:{original:{sourceIdx:e,device:t}}})=>(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`div`,{children:(0,O.jsx)(d,{to:`/device/${e}/${t.ieee_address}/info`,className:`link link-hover font-mono`,children:t.ieee_address})}),(0,O.jsxs)(`div`,{className:`flex flex-row gap-1`,children:[(0,O.jsx)(`span`,{className:`badge badge-ghost badge-sm cursor-default font-mono`,title:A(e=>e.network_address_hex),children:c(t.network_address,4)}),(0,O.jsx)(`span`,{className:`badge badge-ghost badge-sm cursor-default font-mono`,title:A(e=>e.network_address_dec),children:t.network_address})]})]}),sortingFn:(e,t)=>e.original.device.ieee_address.localeCompare(t.original.device.ieee_address),filterFn:`includesString`,meta:{filterVariant:`text`}},{id:`oui`,minSize:125,header:`OUI`,accessorFn:({oui:e})=>e,filterFn:`includesString`,meta:{filterVariant:`text`,textFaceted:!0,showFacetedOccurrences:!0}},{id:`model`,minSize:175,header:A(e=>e.model),accessorFn:({device:e})=>`${e.definition?.model??``} ${e.model_id??``} ${e.definition?.vendor??e.manufacturer??``}`,cell:({row:{original:{device:e}}})=>(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(b,{modelId:e.model_id,supported:e.supported,definitionModel:e.definition?.model}),(0,O.jsx)(`div`,{className:`flex flex-row gap-1`,children:(0,O.jsx)(`span`,{className:`badge badge-ghost badge-sm tooltip tooltip-bottom`,"data-tip":A(e=>e.manufacturer),children:(0,O.jsx)(x,{supported:e.supported,definitionVendor:e.definition?.vendor})})})]}),filterFn:`includesString`,meta:{filterVariant:`text`,textFaceted:!0,showFacetedOccurrences:!0}},{id:`type`,size:100,header:A(e=>e.type),accessorFn:({device:e})=>A(t=>t[e.type]),cell:({row:{original:{device:e}}})=>A(t=>t[e.type]),filterFn:`equals`,meta:{filterVariant:`select`,showFacetedOccurrences:!0}},{id:`lqi`,size:70,header:A(e=>e.lqi),accessorFn:({state:e})=>e.linkquality,cell:({row:{original:{state:e}}})=>(0,O.jsx)(C,{value:e.linkquality}),filterFn:`inNumberRange`,meta:{filterVariant:`range`}},{id:`last_seen`,size:120,header:A(e=>e.last_seen),accessorFn:({sourceIdx:e,state:t})=>{let i=r(t.last_seen,n[e].config.advanced.last_seen);return i?Math.round((Date.now()-i)/1e3/60):void 0},cell:({row:{original:{sourceIdx:e,state:t}}})=>(0,O.jsx)(S,{lastSeen:t.last_seen,config:n[e].config.advanced.last_seen,fallback:A(e=>e.disabled,{ns:`common`})}),sortingFn:(e,t)=>{let i=r(e.original.state.last_seen,n[e.original.sourceIdx].config.advanced.last_seen),a=r(t.original.state.last_seen,n[t.original.sourceIdx].config.advanced.last_seen);return i>a?-1:i<a?1:0},enableGlobalFilter:!1,filterFn:`inNumberRange`,meta:{filterVariant:`range`,tooltip:A(e=>e.last_seen_filter_info,{ns:`common`})}},{id:`availability`,size:125,header:A(e=>e.availability,{ns:`availability`}),accessorFn:({sourceIdx:e,availabilityState:t,availabilityEnabledForDevice:r,device:i})=>A(a=>a[i.disabled?`disabled`:r??n[e].config.availability.enabled?t:`disabled`],{ns:`availability`}),cell:({row:{original:{sourceIdx:e,device:t,availabilityState:r,availabilityEnabledForDevice:i}}})=>(0,O.jsx)(v,{disabled:t.disabled,availability:r,availabilityEnabledForDevice:i,availabilityFeatureEnabled:n[e].config.availability.enabled}),filterFn:`equals`,meta:{filterVariant:`select`,showFacetedOccurrences:!0}},{id:`power_source`,size:100,header:A(e=>e.power_source),accessorFn:({device:e})=>e.power_source,filterFn:`equals`,meta:{filterVariant:`select`,showFacetedOccurrences:!0}},{id:`battery_level`,size:100,header:A(e=>e.battery_level),accessorFn:({state:e})=>e.battery??void 0,cell:({row:{original:{state:e,batteryLow:t}}})=>e.battery==null?`N/A`:(0,O.jsxs)(`span`,{className:t?`text-error`:void 0,children:[String(e.battery),`%`]}),filterFn:`inNumberRange`,meta:{filterVariant:`range`}},{id:`battery_low`,size:100,header:A(e=>e.battery_low),accessorFn:({batteryLow:e})=>e,cell:({row:{original:{batteryLow:e}}})=>e===void 0?`N/A`:(0,O.jsx)(`span`,{className:e?`text-error`:void 0,children:String(e)}),filterFn:`equals`,meta:{filterVariant:`boolean`}},{id:`disabled`,size:100,header:A(e=>e.disabled,{ns:`common`}),accessorFn:({device:e})=>`${!!e.disabled}`,filterFn:`equals`,meta:{filterVariant:`select`}},{id:`actions`,minSize:130,cell:({row:{original:{sourceIdx:e,device:t,state:r}}})=>(0,O.jsx)(_,{sourceIdx:e,device:t,otaState:r.update?.state,homeassistantEnabled:n[e].config.homeassistant.enabled,renameDevice:M,removeDevice:F,configureDevice:N,interviewDevice:P,btnClassName:`btn-sm`}),enableSorting:!1,enableColumnFilter:!1,enableGlobalFilter:!1}],[n,M,F,N,P,A]),data:j,visibleColumns:{source:o,type:!1,power_source:!1,battery_level:!1,battery_low:!1,disabled:!1,oui:!1},sorting:[{id:`friendly_name`,desc:!1}]});return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(h,{children:(0,O.jsx)(T,{...I})}),(0,O.jsx)(`div`,{className:`mb-5`,children:(0,O.jsx)(E,{id:`all-devices`,...I})})]})}export{k as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{f as r}from"./index-D3pYOruP.js";var i=e(t(),1),a=n(),o=(0,i.memo)(e=>{let{value:t,name:n}=e,{t:i}=r(`values`);switch(n){case`contact`:return i(t?e=>e.closed:e=>e.open);case`occupancy`:case`area1Occupancy`:case`area2Occupancy`:case`area3Occupancy`:case`area4Occupancy`:return i(t?e=>e.occupied:e=>e.clear);case`water_leak`:return t?(0,a.jsx)(`span`,{className:`text-error animate-pulse`,children:i(e=>e.leaking)}):i(e=>e.clear);case`carbon_monoxide`:return t?(0,a.jsx)(`span`,{className:`text-error animate-pulse`,children:i(e=>e.alarm)}):i(e=>e.normal);case`tamper`:return t?(0,a.jsx)(`span`,{className:`text-error animate-pulse`,children:i(e=>e.tampered)}):i(e=>e.clear);case`end_of_life`:case`fault`:return t?(0,a.jsx)(`span`,{className:`text-error animate-pulse`,children:i(e=>e.true)}):i(e=>e.false);case`testing`:case`warming_up`:return t?(0,a.jsx)(`span`,{className:`text-warning animate-pulse`,children:i(e=>e.in_progress)}):i(e=>e.done);case`supported`:return i(t?e=>e.supported:e=>e.not_supported);default:return i(t?e=>e.true:e=>e.false)}}),s=(0,i.memo)(e=>{let{t}=r(`values`),{value:n}=e;switch(typeof n){case`boolean`:return(0,a.jsx)(o,{...e});case`undefined`:return`N/A`;case`object`:return n===null?t(e=>e.null):JSON.stringify(n);case`string`:return n===``?(0,a.jsx)(`span`,{className:`text-xs opacity-50`,children:t(e=>e.empty_string)}):n;default:return JSON.stringify(n)}});export{s as t};
@@ -1,3 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r,p as i}from"./store-DGIKh3zK.js";import{t as a}from"./shallow-inzhGNJg.js";import{t as o,u as s}from"./dist-CfE5hTP4.js";var c=e(t(),1),l=n(),u=`https://www.zigbee2mqtt.io/`,d=/!?\[(.*?)]\((\.?\.?\/)?(.*?)\)/g,f=/`([^`]+)`|\*\*\*(.+?)\*\*\*|\*\*(.+?)\*\*|\*(.+?)\*/g,p=/^(\s*)([-*]|\d+\.)\s+(.*)$/,m=/^\s*\|?\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)+\|?\s*$/,h=(e,t)=>{for(let n of t)e.push(n)},g=e=>e.toLowerCase().replace(/[^\w\s-]/g,``).trim().replace(/\s+/g,`-`),_=(e,t)=>{let n=t.indexOf(`?`),r=t.indexOf(`#`),i=n===-1?r:r===-1?n:Math.min(n,r),a=i===-1?t:t.slice(0,i),o=i===-1?``:t.slice(i),s=a.endsWith(`.md`)?`${a.slice(0,-3)}.html`:a,c=e===`./`?`./devices/${s}${o}`:`${s}${o}`;return new URL(c,u).toString()},v=(e,t)=>{if(e.indexOf(`[`)===-1)return[e];let n=[];d.lastIndex=0;let r=0,i=d.exec(e);for(;i;){let[a,c,u,f]=i,p=i.index,m=p+a.length;p>r&&n.push(e.slice(r,p));let h=u?_(u,f):f;if(h.startsWith(`#`)){let e=f.slice(1);n.push((0,l.jsx)(`button`,{type:`button`,className:`link link-primary`,onClick:t=>{t.preventDefault(),document.getElementById(e)?.scrollIntoView({behavior:`smooth`})},children:c},`${t}-link-${p}`))}else n.push((0,l.jsxs)(`a`,{href:h,className:`link link-primary`,target:`_blank`,rel:`noopener noreferrer`,children:[c,` `,(0,l.jsx)(o,{icon:s})]},`${t}-link-${p}`));r=m,i=d.exec(e)}return r<e.length&&n.push(e.slice(r)),n.length>0?n:[e]};function y(e){if(e.indexOf(`*`)===-1&&e.indexOf("`")===-1)return v(e,`md-plain`);let t=[];f.lastIndex=0;let n=0,r=f.exec(e);for(;r;){let[i,a,o,s,c]=r,u=r.index,d=u+i.length;u>n&&h(t,v(e.slice(n,u),`md-txt-${n}`)),a===void 0?o===void 0?s===void 0?c!==void 0&&t.push((0,l.jsx)(`span`,{className:`italic`,children:v(c,`md-italic-${u}`)},`md-italic-${u}`)):t.push((0,l.jsx)(`span`,{className:`font-bold`,children:v(s,`md-bold-${u}`)},`md-bold-${u}`)):t.push((0,l.jsx)(`span`,{className:`italic font-bold`,children:v(o,`md-bold-italic-${u}`)},`md-bold-italic-${u}`)):t.push((0,l.jsx)(`span`,{className:`badge badge-ghost`,children:a},`md-code-${u}`)),n=d,r=f.exec(e)}return n<e.length&&h(t,v(e.slice(n),`md-txt-${n}`)),t.length>0?t:[e]}var b=e=>e.slice(e.startsWith(`|`)?1:0,e.endsWith(`|`)?-1:void 0).split(`|`),x=(e,t)=>{let n=[];for(let r=0;r<e.length;r++){let i=r>0;i&&n.push((0,l.jsx)(`br`,{},`${t}-br-${r}`)),n.push((0,l.jsx)(`span`,{className:i?`ps-4`:void 0,children:e[r]},`${t}-line-${r}`))}return n},S=(e,t,n=0)=>{let r=[];for(let i=0;i<e.items.length;i++){let a=e.items[i];r.push((0,l.jsxs)(`li`,{children:[x(a.lines,`${t}-${a.key}`),a.children.map(e=>S(e,`${t}-${a.key}-${e.key}`,n+1))]},`${t}-item-${a.key}`))}return e.type===`ol`?(0,l.jsx)(`ol`,{className:`list-decimal list-inside py-2 ${n>0?`ms-4`:``}`,children:r},`${t}-ol`):(0,l.jsx)(`ul`,{className:`list-disc list-inside py-2 ${n>0?`ms-4`:``}`,children:r},`${t}-ul`)},C=e=>{let t=e.trim();return t!==``&&!t.startsWith(`#`)&&!t.startsWith("```")&&!t.startsWith(`<!--`)};function w(e){let t=e.split(`
2
- `),n=[],r=0,i=!1,a=[],o=[],s=[],c=0,u=()=>{let e=c;return c+=1,e},d=()=>{if(o.length!==0){for(let e=0;e<o.length;e++)n.push((0,l.jsx)(`div`,{children:S(o[e],`md-list-${o[e].key}-${e}`)},`md-block-${r++}`));o=[],s=[]}};for(let e=0;e<t.length;e++){let c=t[e];if(c===``){d();continue}if(c.startsWith(`<!--`)){d();continue}let f=c,h=t[e+1];if(f.indexOf(`|`)!==-1&&h!==void 0&&m.test(h)){d();let i=e+1,a=b(f),o=b(h),s=[],c=[],u=[];for(let e=0;e<a.length;e++){let t=a[e],n=(o[e]??``).trim(),r=n.startsWith(`:`),i=n.endsWith(`:`),u;r&&i?u=`text-center`:i?u=`text-right`:r&&(u=`text-left`),s.push(u),c.push((0,l.jsx)(`th`,{className:u,children:y(t.trim())},`md-table-head-${e}-${t}`))}for(let n=e+2;n<t.length;n++){let e=t[n].trim();if(e===``||e.indexOf(`|`)===-1)break;let r=b(e),o=[];for(let e=0;e<a.length;e++){let t=r[e]??``;o.push((0,l.jsx)(`td`,{className:s[e],children:y(t.trim())},`md-table-cell-${n}-${e}-${t}`))}u.push((0,l.jsx)(`tr`,{children:o},`md-table-row-${n}`)),i=n}n.push((0,l.jsx)(`div`,{className:`overflow-x-auto my-2`,children:(0,l.jsxs)(`table`,{className:`table table-border [&>thead>tr>th]:px-2 [&>tbody>tr>td]:px-2 [&>thead>tr>th]:py-1.25 [&>tbody>tr>td]:py-1.25`,children:[(0,l.jsx)(`thead`,{children:(0,l.jsx)(`tr`,{children:c})}),(0,l.jsx)(`tbody`,{children:u})]})},`md-block-${r++}`)),e=i;continue}let _=c.match(p);if(_){let[,e,t,n]=_,r=e.length,i=t.endsWith(`.`)?`ol`:`ul`;for(;s.length>0&&r<s[s.length-1].indent;)s.pop();s.length>0&&r===s[s.length-1].indent&&i!==s[s.length-1].type&&s.pop();let a=s[s.length-1];if(!a||r>a.indent||r===a.indent&&i!==a.type){let e={key:u(),type:i,indent:r,items:[]},t=s[s.length-1],n=t?.items[t.items.length-1];n&&r>t.indent?n.children.push(e):o.push(e),s.push(e),a=e}a.items.push({key:u(),lines:[y(n)],children:[]});continue}if(s.length>0&&C(c)){let e=s[s.length-1],t=e.items[e.items.length-1];if(t){t.lines.push(y(c.trim()));continue}}if(d(),c.startsWith(`######`)){let e=c.slice(7);n.push((0,l.jsx)(`h6`,{id:g(e),className:`text-xs font-bold mt-4 mb-2 scroll-mt-18`,children:e},`md-block-${r++}`));continue}if(c.startsWith(`#####`)){let e=c.slice(6);n.push((0,l.jsx)(`h5`,{id:g(e),className:`text-sm font-bold mt-4 mb-2 scroll-mt-18`,children:e},`md-block-${r++}`));continue}if(c.startsWith(`####`)){let e=c.slice(5);n.push((0,l.jsx)(`h4`,{id:g(e),className:`text-md font-bold mt-4 mb-2 scroll-mt-18`,children:e},`md-block-${r++}`));continue}if(c.startsWith(`###`)){let e=c.slice(4);n.push((0,l.jsx)(`h3`,{id:g(e),className:`text-lg font-bold mt-4 mb-2 scroll-mt-18`,children:e},`md-block-${r++}`));continue}if(c.startsWith(`##`)){let e=c.slice(3);n.push((0,l.jsx)(`h2`,{id:g(e),className:`text-xl font-bold border-b border-base-content/25 py-1.5 mt-4 mb-2 scroll-mt-18`,children:e},`md-block-${r++}`));continue}if(c.startsWith(`#`)){let e=c.slice(2);n.push((0,l.jsx)(`h1`,{id:g(e),className:`text-2xl font-bold mt-4 mb-2 scroll-mt-18`,children:e},`md-block-${r++}`));continue}if(c.startsWith("```")){i?(n.push((0,l.jsx)(`pre`,{className:`w-full bg-base-200 my-1 py-2 px-4 rounded-sm overflow-x-auto`,children:(0,l.jsx)(`code`,{children:a.join(`
3
- `)})},`md-block-${r++}`)),a=[],i=!1):i=!0;continue}if(i){a.push(c);continue}n.push((0,l.jsx)(`p`,{children:y(c)},`md-block-${r++}`))}return d(),n}async function T(e){let t=await fetch(e);if(!t.ok)return[`Failed to fetch`];let n=(await t.text()).trim();return n.startsWith(`---`)&&(n=n.slice(n.indexOf(`---`,3)+3)),w(n)}var E=(0,c.memo)(({docsPromise:e})=>(0,c.use)(e)),D=(0,c.memo)(({sourceIdx:e,definitionModel:t})=>{let n=r(a(t=>t.bridgeInfo[e].version.match(/^\d+\.\d+\.\d+$/)===null))?`dev`:`master`,u=encodeURIComponent(i(t)),d=`https://raw.githubusercontent.com/Koenkk/zigbee2mqtt.io/${n}/docs/devices/${u}.md`,f=`https://github.com/Koenkk/zigbee2mqtt.io/edit/${n}/docs/devices/${u}.md`,p=T(d);return(0,l.jsx)(`div`,{className:`max-w-5xl`,children:(0,l.jsxs)(c.Suspense,{fallback:(0,l.jsx)(`div`,{className:`flex flex-row justify-center items-center gap-2`,children:(0,l.jsx)(`span`,{className:`loading loading-infinity loading-xl`})}),children:[(0,l.jsx)(E,{docsPromise:p}),(0,l.jsx)(`div`,{className:`divider`}),(0,l.jsxs)(`div`,{className:`flex flex-row flex-wrap items-center gap-1 mt-3`,children:[`Source:`,(0,l.jsx)(`span`,{children:d})]}),(0,l.jsxs)(`div`,{className:`flex flex-row flex-wrap items-center gap-1`,children:[`Edit:`,(0,l.jsxs)(`a`,{href:f,className:`link link-primary`,target:`_blank`,rel:`noopener noreferrer`,children:[f,` `,(0,l.jsx)(o,{icon:s})]})]})]})})});export{D as default};
Binary file
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";var r=e(t(),1),i=n(),a=(0,r.memo)(({durationSec:e})=>{if(e&&e>0){let t=Math.floor(e/3600),n=Math.floor(e/60)%60,r=Math.floor(e%60),a=t>0,o=n>0;return(0,i.jsxs)(i.Fragment,{children:[a?`${t}:`:``,o?`${n.toString().padStart(2,`0`)}:`:``,r.toString().padStart(2,`0`)]})}return null});export{a as t};
Binary file
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{f as r}from"./index-D3pYOruP.js";import{t as i}from"./SelectField-CiAuVYZq.js";var a=e(t(),1),o=n(),s=(0,a.memo)(({value:e,values:t,disabled:n,onChange:s,label:c,...l})=>{let{t:u}=r(`common`),d=t.size===1,f=(0,a.useMemo)(()=>{let e=[];for(let n of t)e.push((0,o.jsx)(`option`,{value:n,children:n},n));return e},[t]);return(0,o.jsxs)(i,{name:`endpoint_picker`,label:c,value:e??``,onChange:e=>s(e.target.value),title:d?u(e=>e.the_only_endpoint):`${e}`,disabled:e&&d||n,className:`select validator w-32`,...l,children:[(0,o.jsx)(`option`,{value:``,disabled:!0,children:u(e=>e.select_endpoint)}),f]})});export{s as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r}from"./store-DGIKh3zK.js";import{t as i}from"./shallow-inzhGNJg.js";import{f as a,i as o}from"./index-D3pYOruP.js";import{n as s}from"./startCase-uNz46yT6.js";import{r as c}from"./features-BSYFOmr-.js";import{t as l}from"./FeatureWrapper-DEHOZ1_c.js";var u=e(t(),1),d=n();function f({sourceIdx:e,device:t}){let{t:n}=a(`common`),f=r(i(n=>n.deviceStates[e][t.friendly_name]??{})),p=(0,u.useCallback)(async n=>{await o(e,`${t.ieee_address}/set`,n)},[e,t.ieee_address]),m=(0,u.useCallback)(async n=>{await o(e,`${t.ieee_address}/get`,n)},[e,t.ieee_address]);return t.definition?.exposes?.length?(0,d.jsx)(`div`,{className:`list bg-base-100`,children:t.definition.exposes.map(e=>(0,d.jsx)(s,{feature:e,device:t,deviceState:f,onChange:p,onRead:m,featureWrapperClass:l,parentFeatures:[]},c(e)))}):n(e=>e.empty_exposes_definition)}export{f as t};
Binary file
@@ -1 +0,0 @@
1
- import{t as e}from"./Exposes-BIUuYxZ-.js";export{e as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r}from"./store-DGIKh3zK.js";import{t as i}from"./shallow-inzhGNJg.js";import{f as a,i as o}from"./index-D3pYOruP.js";import{n as s}from"./startCase-uNz46yT6.js";import{r as c}from"./features-BSYFOmr-.js";import{t as l}from"./FeatureWrapper-DEHOZ1_c.js";var u=e(t(),1),d=n(),f=e=>e.property?`__property_${e.property}`:e.name?`__name_${e.name}`:`__type_${e.type}`,p=(e,t)=>{let n=[];for(let r of e){let e=f(r),i=[];for(let n of t){let t=n.get(e);t&&i.push(t)}if(i.length===0)continue;let a={...r};if(`features`in r&&r.features.length>0){let e=[];for(let t of i)`features`in t&&e.push(new Map(t.features.map(e=>[f(e),e])));let t=p(r.features,e);t.length>0&&(`features`in a&&(a.features=t),n.push(a))}else n.push(a)}return n};function m({sourceIdx:e,group:t}){let{t:n}=a(`common`),m=r(i(t=>t.devices[e])),h=r(i(t=>t.deviceScenesFeatures[e])),g=t.members.length>0?t.members[0]:void 0,_=g?m.find(e=>e.ieee_address===g.ieee_address):void 0,v=_&&g?_.endpoints[g.endpoint]?.name:void 0,y=(0,u.useMemo)(()=>{if(!_)return[];let e=h[_.ieee_address]??[];if(e.length===0)return[];let n=e.filter(e=>!e.endpoint||Number(e.endpoint)===g?.endpoint||e.endpoint===v);if(t.members.length===1)return n;let r=[];for(let e=1;e<t.members.length;e++){let n=t.members[e],i=h[n.ieee_address];if(!i||i.length===0)return[];let a=new Map;for(let e of i)(!e.endpoint||Number(e.endpoint)===n.endpoint||e.endpoint===_.endpoints[n.endpoint]?.name)&&a.set(f(e),e);r.push(a)}return p(n,r)},[g?.endpoint,_,v,h,t.members]),b=(0,u.useCallback)(async n=>{await o(e,`${t.id}/set`,n)},[e,t.id]),x=(0,u.useCallback)(async n=>{await o(e,`${t.id}/get`,n)},[e,t.id]);return _&&y.length>0?(0,d.jsx)(`div`,{className:`list bg-base-100`,children:y.map(e=>(0,d.jsx)(s,{feature:e,device:_,deviceState:{},onChange:b,onRead:x,featureWrapperClass:l,parentFeatures:[]},c(e)))}):n(e=>e.empty_exposes_definition)}export{m as default};
Binary file
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{b as r}from"./store-DGIKh3zK.js";import{nr as i,t as a}from"./dist-CfE5hTP4.js";import{t as o}from"./Button-C09wmyxO.js";import{f as s}from"./index-D3pYOruP.js";import{t as c}from"./startCase-uNz46yT6.js";import{n as l}from"./features-BSYFOmr-.js";var u=e(c(),1),d=e(t(),1),f=n();function p(e){return e.type===`composite`&&(e.name===`color_xy`||e.name===`color_hs`)}function m({children:e,feature:t,deviceValue:n,onRead:c,endpointSpecific:m,parentFeatures:h}){let{t:g}=s(`zigbee`),_=t.unit,[v,y]=l(t.name,n,_),b=c!==void 0&&(!!(t.property&&t.access&r.GET)||p(t)),x=h[h.length-1],S=t.name===`state`?t.property:t.name,C=t.label||(0,u.default)(S);x?.label&&t.name===`state`&&x.type!==`light`&&x.type!==`switch`&&(C=`${x.label} ${t.label.charAt(0).toLowerCase()}${t.label.slice(1)}`);let w=(0,d.useCallback)(e=>{e.property&&c?.({[e.property]:``})},[c]);return(0,f.jsxs)(`div`,{className:`list-row p-3`,children:[(0,f.jsx)(`div`,{children:h.length>0&&t.type===`composite`&&y===`opacity-0`?null:(0,f.jsx)(a,{icon:v,className:y,size:`2xl`})}),(0,f.jsxs)(`div`,{children:[(0,f.jsxs)(`div`,{title:S,children:[C,!m&&t.endpoint?` (${g(e=>e.endpoint)}: ${t.endpoint})`:``]}),(0,f.jsx)(`div`,{className:`text-xs font-semibold opacity-60`,children:t.description})]}),(0,f.jsx)(`div`,{className:`list-col-wrap flex flex-col gap-2`,children:e}),b&&(0,f.jsx)(o,{item:t,onClick:w,className:`btn btn-xs btn-square btn-primary btn-soft`,children:(0,f.jsx)(a,{icon:i})})]})}export{m as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{t as r}from"./store2-BXEcxMC-.js";import{a as i,c as a,d as o,f as s,i as c,l,m as u,o as d,p as f,r as p,s as m,u as h,y as g}from"./localStoreConsts-BEZFCCkV.js";import{r as _}from"./store-DGIKh3zK.js";import{f as v,r as y,t as b}from"./index-D3pYOruP.js";import{t as x}from"./SelectField-CiAuVYZq.js";import{t as S}from"./CheckboxField-CzFe1pWJ.js";import{t as C}from"./NumberField-CgBWn-Gs.js";var w=e(t(),1),T=e(r(),1),E=n();function D(){let{t:e}=v([`settings`,`navbar`,`network`,`common`]),[t,n]=(0,w.useState)(T.default.get(u,254)),[r,D]=(0,w.useState)(T.default.get(h,3)),[O,k]=(0,w.useState)(T.default.get(p,``)),[A,j]=(0,w.useState)(T.default.get(c,!1)),[M,N]=(0,w.useState)(T.default.get(a,!0)),[P,F]=(0,w.useState)(T.default.get(d,!0)),[I,L]=(0,w.useState)(T.default.get(m,!0)),[R,z]=(0,w.useState)(T.default.get(o,!0));(0,w.useEffect)(()=>{T.default.set(u,t)},[t]),(0,w.useEffect)(()=>{T.default.set(h,r)},[r]),(0,w.useEffect)(()=>{T.default.set(p,O)},[O]),(0,w.useEffect)(()=>{T.default.set(c,A)},[A]),(0,w.useEffect)(()=>{T.default.set(a,M)},[M]),(0,w.useEffect)(()=>{T.default.set(d,P)},[P]),(0,w.useEffect)(()=>{T.default.set(m,I)},[I]),(0,w.useEffect)(()=>{T.default.set(o,R)},[R]);let B=(0,w.useCallback)(()=>{let e=T.default.keys();T.default.remove(g),T.default.remove(u),T.default.remove(h),T.default.remove(c),T.default.remove(i),T.default.remove(a),T.default.remove(d),T.default.remove(m),T.default.remove(f),T.default.remove(s),T.default.remove(o),T.default.remove(l);for(let t of e)(t.startsWith(`table-columns`)||t.startsWith(`table-filters`)||t.startsWith(`table-sorting`))&&T.default.remove(t);window.location.reload()},[]),V=(0,w.useCallback)(()=>{let e=T.default.keys();for(let t of e)(t.startsWith(`z2m-token`)||t.startsWith(`z2m-auth`))&&T.default.remove(t);window.location.reload()},[]),H=(0,w.useCallback)(()=>{T.default.clearAll(),window.location.reload()},[]);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(b,{children:(0,E.jsxs)(`div`,{className:`flex flex-row flex-wrap flex-1 gap-1.5`,children:[(0,E.jsx)(y,{className:`btn btn-sm btn-outline btn-error tooltip-bottom`,onClick:B,title:e(e=>e.reset_settings),modalDescription:e(e=>e.dialog_confirmation_prompt,{ns:`common`}),modalCancelLabel:e(e=>e.cancel,{ns:`common`}),children:e(e=>e.reset_settings)}),(0,E.jsx)(y,{className:`btn btn-sm btn-outline btn-error tooltip-bottom`,onClick:V,title:e(e=>e.reset_auth),modalDescription:e(e=>e.dialog_confirmation_prompt,{ns:`common`}),modalCancelLabel:e(e=>e.cancel,{ns:`common`}),children:e(e=>e.reset_auth)}),(0,E.jsx)(y,{className:`btn btn-sm btn-outline btn-error tooltip-bottom`,onClick:H,title:e(e=>e.reset_all),modalDescription:e(e=>e.dialog_confirmation_prompt,{ns:`common`}),modalCancelLabel:e(e=>e.cancel,{ns:`common`}),children:e(e=>e.reset_all)})]})}),(0,E.jsx)(`div`,{className:`alert alert-info alert-vertical sm:alert-horizontal`,children:e(e=>e.frontend_notice)}),(0,E.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-4 mt-3`,children:[(0,E.jsx)(C,{type:`number`,name:`permit_join_time`,label:e(e=>e.permit_join_time),min:10,max:254,required:!0,minimal:!0,initialValue:t,onSubmit:(e,t)=>t&&e!==``&&n(e)}),(0,E.jsx)(C,{type:`number`,name:`max_on_screen_notifications`,label:e(e=>e.max_on_screen_notifications),min:1,max:5,required:!0,minimal:!0,initialValue:r,onSubmit:(e,t)=>t&&e!==``&&D(e)}),(0,E.jsxs)(x,{name:`default_page`,label:e(e=>e.default_page),value:O,onChange:e=>{e.target.validationMessage||k(e.target.value)},children:[(0,E.jsx)(`option`,{value:``,children:e(e=>e.home,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/dashboard`,children:e(e=>e.dashboard,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/devices`,children:e(e=>e.devices,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/groups`,children:e(e=>e.groups,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/reporting`,children:e(e=>e.reporting,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/bindings`,children:e(e=>e.bindings,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/ota`,children:e(e=>e.ota,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/touchlink`,children:e(e=>e.touchlink,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/network`,children:e(e=>e.network,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/logs`,children:e(e=>e.logs,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/activity`,children:e(e=>e.activity,{ns:`navbar`})}),(0,E.jsx)(`option`,{value:`/settings`,children:e(e=>e.settings,{ns:`navbar`})})]}),(0,E.jsx)(S,{name:`hide_static_info_alerts`,label:e(e=>e.hide_static_info_alerts,{ns:`common`}),onChange:e=>j(e.target.checked),defaultChecked:A})]}),(0,E.jsx)(`h2`,{className:`text-lg mt-2`,children:e(e=>e.home,{ns:`navbar`})}),(0,E.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-4`,children:[(0,E.jsx)(S,{name:`show_overview`,label:`${e(e=>e.show,{ns:`common`})}: ${e(e=>e.overview,{ns:`common`})}`,onChange:e=>N(e.target.checked),defaultChecked:M}),(0,E.jsx)(S,{name:`show_activity`,label:`${e(e=>e.show,{ns:`common`})}: ${e(e=>e.activity,{ns:`navbar`})}`,onChange:e=>F(e.target.checked),defaultChecked:P}),(0,E.jsx)(S,{name:`show_group_scenes`,label:`${e(e=>e.show,{ns:`common`})}: ${e(e=>e.group_scenes,{ns:`common`})}`,onChange:e=>L(e.target.checked),defaultChecked:I})]}),_&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`h2`,{className:`text-lg mt-2`,children:e(e=>e.multi_instance,{ns:`common`})}),(0,E.jsx)(`div`,{className:`flex flex-row flex-wrap gap-4`,children:(0,E.jsx)(S,{name:`show_source_name`,label:e(e=>e.show_source_name,{ns:`common`}),onChange:e=>z(e.target.checked),defaultChecked:R})})]})]})}export{D as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Devices-DjSVB8Ol.js","./rolldown-runtime-B1FJdls4.js","./index-D3pYOruP.js","./store-DGIKh3zK.js","./jsx-runtime-C5tU7uY8.js","./consts-ACU3OL1g.js","./envs-DWZQH-AC.js","./Modal-DkH2V1VC.js","./react-dom-hbu23gpx.js","./dist-CfE5hTP4.js","./store2-BXEcxMC-.js","./shallow-inzhGNJg.js","./Button-C09wmyxO.js","./localStoreConsts-BEZFCCkV.js","./index-DfWIRG7b.css","./useColumnCount-D-zut-DS.js","./RecallRemove-DHfef3S1.js","./Select-ef7c0426.esm-DELyZaz8.js","./extends-lXRikpl0.js","./floating-ui.dom-Bdt9HdJ7.js","./startCase-uNz46yT6.js","./_createCompounder-BILaihi7.js","./isObjectLike-CBVcfcwF.js","./isObject-D5MxFwns.js","./features-BSYFOmr-.js","./DisplayValue-DFsRQsrg.js","./DashboardFeatureWrapper-xH2Rdw9Q.js","./InputField--ZMqg114.js","./DeviceCard-Ds-P0T0L.js","./DeviceImage-CXlsJhdp.js","./device-CWMG6uQC.js","./LastSeen-DZTP2CnK.js","./TimeAgo-CvmaD1n4.js","./Lqi-va07g-tn.js","./PowerSource-Pz7Bfb6S.js","./snakeCase-0YGV1fIQ.js","./DevicePicker-DEKNbCXB.js","./react-select.esm-D6gkf1g1.js","./EndpointPicker-CSugtgbJ.js","./SelectField-CiAuVYZq.js","./Exposes-c6kIvJhH.js","./FeatureWrapper-DEHOZ1_c.js","./GroupSettings-Ctb-l0d4.js","./InfoAlert-CHgsiNoZ.js","./SettingsList-cB7_nCRL.js","./CheckboxField-CzFe1pWJ.js","./NumberField-CgBWn-Gs.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{S as r,i,n as a,u as o}from"./store-DGIKh3zK.js";import{t as s}from"./shallow-inzhGNJg.js";import{D as c}from"./consts-ACU3OL1g.js";import{Y as l,ln as u,t as d}from"./dist-CfE5hTP4.js";import{d as f,f as p,l as m,n as h,t as g,u as _}from"./index-D3pYOruP.js";import{t as v}from"./react-select.esm-D6gkf1g1.js";var y=e(t(),1),b=n(),x=(0,y.memo)(({currentSourceIdx:e,currentGroup:t,tab:n=`devices`})=>{let{t:r}=p(`common`),o=i(e=>e.groups),s=_(),l=(0,y.useCallback)(e=>{e&&s(e.link)},[s]),u=(0,y.useMemo)(()=>{let r=[];for(let i=0;i<a.length;i++)for(let a of o[i])i===e&&a.id===t?.id||r.push({value:a.friendly_name,label:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h,{idx:i,autoHide:!0,namePostfix:` – `}),` `,a.friendly_name]}),name:`${i} ${a.friendly_name}`,link:`/group/${i}/${a.id}/${n}`});return r.sort((e,t)=>e.name.localeCompare(t.name)),r},[o,e,t,n]);return(0,b.jsx)(v,{unstyled:!0,placeholder:t&&e!==void 0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h,{idx:e,autoHide:!0,namePostfix:` – `}),` `,t.friendly_name]}):r(e=>e.select_group),"aria-label":r(e=>e.select_group),options:u,isSearchable:!0,onChange:l,className:`min-w-48 sm:w-auto me-2`,classNames:c})}),S=(0,y.lazy)(async()=>await r(()=>import(`./Devices-DjSVB8Ol.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39]),import.meta.url)),C=(0,y.lazy)(async()=>await r(()=>import(`./Exposes-c6kIvJhH.js`),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,22,23,24,25,41]),import.meta.url)),w=(0,y.lazy)(async()=>await r(()=>import(`./GroupSettings-Ctb-l0d4.js`),__vite__mapDeps([42,1,2,3,4,5,6,7,8,9,10,11,12,13,14,43,44,45,27,46,39]),import.meta.url));function T(e,t,n){let r=`${e}-${n.id}`;switch(t){case`devices`:return(0,b.jsx)(S,{sourceIdx:e,group:n},r);case`exposes`:return(0,b.jsx)(C,{sourceIdx:e,group:n},r);case`settings`:return(0,b.jsx)(w,{sourceIdx:e,group:n},r)}}var E=({isActive:e})=>e?`tab tab-active`:`tab`;function D(){let e=_(),{t}=p([`groups`,`common`]),{sourceIdx:n,groupId:r,tab:a}=f(),[c,h]=o(n),v=Number.parseInt(r,10),S=i(s(e=>r?e.groups[c].find(e=>e.id===v):void 0));return(0,y.useEffect)(()=>{n&&h&&S?a||e(`/group/${n}/${S.id}/devices`,{replace:!0}):e(`/groups`,{replace:!0})},[n,h,a,S,e]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g,{children:(0,b.jsx)(x,{currentSourceIdx:c,currentGroup:S,tab:a})}),(0,b.jsxs)(`div`,{className:`tabs tabs-border mt-2`,children:[(0,b.jsxs)(m,{to:`/group/${c}/${r}/devices`,className:E,children:[(0,b.jsx)(d,{icon:u,className:`me-2`}),t(e=>e.devices,{ns:`common`})]}),(0,b.jsxs)(m,{to:`/group/${c}/${r}/exposes`,className:E,children:[(0,b.jsx)(d,{icon:u,className:`me-2`}),t(e=>e.exposes,{ns:`common`})]}),(0,b.jsxs)(m,{to:`/group/${c}/${r}/settings`,className:E,children:[(0,b.jsx)(d,{icon:l,className:`me-2`}),t(e=>e.settings)]})]}),(0,b.jsx)(`div`,{className:`tab-content block h-full bg-base-100 p-3`,children:a&&S?T(c,a,S):(0,b.jsx)(`div`,{className:`flex-auto justify-center items-center`,children:t(e=>e.unknown_group,{ns:`common`})})})]})}export{D as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r}from"./store-DGIKh3zK.js";import{t as i}from"./shallow-inzhGNJg.js";import{h as a}from"./consts-ACU3OL1g.js";import{f as o,i as s}from"./index-D3pYOruP.js";import{t as c}from"./InfoAlert-CHgsiNoZ.js";import{t as l}from"./SettingsList-cB7_nCRL.js";var u=e(t(),1),d=n();function f({sourceIdx:e,group:t}){let{t:n}=o([`settings`,`common`]),f=r(i(t=>t.bridgeInfo[e])),p=(0,u.useCallback)(async n=>{await s(e,`bridge/request/group/options`,{id:t.id.toString(),options:n})},[e,t.id]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c,{children:(0,d.jsx)(`a`,{href:a,target:`_blank`,rel:`noreferrer`,className:`link link-hover`,children:n(e=>e.read_the_docs_info,{ns:`common`})})}),(0,d.jsx)(l,{schema:f.config_schema.definitions.group??{properties:{}},data:f.config.groups[t.id]??{},set:p,namespace:`definitions-group`})]})}export{f as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r,s as i}from"./store-DGIKh3zK.js";import{t as a}from"./shallow-inzhGNJg.js";import{D as o}from"./consts-ACU3OL1g.js";import{Qt as s,qt as c,t as l,vr as u}from"./dist-CfE5hTP4.js";import{t as d}from"./Button-C09wmyxO.js";import{c as f,f as p,i as m,r as h}from"./index-D3pYOruP.js";import{t as g}from"./react-select.esm-D6gkf1g1.js";import{t as _}from"./EndpointPicker-CSugtgbJ.js";import{n as v,t as y}from"./useColumnCount-D-zut-DS.js";var b=e(t(),1),x=n(),S=({sourceIdx:e,group:t,endpoint:n,removeFromGroup:r})=>{let{t:i}=p([`groups`,`common`,`zigbee`]);return(0,x.jsxs)(`div`,{className:`mb-3 card card-border bg-base-200 border-base-300 rounded-box shadow-md`,children:[(0,x.jsx)(`div`,{className:`card-body p-3`,children:(0,x.jsx)(`div`,{className:`flex flex-row items-center gap-3 w-full`,children:(0,x.jsxs)(`div`,{className:`min-w-0`,children:[(0,x.jsxs)(f,{to:`/group/${e}/${t.id}/devices`,className:`link link-hover font-semibold`,children:[`#`,t.id,` - `,t.friendly_name,n?` (${i(e=>e.endpoint,{ns:`zigbee`})}: ${n})`:``]}),t.description&&(0,x.jsx)(`div`,{className:`text-xs opacity-50 truncate`,title:t.description,children:t.description})]})})}),(0,x.jsxs)(`div`,{className:`flex flex-row flex-wrap gap-1 mx-2 mb-2 justify-around items-center`,children:[(0,x.jsxs)(`div`,{className:`badge badge-soft badge-ghost cursor-default me-2 tooltip`,"data-tip":i(e=>e.group_members),children:[(0,x.jsx)(l,{icon:c}),` `,t.members.length]}),(0,x.jsxs)(`div`,{className:`badge badge-soft badge-ghost cursor-default me-2 tooltip`,"data-tip":i(e=>e.group_scenes),children:[(0,x.jsx)(l,{icon:s}),t.scenes.length]}),(0,x.jsx)(h,{item:[t,n],onClick:r,className:`btn btn-square btn-error btn-sm`,title:i(e=>e.remove_from_group),modalDescription:i(e=>e.dialog_confirmation_prompt,{ns:`common`}),modalCancelLabel:i(e=>e.cancel,{ns:`common`}),children:(0,x.jsx)(l,{icon:u})})]})]})},C=e=>e?.data?(0,x.jsx)(S,{...e.data}):null,w=(0,b.memo)(({groups:e,label:t,required:n,disabled:r,onChange:i})=>{let{t:a}=p(`common`),s=(0,b.useCallback)(t=>{if(t){let n=Number.parseInt(t.value,10);i(e.find(e=>n===e.id))}},[e,i]),c=(0,b.useMemo)(()=>e.map(e=>({value:`${e.id}`,label:e.friendly_name})).sort((e,t)=>e.label.localeCompare(t.label)),[e]);return(0,x.jsxs)(`fieldset`,{className:`fieldset`,children:[t&&(0,x.jsxs)(`legend`,{className:`fieldset-legend`,children:[t,n?` *`:``]}),(0,x.jsx)(g,{unstyled:!0,placeholder:a(e=>e.select_group),"aria-label":t??a(e=>e.select_group),options:c,isSearchable:!0,isDisabled:r,onChange:s,className:`min-w-64`,classNames:o})]})}),T=(0,b.memo)(({sourceIdx:e,device:t,nonMemberGroups:n})=>{let{t:r}=p([`groups`,`zigbee`]),[a,o]=(0,b.useState)(``),[s,c]=(0,b.useState)(``),l=(0,b.useMemo)(()=>i(t),[t]),u=(0,b.useCallback)(e=>{c(e.id),o(l.values().next().value)},[l]),f=(0,b.useCallback)(async()=>await m(e,`bridge/request/group/members/add`,{group:s.toString(),endpoint:a,device:t.ieee_address}),[e,s,t.ieee_address,a]);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h2`,{className:`text-lg font-semibold`,children:r(e=>e.add_to_group)}),(0,x.jsxs)(`div`,{className:`flex flex-row flex-wrap mb-3 gap-3`,children:[(0,x.jsx)(w,{label:r(e=>e.group,{ns:`zigbee`}),groups:n,onChange:u,required:!0}),(0,x.jsx)(_,{label:r(e=>e.endpoint,{ns:`zigbee`}),values:l,value:a,onChange:e=>o(e),required:!0})]}),(0,x.jsx)(d,{onClick:f,className:`btn btn-primary`,disabled:a==null||s==null||a===``||s===``,children:r(e=>e.add_to_group)})]})});function E({sourceIdx:e,device:t}){let n=r(a(t=>t.groups[e])),i=y(),o=(0,b.useCallback)(async([n,r])=>await m(e,`bridge/request/group/members/remove`,{device:t.ieee_address,endpoint:r,group:n.id.toString()}),[e,t.ieee_address]),[s,c]=(0,b.useMemo)(()=>{let r=[],i=[];for(let a of n){let n=a.members.filter(e=>e.ieee_address===t.ieee_address);if(n.length>0)for(let t of n)r.push({sourceIdx:e,group:a,endpoint:t.endpoint,removeFromGroup:o});else i.push(a)}return[r,i]},[e,n,t.ieee_address,o]);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`div`,{className:`flex flex-row flex-wrap gap-4 mb-3 w-full`,children:(0,x.jsx)(`div`,{className:`card card-border bg-base-200 border-base-300 rounded-box shadow-md flex-1`,children:(0,x.jsx)(`div`,{className:`card-body p-4`,children:(0,x.jsx)(T,{sourceIdx:e,device:t,nonMemberGroups:c})})})}),(0,x.jsx)(`div`,{children:(0,x.jsx)(v,{useWindowScroll:!0,columnCount:i,data:s,ItemContent:C,className:`gap-3`},`membergroups-${s.length}`)})]})}export{E as default};
Binary file
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{n as r,r as i,t as a}from"./Modal-DkH2V1VC.js";import{i as o,n as s,r as c,t as l}from"./store-DGIKh3zK.js";import{Cn as u,Hn as d,st as f,t as p,vr as m}from"./dist-CfE5hTP4.js";import{t as h}from"./Button-C09wmyxO.js";import{c as g,f as _,i as v,n as y,r as b,t as x}from"./index-D3pYOruP.js";import{t as S}from"./SelectField-CiAuVYZq.js";import{t as C}from"./InputField--ZMqg114.js";import{n as w,t as T}from"./TableSearch-MGqlMDuh.js";import{t as E}from"./Table-C3iXCYbr.js";var D=e(t(),1),O=n(),k=r.create(({sourceIdx:e,name:t,onRename:n})=>{let r=i(),{t:o}=_([`groups`,`common`]),[s,c]=(0,D.useState)(t);return(0,D.useEffect)(()=>{c(t)},[t]),(0,D.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),r.remove())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),(0,O.jsx)(a,{isOpen:r.visible,title:`${o(e=>e.rename_group)} ${t}`,footer:(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(h,{className:`btn btn-neutral`,onClick:r.remove,children:o(e=>e.cancel,{ns:`common`})}),(0,O.jsx)(h,{className:`btn btn-primary ms-1`,onClick:async()=>{s&&(r.remove(),await n(e,t,s))},children:o(e=>e.rename_group)})]}),children:(0,O.jsx)(`div`,{className:`flex flex-col gap-2`,children:(0,O.jsx)(C,{name:`friendly_name`,label:o(e=>e.friendly_name,{ns:`common`}),onChange:e=>c(e.target.value),value:s,type:`text`,required:!0})})})});function A(){let[e,t]=(0,D.useState)(``),[n,i]=(0,D.useState)(``),[a,A]=(0,D.useState)(0),j=o(e=>e.groups),{t:M}=_([`groups`,`common`]),N=(0,D.useMemo)(()=>{let e=[];for(let t=0;t<s.length;t++)for(let n of j[t])e.push({sourceIdx:t,group:n});return e},[j]),P=(0,D.useCallback)(async()=>{let r={friendly_name:e};n&&(r.id=n),await v(a,`bridge/request/group/add`,r),t(``),i(``),A(0)},[e,n,a]),F=(0,D.useCallback)(async(e,t,n)=>await v(e,`bridge/request/group/rename`,{from:t,to:n}),[]),I=(0,D.useCallback)(async([e,t])=>await v(e,`bridge/request/group/remove`,{id:t}),[]),L=(0,D.useMemo)(()=>e?!n||!j[a].find(e=>e.id.toString()===n):!1,[e,n,a,j]),R=w({id:`all-groups`,columns:(0,D.useMemo)(()=>[{id:`source`,size:60,header:()=>(0,O.jsx)(`span`,{title:M(e=>e.source,{ns:`common`}),children:(0,O.jsx)(p,{icon:d})}),accessorFn:({sourceIdx:e})=>l[e],cell:({row:{original:{sourceIdx:e}}})=>(0,O.jsx)(y,{idx:e,nameClassName:`hidden md:inline-block`}),filterFn:`equals`,meta:{filterVariant:`select`,showFacetedOccurrences:!0}},{id:`friendly_name`,size:250,minSize:175,header:M(e=>e.friendly_name,{ns:`common`}),accessorFn:({group:e})=>`${e.friendly_name} ${e.description??``}`,cell:({row:{original:{sourceIdx:e,group:t}}})=>(0,O.jsxs)(`div`,{className:`flex-grow flex flex-col min-w-0`,children:[(0,O.jsx)(g,{to:`/group/${e}/${t.id}/devices`,className:`link link-hover truncate`,children:t.friendly_name}),t.description&&(0,O.jsx)(`div`,{className:`max-w-3xs text-xs opacity-50 truncate`,title:t.description,children:t.description})]}),sortingFn:(e,t)=>e.original.group.friendly_name.localeCompare(t.original.group.friendly_name),filterFn:`includesString`,meta:{filterVariant:`text`,textFaceted:!0}},{id:`group_id`,minSize:175,header:M(e=>e.group_id),accessorFn:({group:e})=>e.id,cell:({row:{original:{sourceIdx:e,group:t}}})=>(0,O.jsx)(g,{to:`/group/${e}/${t.id}/devices`,className:`link link-hover`,children:t.id}),filterFn:`weakEquals`,meta:{filterVariant:`text`}},{id:`members`,size:125,header:M(e=>e.group_members),accessorFn:({group:e})=>e.members.length??0,filterFn:`inNumberRange`,meta:{filterVariant:`range`}},{id:`scenes`,size:125,header:M(e=>e.group_scenes),accessorFn:({group:e})=>e.scenes.length??0,filterFn:`inNumberRange`,meta:{filterVariant:`range`}},{id:`actions`,minSize:130,cell:({row:{original:{sourceIdx:e,group:t}}})=>(0,O.jsxs)(`div`,{className:`join join-horizontal`,children:[(0,O.jsx)(h,{className:`btn btn-sm btn-square btn-outline btn-primary join-item`,onClick:async()=>await r.show(k,{sourceIdx:e,name:t.friendly_name,onRename:F}),title:M(e=>e.rename_group),disabled:t.friendly_name===`default_bind_group`,children:(0,O.jsx)(p,{icon:f})}),(0,O.jsx)(b,{title:M(e=>e.remove_group),item:[e,t.id.toString()],onClick:I,className:`btn btn-sm btn-square btn-outline btn-error join-item`,modalDescription:M(e=>e.dialog_confirmation_prompt,{ns:`common`}),modalCancelLabel:M(e=>e.cancel,{ns:`common`}),children:(0,O.jsx)(p,{icon:m})})]}),enableSorting:!1,enableColumnFilter:!1,enableGlobalFilter:!1}],[F,I,M]),data:N,visibleColumns:{source:c},sorting:[{id:`friendly_name`,desc:!1}]});return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(x,{children:(0,O.jsx)(T,{...R})}),(0,O.jsxs)(`div`,{className:`flex flex-row flex-wrap justify-center gap-2 mb-2`,children:[c&&(0,O.jsx)(S,{name:`source`,label:M(e=>e.source,{ns:`common`}),value:a,required:!0,onChange:e=>!e.target.validationMessage&&A(Number.parseInt(e.target.value,10)),className:`select`,children:l.map((e,t)=>(0,O.jsx)(`option`,{value:t,children:e},`${t}-${e}`))}),(0,O.jsx)(C,{type:`text`,name:`friendly_name`,label:M(e=>e.friendly_name,{ns:`common`}),value:e,placeholder:M(e=>e.friendly_name_placeholder),onChange:e=>t(e.target.value),required:!0,minLength:1,className:`input`}),(0,O.jsx)(C,{type:`number`,name:`group_id`,label:M(e=>e.group_id),value:n,min:0,max:255,onChange:e=>i(e.target.value),className:`input`}),(0,O.jsx)(`fieldset`,{className:`fieldset self-end`,children:(0,O.jsxs)(h,{onClick:P,className:`btn btn-outline btn-primary`,disabled:!L,children:[(0,O.jsx)(p,{icon:u}),M(e=>e.create_group)]})})]}),(0,O.jsx)(`div`,{className:`mb-5`,children:(0,O.jsx)(E,{id:`all-groups`,...R})})]})}export{A as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{n as t,t as n}from"./jsx-runtime-C5tU7uY8.js";import{i as r,r as i,v as a}from"./store-DGIKh3zK.js";import{t as o}from"./shallow-inzhGNJg.js";import{i as s}from"./consts-ACU3OL1g.js";import{F as c,Hn as l,nt as u,t as d}from"./dist-CfE5hTP4.js";import{c as f,f as p,n as m}from"./index-D3pYOruP.js";import{t as h}from"./DeviceImage-CXlsJhdp.js";import{t as g}from"./TimeAgo-CvmaD1n4.js";import{t as _}from"./InfoAlert-CHgsiNoZ.js";import{n as v,t as y}from"./TableSearch-MGqlMDuh.js";import{t as b}from"./Table-C3iXCYbr.js";import{t as x}from"./Duration-BUu3glx6.js";var S=e(t(),1),C=n();function w({sourceIdx:e}){let{t,i18n:n}=p([`health`,`settings`,`common`,`zigbee`]),w=r(o(t=>t.bridgeHealth[e])),T=r(o(t=>t.devices[e])),E=r(o(t=>t.webSocketMetrics[e])),D=s[r(o(t=>t.readyStates[e]))],O=(0,S.useMemo)(()=>{let e=[];if(w)for(let t in w.devices){let n=T.find(e=>e.ieee_address===t);n&&e.push({device:n,health:w.devices[t]})}return e},[w,T]),k=v({id:`health-devices`,columns:(0,S.useMemo)(()=>[{id:`friendly_name`,minSize:175,header:t(e=>e.friendly_name,{ns:`common`}),accessorFn:({device:e})=>`${e.friendly_name} ${e.description??``}`,cell:({row:{original:{device:t}}})=>(0,C.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,C.jsx)(`div`,{className:`avatar`,children:(0,C.jsx)(`div`,{className:`h-11 w-11`,style:{overflow:`visible`},children:(0,C.jsx)(h,{device:t,disabled:!1})})}),(0,C.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,C.jsx)(f,{to:`/device/${e}/${t.ieee_address}/info`,className:`link link-hover truncate`,children:t.friendly_name}),t.friendly_name===t.ieee_address?null:t.ieee_address]})]}),sortingFn:(e,t)=>e.original.device.friendly_name.localeCompare(t.original.device.friendly_name),filterFn:`includesString`,meta:{filterVariant:`text`,textFaceted:!0}},{id:`ieee_address`,minSize:175,header:t(e=>e.ieee_address,{ns:`zigbee`}),accessorFn:({device:e})=>`${e.ieee_address} ${a(e.network_address,4)} ${e.network_address}`,cell:({row:{original:{device:n}}})=>(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`div`,{children:(0,C.jsx)(f,{to:`/device/${e}/${n.ieee_address}/info`,className:`link link-hover font-mono`,children:n.ieee_address})}),(0,C.jsxs)(`div`,{className:`flex flex-row gap-1`,children:[(0,C.jsx)(`span`,{className:`badge badge-ghost badge-sm cursor-default font-mono`,title:t(e=>e.network_address_hex,{ns:`zigbee`}),children:a(n.network_address,4)}),(0,C.jsx)(`span`,{className:`badge badge-ghost badge-sm cursor-default font-mono`,title:t(e=>e.network_address_dec,{ns:`zigbee`}),children:n.network_address})]})]}),sortingFn:(e,t)=>e.original.device.ieee_address.localeCompare(t.original.device.ieee_address),filterFn:`includesString`,meta:{filterVariant:`text`}},{id:`messages`,header:t(e=>e.messages),accessorFn:({health:e})=>e.messages,filterFn:`inNumberRange`,meta:{filterVariant:`range`}},{id:`messages_per_sec`,header:t(e=>e.messages_per_sec),accessorFn:({health:e})=>e.messages_per_sec,cell:({row:{original:{health:e}}})=>(0,C.jsx)(`span`,{className:e.messages_per_sec>1?e.messages_per_sec>3?`text-error`:`text-warning`:e.messages_per_sec<.2?`text-success`:``,children:e.messages_per_sec<=.001?t(e=>e.very_low):e.messages_per_sec}),filterFn:`inNumberRange`,meta:{filterVariant:`range`}},{id:`leave_count`,header:t(e=>e.leave_count),accessorFn:({health:e})=>e.leave_count,filterFn:`inNumberRange`,meta:{filterVariant:`range`}},{id:`network_address_changes`,header:t(e=>e.network_address_changes),accessorFn:({health:e})=>e.network_address_changes,filterFn:`inNumberRange`,meta:{filterVariant:`range`}}],[e,t]),data:O,sorting:[{id:`friendly_name`,desc:!1}]});if(w.response_time===0)return(0,C.jsxs)(`div`,{className:`alert alert-info alert-soft`,role:`alert`,children:[(0,C.jsx)(d,{icon:c,size:`2xl`}),t(e=>e.awaiting_next_check)]});let A=new Date(w.response_time),j=new Date(E.lastMessageTs);return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(_,{children:t(e=>e.interview_info)}),(0,C.jsxs)(`div`,{className:`collapse collapse-arrow bg-base-100 shadow mb-3`,children:[(0,C.jsx)(`input`,{type:`checkbox`}),(0,C.jsxs)(`div`,{className:`collapse-title text-lg font-semibold text-center w-full`,children:[t(e=>e.os),` / `,t(e=>e.process),` / MQTT`]}),(0,C.jsx)(`div`,{className:`collapse-content`,children:(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 items-center mb-2 w-full`,children:[(0,C.jsxs)(`p`,{className:`text-sm`,title:A.toLocaleString(),children:[t(e=>e.last_check),`: `,(0,C.jsx)(g,{datetime:A,locale:n.language})]}),(0,C.jsxs)(`div`,{className:`stats stats-vertical lg:stats-horizontal shadow`,children:[(0,C.jsx)(`div`,{className:`stat place-items-center`,children:(0,C.jsx)(`div`,{className:`stat-value text-xl`,children:t(e=>e.os)})}),w.os.load_average.some(e=>e!==0)&&(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.load_average)}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:w.os.load_average.join(`, `)}),(0,C.jsx)(`div`,{className:`stat-desc`,children:(0,C.jsx)(`a`,{href:`https://www.digitalocean.com/community/tutorials/load-average-in-linux`,target:`_blank`,rel:`noreferrer`,className:`link link-hover`,children:`1min, 5min, 15min`})})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.ram_usage)}),(0,C.jsxs)(`div`,{className:`stat-value text-lg`,children:[w.os.memory_percent,` %`]}),(0,C.jsxs)(`div`,{className:`stat-desc`,children:[w.os.memory_used_mb,` MB`]})]})]}),(0,C.jsxs)(`div`,{className:`stats stats-vertical lg:stats-horizontal shadow`,children:[(0,C.jsx)(`div`,{className:`stat place-items-center`,children:(0,C.jsx)(`div`,{className:`stat-value text-xl`,children:t(e=>e.process)})}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.uptime)}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:(0,C.jsx)(x,{durationSec:w.process.uptime_sec})})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.ram_usage)}),(0,C.jsxs)(`div`,{className:`stat-value text-lg`,children:[w.process.memory_percent,` %`]}),(0,C.jsxs)(`div`,{className:`stat-desc`,children:[w.process.memory_used_mb,` MB`]})]})]}),(0,C.jsxs)(`div`,{className:`stats stats-vertical lg:stats-horizontal shadow`,children:[(0,C.jsx)(`div`,{className:`stat place-items-center`,children:(0,C.jsx)(`div`,{className:`stat-value text-xl`,children:t(e=>e.mqtt,{ns:`settings`})})}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:(0,C.jsx)(d,{icon:u,className:w.mqtt.connected?`text-success`:`text-error`})}),(0,C.jsxs)(`div`,{className:`stat-desc`,children:[t(e=>e.queued),`: `,w.mqtt.queued]})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.published)}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:w.mqtt.published})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.received)}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:w.mqtt.received})]})]})]})})]}),(0,C.jsxs)(`div`,{className:`collapse collapse-arrow bg-base-100 shadow mb-3`,children:[(0,C.jsx)(`input`,{type:`checkbox`}),(0,C.jsx)(`div`,{className:`collapse-title text-lg font-semibold text-center w-full`,children:`WebSocket`}),(0,C.jsx)(`div`,{className:`collapse-content`,children:(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 items-center mb-2 w-full`,children:[(0,C.jsxs)(`div`,{className:`stats stats-vertical lg:stats-horizontal shadow`,children:[i&&(0,C.jsx)(`div`,{className:`stat place-items-center`,children:(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:(0,C.jsx)(m,{idx:e,alwaysShowName:!0})})}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:(0,C.jsx)(d,{icon:l,className:D?.[1]})}),(0,C.jsx)(`div`,{className:`stat-desc`,children:D?.[0]})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.reconnects)}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:E.reconnects})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.pending_requests)}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:E.pendingRequests})]})]}),(0,C.jsxs)(`div`,{className:`stats stats-vertical lg:stats-horizontal shadow`,children:[(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.last_message)}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:(0,C.jsx)(g,{datetime:j,locale:n.language})}),(0,C.jsx)(`div`,{className:`stat-desc`,children:j.toLocaleString()})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.sent)}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:E.messagesSent}),(0,C.jsxs)(`div`,{className:`stat-desc`,children:[Math.round(E.bytesSent/1024/1024*100)/100,` MB`]})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsx)(`div`,{className:`stat-title`,children:t(e=>e.received)}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:E.messagesReceived}),(0,C.jsxs)(`div`,{className:`stat-desc`,children:[Math.round(E.bytesReceived/1024/1024*100)/100,` MB`]})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsxs)(`div`,{className:`stat-title`,children:[t(e=>e.received),`: `,t(e=>e.bridge,{ns:`settings`})]}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:E.messagesBridge})]}),(0,C.jsxs)(`div`,{className:`stat place-items-center`,children:[(0,C.jsxs)(`div`,{className:`stat-title`,children:[t(e=>e.received),`: `,t(e=>e.devices,{ns:`common`})]}),(0,C.jsx)(`div`,{className:`stat-value text-lg`,children:E.messagesDevice})]})]})]})})]}),(0,C.jsx)(`div`,{className:`mb-3`,children:(0,C.jsx)(y,{...k})}),(0,C.jsx)(`div`,{className:`mb-5`,children:(0,C.jsx)(b,{id:`health-devices`,...k})})]})}export{w as default};
Binary file