zigbee2mqtt-windfront 1.4.1 → 1.5.1

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 (218) hide show
  1. package/dist/assets/About-CjM5WomG.js +25 -0
  2. package/dist/assets/About-CjM5WomG.js.br +0 -0
  3. package/dist/assets/Availability-BiumPUeO.js +1 -0
  4. package/dist/assets/Availability-BiumPUeO.js.br +0 -0
  5. package/dist/assets/{Bind--RRs-W5F.js → Bind-DjOXtTM6.js} +1 -1
  6. package/dist/assets/Bind-DjOXtTM6.js.br +0 -0
  7. package/dist/assets/Bridge-D1gYoITl.js +1 -0
  8. package/dist/assets/Bridge-D1gYoITl.js.br +0 -0
  9. package/dist/assets/{CheckboxField-BnGINJ_L.js → CheckboxField-De0QHbsG.js} +1 -1
  10. package/dist/assets/CheckboxField-De0QHbsG.js.br +0 -0
  11. package/dist/assets/{ClusterSinglePicker-Din9Za54.js → ClusterSinglePicker-Di8d-bx5.js} +1 -1
  12. package/dist/assets/ClusterSinglePicker-Di8d-bx5.js.br +0 -0
  13. package/dist/assets/{Clusters-CZnvbLEQ.js → Clusters-EXal5imX.js} +1 -1
  14. package/dist/assets/Clusters-EXal5imX.js.br +0 -0
  15. package/dist/assets/Dashboard-DNnODdKY.js +1 -0
  16. package/dist/assets/Dashboard-DNnODdKY.js.br +0 -0
  17. package/dist/assets/{DashboardFeatureWrapper-thmNrJlL.js → DashboardFeatureWrapper-TlB_F76s.js} +1 -1
  18. package/dist/assets/DashboardFeatureWrapper-TlB_F76s.js.br +0 -0
  19. package/dist/assets/{DebouncedInput-BafFXiut.js → DebouncedInput-C8tkXJ7U.js} +1 -1
  20. package/dist/assets/DebouncedInput-C8tkXJ7U.js.br +0 -0
  21. package/dist/assets/{DevConsole-CbIcjK1p.js → DevConsole-BCcxO2rX.js} +1 -1
  22. package/dist/assets/DevConsole-BCcxO2rX.js.br +0 -0
  23. package/dist/assets/DevConsole-YqbpD45I.js +20 -0
  24. package/dist/assets/DevConsole-YqbpD45I.js.br +0 -0
  25. package/dist/assets/{DeviceCard-y50fP3L2.js → DeviceCard-C9vw9b6F.js} +1 -1
  26. package/dist/assets/DeviceCard-C9vw9b6F.js.br +0 -0
  27. package/dist/assets/{DeviceControlEditName-DgKVKbXY.js → DeviceControlEditName-BObC136U.js} +1 -1
  28. package/dist/assets/DeviceControlEditName-BObC136U.js.br +0 -0
  29. package/dist/assets/DeviceImage-DshByPQQ.js +1 -0
  30. package/dist/assets/DeviceImage-DshByPQQ.js.br +0 -0
  31. package/dist/assets/DeviceInfo-V522QLe7.js +48 -0
  32. package/dist/assets/DeviceInfo-V522QLe7.js.br +0 -0
  33. package/dist/assets/DevicePage-BGbRRkF3.js +2 -0
  34. package/dist/assets/DevicePage-BGbRRkF3.js.br +0 -0
  35. package/dist/assets/{DevicePicker-Cb2DK3_l.js → DevicePicker-DUSP1774.js} +1 -1
  36. package/dist/assets/DevicePicker-DUSP1774.js.br +0 -0
  37. package/dist/assets/{DeviceSettings-2b1hllC1.js → DeviceSettings-BPsmP0OM.js} +1 -1
  38. package/dist/assets/DeviceSettings-BPsmP0OM.js.br +0 -0
  39. package/dist/assets/{DeviceSpecificSettings-DT4Z6MHt.js → DeviceSpecificSettings-eDupl8hE.js} +1 -1
  40. package/dist/assets/DeviceSpecificSettings-eDupl8hE.js.br +0 -0
  41. package/dist/assets/{Devices-B9BgRuFP.js → Devices-TK6OH5en.js} +1 -1
  42. package/dist/assets/Devices-TK6OH5en.js.br +0 -0
  43. package/dist/assets/DevicesPage-DCVj8eRe.js +1 -0
  44. package/dist/assets/DevicesPage-DCVj8eRe.js.br +0 -0
  45. package/dist/assets/{DisplayValue-tdl7RHar.js → DisplayValue-CfKoGI0j.js} +1 -1
  46. package/dist/assets/DisplayValue-CfKoGI0j.js.br +0 -0
  47. package/dist/assets/{Donate-UTTky4SH.js → Donate-B_P_Qsjc.js} +1 -1
  48. package/dist/assets/Donate-B_P_Qsjc.js.br +0 -0
  49. package/dist/assets/{EndpointPicker-gxt1nGLJ.js → EndpointPicker-CKjImsmQ.js} +1 -1
  50. package/dist/assets/EndpointPicker-CKjImsmQ.js.br +0 -0
  51. package/dist/assets/{Exposes-5mTFG3Ef.js → Exposes-CY4p-R2G.js} +1 -1
  52. package/dist/assets/Exposes-CY4p-R2G.js.br +3 -0
  53. package/dist/assets/Feature-DKsa0Oda.js +1 -0
  54. package/dist/assets/Feature-DKsa0Oda.js.br +0 -0
  55. package/dist/assets/Frontend-V9wqeWFl.js +1 -0
  56. package/dist/assets/Frontend-V9wqeWFl.js.br +0 -0
  57. package/dist/assets/{GroupPage-D4R6f0Yk.js → GroupPage-NDEFGCAo.js} +2 -2
  58. package/dist/assets/GroupPage-NDEFGCAo.js.br +0 -0
  59. package/dist/assets/{GroupSettings-r9agM4_V.js → GroupSettings-C9hZwz-c.js} +1 -1
  60. package/dist/assets/GroupSettings-C9hZwz-c.js.br +0 -0
  61. package/dist/assets/{Groups-BQsZM3BO.js → Groups-BBXSMxiv.js} +1 -1
  62. package/dist/assets/Groups-BBXSMxiv.js.br +0 -0
  63. package/dist/assets/GroupsPage-Bjp4L8m8.js +1 -0
  64. package/dist/assets/GroupsPage-Bjp4L8m8.js.br +0 -0
  65. package/dist/assets/Health-DaYm6W6j.js +1 -0
  66. package/dist/assets/Health-DaYm6W6j.js.br +0 -0
  67. package/dist/assets/{HomePage-Dvw_ePCt.js → HomePage-_eUNylSo.js} +1 -1
  68. package/dist/assets/HomePage-_eUNylSo.js.br +0 -0
  69. package/dist/assets/{InputField-B0_X2eEk.js → InputField-D4dIbfoE.js} +1 -1
  70. package/dist/assets/InputField-D4dIbfoE.js.br +0 -0
  71. package/dist/assets/Json-CL1gHmYN.js +1 -0
  72. package/dist/assets/Json-CL1gHmYN.js.br +0 -0
  73. package/dist/assets/{LastSeen-NjmmSvGg.js → LastSeen-CUs1Vb2e.js} +1 -1
  74. package/dist/assets/LastSeen-CUs1Vb2e.js.br +0 -0
  75. package/dist/assets/{LogsPage-C9q_OeJt.js → LogsPage-Rn9K7jry.js} +1 -1
  76. package/dist/assets/LogsPage-Rn9K7jry.js.br +0 -0
  77. package/dist/assets/{Lqi-DYhonPXp.js → Lqi-DXzNBOZd.js} +1 -1
  78. package/dist/assets/Lqi-DXzNBOZd.js.br +0 -0
  79. package/dist/assets/NetworkPage-B-vdyAjg.js +2 -0
  80. package/dist/assets/NetworkPage-B-vdyAjg.js.br +0 -0
  81. package/dist/assets/{NumberField-BreLavc2.js → NumberField-1g9cUedG.js} +1 -1
  82. package/dist/assets/NumberField-1g9cUedG.js.br +0 -0
  83. package/dist/assets/OtaPage-xoAmQlkN.js +1 -0
  84. package/dist/assets/OtaPage-xoAmQlkN.js.br +0 -0
  85. package/dist/assets/PowerSource-DHbzVhTD.js +1 -0
  86. package/dist/assets/PowerSource-DHbzVhTD.js.br +0 -0
  87. package/dist/assets/{RawNetworkData-DZzchkc5.js → RawNetworkData-BA35YEdR.js} +1 -1
  88. package/dist/assets/RawNetworkData-BA35YEdR.js.br +0 -0
  89. package/dist/assets/{RawNetworkMap-CYuhgIzz.js → RawNetworkMap-IKJdBkYI.js} +233 -210
  90. package/dist/assets/RawNetworkMap-IKJdBkYI.js.br +0 -0
  91. package/dist/assets/{RecallRemove-DMAg3dfh.js → RecallRemove-UfYYwosz.js} +1 -1
  92. package/dist/assets/RecallRemove-UfYYwosz.js.br +0 -0
  93. package/dist/assets/{Reporting-CsFn3lrN.js → Reporting-D-T0p7pR.js} +1 -1
  94. package/dist/assets/Reporting-D-T0p7pR.js.br +0 -0
  95. package/dist/assets/Scene-CBkAt36p.js +1 -0
  96. package/dist/assets/Scene-CBkAt36p.js.br +0 -0
  97. package/dist/assets/{SelectField-BnBBz4eT.js → SelectField-BFSZ1jgU.js} +1 -1
  98. package/dist/assets/SelectField-BFSZ1jgU.js.br +5 -0
  99. package/dist/assets/{Settings-oOf-PU-v.js → Settings-8U06br4I.js} +1 -1
  100. package/dist/assets/Settings-8U06br4I.js.br +0 -0
  101. package/dist/assets/{SettingsList-GhU74csM.js → SettingsList-B5lRPdmf.js} +1 -1
  102. package/dist/assets/SettingsList-B5lRPdmf.js.br +0 -0
  103. package/dist/assets/SettingsPage-JGHlT8fi.js +2 -0
  104. package/dist/assets/SettingsPage-JGHlT8fi.js.br +0 -0
  105. package/dist/assets/State-qRhsFF8C.js +1 -0
  106. package/dist/assets/State-qRhsFF8C.js.br +0 -0
  107. package/dist/assets/{Table-CEsZoDJr.js → Table-BvIilxHn.js} +4 -4
  108. package/dist/assets/Table-BvIilxHn.js.br +0 -0
  109. package/dist/assets/{TextareaField-CyY_oPqW.js → TextareaField-DgNWd4bB.js} +1 -1
  110. package/dist/assets/TextareaField-DgNWd4bB.js.br +0 -0
  111. package/dist/assets/{Tools-DQSEnJ2x.js → Tools-BQw74JrP.js} +1 -1
  112. package/dist/assets/Tools-BQw74JrP.js.br +0 -0
  113. package/dist/assets/TouchlinkPage-Dkq8XRUw.js +1 -0
  114. package/dist/assets/TouchlinkPage-Dkq8XRUw.js.br +0 -0
  115. package/dist/assets/{VendorLink-D2CzkjON.js → VendorLink-AmsYWJKL.js} +1 -1
  116. package/dist/assets/VendorLink-AmsYWJKL.js.br +0 -0
  117. package/dist/assets/{_createCompounder-BZl5m4SO.js → _createCompounder-CDCf6N6Y.js} +1 -1
  118. package/dist/assets/_createCompounder-CDCf6N6Y.js.br +0 -0
  119. package/dist/assets/{format-CJ06xbdM.js → format-CFXT8pE2.js} +1 -1
  120. package/dist/assets/format-CFXT8pE2.js.br +0 -0
  121. package/dist/assets/{index-sQ1gk-WC.css → index-DGcjwAm-.css} +1 -1
  122. package/dist/assets/index-DGcjwAm-.css.br +0 -0
  123. package/dist/assets/{index-HxBDf2nL.js → index-Dncflq5A.js} +1 -1
  124. package/dist/assets/index-Dncflq5A.js.br +1 -0
  125. package/dist/assets/{index-EQzdH3Y4.js → index-iXNIEDco.js} +25 -25
  126. package/dist/assets/index-iXNIEDco.js.br +0 -0
  127. package/dist/assets/{jszip.min-UiGIyTtl.js → jszip.min-D1cnnDNI.js} +1 -1
  128. package/dist/assets/jszip.min-D1cnnDNI.js.br +0 -0
  129. package/dist/assets/snakeCase-2EvkzqTo.js +1 -0
  130. package/dist/assets/snakeCase-2EvkzqTo.js.br +0 -0
  131. package/dist/index.html +2 -2
  132. package/dist/index.html.br +0 -0
  133. package/package.json +10 -10
  134. package/dist/assets/About-DWd-FRHV.js +0 -1
  135. package/dist/assets/About-DWd-FRHV.js.br +0 -0
  136. package/dist/assets/Availability-BlHShukE.js +0 -1
  137. package/dist/assets/Availability-BlHShukE.js.br +0 -0
  138. package/dist/assets/Bind--RRs-W5F.js.br +0 -0
  139. package/dist/assets/Bridge-D_vSQVtL.js +0 -1
  140. package/dist/assets/Bridge-D_vSQVtL.js.br +0 -0
  141. package/dist/assets/CheckboxField-BnGINJ_L.js.br +0 -1
  142. package/dist/assets/ClusterSinglePicker-Din9Za54.js.br +0 -0
  143. package/dist/assets/Clusters-CZnvbLEQ.js.br +0 -0
  144. package/dist/assets/Dashboard-CJo-_W50.js +0 -1
  145. package/dist/assets/Dashboard-CJo-_W50.js.br +0 -0
  146. package/dist/assets/DashboardFeatureWrapper-thmNrJlL.js.br +0 -0
  147. package/dist/assets/DebouncedInput-BafFXiut.js.br +0 -0
  148. package/dist/assets/DevConsole-CbIcjK1p.js.br +0 -0
  149. package/dist/assets/DevConsole-zGa1OLt0.js +0 -1
  150. package/dist/assets/DevConsole-zGa1OLt0.js.br +0 -0
  151. package/dist/assets/DeviceCard-y50fP3L2.js.br +0 -0
  152. package/dist/assets/DeviceControlEditName-DgKVKbXY.js.br +0 -0
  153. package/dist/assets/DeviceImage-DpiYs_Yi.js +0 -1
  154. package/dist/assets/DeviceImage-DpiYs_Yi.js.br +0 -0
  155. package/dist/assets/DeviceInfo-BKZFFZ7q.js +0 -1
  156. package/dist/assets/DeviceInfo-BKZFFZ7q.js.br +0 -0
  157. package/dist/assets/DevicePage-BGSFt320.js +0 -2
  158. package/dist/assets/DevicePage-BGSFt320.js.br +0 -0
  159. package/dist/assets/DevicePicker-Cb2DK3_l.js.br +0 -0
  160. package/dist/assets/DeviceSettings-2b1hllC1.js.br +0 -0
  161. package/dist/assets/DeviceSpecificSettings-DT4Z6MHt.js.br +0 -0
  162. package/dist/assets/Devices-B9BgRuFP.js.br +0 -0
  163. package/dist/assets/DevicesPage-CtnsvG66.js +0 -1
  164. package/dist/assets/DevicesPage-CtnsvG66.js.br +0 -0
  165. package/dist/assets/DisplayValue-tdl7RHar.js.br +0 -0
  166. package/dist/assets/Donate-UTTky4SH.js.br +0 -0
  167. package/dist/assets/EndpointPicker-gxt1nGLJ.js.br +0 -0
  168. package/dist/assets/Exposes-5mTFG3Ef.js.br +0 -0
  169. package/dist/assets/Feature-DFOLPdqE.js +0 -1
  170. package/dist/assets/Feature-DFOLPdqE.js.br +0 -0
  171. package/dist/assets/Frontend-DK8RSLa_.js +0 -1
  172. package/dist/assets/Frontend-DK8RSLa_.js.br +0 -0
  173. package/dist/assets/GroupPage-D4R6f0Yk.js.br +0 -0
  174. package/dist/assets/GroupSettings-r9agM4_V.js.br +0 -0
  175. package/dist/assets/Groups-BQsZM3BO.js.br +0 -0
  176. package/dist/assets/GroupsPage-Dpc0zk1C.js +0 -1
  177. package/dist/assets/GroupsPage-Dpc0zk1C.js.br +0 -0
  178. package/dist/assets/Health-C6KCb66Y.js +0 -1
  179. package/dist/assets/Health-C6KCb66Y.js.br +0 -0
  180. package/dist/assets/HomePage-Dvw_ePCt.js.br +0 -0
  181. package/dist/assets/InputField-B0_X2eEk.js.br +0 -0
  182. package/dist/assets/LastSeen-NjmmSvGg.js.br +0 -0
  183. package/dist/assets/LogsPage-C9q_OeJt.js.br +0 -0
  184. package/dist/assets/Lqi-DYhonPXp.js.br +0 -0
  185. package/dist/assets/NetworkPage-DhUAonvd.js +0 -2
  186. package/dist/assets/NetworkPage-DhUAonvd.js.br +0 -0
  187. package/dist/assets/NumberField-BreLavc2.js.br +0 -0
  188. package/dist/assets/OtaPage-D0wyi5bl.js +0 -1
  189. package/dist/assets/OtaPage-D0wyi5bl.js.br +0 -0
  190. package/dist/assets/PowerSource-CQr3yan7.js +0 -1
  191. package/dist/assets/PowerSource-CQr3yan7.js.br +0 -0
  192. package/dist/assets/RawNetworkData-DZzchkc5.js.br +0 -0
  193. package/dist/assets/RawNetworkMap-CYuhgIzz.js.br +0 -0
  194. package/dist/assets/RecallRemove-DMAg3dfh.js.br +0 -0
  195. package/dist/assets/Reporting-CsFn3lrN.js.br +0 -0
  196. package/dist/assets/Scene-CBAIOsIU.js +0 -1
  197. package/dist/assets/Scene-CBAIOsIU.js.br +0 -0
  198. package/dist/assets/SelectField-BnBBz4eT.js.br +0 -0
  199. package/dist/assets/Settings-oOf-PU-v.js.br +0 -0
  200. package/dist/assets/SettingsList-GhU74csM.js.br +0 -0
  201. package/dist/assets/SettingsPage-Di5hpubc.js +0 -2
  202. package/dist/assets/SettingsPage-Di5hpubc.js.br +0 -0
  203. package/dist/assets/State-CjXeiihN.js +0 -1
  204. package/dist/assets/State-CjXeiihN.js.br +0 -0
  205. package/dist/assets/Table-CEsZoDJr.js.br +0 -0
  206. package/dist/assets/TextareaField-CyY_oPqW.js.br +0 -0
  207. package/dist/assets/Tools-DQSEnJ2x.js.br +0 -0
  208. package/dist/assets/TouchlinkPage-CzENmLmI.js +0 -1
  209. package/dist/assets/TouchlinkPage-CzENmLmI.js.br +0 -0
  210. package/dist/assets/VendorLink-D2CzkjON.js.br +0 -0
  211. package/dist/assets/_createCompounder-BZl5m4SO.js.br +0 -0
  212. package/dist/assets/format-CJ06xbdM.js.br +0 -0
  213. package/dist/assets/index-EQzdH3Y4.js.br +0 -0
  214. package/dist/assets/index-HxBDf2nL.js.br +0 -2
  215. package/dist/assets/index-sQ1gk-WC.css.br +0 -0
  216. package/dist/assets/jszip.min-UiGIyTtl.js.br +0 -0
  217. package/dist/assets/snakeCase-BDJPMNX4.js +0 -1
  218. package/dist/assets/snakeCase-BDJPMNX4.js.br +0 -0
Binary file
@@ -1,4 +1,4 @@
1
- import{ae as bt,af as It}from"./index-EQzdH3Y4.js";function vt(yt){throw new Error('Could not dynamically require "'+yt+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var kt={exports:{}};/*!
1
+ import{af as bt,ag as It}from"./index-iXNIEDco.js";function vt(yt){throw new Error('Could not dynamically require "'+yt+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var kt={exports:{}};/*!
2
2
 
3
3
  JSZip v3.10.1 - A JavaScript class for generating and reading zip files
4
4
  <http://stuartk.com/jszip>
@@ -0,0 +1 @@
1
+ import{ag as u}from"./index-iXNIEDco.js";import{a as C}from"./_createCompounder-CDCf6N6Y.js";var e,r;function i(){if(r)return e;r=1;var a=C(),s=a(function(o,n,t){return o+(t?"_":"")+n.toLowerCase()});return e=s,e}var m=i();const k=u(m);export{k as s};
package/dist/index.html CHANGED
@@ -12,9 +12,9 @@
12
12
  <link rel="apple-touch-icon" href="./assets/apple-touch-icon-DxTaGN3y.png" sizes="150x150">
13
13
 
14
14
 
15
- <script type="module" crossorigin src="./assets/index-EQzdH3Y4.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-iXNIEDco.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="./assets/envs-DFlyG_dH.js">
17
- <link rel="stylesheet" crossorigin href="./assets/index-sQ1gk-WC.css">
17
+ <link rel="stylesheet" crossorigin href="./assets/index-DGcjwAm-.css">
18
18
  </head>
19
19
 
20
20
  <body>
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee2mqtt-windfront",
3
- "version": "1.4.1",
3
+ "version": "1.5.1",
4
4
  "license": "GPL-3.0-or-later",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -30,7 +30,7 @@
30
30
  "prepack": "npm run clean && npm run build"
31
31
  },
32
32
  "devDependencies": {
33
- "@biomejs/biome": "^2.1.2",
33
+ "@biomejs/biome": "^2.1.3",
34
34
  "@ebay/nice-modal-react": "^1.2.13",
35
35
  "@fortawesome/fontawesome-svg-core": "^7.0.0",
36
36
  "@fortawesome/free-solid-svg-icons": "^7.0.0",
@@ -41,32 +41,32 @@
41
41
  "@types/file-saver": "^2.0.7",
42
42
  "@types/json-schema": "^7.0.15",
43
43
  "@types/lodash": "^4.17.20",
44
- "@types/react": "^19.1.8",
45
- "@types/react-dom": "^19.1.6",
44
+ "@types/react": "^19.1.9",
45
+ "@types/react-dom": "^19.1.7",
46
46
  "@types/ws": "^8.18.1",
47
47
  "@vitejs/plugin-react": "^4.7.0",
48
48
  "@vitest/coverage-v8": "^3.2.4",
49
- "daisyui": "^5.0.46",
49
+ "daisyui": "^5.0.50",
50
50
  "file-saver": "^2.0.5",
51
51
  "i18next": "^25.3.2",
52
52
  "i18next-browser-languagedetector": "^8.2.0",
53
53
  "jsdom": "^26.1.0",
54
54
  "jszip": "^3.10.1",
55
55
  "lodash": "^4.17.21",
56
- "react": "^19.1.0",
56
+ "react": "^19.1.1",
57
57
  "react-app-polyfill": "^3.0.0",
58
- "react-dom": "^19.1.0",
58
+ "react-dom": "^19.1.1",
59
59
  "react-i18next": "^15.6.1",
60
60
  "react-image": "^4.1.0",
61
61
  "react-redux": "^9.2.0",
62
- "react-router": "^7.7.0",
62
+ "react-router": "^7.7.1",
63
63
  "react-use-websocket": "^4.13.0",
64
- "reagraph": "^4.25.0",
64
+ "reagraph": "^4.27.0",
65
65
  "store2": "^2.14.4",
66
66
  "tailwindcss": "^4.1.4",
67
67
  "timeago.js": "^4.0.2",
68
68
  "typescript": "^5.8.3",
69
- "vite": "^7.0.5",
69
+ "vite": "^7.0.6",
70
70
  "vite-plugin-compression2": "^2.2.0",
71
71
  "vitest": "^3.1.2",
72
72
  "ws": "^8.18.3",
@@ -1 +0,0 @@
1
- import{r as j,b as h,j as e,L as u,a as g}from"./index-EQzdH3Y4.js";import{s as p}from"./snakeCase-BDJPMNX4.js";import"./envs-DFlyG_dH.js";import"./_createCompounder-BZl5m4SO.js";const N="1.4.1",b={version:N};function m({name:t,data:s}){const r=[],{t:d}=h("stats");for(const n in s){const i=s[n];r.push(e.jsx("li",{children:e.jsxs(u,{to:"#",children:[n,": ",i]})},n))}return e.jsx("li",{children:e.jsxs("details",{children:[e.jsx("summary",{children:d(t)}),e.jsx("ul",{children:r})]})})}const k=j.memo(t=>{const{devices:s}=t,{t:r}=h(["stats","zigbee"]),d=j.useMemo(()=>{const n={},i={},c={},o={};for(const a of s){if(a.type==="Coordinator")continue;const l=a.model_id||r("zigbee:unknown"),v=a.manufacturer||r("zigbee:unknown"),x=r(`zigbee:${p(a.power_source||"unknown")}`);n[r(a.type)]=(n[r(a.type)]||0)+1,i[x]=(i[x]||0)+1,c[l]=(c[l]||0)+1,o[v]=(o[v]||0)+1}return e.jsxs(e.Fragment,{children:[e.jsx(m,{name:"byType",data:n}),e.jsx(m,{name:"byPowerSource",data:i}),e.jsx(m,{name:"byModel",data:c}),e.jsx(m,{name:"byVendor",data:o})]})},[s,r]);return e.jsxs("ul",{children:[e.jsx("li",{children:e.jsxs(u,{to:"#",children:[r("total")," ",s.length-1]})}),d]})});function w(){const{t}=h("settings"),s=g(l=>l.bridgeInfo),r=g(l=>l.devices),n=s.version.match(/^\d+\.\d+\.\d+$/)===null?e.jsx("a",{className:"link link-hover text-secondary",target:"_blank",rel:"noopener noreferrer",href:"https://github.com/Koenkk/zigbee2mqtt/commits/dev/",children:s.version}):e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee2mqtt/releases/tag/${s.version}`,children:s.version}),i=s.commit?e.jsxs(e.Fragment,{children:["commit:"," ",e.jsx("a",{className:"link",target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee2mqtt/commit/${s.commit}`,children:s.commit})]}):null,c=e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Nerivec/zigbee2mqtt-windfront/releases/tag/v${b.version}`,children:b.version}),o=e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee-herdsman-converters/releases/tag/v${s.zigbee_herdsman_converters.version}`,children:s.zigbee_herdsman_converters.version}),a=e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee-herdsman/releases/tag/v${s.zigbee_herdsman.version}`,children:s.zigbee_herdsman.version});return e.jsxs("div",{className:"flex flex-col gap-3 items-center",children:[e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("zigbee2mqtt_version")}),e.jsx("div",{className:"stat-value text-lg",children:n}),e.jsx("div",{className:"stat-desc",children:i})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("frontend_version")}),e.jsx("div",{className:"stat-value text-lg",children:c})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("zigbee_herdsman_converters_version")}),e.jsx("div",{className:"stat-value text-lg",children:o})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("zigbee_herdsman_version")}),e.jsx("div",{className:"stat-value text-lg",children:a})]})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("machine")}),e.jsx("div",{className:"stat-value text-lg",children:s.os.version}),e.jsxs("div",{className:"stat-desc",children:["CPU: ",s.os.cpus]}),e.jsxs("div",{className:"stat-desc",children:["RAM: ",s.os.memory_mb," MB"]})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("mqtt")}),e.jsx("div",{className:"stat-value text-lg",children:s.mqtt.server}),e.jsx("div",{className:"stat-desc",children:e.jsxs("a",{href:"https://mqtt.org/mqtt-specification/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:[t("version"),": ",s.mqtt.version]})})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("node_version")}),e.jsx("div",{className:"stat-value text-lg",children:e.jsx("a",{href:"https://nodejs.org/en/about/previous-releases",target:"_blank",rel:"noreferrer",className:"link link-hover",children:s.os.node_version})})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:t("coordinator")}),e.jsx("div",{className:"stat-value text-lg",children:s.coordinator.type}),e.jsx("div",{className:"stat-desc",children:e.jsx("span",{className:"badge badge-sm badge-primary",title:t("coordinator_ieee_address"),children:s.coordinator.ieee_address})}),e.jsxs("div",{className:"stat-desc",children:[t("revision"),": ",s.coordinator.meta.revision||t("zigbee:unknown")]})]})]}),e.jsx("ul",{className:"menu bg-base-100 rounded-box shadow min-w-sm",children:e.jsx("li",{children:e.jsxs("details",{open:!0,children:[e.jsx("summary",{children:t("stats")}),e.jsx(k,{devices:r})]})})})]})}export{w as default};
Binary file
@@ -1 +0,0 @@
1
- import{b,ao as m,j as e,R as d,F as l,ar as u,e as f,B as j,w as p,x,r as h}from"./index-EQzdH3Y4.js";import{D as w,R as g}from"./DeviceControlEditName-DgKVKbXY.js";function _(t){const{device:i,state:n,renameDevice:o,configureDevice:s,interviewDevice:r,removeDevice:v}=t,{t:a}=b(["zigbee","common"]),c=i.interview_state===m.InProgress||i.interview_state===m.Pending||n&&n.update?.state==="updating";return e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(w,{name:i.friendly_name,renameDevice:o,homeassistantEnabled:t.homeassistantEnabled,style:"btn-outline btn-primary join-item btn-square"}),e.jsx(d,{className:"btn btn-outline btn-warning join-item btn-square",onClick:s,item:i.ieee_address,title:a("reconfigure"),modalDescription:a("common:dialog_confirmation_prompt"),modalCancelLabel:a("common:cancel"),disabled:c,children:e.jsx(l,{icon:u})}),e.jsx(d,{className:"btn btn-outline btn-info join-item btn-square",onClick:r,item:i.ieee_address,title:a("interview"),modalDescription:a("common:dialog_confirmation_prompt"),modalCancelLabel:a("common:cancel"),disabled:c,children:e.jsx(l,{icon:f})}),e.jsx(j,{onClick:async()=>await p.show(g,{device:i,removeDevice:v}),className:"btn btn-outline btn-error join-item btn-square",title:a("remove_device"),children:e.jsx(l,{icon:x})})]})}const C=h.memo(t=>{const{t:i}=b(["availability"]),{availability:n,availabilityFeatureEnabled:o,availabilityEnabledForDevice:s,disabled:r}=t;return r?e.jsx("span",{children:i("disabled")}):s??o?e.jsx("span",{className:n.state==="online"?"text-success":"text-error animate-pulse",children:i(n.state)}):e.jsx("a",{className:"link link-hover",target:"_blank",rel:"noopener noreferrer",href:"https://www.zigbee2mqtt.io/guide/configuration/device-availability.html#availability-advanced-configuration",children:i("disabled")})});export{C as A,_ as D};
Binary file
@@ -1 +0,0 @@
1
- import{a as n,j as s}from"./index-EQzdH3Y4.js";import"./envs-DFlyG_dH.js";function i(){const e=n(r=>r.bridgeInfo),t=JSON.stringify(e,null,4),a=Math.max(10,(t.match(/\n/g)||"").length+1);return s.jsx("textarea",{className:"textarea w-full",readOnly:!0,rows:a,defaultValue:t})}export{i as default};
Binary file
@@ -1 +0,0 @@
1
- �����m�e���)�le�<�s�8����h"��sȹ����^F`�^~wڛ���F�H�R|O4��e'��'����ře�<�N��K?�C����'|�˙h��4�iQʭ�J��-p��跧+_̃Y(�G���esX\a�Q:��A�{f�(Dټ�ӛ�~��R+�<i^�`@�T?c�3X��(G�4��������n��z
Binary file
@@ -1 +0,0 @@
1
- import{a as _,r as l,W as A,b as N,s as y,v as D,j as e,B as v,w as S,F as g,x as F,f as T,y as k,z as L,A as R}from"./index-EQzdH3Y4.js";import{D as I}from"./DashboardFeatureWrapper-thmNrJlL.js";import{D as M}from"./DeviceCard-y50fP3L2.js";import{D as q,R as $}from"./DeviceControlEditName-DgKVKbXY.js";import{D as B}from"./DebouncedInput-BafFXiut.js";import"./envs-DFlyG_dH.js";import"./Feature-DFOLPdqE.js";import"./DisplayValue-tdl7RHar.js";import"./_createCompounder-BZl5m4SO.js";import"./LastSeen-NjmmSvGg.js";import"./format-CJ06xbdM.js";import"./Lqi-DYhonPXp.js";import"./PowerSource-CQr3yan7.js";import"./snakeCase-BDJPMNX4.js";import"./DeviceImage-DpiYs_Yi.js";import"./index-HxBDf2nL.js";import"./CheckboxField-BnGINJ_L.js";import"./InputField-B0_X2eEk.js";const W=["schedule_","_mode","_options","_startup","_type","inching_","cyclic_"],U=["battery","linkquality","options","position","programming","strength","voltage","warning","gradient","power_outage_memory","power_on_behavior"],z=["state","brightness","color_temp","mode","sound","occupancy","tamper","alarm","action","contact"],K=(a,o)=>{if(a){if(z.includes(a))return!0;for(const c of W)if(a.includes(c))return!1;if(U.includes(a))return!1}return!0},C=(a,o={})=>{const{property:c,name:n,access:d}=a;if(K(n)){if("features"in a&&a.features&&a.features.length>0){const i=[],f=c?o[c]:o;for(const r of a.features){const u=C(r,f);u&&!i.some(b=>b.property===u.property)&&i.push(u)}return{...a,features:i}}return{...a}}};function ce(){const a=_(s=>s.deviceStates),o=_(s=>s.bridgeInfo.config),c=_(s=>s.devices),{sendMessage:n}=l.useContext(A),{t:d}=N(["zigbee","settings"]),[i,f]=l.useState(""),[r,u]=l.useState(y.get(D,!1)),b=l.useCallback(async(s,t,m)=>{await n("bridge/request/device/rename",{from:s,to:t,homeassistant_rename:m,last:!1})},[n]),x=l.useCallback(async(s,t,m)=>{await n("bridge/request/device/remove",{id:s,force:t,block:m})},[n]),w=l.useCallback(s=>{y.set(D,s),u(s)},[]),E=l.useMemo(()=>{const s=[];for(const t of c)if(!t.disabled&&t.supported&&(!i||t.friendly_name.toLowerCase().includes(i.toLowerCase()))){const m=a[t.friendly_name]??{},h=[];if(t.definition?.exposes)for(const p of t.definition.exposes){const j=C(p,m);if(j&&(h.push(j),h.length===10))break}h.length>0&&s.push(e.jsx("div",{className:`${r?"break-inside-avoid-column mb-3":"w-[23rem]"} card bg-base-200 rounded-box shadow-md`,children:e.jsx(M,{features:h,device:t,deviceState:m,onChange:async p=>await n(`${t.ieee_address}/set`,p),onRead:async p=>await n(`${t.ieee_address}/get`,p),featureWrapperClass:I,lastSeenConfig:o.advanced.last_seen,children:e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(q,{name:t.friendly_name,renameDevice:b,homeassistantEnabled:o.homeassistant.enabled,style:"btn-outline btn-primary btn-square btn-sm join-item"}),e.jsx(v,{onClick:async()=>await S.show($,{device:t,removeDevice:x}),className:"btn btn-outline btn-error btn-square btn-sm join-item",title:d("remove_device"),children:e.jsx(g,{icon:F})})]})})},t.ieee_address))}return s},[c,a,o.advanced.last_seen,o.homeassistant.enabled,n,x,b,d,i,r]);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-row justify-center items-center gap-3 mb-3",children:[e.jsxs("div",{className:"join",children:[e.jsxs("label",{className:"input w-64 join-item",children:[e.jsx(g,{icon:T}),e.jsx(B,{className:"",type:"search",onChange:s=>f(s.toString()),placeholder:d("common:search"),value:i})]}),e.jsx(v,{item:"",onClick:f,className:"btn btn-square join-item",title:d("common:clear"),children:e.jsx(g,{icon:k})})]}),e.jsx(v,{className:"btn btn-square",item:!r,onClick:w,title:`${d("settings:dashboard_column_display")}: ${r}`,children:e.jsx(g,{icon:r?L:R})})]}),e.jsx("div",{className:`${r?"columns-md":"flex flex-row flex-wrap justify-center"} gap-3 mb-3`,children:E})]})}export{ce as default};
@@ -1 +0,0 @@
1
- import{r as s,j as e,a3 as W,al as B,b as L,B as w,F as G,x as U,ah as V,W as T,a as I,L as J,am as K,C as X,an as Y,R as Z}from"./index-EQzdH3Y4.js";import{I as P}from"./InputField-B0_X2eEk.js";import{C as O,A as H}from"./ClusterSinglePicker-Din9Za54.js";import{E as Q}from"./EndpointPicker-gxt1nGLJ.js";import{T as q}from"./TextareaField-CyY_oPqW.js";import"./envs-DFlyG_dH.js";import"./SelectField-BnBBz4eT.js";const $=s.memo(u=>{const{message:a}=u;return e.jsx("div",{className:"mockup-code w-full",children:e.jsx("pre",{"data-prefix":"~",className:W[a.level],children:e.jsxs("code",{children:["[",a.timestamp,"] ",a.message]})})})}),ee=[65,66,67,68];function te(u){const{value:a,onChange:p,attribute:o,definition:m,...r}=u,f=ee.includes(m.type)?"text":"number";return e.jsx("input",{type:f,value:a,onChange:d=>{const i=f==="number"?d.target.valueAsNumber:d.target.value;p(o,Number.isNaN(i)?void 0:i)},...r})}function se(u){const{device:a,readDeviceAttributes:p,writeDeviceAttributes:o,lastLog:m}=u,[r,f]=s.useState(B(a.endpoints)??""),[d,i]=s.useState(""),[l,x]=s.useState([]),[C,b]=s.useState(""),{t:c}=L(["common","zigbee"]),h=s.useCallback(t=>{i(""),x([]),f(t.toString())},[]),j=s.useCallback(t=>{x([]),i(t)},[]),g=s.useCallback((t,y)=>{if(!l.find(_=>_.attribute===t)){const _=l.concat([{attribute:t,definition:y}]);x(_)}},[l]),n=s.useCallback(t=>{b(t.target.value)},[]),v=s.useCallback(async()=>{await p(a.ieee_address,r,d,l.map(t=>t.attribute),C)},[a.ieee_address,r,d,l,C,p]),k=s.useCallback(async()=>{await o(a.ieee_address,r,d,l)},[a.ieee_address,r,d,l,o]),S=s.useMemo(()=>l.length>0&&e.jsx("fieldset",{className:"fieldset gap-2 p-3 rounded-box shadow-md",children:l.map(({attribute:t,value:y="",definition:_})=>e.jsxs("div",{className:"join join-horizontal min-w-xs",children:[e.jsxs("label",{className:"input join-item",children:[t,e.jsx(te,{value:y,attribute:t,definition:_,onChange:(D,z)=>{const E=Array.from(l),M=E.find(F=>F.attribute===D);M&&(M.value=z),x(E)}})]}),e.jsx(w,{className:"btn btn-error btn-outline join-item",item:t,onClick:D=>{const z=l.filter(E=>E.attribute!==D);x(z)},children:e.jsx(G,{icon:U})})]},t))}),[l]),A=s.useMemo(()=>{const t=new Set;if(r){const y=a.endpoints[Number.parseInt(r,10)];if(y)for(const _ of y.clusters.input)t.add(_)}return t},[a,r]),N=l.length===0||d==="",R=s.useMemo(()=>V(a),[a]);return r?e.jsxs("div",{className:"flex-1 flex flex-col gap-3",children:[e.jsx("h2",{className:"text-lg",children:c("zigbee:read_write_attributes")}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx(Q,{label:c("zigbee:endpoint"),values:R,value:r,onChange:h,required:!0}),e.jsx(O,{label:c("cluster"),clusters:A,value:d,onChange:j,required:!0}),e.jsx(H,{label:c("attribute"),value:"",cluster:d,device:a,onChange:g}),e.jsx(P,{type:"text",name:"state_property",label:c("devConsole:state_property"),value:C,detail:`${c("optional")}. ${c("devConsole:state_property_info")}`,onChange:n})]}),S,e.jsxs("div",{className:"join join-horizontal",children:[e.jsx(w,{disabled:N||l.some(t=>!!t.value),className:"btn btn-success join-item",onClick:v,children:c("read")}),e.jsx(w,{disabled:N,className:"btn btn-error join-item",onClick:k,children:c("write")})]}),m&&e.jsx($,{message:m})]}):e.jsx("span",{children:"No endpoints"})}const ae=u=>{const{device:a,lastLog:p}=u,{t:o}=L(["common","zigbee"]),[m,r]=s.useState(1),[f,d]=s.useState(""),[i,l]=s.useState(""),[x,C]=s.useState("{}"),{sendMessage:b}=s.useContext(T),c=I(n=>n.bridgeDefinitions),h=s.useMemo(()=>{if(!f||!i)return!1;try{const n=JSON.parse(x);if(typeof n!="object"||Array.isArray(n)&&n.length>0&&typeof n[0]!="object")return!1}catch{return!1}return!0},[x,f,i]),j=s.useMemo(()=>{const n=a.endpoints[m],v=new Set,k=new Set,S=new Set,A=new Set,N=new Set;if(n){for(const t of n.clusters.input)v.add(t),k.add(t);for(const t of n.clusters.output)v.add(t),S.add(t)}if(c.custom_clusters[a.friendly_name])for(const t in c.custom_clusters[a.friendly_name])v.has(t)||(v.add(t),A.add(t));for(const t in c.clusters)v.has(t)||N.add(t);return[{name:"input_clusters",clusters:k},{name:"output_clusters",clusters:S},{name:"custom_clusters",clusters:A},{name:"other_zcl_clusters",clusters:N}]},[a.friendly_name,a.endpoints,m,c]),g=s.useCallback(async()=>{let n=Number.parseInt(i,10);Number.isNaN(n)&&(n=i),await b(`${a.ieee_address}/${m}/set`,{command:{cluster:f,command:n,payload:JSON.parse(x)}})},[f,a.ieee_address,i,x,m,b]);return e.jsxs("div",{className:"flex-1 flex flex-col gap-3",children:[e.jsx("h2",{className:"text-lg",children:o("execute_command")}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx(P,{type:"number",name:"endpoint",label:o("zigbee:endpoint"),min:1,max:255,value:m,onChange:n=>!!n.target.value&&r(n.target.valueAsNumber),required:!0}),e.jsx(O,{label:o("zigbee:cluster"),clusters:j,value:f,onChange:n=>{d(n)},required:!0}),e.jsx(P,{type:"text",name:"command",label:o("command"),value:i,placeholder:"state, color...",onChange:n=>l(n.target.value),pattern:"^\\d+|^\\w+",required:!0})]}),e.jsx(q,{name:"payload",label:o("payload"),rows:3,value:x,onChange:n=>C(n.target.value),className:"textarea validator w-full",required:!0}),e.jsx("div",{children:e.jsx(w,{onClick:g,disabled:!h,className:"btn btn-success",children:o("execute")})}),p&&e.jsx($,{message:p})]})},ne=s.memo(u=>{const{device:a}=u,[p,o]=s.useState(!1),{sendMessage:m}=s.useContext(T),{t:r}=L(["devConsole","common"]),f=I(i=>i.generatedExternalDefinitions[a.ieee_address]),d=s.useCallback(async()=>{o(!0),await m("bridge/request/device/generate_external_definition",{id:a.ieee_address})},[m,a.ieee_address]);return f?e.jsxs(e.Fragment,{children:[e.jsx(q,{name:"generated_external_definition",label:r("generated_external_definition"),value:f,className:"textarea w-full",rows:8,readOnly:!0}),e.jsx(J,{to:K,target:"_blank",rel:"noreferrer",className:"link link-primary self-end",children:r("common:documentation")})]}):e.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:p?e.jsx("span",{className:"loading loading-infinity loading-xl"}):e.jsx(w,{className:"btn btn-primary",onClick:d,children:r("generate_external_definition")})})}),oe=/^(zhc:tz: Read result of |z2m: Publish 'set' 'read' to |z2m: Publish 'set' 'write' to |zhc:tz: Wrote )/;function fe({device:u}){const a=X(),{t:p}=L(["devConsole","common"]),o=I(b=>b.lastNonDebugLog),[m,r]=s.useState(),[f,d]=s.useState(),{sendMessage:i}=s.useContext(T);s.useEffect(()=>{o&&(o.message.startsWith("zhc:tz: Invoked ")?d(o):oe.test(o.message)&&r(o))},[o]);const l=s.useCallback(async(b,c,h,j,g)=>{const n={read:{cluster:h,attributes:j}};g&&(n.read.state_property=g),await i(`${b}/${c}/set`,n)},[i]),x=s.useCallback(async(b,c,h,j)=>{const g={write:{cluster:h,payload:{}}};for(const n of j)g.write.payload[n.attribute]=n.value;await i(`${b}/${c}/set`,g)},[i]),C=s.useCallback(()=>{a(Y(u.friendly_name))},[a,u.friendly_name]);return e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:e.jsx(Z,{className:"btn btn-error",onClick:C,title:p("reset_frontend_state"),modalDescription:p("common:dialog_confirmation_prompt"),modalCancelLabel:p("common:cancel"),children:p("reset_frontend_state")})}),e.jsx("div",{className:"divider"}),e.jsx(ne,{device:u}),e.jsx("div",{className:"divider"}),e.jsxs("div",{className:"flex flex-row flex-wrap justify-evenly gap-4",children:[e.jsx(se,{device:u,lastLog:m,readDeviceAttributes:l,writeDeviceAttributes:x}),e.jsx(ae,{device:u,lastLog:f})]})]})}export{fe as default};
@@ -1 +0,0 @@
1
- import{j as u,F as l,a1 as w,r as d,b as x,ao as b,aq as O,bW as S,K as P,bX as N}from"./index-EQzdH3Y4.js";import{g as _,a as y}from"./index-HxBDf2nL.js";function D({error:r,children:e}){return r?u.jsx(l,{icon:w,size:"3x",className:"text-error",title:"Missing image"}):e}function p(r){"@babel/helpers - typeof";return p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(r)}function I(r,e){if(p(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var i=t.call(r,e);if(p(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function E(r){var e=I(r,"string");return p(e)=="symbol"?e:e+""}function L(r,e,t){return(e=E(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var A=function(r){var e=r.crossOrigin,t=e===void 0?"":e;return function(i){return new Promise(function(n,o){var a=new Image;t&&(a.crossOrigin=t),a.onload=function(){a.decode?a.decode().then(n).catch(o):n()},a.onerror=o,a.src=i})}};function j(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function g(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?j(Object(t),!0).forEach(function(i){L(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):j(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}var $=function(e){return e.filter(function(t){return t})},F=function(e){return Array.isArray(e)?e:[e]},c={},T=function(e,t){var i=!1;return new Promise(function(n,o){var a=function(m){return t(m).then(function(){i=!0,n(m)})};e.reduce(function(f,m){return f.catch(function(){if(!i)return a(m)})},a(e.shift())).catch(o)})};function z(r){var e=r.srcList,t=r.imgPromise,i=t===void 0?A({}):t,n=r.useSuspense,o=n===void 0?!0:n,a=d.useState(!1),f=a[1],m=$(F(e)),s=m.join("");if(c[s]||(c[s]={promise:T(m,i),cache:"pending",error:null}),c[s].cache==="resolved")return{src:c[s].src,isLoading:!1,error:null};if(c[s].cache==="rejected"){if(o)throw c[s].error;return{isLoading:!1,error:c[s].error,src:void 0}}if(c[s].promise.then(function(v){c[s]=g(g({},c[s]),{},{cache:"resolved",src:v}),o||f(s)}).catch(function(v){c[s]=g(g({},c[s]),{},{cache:"rejected",error:v}),o||f(s)}),o)throw c[s].promise;return{isLoading:!0,src:void 0,error:null}}const h=d.memo(({device:r={},className:e})=>{const t=r.definition?.icon,i=_(r),n=[];t&&n.push(t),i&&n.push(i),i!==y&&n.push(y);const{src:o}=z({srcList:n});return u.jsx("img",{alt:r.ieee_address,crossOrigin:"anonymous",src:o,className:e})}),M=d.memo(r=>{const{t:e}=x("zigbee"),{device:t={},disabled:i,otaState:n,className:o,noIndicator:a}=r,f=d.useMemo(()=>t.interview_state===b.InProgress?u.jsx(l,{icon:O,spin:!0,title:e("interviewing"),className:"indicator-item indicator-bottom indicator-end text-info"}):t.interview_state===b.Failed?u.jsx(l,{icon:w,beat:!0,title:e("interview_failed"),className:"indicator-item indicator-bottom indicator-end text-error"}):t.supported?null:u.jsx(l,{icon:S,beat:!0,title:e("unsupported"),className:"indicator-item indicator-bottom indicator-end text-warning"}),[t.interview_state,t.supported,e]);return u.jsx(d.Suspense,{fallback:u.jsx("img",{alt:t.ieee_address,src:y}),children:u.jsx(D,{children:a?u.jsx(h,{device:t,className:`grid place-items-center${o?` ${o}`:""}`}):u.jsxs("div",{className:"indicator w-full",children:[n==="updating"&&u.jsx(l,{icon:P,spin:!0,title:e("updating_firmware"),className:"indicator-item indicator-top indicator-end text-info"}),f,i&&u.jsx(l,{icon:N,title:e("common:disabled"),className:"indicator-item indicator-middle indicator-center text-error",size:"2xl"}),u.jsx(h,{device:t,className:`grid place-items-center${o?` ${o}`:""}`})]})})})});export{M as D};
@@ -1 +0,0 @@
1
- import{w as g,M,b as h,r as i,j as e,O as L,B as j,F as x,Q as I,a as u,W as P,L as _,a1 as q,ao as b,ap as z,aq as w,am as A,t as F}from"./index-EQzdH3Y4.js";import{s as R}from"./snakeCase-BDJPMNX4.js";import{D as O}from"./DeviceControlEditName-DgKVKbXY.js";import{A as T,D as G}from"./Availability-BlHShukE.js";import{T as U}from"./TextareaField-CyY_oPqW.js";import{D as V}from"./DeviceImage-DpiYs_Yi.js";import{D as W}from"./DisplayValue-tdl7RHar.js";import{L as $}from"./LastSeen-NjmmSvGg.js";import{M as B,V as K}from"./VendorLink-D2CzkjON.js";import{P as H}from"./PowerSource-CQr3yan7.js";import"./envs-DFlyG_dH.js";import"./_createCompounder-BZl5m4SO.js";import"./CheckboxField-BnGINJ_L.js";import"./InputField-B0_X2eEk.js";import"./index-HxBDf2nL.js";import"./format-CJ06xbdM.js";const Q=g.create(o=>{const{device:s,setDeviceDescription:t}=o,r=M(),{t:c}=h(["zigbee","common"]),[p,m]=i.useState(s.description||"");return i.useEffect(()=>{m(s.description||"")},[s.description]),e.jsx(L,{isOpen:r.visible,title:`${c("update_description")} ${s.friendly_name}`,footer:e.jsxs(e.Fragment,{children:[e.jsx(j,{className:"btn btn-neutral",onClick:r.remove,children:c("common:cancel")}),e.jsx(j,{className:"btn btn-primary ms-1",onClick:async()=>{r.remove(),await t(s.ieee_address,p)},children:c("zigbee:save_description")})]}),children:e.jsx("div",{className:"flex flex-col gap-2",children:e.jsx(U,{label:c("description"),name:"update_description",onChange:l=>m(l.target.value),rows:3,value:p})})})}),X=i.memo(o=>{const{device:s,setDeviceDescription:t}=o,{t:r}=h("zigbee");return e.jsx(j,{className:`btn btn-link btn-sm${s.description?" btn-square":""}`,onClick:async()=>await g.show(Q,{device:s,setDeviceDescription:t}),title:r("edit_description"),children:s.description?e.jsx(x,{icon:I}):r("edit_description")})}),J=/\[(.*?)]\((.*?)\)/;function pe(o){const{device:s}=o,{t}=h(["zigbee","availability"]),r=u(a=>a.deviceStates),c=u(a=>a.bridgeInfo.config),p=u(a=>a.availability),m=c.homeassistant.enabled,l=i.useMemo(()=>r[s.friendly_name]??{},[s.friendly_name,r]),{sendMessage:n}=i.useContext(P),f=i.useCallback(async(a,d,v)=>{await n("bridge/request/device/rename",{from:a,to:d,homeassistant_rename:v,last:void 0})},[n]),y=i.useCallback(async(a,d)=>{await n("bridge/request/device/options",{id:a,options:{description:d}})},[n]),k=i.useCallback(async a=>{await n("bridge/request/device/configure",{id:a})},[n]),D=i.useCallback(async(a,d,v)=>{await n("bridge/request/device/remove",{id:a,force:d,block:v})},[n]),C=i.useCallback(async a=>{await n("bridge/request/device/interview",{id:a})},[n]),N=c.devices[s.ieee_address]?.availability,S=i.useMemo(()=>{const a=s.definition?.description?J.exec(s.definition?.description):void 0;if(a){const[,d,v]=a;return e.jsx(_,{target:"_blank",rel:"noopener noreferrer",to:v,className:"link link-hover",children:d})}return e.jsx(e.Fragment,{children:s.definition?.description})},[s.definition]),E=i.useMemo(()=>{switch(s.interview_state){case b.Pending:return e.jsx(x,{icon:w,className:"text-info"});case b.InProgress:return e.jsx(x,{icon:w,spin:!0,className:"text-info"});case b.Successful:return e.jsx(x,{icon:z,className:"text-success"});default:return e.jsx(x,{icon:q,beat:!0,className:"text-error"})}},[s.interview_state]);return e.jsxs("div",{className:"card lg:card-side bg-base-100",children:[e.jsx("figure",{className:"w-64 h-64",style:{overflow:"visible"},children:e.jsx(V,{device:s,otaState:l.update?.state,disabled:s.disabled,className:""})}),e.jsxs("div",{className:"card-body",children:[e.jsxs("h2",{className:"card-title",children:[s.friendly_name," (",s.ieee_address,")",e.jsx(O,{name:s.friendly_name,renameDevice:f,homeassistantEnabled:m,style:"btn-link btn-sm btn-square"})]}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx("span",{className:`badge ${s.supported?" badge-success":" badge-warning"}`,children:e.jsx(W,{name:"supported",value:s.supported})}),!s.supported&&e.jsx("span",{className:"badge animate-bounce",children:e.jsx(_,{target:"_blank",rel:"noopener noreferrer",to:A,className:"link link-hover",children:t("how_to_add_support")})}),e.jsxs("span",{className:"badge opacity-70",title:s.interview_state,children:[t("interview_state"),": ",E]})]}),e.jsxs("div",{children:[e.jsx("pre",{className:"inline",children:s.description||""}),e.jsx(X,{device:s,setDeviceDescription:y})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:s.type}),e.jsx("div",{className:"stat-value text-xl",children:F(s.network_address)}),e.jsxs("div",{className:"stat-desc",children:[t("network_address_dec"),": ",s.network_address]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("last_seen")}),e.jsx("div",{className:"stat-value text-xl",children:e.jsx($,{config:c.advanced.last_seen,lastSeen:l.last_seen})}),e.jsxs("div",{className:"stat-desc",children:[t("availability:availability"),": ",e.jsx(T,{availability:p[s.friendly_name]??{state:"offline"},disabled:s.disabled,availabilityFeatureEnabled:c.availability.enabled,availabilityEnabledForDevice:N!=null?!!N:void 0})]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("power")}),e.jsx("div",{className:"stat-value text-xl",children:e.jsx(H,{showLevel:!0,device:s,batteryPercent:l.battery,batteryState:l.battery_state,batteryLow:l.battery_low})}),e.jsx("div",{className:"stat-desc",children:s.type==="GreenPower"?"GreenPower":t(R(s.power_source)||"unknown")})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("firmware_id")}),e.jsx("div",{className:"stat-value text-xl",children:s.software_build_id||t("unknown")}),e.jsx("div",{className:"stat-desc",children:s.date_code||t("unknown")})]})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("zigbee_model")}),e.jsx("div",{className:"stat-value text-xl",children:s.model_id}),e.jsxs("div",{className:"stat-desc",children:[s.manufacturer," (",S,")"]})]}),e.jsxs("div",{className:"stat",children:[e.jsx("div",{className:"stat-title",children:t("model")}),e.jsx("div",{className:"stat-value text-xl",children:e.jsx(B,{device:s})}),e.jsx("div",{className:"stat-desc",children:e.jsx(K,{device:s})})]})]}),e.jsx("div",{className:"card-actions justify-end mt-2",children:e.jsx(G,{device:s,state:l,homeassistantEnabled:m,configureDevice:k,renameDevice:f,removeDevice:D,interviewDevice:C})})]})]})}export{pe as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Bind--RRs-W5F.js","./index-EQzdH3Y4.js","./envs-DFlyG_dH.js","./index-sQ1gk-WC.css","./DevicePicker-Cb2DK3_l.js","./SelectField-BnBBz4eT.js","./EndpointPicker-gxt1nGLJ.js","./Clusters-CZnvbLEQ.js","./DevConsole-zGa1OLt0.js","./InputField-B0_X2eEk.js","./ClusterSinglePicker-Din9Za54.js","./TextareaField-CyY_oPqW.js","./DeviceInfo-BKZFFZ7q.js","./snakeCase-BDJPMNX4.js","./_createCompounder-BZl5m4SO.js","./DeviceControlEditName-DgKVKbXY.js","./CheckboxField-BnGINJ_L.js","./Availability-BlHShukE.js","./DeviceImage-DpiYs_Yi.js","./index-HxBDf2nL.js","./DisplayValue-tdl7RHar.js","./LastSeen-NjmmSvGg.js","./format-CJ06xbdM.js","./VendorLink-D2CzkjON.js","./PowerSource-CQr3yan7.js","./DeviceSettings-2b1hllC1.js","./SettingsList-GhU74csM.js","./NumberField-BreLavc2.js","./DeviceSpecificSettings-DT4Z6MHt.js","./Feature-DFOLPdqE.js","./Exposes-5mTFG3Ef.js","./Groups-BQsZM3BO.js","./Reporting-CsFn3lrN.js","./Scene-CBAIOsIU.js","./RecallRemove-DMAg3dfh.js","./DashboardFeatureWrapper-thmNrJlL.js","./State-CjXeiihN.js"])))=>i.map(i=>d[i]);
2
- import{r as t,b as p,j as e,L as v,P as x,F as r,f as j,a as f,d as b,u as g,N as n,e as y,g as h,h as N,i as E,k as T,l as w,m as D,n as L,o as P,p as $,q as A,_ as l}from"./index-EQzdH3Y4.js";import"./envs-DFlyG_dH.js";const I=t.memo(i=>{const{devices:u,currentDevice:a,tab:m="info"}=i,[d,s]=t.useState(""),{t:o}=p("common"),_=t.useMemo(()=>u.filter(c=>c.type!=="Coordinator"&&c.friendly_name.toLowerCase().includes(d.toLowerCase())&&c.ieee_address!==a?.ieee_address).map(c=>e.jsx("li",{children:e.jsx(v,{to:`/device/${c.ieee_address}/${m}`,onClick:()=>s(""),className:"dropdown-item",children:c.friendly_name})},c.ieee_address)),[u,a,d,m]);return e.jsxs(x,{name:"header-device-selector",buttonChildren:`${a?`${a.friendly_name} (${a.ieee_address})`:o("unknown_device")}`,dropdownStyle:"dropdown-start",children:[e.jsxs("label",{className:"input",children:[e.jsx(r,{icon:j}),e.jsx("input",{type:"search",placeholder:o("type_to_filter"),onChange:c=>s(c.target.value),value:d})]},"search"),_]})}),R=t.lazy(async()=>await l(()=>import("./Bind--RRs-W5F.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),C=t.lazy(async()=>await l(()=>import("./Clusters-CZnvbLEQ.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),O=t.lazy(async()=>await l(()=>import("./DevConsole-zGa1OLt0.js"),__vite__mapDeps([8,1,2,3,9,10,5,6,11]),import.meta.url)),S=t.lazy(async()=>await l(()=>import("./DeviceInfo-BKZFFZ7q.js"),__vite__mapDeps([12,1,2,3,13,14,15,16,9,17,11,18,19,20,21,22,23,24]),import.meta.url)),z=t.lazy(async()=>await l(()=>import("./DeviceSettings-2b1hllC1.js"),__vite__mapDeps([25,1,2,3,26,16,9,27,5]),import.meta.url)),V=t.lazy(async()=>await l(()=>import("./DeviceSpecificSettings-DT4Z6MHt.js"),__vite__mapDeps([28,1,2,3,29,20,14]),import.meta.url)),k=t.lazy(async()=>await l(()=>import("./Exposes-5mTFG3Ef.js"),__vite__mapDeps([30,1,2,3,29,20,14]),import.meta.url)),M=t.lazy(async()=>await l(()=>import("./Groups-BQsZM3BO.js"),__vite__mapDeps([31,1,2,3,6,5]),import.meta.url)),F=t.lazy(async()=>await l(()=>import("./Reporting-CsFn3lrN.js"),__vite__mapDeps([32,1,2,3,9,10,5,6]),import.meta.url)),G=t.lazy(async()=>await l(()=>import("./Scene-CBAIOsIU.js"),__vite__mapDeps([33,1,2,3,34,35,29,20,14,9,5]),import.meta.url)),B=t.lazy(async()=>await l(()=>import("./State-CjXeiihN.js"),__vite__mapDeps([36,1,2,3]),import.meta.url));function H(){const{t:i}=p(["devicePage","common"]),u=f(c=>c.devices),{deviceId:a,tab:m}=b(),d=g(),s=a?u.find(c=>c.ieee_address===a):void 0;t.useEffect(()=>{s&&(m?s.type==="Coordinator"&&d("/settings/about",{replace:!0}):d(s.type==="Coordinator"?"/settings/about":`/device/${s.ieee_address}/info`,{replace:!0}))},[m,s,d]);const o=({isActive:c})=>c?"tab tab-active":"tab",_=t.useMemo(()=>{if(!s)return e.jsx("div",{className:"flex-auto justify-center items-center",children:i("common:unknown_device")});switch(m){case"info":return e.jsx(S,{device:s});case"exposes":return e.jsx(k,{device:s});case"bind":return e.jsx(R,{device:s});case"reporting":return e.jsx(F,{device:s});case"settings":return e.jsx(z,{device:s});case"settings-specific":return e.jsx(V,{device:s});case"state":return e.jsx(B,{device:s});case"clusters":return e.jsx(C,{device:s});case"groups":return e.jsx(M,{device:s});case"scene":return e.jsx(G,{device:s});case"dev-console":return e.jsx(O,{device:s})}},[s,m,i]);return e.jsxs(e.Fragment,{children:[e.jsx(I,{devices:u,currentDevice:s,tab:m}),e.jsxs("div",{className:"tabs tabs-border mt-2",children:[e.jsxs(n,{to:`/device/${a}/info`,className:o,children:[e.jsx(r,{icon:y,className:"me-2"}),i("about")]}),e.jsxs(n,{to:`/device/${a}/exposes`,className:o,children:[e.jsx(r,{icon:h,className:"me-2"}),i("exposes")]}),e.jsxs(n,{to:`/device/${a}/bind`,className:o,children:[e.jsx(r,{icon:N,className:"me-2"}),i("bind")]}),e.jsxs(n,{to:`/device/${a}/reporting`,className:o,children:[e.jsx(r,{icon:E,className:"me-2"}),i("reporting")]}),e.jsxs(n,{to:`/device/${a}/settings`,className:o,children:[e.jsx(r,{icon:T,className:"me-2"}),i("settings")]}),e.jsxs(n,{to:`/device/${a}/settings-specific`,className:o,children:[e.jsx(r,{icon:w,className:"me-2"}),i("settings_specific")]}),e.jsxs(n,{to:`/device/${a}/state`,className:o,children:[e.jsx(r,{icon:D,className:"me-2"}),i("state")]}),e.jsxs(n,{to:`/device/${a}/clusters`,className:o,children:[e.jsx(r,{icon:L,className:"me-2"}),i("clusters")]}),e.jsxs(n,{to:`/device/${a}/groups`,className:o,children:[e.jsx(r,{icon:P,className:"me-2"}),i("groups")]}),e.jsxs(n,{to:`/device/${a}/scene`,className:o,children:[e.jsx(r,{icon:$,className:"me-2"}),i("scene")]}),e.jsxs(n,{to:`/device/${a}/dev-console`,className:o,children:[e.jsx(r,{icon:A,className:"me-2"}),i("dev_console")]}),e.jsx("div",{className:"tab-content block h-full bg-base-100 p-3",children:_})]})]})}export{H as default};
Binary file
@@ -1 +0,0 @@
1
- import{r as n,W as E,a as c,s as w,D as j,b as q,j as a,t as k,c as A,L as C}from"./index-EQzdH3Y4.js";import{A as M,D as I}from"./Availability-BlHShukE.js";import{D as T}from"./DeviceImage-DpiYs_Yi.js";import{C as D}from"./CheckboxField-BnGINJ_L.js";import{T as B}from"./Table-CEsZoDJr.js";import{L as H}from"./LastSeen-NjmmSvGg.js";import{L as P}from"./Lqi-DYhonPXp.js";import{M as O,V}from"./VendorLink-D2CzkjON.js";import{P as R}from"./PowerSource-CQr3yan7.js";import"./envs-DFlyG_dH.js";import"./DeviceControlEditName-DgKVKbXY.js";import"./InputField-B0_X2eEk.js";import"./index-HxBDf2nL.js";import"./DebouncedInput-BafFXiut.js";import"./format-CJ06xbdM.js";import"./DisplayValue-tdl7RHar.js";import"./snakeCase-BDJPMNX4.js";import"./_createCompounder-BZl5m4SO.js";function re(){const{sendMessage:r}=n.useContext(E),b=c(e=>e.devices),f=c(e=>e.deviceStates),i=c(e=>e.bridgeInfo.config),u=c(e=>e.availability),[o,F]=n.useState(w.get(j,!1)),[d,N]=n.useState(!1),{t}=q(["zigbee","common","availability"]),m=n.useMemo(()=>{const e=[];for(const s of b)if(s.type!=="Coordinator"&&(!o||!s.disabled)){const l=f[s.friendly_name]??{},p=i.devices[s.ieee_address]?.availability;if(d){if(s.power_source!=="Battery")continue;if("battery"in l){if(l.battery>=20)continue}else if("battery_state"in l){if(l.battery_state!=="low")continue}else if("battery_low"in l){if(!l.battery_low)continue}else continue}e.push({device:s,state:l,availabilityState:u[s.friendly_name]??{state:"offline"},availabilityEnabledForDevice:p!=null?!!p:void 0})}return e},[b,f,i.devices,u,o,d]),g=n.useCallback(e=>{w.set(j,e.target.checked),F(e.target.checked)},[]),v=n.useCallback(e=>{N(e.target.checked)},[]),y=n.useCallback(async(e,s,l)=>{await r("bridge/request/device/rename",{from:e,to:s,homeassistant_rename:l,last:void 0})},[r]),h=n.useCallback(async e=>{await r("bridge/request/device/configure",{id:e})},[r]),x=n.useCallback(async(e,s,l)=>{await r("bridge/request/device/remove",{id:e,force:s,block:l})},[r]),_=n.useCallback(async e=>{await r("bridge/request/device/interview",{id:e})},[r]),S=n.useMemo(()=>[{id:"friendly_name",header:t("common:friendly_name"),accessorFn:({device:e})=>[e.friendly_name,e.description].join(" "),cell:({row:{original:{device:e,state:s}}})=>a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("div",{className:"avatar",children:a.jsx("div",{className:"h-11 w-11",style:{overflow:"visible"},children:a.jsx(T,{device:e,otaState:s.update?.state,disabled:e.disabled})})}),a.jsxs("div",{className:"flex-grow flex flex-col",children:[a.jsx(C,{to:`/device/${e.ieee_address}/info`,className:"link link-hover",children:e.friendly_name}),e.description&&a.jsx("div",{className:"max-w-3xs text-xs opacity-50 truncate",title:e.description,children:e.description}),a.jsx("div",{className:"flex flex-row gap-1 mt-0.5 items-center",children:a.jsx("span",{className:"badge badge-soft badge-sm badge-ghost cursor-default",title:t("power"),children:a.jsx(R,{device:e,batteryPercent:s.battery,batteryState:s.battery_state,batteryLow:s.battery_low,showLevel:!0})})})]})]})},{id:"ieee_address",header:t("ieee_address"),accessorFn:({device:e})=>[e.ieee_address,k(e.network_address,4),e.network_address].join(" "),cell:({row:{original:{device:e}}})=>a.jsxs(a.Fragment,{children:[a.jsx("div",{children:a.jsx(C,{to:`/device/${e.ieee_address}/info`,className:"link link-hover",children:e.ieee_address})}),a.jsxs("div",{className:"flex flex-row gap-1",children:[a.jsx("span",{className:"badge badge-ghost badge-sm cursor-default",title:t("network_address_hex"),children:k(e.network_address,4)}),a.jsx("span",{className:"badge badge-ghost badge-sm cursor-default",title:t("network_address_dec"),children:e.network_address})]})]}),sortingFn:(e,s)=>e.original.device.ieee_address.localeCompare(s.original.device.ieee_address)},{id:"model",header:t("model"),accessorFn:({device:e})=>[e.definition?.model,e.model_id,e.definition?.vendor,e.manufacturer].join(" "),cell:({row:{original:{device:e}}})=>a.jsxs(a.Fragment,{children:[a.jsx(O,{device:e}),a.jsx("div",{className:"flex flex-row gap-1",children:a.jsx("span",{className:"badge badge-ghost badge-sm",title:t("manufacturer"),children:a.jsx(V,{device:e})})})]})},{id:"lqi",header:t("lqi"),accessorFn:({state:e})=>e.linkquality,cell:({row:{original:{state:e}}})=>a.jsx(P,{value:e.linkquality}),enableColumnFilter:!1},{id:"last_seen",header:t("last_seen"),accessorFn:({state:e})=>A(e.last_seen,i.advanced.last_seen)?.getTime(),cell:({row:{original:{state:e}}})=>a.jsx(H,{lastSeen:e.last_seen,config:i.advanced.last_seen}),enableColumnFilter:!1},{id:"availability",header:t("availability:availability"),accessorFn:({availabilityState:e})=>e.state,cell:({row:{original:{device:e,availabilityState:s,availabilityEnabledForDevice:l}}})=>a.jsx(M,{disabled:e.disabled,availability:s,availabilityEnabledForDevice:l,availabilityFeatureEnabled:i.availability.enabled}),enableColumnFilter:!1},{id:"actions",header:()=>a.jsxs(a.Fragment,{children:[a.jsx(D,{name:"battery_low_only",detail:t("common:battery_low_only"),onChange:v,checked:d,className:"checkbox checkbox-sm"}),a.jsx(D,{name:"hide_disabled",detail:t("common:hide_disabled"),onChange:g,checked:o,className:"checkbox checkbox-sm"})]}),cell:({row:{original:{device:e,state:s}}})=>a.jsx(I,{device:e,state:s,homeassistantEnabled:i.homeassistant.enabled,renameDevice:y,removeDevice:x,configureDevice:h,interviewDevice:_}),enableSorting:!1,enableColumnFilter:!1}],[o,d,i.advanced.last_seen,i.availability.enabled,i.homeassistant.enabled,g,v,y,x,h,_,t]),L=n.useMemo(()=>({friendly_name:!0,ieee_address:!0,model:!0,last_seen:i.advanced.last_seen!=="disable",availability:i.availability.enabled||m.some(e=>e.availabilityEnabledForDevice),controls:!0}),[i.advanced.last_seen,i.availability.enabled,m]);return a.jsx(B,{id:"all-devices",columns:S,data:m,visibleColumns:L})}export{re as default};
Binary file
Binary file
@@ -1 +0,0 @@
1
- import{af as le,aS as rr,aT as tr,aU as ar,aV as nr,l as sr,aW as or,aX as cr,aY as ir,aZ as lr,a_ as ur,aK as ue,a$ as fe,b0 as fr,b1 as mr,b2 as hr,b3 as dr,b4 as xr,b5 as pr,b6 as me,b7 as br,b8 as he,b9 as gr,ba as _r,bb as L,bc as de,bd as xe,a1 as yr,be as Cr,bf as vr,bg as jr,bh as Sr,bi as Tr,bj as kr,bk as Er,bl as Rr,bm as Nr,bn as Ar,bo as wr,bp as Fr,bq as qr,br as $r,bs as Ir,bt as Br,bu as Mr,bv as Gr,bw as Vr,bx as F,aM as Or,by as pe,bz as Ur,bA as Hr,bB as Lr,bC as zr,bD as Be,bE as Pr,bF as Me,bG as Wr,bH as Dr,bI as Xr,bJ as Kr,r as i,j as o,b as w,B as j,F as ie,bK as Yr,at as Jr,bL as Qr,bM as Zr,K as et}from"./index-EQzdH3Y4.js";import{D as U}from"./DisplayValue-tdl7RHar.js";import{r as Ge,a as Ve,b as rt}from"./_createCompounder-BZl5m4SO.js";var z,be;function tt(){if(be)return z;be=1;function e(t,a,r){var s=-1,n=t.length;a<0&&(a=-a>n?0:n+a),r=r>n?n:r,r<0&&(r+=n),n=a>r?0:r-a>>>0,a>>>=0;for(var l=Array(n);++s<n;)l[s]=t[s+a];return l}return z=e,z}var P,ge;function at(){if(ge)return P;ge=1;var e=tt();function t(a,r,s){var n=a.length;return s=s===void 0?n:s,!r&&s>=n?a:e(a,r,s)}return P=t,P}var W,_e;function Oe(){if(_e)return W;_e=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",a="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",s=t+a+r,n="\\ufe0e\\ufe0f",l="\\u200d",c=RegExp("["+l+e+s+n+"]");function m(u){return c.test(u)}return W=m,W}var D,ye;function nt(){if(ye)return D;ye=1;function e(t){return t.split("")}return D=e,D}var X,Ce;function st(){if(Ce)return X;Ce=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",a="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",s=t+a+r,n="\\ufe0e\\ufe0f",l="["+e+"]",c="["+s+"]",m="\\ud83c[\\udffb-\\udfff]",u="(?:"+c+"|"+m+")",d="[^"+e+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",f="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",b=u+"?",y="["+n+"]?",k="(?:"+x+"(?:"+[d,h,f].join("|")+")"+y+b+")*",R=y+b+k,p="(?:"+[d+c+"?",c,h,f,l].join("|")+")",g=RegExp(m+"(?="+m+")|"+p+R,"g");function C(E){return E.match(g)||[]}return X=C,X}var K,ve;function ot(){if(ve)return K;ve=1;var e=nt(),t=Oe(),a=st();function r(s){return t(s)?a(s):e(s)}return K=r,K}var Y,je;function ct(){if(je)return Y;je=1;var e=at(),t=Oe(),a=ot(),r=Ge();function s(n){return function(l){l=r(l);var c=t(l)?a(l):void 0,m=c?c[0]:l.charAt(0),u=c?e(c,1).join(""):l.slice(1);return m[n]()+u}}return Y=s,Y}var J,Se;function Ue(){if(Se)return J;Se=1;var e=ct(),t=e("toUpperCase");return J=t,J}var Q,Te;function it(){if(Te)return Q;Te=1;var e=Ge(),t=Ue();function a(r){return t(e(r).toLowerCase())}return Q=a,Q}var Z,ke;function lt(){if(ke)return Z;ke=1;var e=it(),t=Ve(),a=t(function(r,s,n){return s=s.toLowerCase(),r+(n?e(s):s)});return Z=a,Z}var ut=lt();const ft=le(ut);var ee,Ee;function mt(){if(Ee)return ee;Ee=1;var e=Ve(),t=Ue(),a=e(function(r,s,n){return r+(n?" ":"")+t(s)});return ee=a,ee}var ht=mt();const dt=le(ht),xt={battery_low:F,humidity:Vr,illuminance:L,pressure:Gr,co2:Mr,voltage:Br,state:Ir,brightness:L,occupancy:$r,presence:qr,current:Fr,power:wr,energy:Ar,frequency:Nr,tamper:Rr,smoke:Er,radiation_dose_per_hour:kr,radioactive_events_per_minute:Tr,power_factor:Sr,mode:jr,sound:vr,position:Cr,alarm:yr,color_xy:xe,color_hs:xe,color_temp:de,color_temp_startup:de,illuminance_lux:L,soil_moisture:_r,water_leak:me,week:gr,workdays_schedule:he,holidays_schedule:he,away_mode:br,vibration:me,power_outage_count:pr,action:xr,angle_x:dr,angle_y:hr,angle_z:mr,side:fr,humidity_alarm:fe,temperature_alarm:fe,approach_distance:ue,distance:ue,trigger_count:ur,level_config:lr,station:ir,effect:cr,linkquality:or,system_mode:sr,gradient:nr,sensitivity:ar,test:tr,flow:rr},pt=(e,t)=>{let a=F;return e==null||(e>=85?(a=Be,t.push("text-success")):e>=65?a=Pr:e>=40?a=Me:e>=20?a=Wr:(a=F,t.push("text-error"))),a},bt=(e,t)=>{let a=F;switch(e){case"high":{a=Be,t.push("text-success");break}case"medium":{a=Me;break}case"low":{a=F,t.push("text-error");break}}return a},gt=(e,t,a)=>{let r=pe;return e==null||(t==="°F"&&(e=(e-32)/1.8),e>=30?(r=Ur,a.push("text-error")):e>=25?r=Hr:e>=20?r=Lr:e>=15?r=zr:e<5&&(r=pe,a.push("text-info"))),r},_t=(e,t,a)=>{let r;const s=[],n={};switch(e){case"battery":{r=pt(t,s);break}case"battery_state":{r=bt(t,s);break}case"battery_low":{t&&s.push("text-error");break}case"device_temperature":case"temperature":case"local_temperature":{r=gt(t,a,s);break}case"humidity":{t!=null&&t>60&&s.push("text-info");break}case"contact":{r=t?Xr:Kr,t||s.push("text-primary");break}case"occupancy":{t&&(s.push("text-warning"),n.beat=!0);break}case"presence":{t&&(s.push("text-warning"),n.beat=!0);break}case"tamper":{t&&(s.push("text-error"),n.beatFade=!0,n.shake=!0);break}case"water_leak":{t&&(s.push("text-primary"),n.beatFade=!0);break}case"vibration":{t&&(s.push("text-primary"),n.shake=!0);break}default:{e.includes("cyclic")&&(r=Dr);break}}return r?[r,s.join(" "),n]:(r=xt[e],r?[r,s.join(" "),n]:[Or,"opacity-0",{}])},He=e=>`${e.type}-${e.name}-${e.label}-${e.property}-${e.access}-${e.category}-${e.endpoint}`;var v=(e=>(e[e.STATE=1]="STATE",e[e.SET=2]="SET",e[e.GET=4]="GET",e[e.STATE_SET=3]="STATE_SET",e[e.STATE_GET=5]="STATE_GET",e[e.ALL=7]="ALL",e))(v||{});const q=i.memo(({feature:e,deviceValue:t})=>o.jsxs("div",{children:[e.property&&o.jsx("span",{className:"font-bold",children:o.jsx(U,{value:t,name:e.name})}),"unit"in e&&o.jsx("span",{className:"text-xs ms-1",children:e.unit})]})),$=i.memo(e=>o.jsxs("div",{className:"alert alert-warning",role:"alert",children:["Unknown access ",o.jsx("pre",{children:e.feature.access})]})),yt=i.memo(e=>{const{feature:{access:t=v.SET,name:a,property:r,value_off:s,value_on:n},deviceValue:l,onChange:c,minimal:m}=e,{t:u}=w("zigbee"),d=i.useCallback(f=>c({[r]:f}),[r,c]),h=i.useCallback(f=>c({[r]:f.target.checked?n:s}),[n,s,r,c]);if(t&v.SET){const f=l!=null,x=!m||m&&!f;return o.jsxs("div",{children:[x&&o.jsx(j,{className:"btn btn-link",item:s,onClick:d,children:o.jsx(U,{value:s,name:a})}),f?o.jsx("input",{className:"toggle",type:"checkbox",checked:l===n,onChange:h}):o.jsx(ie,{icon:Yr,title:u("unknown")}),x&&o.jsx(j,{className:"btn btn-link",item:n,onClick:d,children:o.jsx(U,{value:n,name:a})})]})}return t&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),N=i.memo(e=>{const{feature:t,onChange:a,parentFeatures:r,onRead:s,device:n,deviceState:l,featureWrapperClass:c,minimal:m,endpointSpecific:u,steps:d}=e,{type:h,property:f}=t,[x,b]=i.useState({}),{t:y}=w(["composite","common"]),k=i.useMemo(()=>Jr({},l,x),[l,x]),R="features"in t&&t.features||[],p=i.useMemo(()=>{if(h==="composite"&&r!==void 0){if(r.length===0)return!0;if(r.length===1){const _=r[0].type;return _!=null&&_!=="composite"&&_!=="list"}}return!1},[h,r]);i.useEffect(()=>{b({})},[n.ieee_address]);const g=i.useCallback(_=>{b({...x,..._}),p||a(h==="composite"&&f?{[f]:{...x,..._}}:_)},[x,h,f,p,a]),C=i.useCallback(()=>{const _={...l,...x};a(f?{[f]:_}:_)},[f,a,x,l]),E=i.useCallback(_=>{s?.(h==="composite"&&f?{[f]:_}:_)},[s,h,f]);return o.jsxs(o.Fragment,{children:[R.map(_=>o.jsx(er,{feature:_,parentFeatures:r??[],device:n,deviceState:k,onChange:g,onRead:E,featureWrapperClass:c,minimal:m,endpointSpecific:u,steps:d?.[_.name]},He(_))),p&&o.jsx("div",{className:"self-end float-right",children:o.jsx(j,{className:`btn btn-primary ${m?"btn-sm":""}`,onClick:C,children:y("common:apply")})})]})}),Ct=i.memo(e=>o.jsx(N,{...e}));var re,Re;function vt(){if(Re)return re;Re=1;function e(t,a,r){return t===t&&(r!==void 0&&(t=t<=r?t:r),a!==void 0&&(t=t>=a?t:a)),t}return re=e,re}var te,Ne;function jt(){if(Ne)return te;Ne=1;var e=/\s/;function t(a){for(var r=a.length;r--&&e.test(a.charAt(r)););return r}return te=t,te}var ae,Ae;function St(){if(Ae)return ae;Ae=1;var e=jt(),t=/^\s+/;function a(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return ae=a,ae}var ne,we;function Tt(){if(we)return ne;we=1;var e=St(),t=Qr(),a=rt(),r=NaN,s=/^[-+]0x[0-9a-f]+$/i,n=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;function m(u){if(typeof u=="number")return u;if(a(u))return r;if(t(u)){var d=typeof u.valueOf=="function"?u.valueOf():u;u=t(d)?d+"":d}if(typeof u!="string")return u===0?u:+u;u=e(u);var h=n.test(u);return h||l.test(u)?c(u.slice(2),h?2:8):s.test(u)?r:+u}return ne=m,ne}var se,Fe;function kt(){if(Fe)return se;Fe=1;var e=vt(),t=Tt();function a(r,s,n){return n===void 0&&(n=s,s=void 0),n!==void 0&&(n=t(n),n=n===n?n:0),s!==void 0&&(s=t(s),s=s===s?s:0),e(t(r),s,n)}return se=a,se}var Et=kt();const T=le(Et),Rt=[.412453,.35758,.180423,.212671,.71516,.072169,.019334,.119193,.950227],Nt=[3.2404813432005266,-1.5371515162713183,-.49853632616888777,-.9692549499965684,1.8759900014898907,.041555926558292815,.05564663913517715,-.20404133836651123,1.0573110696453443],Le=.42,ze=.0031308,Pe=12.92,H=.055,V=e=>e<=ze?Pe*e:(1+H)*e**Le-H,At=1/Le,wt=V(ze),Ft=1/Pe,oe=e=>e<=wt?e*Ft:((e+H)/(1+H))**At,We=(e,t)=>{const a=[0,0,0];for(let r=0;r<3;r++){a[r]=0;for(let s=0;s<3;s++)a[r]+=t[r*3+s]*e[s]}return a},qe=(e,t,a)=>{const r=[oe(e),oe(t),oe(a)];return We(r,Rt)},qt=(e,t,a)=>{const r=We([e,t,a],Nt);return[V(r[0]),V(r[1]),V(r[2])]},De=(e,t,a)=>{const r=1-e-t;return qt(a/t*e,a,a/t*r)},Xe=(e,t,a=10)=>{let r=1;for(let s=0;s<a;s++){const n=Math.max(...De(e,t,r));r=r/n}return r},I=(e,t,a)=>{if(e/=255,t/=255,a/=255,e<1e-12&&t<1e-12&&a<1e-12){const[c,m,u]=qe(1,1,1),d=c+m+u;return[c/d,m/d,0]}const[r,s,n]=qe(e,t,a),l=r+s+n;return[r/l,s/l,s]},$t=(e,t,a)=>{a===void 0&&(a=Xe(e,t));const[r,s,n]=De(e,t,a);return[T(r*255,0,255),T(s*255,0,255),T(n*255,0,255)]},B=(e,t,a)=>{e/=255,t/=255,a/=255;const r=Math.max(e,t,a),s=r-Math.min(e,t,a),n=s?(r===e?(t-a)/s+(t<a?6:0):r===t?2+(a-e)/s:4+(e-t)/s)*60:0,l=r?s/r*100:0,c=r*100;return[T(n,0,360),T(l,0,100),T(c,0,100)]},It=(e,t,a)=>{t/=100,a/=100;const r=~~(e/60),s=e/60-r,n=a*(1-t),l=a*(1-t*s),c=a*(1-t*(1-s)),m=r%6,u=[a,l,n,n,c,a][m]*255,d=[c,a,a,l,n,n][m]*255,h=[n,n,c,a,a,l][m]*255;return[T(u,0,255),T(d,0,255),T(h,0,255)]},M=(e,t,a)=>{const[r,s,n]=[e,t,a].map(l=>Math.round(l).toString(16).padStart(2,"0"));return`#${r}${s}${n}`},Bt=e=>(e=e.slice(1),Array.from({length:3}).map((t,a)=>Number.parseInt(e.slice(a*2,a*2+2),16))),A=(e,t)=>{switch(t){case"color_xy":{const{x:a=.313,y:r=.329,Y:s=Xe(a,r===0?.329:r)}=e,n=r===0?[255,255,255]:$t(a,r,s);return{color_rgb:n,color_hs:B(...n),color_xy:[a,r,s],hex:M(...n)}}case"color_hs":{const{hue:a=0,saturation:r=0}=e,s=100,n=It(a,r,s);return{color_rgb:n,color_hs:[a,r,s],color_xy:I(...n),hex:M(...n)}}case"color_rgb":{const{r:a=255,g:r=255,b:s=255}=e;return{color_rgb:[a,r,s],color_hs:B(a,r,s),color_xy:I(a,r,s),hex:M(a,r,s)}}case"hex":{const a=e.hex,r=Bt(a);return{color_rgb:r,color_hs:B(...r),color_xy:I(...r),hex:a}}default:{const a=[255,255,255];return{color_rgb:a,color_hs:B(...a),color_xy:I(...a),hex:M(...a)}}}},$e=(e,t)=>{switch(t){case"color_xy":return{x:e.color_xy[0],y:e.color_xy[1]};case"color_hs":return{hue:e.color_hs[0],saturation:e.color_hs[1]};case"color_rgb":return{r:e.color_rgb[0],g:e.color_rgb[1],b:e.color_rgb[2]};case"hex":return{hex:e.hex}}},Ke=e=>`${e[0].toFixed(3)}, ${e[1].toFixed(3)}, ${e[2].toFixed(3)}`,O=e=>`${e[0].toFixed(2)}°, ${e[1].toFixed(2)}%, ${e[2].toFixed(2)}%`,Ye=e=>`${e[0].toFixed(0)}, ${e[1].toFixed(0)}, ${e[2].toFixed(0)}`,Je=e=>e,Ie=e=>({color_xy:Ke(e.color_xy),color_hs:O(e.color_hs),color_rgb:Ye(e.color_rgb),hex:Je(e.hex)}),Mt=e=>{const t=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((a,r)=>+(t[r]??0))},Gt=e=>{const t=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((a,r)=>T(+(t[r]??0),0,r?100:360))},Vt=e=>{const t=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((a,r)=>T(+(t[r]??0),0,255))},ce=(e,t)=>{switch(t){case"color_xy":{const a=Mt(e);return A({x:a[0],y:a[1]},"color_xy")}case"color_hs":{const a=Gt(e);return A({hue:a[0],saturation:a[1]},"color_hs")}case"color_rgb":{const a=Vt(e);return A({r:a[0],g:a[1],b:a[2]},"color_rgb")}case"hex":return A({hex:e},"hex")}},Ot="linear-gradient(to right, white, transparent)",Ut="linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0))",G=i.memo(({label:e,...t})=>o.jsxs("label",{className:"input",children:[e,o.jsx("input",{type:"text",className:"grow",...t})]})),Qe=i.memo(e=>{const{onChange:t,value:a={},format:r,minimal:s}=e,[n,l]=i.useState(A(a,r)),[c,m]=i.useState(Ie(n)),[u,d]=i.useState({color_rgb:!1,color_hs:!1,color_xy:!1,hex:!1});i.useEffect(()=>{const p=A(a,r);l(p),m(Ie(p))},[a,r]),i.useEffect(()=>{if(!u.color_xy){const p=Ke(n.color_xy);m(g=>({...g,color_xy:p}))}},[u.color_xy,n.color_xy]),i.useEffect(()=>{if(!u.color_hs){const p=O(n.color_hs);m(g=>({...g,color_hs:p}))}},[u.color_hs,n.color_hs]),i.useEffect(()=>{if(!u.color_rgb){const p=Ye(n.color_rgb);m(g=>({...g,color_rgb:p}))}},[u.color_rgb,n.color_rgb]),i.useEffect(()=>{if(!u.hex){const p=Je(n.hex);m(g=>({...g,hex:p}))}},[u.hex,n.hex]);const h=i.useCallback(p=>{if(p.target.value){const g=Array.from(n.color_hs);g[1]=p.target.valueAsNumber;const C=O(g);m(E=>({...E,color_hs:C})),l(ce(C,"color_hs"))}},[n.color_hs]),f=i.useCallback(p=>{if(p.target.value){const g=Array.from(n.color_hs),C=g[1];g[1]=C===0?100:C,g[0]=p.target.valueAsNumber;const E=O(g);m(_=>({..._,color_hs:E})),l(ce(E,"color_hs"))}},[n.color_hs]),x=i.useCallback(p=>{const{value:g,name:C}=p.target;m(E=>({...E,[C]:g})),l(ce(g,C))},[]),b=i.useCallback(p=>{d(g=>({...g,[p.target.name]:!0}))},[]),y=i.useCallback(p=>{d(g=>({...g,[p.target.name]:!1})),t($e(n,r))},[n,r,t]),k=i.useCallback(()=>{t($e(n,r))},[n,r,t]),R=i.useMemo(()=>`hsl(${n.color_hs[0]}, 100%, 50%)`,[n.color_hs[0]]);return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"flex flex-row flex-wrap gap-3 items-center",children:o.jsx("div",{className:`w-full${s?" max-w-xs":""}`,children:o.jsx("input",{type:"range",min:0,max:100,value:n.color_hs[1],className:`range [--range-bg:transparent] [--range-fill:0] w-full${s?" range-xs ":""}`,style:{backgroundImage:Ot,backgroundColor:R},onChange:h,onTouchEnd:k,onMouseUp:k})})}),o.jsx("div",{className:"flex flex-row flex-wrap gap-3 items-center",children:o.jsx("div",{className:`w-full${s?" max-w-xs":""}`,children:o.jsx("input",{type:"range",min:0,max:360,value:n.color_hs[0],className:`range [--range-bg:transparent] [--range-fill:0] w-full${s?" range-xs ":""}`,style:{backgroundImage:Ut},onChange:f,onTouchEnd:k,onMouseUp:k})})}),!s&&o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 justify-around",children:[o.jsx(G,{label:"hex",name:"hex",value:c.hex,onChange:x,onFocus:b,onBlur:y}),o.jsx(G,{label:"rgb",name:"color_rgb",value:c.color_rgb,onChange:x,onFocus:b,onBlur:y}),o.jsx(G,{label:"hsv",name:"color_hs",value:c.color_hs,onChange:x,onFocus:b,onBlur:y}),o.jsx(G,{label:"xyY",name:"color_xy",value:c.color_xy,onChange:x,onFocus:b,onBlur:y})]})]})}),Ht=i.memo(e=>{const{deviceValue:t,feature:{name:a,features:r,property:s},onChange:n,minimal:l}=e,c=i.useMemo(()=>{const u={};for(const d of r){const h=Number.parseFloat(t?.[d.name]);u[d.name]=Number.isNaN(h)?0:h}return u},[t,r]),m=i.useCallback(u=>n({[s??"color"]:u}),[s,n]);return o.jsx(Qe,{onChange:m,value:c,format:a,minimal:l})}),Lt={position:[0,25,50,75,100].map(e=>({value:e,name:`${e}`})),tilt:[0,25,50,75,100].map(e=>({value:e,name:`${e}`}))},zt=i.memo(e=>o.jsx(N,{...e,steps:Lt}));function S(e){return typeof e!="object"}const Ze=i.memo(e=>{const{onChange:t,values:a,value:r,minimal:s}=e,{t:n}=w("common"),l=i.useCallback(c=>{const m=a.find(u=>S(u)?u===c.target.value:u.value===Number.parseInt(c.target.value,10));t(m)},[a,t]);return s?o.jsxs("select",{className:"select",onChange:l,value:S(r)?r:r?.value,children:[o.jsx("option",{value:"",disabled:!0,children:n("select_value")}),a.map(c=>o.jsx("option",{value:S(c)?c:c.value,children:S(c)?c:c.name},S(c)?c:c.name))]}):o.jsx("div",{className:"join join-vertical lg:join-horizontal",children:a.map(c=>o.jsx(j,{className:`btn btn-soft btn-sm join-item${(S(c)?c===r:c.value===(S(r)?r:r?.value))?" btn-active":""}`,onClick:m=>t(m),item:S(c)?c:c.value,title:S(c)?`${c}`:c.description,children:S(c)?o.jsx(U,{value:c,name:""}):c.name},S(c)?c:c.name))})}),Pt=6,Wt=i.memo(e=>{const{onChange:t,feature:{access:a=v.SET,values:r,property:s},deviceValue:n,minimal:l}=e;return a&v.SET?o.jsx(Ze,{onChange:c=>t({[s]:c}),values:r,value:n||"",minimal:l||r.length>Pt}):a&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),Dt=i.memo(e=>o.jsx(N,{...e})),Xt=i.memo(e=>{const{minimal:t,onChange:a,feature:{length_min:r,length_max:s,property:n},deviceValue:l}=e,{t:c}=w(["gradient","common"]),[m,u]=i.useState(r>0?Array(r).fill("#ffffff"):[]);i.useEffect(()=>{l&&Array.isArray(l)&&l.length>0&&u(l)},[l]);const d=i.useCallback((p,g)=>{const C=Array.from(m);C[p]=g,u(C)},[m]),h=i.useCallback(()=>{const p=Array.from(m);p.push("#ffffff"),u(p)},[m]),f=i.useCallback(p=>{const g=Array.from(m);g.splice(p,1),u(g)},[m]),x=i.useCallback(()=>a({[n??"gradient"]:m}),[m,n,a]),[b,y]=i.useState(!1),[k,R]=i.useState(!1);return i.useEffect(()=>{y(m.length<s),R(m.length>r)},[m,r,s]),o.jsxs("div",{className:"flex flex-col gap-2",children:[m.map((p,g)=>o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 items-center",children:[o.jsx(Qe,{onChange:C=>{d(g,C.hex)},value:{hex:p},format:"hex",minimal:t}),k&&o.jsx(j,{className:"btn btn-sm btn-error",onClick:()=>f(g),children:"-"})]},`${p}-${g}`)),b&&o.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:o.jsx(j,{className:"btn btn-sm btn-success",onClick:h,children:"+"})}),o.jsx("div",{children:o.jsx(j,{className:`btn btn-primary ${t?"btn-sm":""}`,onClick:x,children:c("common:apply")})})]})}),Kt={brightness:[0,25,50,75,100].map(e=>({value:Zr(e,[0,100],[0,255]),name:`${e}%`})),color_temp:[1e3,2e3,3e3,4e3,5e3,6500].map(e=>({value:1e6/e,name:`${e}K`}))},Yt=i.memo(e=>o.jsx(N,{...e,steps:Kt}));function Jt(e){return e.type==="composite"&&(e.name==="color_xy"||e.name==="color_hs")}const Qt=i.memo(e=>{const{t}=w("zigbee"),{children:a,feature:r,deviceValue:s,onRead:n,endpointSpecific:l}=e,c=r.unit,m=i.useMemo(()=>_t(r.name,s,c),[c,r.name,s]),u=i.useMemo(()=>r.property&&r.access&v.GET||Jt(r),[r]),d=e.parentFeatures?.[e.parentFeatures.length-1],h=r.name==="state"?r.property:r.name;let f=r.label||dt(ft(h));d?.label&&r.name==="state"&&d.type!=="light"&&d.type!=="switch"&&(f=`${d.label} ${r.label.charAt(0).toLowerCase()}${r.label.slice(1)}`);const x=i.useCallback(b=>{b.property&&n?.({[b.property]:""})},[n]);return o.jsxs("div",{className:"list-row p-3",children:[o.jsx("div",{children:o.jsx(ie,{icon:m[0],fixedWidth:!0,className:m[1],...m[2],size:"2xl"})}),o.jsxs("div",{children:[o.jsxs("div",{title:h,children:[f,!l&&r.endpoint?` (${t("endpoint")}: ${r.endpoint})`:""]}),o.jsx("div",{className:"text-xs font-semibold opacity-60",children:r.description})]}),o.jsx("div",{className:"list-col-wrap flex flex-col gap-2",children:a}),u&&o.jsx(j,{item:r,onClick:x,className:"btn btn-xs btn-square btn-primary",children:o.jsx(ie,{icon:et})})]})}),Zt=i.memo(e=>{const{onChange:t,value:a,feature:r,parentFeatures:s}=e,[n,l]=i.useState(a);i.useEffect(()=>{l(a)},[a]);const c=i.useCallback(h=>{l(h),t(h)},[t]),m=i.useCallback((h,f)=>{const x=Array.from(n);typeof h=="object"&&(h={...n[f],...h}),x[f]=h,c(x)},[n,c]),u=i.useCallback(h=>{const f=Array.from(n);f.splice(h,1),c(f)},[n,c]),d=i.useCallback(()=>l([...n,{}]),[n]);return n.length===0?o.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:o.jsx(j,{className:"btn btn-success col-1",onClick:d,children:"+"})}):n.map((h,f)=>o.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[o.jsx(er,{feature:r,device:{},deviceState:h,onChange:x=>m(x,f),onRead:x=>{},featureWrapperClass:Qt,parentFeatures:s}),o.jsxs("div",{className:"join join-vertical lg:join-horizontal",children:[o.jsx(j,{item:f,className:"btn btn-sm btn-error btn-square join-item",onClick:u,children:"-"}),n.length-1===f&&o.jsx(j,{className:"btn btn-sm btn-success btn-square join-item",onClick:d,children:"+"})]})]},f))}),ea=i.memo(e=>{const{feature:t,minimal:a,parentFeatures:r,onChange:s,deviceValue:n}=e,[l,c]=i.useState({value:t.property?n?.[t.property]??[]:[]}),{t:m}=w(["list","common"]),u=i.useMemo(()=>{if(r!==void 0){if(r.length===1)return!0;if(r.length===2){const b=r[1].type;return b!=null&&b!=="composite"&&b!=="list"}}return!1},[r]),d=i.useCallback(b=>{c({value:b}),u||s(t.property?{[t.property]:b}:b)},[t.property,s,u]),h=i.useCallback(()=>{s(t.property?{[t.property]:l.value}:l.value)},[t.property,s,l.value]),{access:f=v.SET,item_type:x}=t;return f&v.SET?o.jsxs(o.Fragment,{children:[o.jsx(Zt,{feature:x,parentFeatures:[...r,t],onChange:d,value:l.value}),u&&o.jsx("div",{children:o.jsx(j,{className:`btn btn-primary ${a?"btn-sm":""}`,onClick:h,disabled:l.value.length===0,children:m("common:apply")})})]}):f&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),ra=i.memo(e=>o.jsx(N,{...e})),ta=i.memo(e=>{const{onChange:t,value:a,valueStep:r,min:s,max:n,unit:l,steps:c,minimal:m,...u}=e,[d,h]=i.useState(a),f=s!=null&&n!=null;i.useEffect(()=>{h(a)},[a]);const x=i.useCallback(y=>!!y.target.value&&h(y.target.valueAsNumber),[]),b=i.useCallback(y=>!y.target.validationMessage&&t(d),[d,t]);return o.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-center",children:[!m&&c?o.jsx(Ze,{values:c,onChange:t,value:d}):null,f?o.jsxs("div",{className:"w-full max-w-xs",children:[o.jsx("input",{min:s,max:n,step:r,type:"range",className:"range range-xs range-primary validator",value:d,onChange:x,onTouchEnd:b,onMouseUp:b,...u}),o.jsxs("div",{className:"flex justify-between px-1 mt-1 text-xs",children:[o.jsx("span",{children:s}),m&&o.jsx("span",{children:d}),o.jsx("span",{children:n})]})]}):null,(!m||!f)&&o.jsxs("label",{className:"input",children:[o.jsx("input",{type:"number",className:"grow validator",value:d,step:r,onChange:x,onBlur:b,min:s,max:n,...u}),l]})]})}),aa=i.memo(e=>{const{feature:{presets:t,access:a=v.SET,property:r,unit:s,value_max:n,value_min:l,value_step:c},deviceValue:m,steps:u,onChange:d,minimal:h}=e;return a&v.SET?o.jsx(ta,{onChange:f=>d({[r]:f}),value:m??"",min:l,max:n,step:c,steps:t?.length?t:u,unit:s,minimal:h}):a&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),na=i.memo(e=>o.jsx(N,{...e})),sa=i.memo(e=>{const{onChange:t,value:a,...r}=e,[s,n]=i.useState(a);return i.useEffect(()=>{n(a)},[a]),o.jsx("input",{type:"text",className:"input validator",value:s,onChange:l=>n(l.target.value),onBlur:l=>!l.target.validationMessage&&t(s),...r})}),oa=i.memo(e=>{const{feature:{access:t=v.SET,property:a},deviceValue:r,onChange:s}=e;return t&v.SET?o.jsx(sa,{onChange:n=>s({[a]:n}),value:r??""}):t&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),er=i.memo(e=>{const{feature:t,device:a,deviceState:r,steps:s,onRead:n,onChange:l,featureWrapperClass:c,minimal:m,endpointSpecific:u,parentFeatures:d}=e,h=i.useMemo(()=>t.property?r[t.property]:void 0,[t.property,r[t.property]]),f=i.useMemo(()=>He(t),[t]),x=i.useMemo(()=>({device:a,deviceValue:h,onChange:l,onRead:n,featureWrapperClass:c,minimal:m,endpointSpecific:u,parentFeatures:d}),[a,h,l,n,c,m,u,d]),b=i.useMemo(()=>({feature:t,onRead:n,deviceValue:h,parentFeatures:d,endpointSpecific:u}),[t,n,h,d,u]);switch(t.type){case"binary":return o.jsx(c,{...b,children:o.jsx(yt,{feature:t,...x},f)},f);case"numeric":return o.jsx(c,{...b,children:o.jsx(aa,{feature:t,...x,steps:s},f)},f);case"list":return t.name==="gradient"&&t.length_min!=null&&t.length_max!=null?o.jsx(c,{...b,children:o.jsx(Xt,{feature:t,...x},f)},f):o.jsx(c,{...b,children:o.jsx(ea,{feature:t,...x},f)},f);case"text":return o.jsx(c,{...b,children:o.jsx(oa,{feature:t,...x},f)},f);case"enum":return o.jsx(c,{...b,children:o.jsx(Wt,{feature:t,...x},f)},f);case"light":return o.jsx(Yt,{feature:t,...x,deviceState:r},f);case"switch":return o.jsx(na,{feature:t,...x,deviceState:r},f);case"cover":return o.jsx(zt,{feature:t,...x,deviceState:r},f);case"lock":return o.jsx(ra,{feature:t,...x,deviceState:r},f);case"climate":return o.jsx(Ct,{feature:t,...x,deviceState:r},f);case"fan":return o.jsx(Dt,{feature:t,...x,deviceState:r},f);case"composite":{if(t.name==="color_xy"||t.name==="color_hs")return o.jsx(c,{...b,children:o.jsx(Ht,{feature:t,...x},f)},f);const y=d&&t.property?r[t.property]:r;return o.jsx(c,{...b,children:o.jsx(N,{feature:t,...x,deviceState:y},f)},f)}default:return console.error("Unsupported feature",t),o.jsx(c,{...b,children:o.jsx("pre",{children:JSON.stringify(t,null,4)})},f)}});export{er as F,Qt as a,v as b,_t as c,ft as d,He as g,dt as s};
Binary file
@@ -1 +0,0 @@
1
- import{b as P,r as o,s as e,H as x,v as g,bY as h,bZ as f,E as b,aN as E,aO as N,aP as w,aQ as j,b_ as F,b$ as H,D as q,c0 as W,c1 as B,j as t,R as k}from"./index-EQzdH3Y4.js";import{C as G}from"./CheckboxField-BnGINJ_L.js";import{I as y}from"./InputField-B0_X2eEk.js";import{N as T}from"./NumberField-BreLavc2.js";import{S as n}from"./SelectField-BnBBz4eT.js";import"./envs-DFlyG_dH.js";function Z(){const{t:s}=P(["settings","navbar","network","common"]),[r,S]=o.useState(e.get(x,"devices")),[l,D]=o.useState(e.get(g,!1)),[i,M]=o.useState(e.get(h,254)),[c,C]=o.useState(e.get(f,4)),[m,O]=o.useState(e.get(b,"data")),[d,A]=o.useState(e.get(E,"forceDirected2d")),[u,K]=o.useState(e.get(N,"all")),[p,Y]=o.useState(e.get(w,-750)),[_,L]=o.useState(e.get(j,50));o.useEffect(()=>{e.set(x,r)},[r]),o.useEffect(()=>{e.set(g,l)},[l]),o.useEffect(()=>{e.set(h,i)},[i]),o.useEffect(()=>{e.set(f,c)},[c]),o.useEffect(()=>{e.set(b,m)},[m]),o.useEffect(()=>{e.set(E,d)},[d]),o.useEffect(()=>{e.set(N,u)},[u]),o.useEffect(()=>{e.set(w,p)},[p]),o.useEffect(()=>{e.set(j,_)},[_]);const I=o.useCallback(()=>{e.remove(F),e.remove(x),e.remove(g),e.remove(h),e.remove(f),e.remove(b),e.remove(E),e.remove(N),e.remove(w),e.remove(j),e.remove(H),e.remove(q),e.remove("all-devices-column-visibility"),e.remove("all-groups-column-visibility"),e.remove("ota-devices-column-visibility"),e.remove("touchlink-devices-column-visibility"),e.remove("health-devices-column-visibility"),window.location.reload()},[]),R=o.useCallback(()=>{e.remove(W),e.remove(B),window.location.reload()},[]);return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"alert alert-info alert-vertical sm:alert-horizontal",children:[s("frontend_notice"),t.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[t.jsx(k,{className:"btn btn-sm btn-error",onClick:I,title:s("reset_settings"),modalDescription:s("common:dialog_confirmation_prompt"),modalCancelLabel:s("common:cancel"),children:s("reset_settings")}),t.jsx(k,{className:"btn btn-sm btn-error",onClick:R,title:s("reset_auth"),modalDescription:s("common:dialog_confirmation_prompt"),modalCancelLabel:s("common:cancel"),children:s("reset_auth")})]})]}),t.jsxs("div",{className:"flex flex-row flex-wrap gap-4 mt-3",children:[t.jsxs(n,{name:"homepage",label:s("homepage"),onChange:a=>!a.target.validationMessage&&S(a.target.value),value:r,required:!0,children:[t.jsx("option",{value:"devices",children:s("navbar:devices")}),t.jsx("option",{value:"dashboard",children:s("navbar:dashboard")})]}),t.jsx(G,{name:"dashboard_column_display",label:s("dashboard_column_display"),checked:l,onChange:a=>D(a.target.checked)}),t.jsx(y,{type:"number",name:"permit_join_time",label:s("permit_join_time"),min:10,max:254,required:!0,value:i,onChange:a=>!a.target.validationMessage&&!!a.target.value&&M(a.target.valueAsNumber)}),t.jsx(y,{type:"number",name:"max_on_screen_notifications",label:s("max_on_screen_notifications"),min:1,max:5,required:!0,value:c,onChange:a=>!a.target.validationMessage&&!!a.target.value&&C(a.target.valueAsNumber)})]}),t.jsx("h2",{className:"text-lg mt-2",children:s("network_raw")}),t.jsx("div",{className:"flex flex-row flex-wrap gap-4",children:t.jsxs(n,{name:"network:display_type",label:s("network:display_type"),onChange:a=>!a.target.validationMessage&&O(a.target.value),value:m,required:!0,children:[t.jsx("option",{value:"data",children:s("network:data")}),t.jsx("option",{value:"map",children:s("network:map")})]})}),t.jsx("h2",{className:"text-lg mt-2",children:s("network_map")}),t.jsxs("div",{className:"flex flex-row flex-wrap gap-4",children:[t.jsxs(n,{name:"network:layout_type",label:s("network:layout_type"),onChange:a=>!a.target.validationMessage&&A(a.target.value),value:d,required:!0,children:[t.jsx("option",{value:"forceDirected2d",children:"forceDirected2d"}),t.jsx("option",{value:"forceDirected3d",children:"forceDirected3d"}),t.jsx("option",{value:"radialOut2d",children:"radialOut2d"}),t.jsx("option",{value:"radialOut3d",children:"radialOut3d"})]}),t.jsxs(n,{name:"network:label_type",label:s("network:label_type"),onChange:a=>!a.target.validationMessage&&K(a.target.value),value:u,required:!0,children:[t.jsx("option",{value:"all",children:"all"}),t.jsx("option",{value:"auto",children:"auto"}),t.jsx("option",{value:"none",children:"none"}),t.jsx("option",{value:"nodes",children:"nodes"}),t.jsx("option",{value:"edges",children:"edges"})]}),t.jsx("div",{className:"min-w-xs",children:t.jsx(T,{name:"network:node_strength",label:s("network:node_strength"),onSubmit:(a,v)=>v&&typeof a=="number"&&Y(a),min:-1e3,max:-100,step:10,defaultValue:p})}),t.jsx("div",{className:"min-w-xs",children:t.jsx(T,{name:"network:link_distance",label:s("network:link_distance"),onSubmit:(a,v)=>v&&typeof a=="number"&&L(a),min:10,max:200,step:5,defaultValue:_})})]})]})}export{Z as default};
Binary file
Binary file
@@ -1 +0,0 @@
1
- import{w as g,M as _,b as h,r,j as a,O as N,B as m,a as w,W as C,L as f,F as b,Q as k,R as F,x as S}from"./index-EQzdH3Y4.js";import{I as u}from"./InputField-B0_X2eEk.js";import{T as G}from"./Table-CEsZoDJr.js";import"./envs-DFlyG_dH.js";import"./DebouncedInput-BafFXiut.js";const R=g.create(t=>{const{name:i,onRename:o}=t,c=_(),{t:l}=h(["groups","common"]),[s,n]=r.useState(i);return r.useEffect(()=>{n(i)},[i]),a.jsx(N,{isOpen:c.visible,title:`${l("rename_group")} ${i}`,footer:a.jsxs(a.Fragment,{children:[a.jsx(m,{className:"btn btn-neutral",onClick:c.remove,children:l("common:cancel")}),a.jsx(m,{className:"btn btn-primary ms-1",onClick:async()=>{s&&(c.remove(),await o(i,s))},children:l("rename_group")})]}),children:a.jsx("div",{className:"flex flex-col gap-2",children:a.jsx(u,{name:"friendly_name",label:l("common:friendly_name"),onChange:d=>n(d.target.value),value:s,type:"text",required:!0})})})});function $(){const[t,i]=r.useState(""),[o,c]=r.useState(""),l=w(e=>e.groups),{sendMessage:s}=r.useContext(C),{t:n}=h(["groups","common"]),d=r.useCallback(async()=>{const e={friendly_name:t};o&&(e.id=o),await s("bridge/request/group/add",e)},[t,o,s]),p=r.useCallback(async(e,v)=>await s("bridge/request/group/rename",{from:e,to:v}),[s]),x=r.useCallback(async e=>await s("bridge/request/group/remove",{id:e}),[s]),j=r.useMemo(()=>t?!o||!l.find(e=>e.id.toString()===o):!1,[t,o,l]),y=r.useMemo(()=>[{id:"group_id",header:n("group_id"),accessorFn:e=>e.id,cell:({row:{original:e}})=>a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("div",{className:"avatar"}),a.jsxs("div",{className:"flex-grow flex flex-col",children:[a.jsx(f,{to:`/group/${e.id}/devices`,className:"link link-hover",children:e.id}),e.description&&a.jsx("div",{className:"max-w-xs text-xs opacity-50 truncate",title:e.description,children:e.description}),a.jsx("div",{className:"flex flex-row gap-1 mt-0.5",children:a.jsxs("span",{className:"badge badge-soft badge-sm badge-ghost cursor-default",children:[n("scenes"),": ",e.scenes?.length??0]})})]})]})},{id:"friendly_name",header:n("common:friendly_name"),accessorFn:e=>e.friendly_name,cell:({row:{original:e}})=>a.jsx(f,{to:`/group/${e.id}/devices`,className:"link link-hover",children:e.friendly_name})},{id:"members",header:n("group_members"),accessorFn:e=>e.members.length??0,enableColumnFilter:!1},{id:"actions",header:"",cell:({row:{original:e}})=>a.jsxs("div",{className:"join join-horizontal",children:[a.jsx(m,{className:"btn btn-square btn-outline btn-primary join-item",onClick:async()=>await g.show(R,{name:e.friendly_name,onRename:p}),title:n("rename_group"),disabled:e.friendly_name==="default_bind_group",children:a.jsx(b,{icon:k})}),a.jsx(F,{title:n("remove_group"),item:e.id.toString(),onClick:x,className:"btn btn-square btn-outline btn-error join-item",modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:a.jsx(b,{icon:S})})]}),enableSorting:!1,enableColumnFilter:!1}],[p,x,n]);return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"collapse collapse-arrow bg-base-100 shadow mb-3",children:[a.jsx("input",{type:"checkbox"}),a.jsx("div",{className:"collapse-title text-lg font-semibold text-center",children:n("create_group")}),a.jsx("div",{className:"collapse-content",children:a.jsxs("div",{className:"flex flex-row flex-wrap justify-center gap-2",children:[a.jsx(u,{type:"text",name:"friendly_name",label:n("common:friendly_name"),value:t,placeholder:n("friendly_name_placeholder"),onChange:e=>i(e.target.value),required:!0}),a.jsx(u,{type:"number",name:"group_id",label:n("group_id"),value:o,detail:n("common:optional"),min:0,max:255,onChange:e=>c(e.target.value)}),a.jsx(m,{onClick:d,className:"btn btn-primary self-center",disabled:!j,children:n("create_group")})]})})]}),a.jsx(G,{id:"all-groups",columns:y,data:l})]})}export{$ as default};
@@ -1 +0,0 @@
1
- import{b as p,a as d,r as m,j as e,L as u,F as l,J as o,a8 as x,bU as g}from"./index-EQzdH3Y4.js";import{D as N}from"./DeviceImage-DpiYs_Yi.js";import{T as f}from"./Table-CEsZoDJr.js";import{f as w}from"./format-CJ06xbdM.js";import"./envs-DFlyG_dH.js";import"./index-HxBDf2nL.js";import"./DebouncedInput-BafFXiut.js";function z(){const{t:a,i18n:h}=p(["health","settings","common"]),t=d(s=>s.bridgeHealth),i=d(s=>s.devices),v=m.useMemo(()=>{const s=[];if(t)for(const r in t.devices){const n=i.find(_=>_.ieee_address===r);n&&s.push({device:n,health:t.devices[r]})}return s},[t,i]),j=m.useMemo(()=>[{id:"friendly_name",header:a("common:friendly_name"),accessorFn:({device:s})=>[s.friendly_name,s.description,s.ieee_address].join(" "),cell:({row:{original:{device:s}}})=>e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"avatar",children:e.jsx("div",{className:"h-11 w-11",style:{overflow:"visible"},children:e.jsx(N,{device:s,disabled:!1})})}),e.jsx("div",{className:"flex flex-col",children:e.jsxs(u,{to:`/device/${s.ieee_address}/info`,className:"link link-hover",children:[s.friendly_name,s.friendly_name!==s.ieee_address?` (${s.ieee_address})`:""]})})]})},{id:"messages",header:a("messages"),accessorFn:({health:s})=>s.messages,enableColumnFilter:!1},{id:"messages_per_sec",header:a("messages_per_sec"),accessorFn:({health:s})=>s.messages_per_sec,enableColumnFilter:!1,cell:({row:{original:{health:s}}})=>e.jsx("span",{className:s.messages_per_sec>1?s.messages_per_sec>3?"text-error":"text-warning":s.messages_per_sec<.2?"text-success":"",children:s.messages_per_sec<=.001?a("very_low"):s.messages_per_sec})},{id:"leave_count",header:a("leave_count"),accessorFn:({health:s})=>s.leave_count,enableColumnFilter:!1},{id:"network_address_changes",header:a("network_address_changes"),accessorFn:({health:s})=>s.network_address_changes,enableColumnFilter:!1}],[a]);if(t.response_time===0)return e.jsxs("div",{className:"alert alert-info alert-soft",role:"alert",children:[e.jsx(l,{icon:o,size:"2xl"}),a("awaiting_next_check")]});const c=new Date(Date.now()-t.process.uptime_sec*1e3);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[e.jsx(l,{icon:o,size:"2xl"}),a("interview_info")]}),e.jsxs("div",{className:"flex flex-col gap-3 items-center mb-2",children:[e.jsxs("p",{className:"text-sm",children:[a("last_check"),": ",x(new Date(t.response_time))]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsx("div",{className:"stat place-items-center",children:e.jsx("div",{className:"stat-value text-xl",children:a("os")})}),t.os.load_average.some(s=>s!==0)&&e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("load_average")}),e.jsx("div",{className:"stat-value text-lg",children:t.os.load_average.join(", ")}),e.jsx("div",{className:"stat-desc",children:e.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"})})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("ram_usage")}),e.jsxs("div",{className:"stat-value text-lg",children:[t.os.memory_percent," %"]}),e.jsxs("div",{className:"stat-desc",children:[t.os.memory_used_mb," MB"]})]})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsx("div",{className:"stat place-items-center",children:e.jsx("div",{className:"stat-value text-xl",children:a("process")})}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("uptime")}),e.jsx("div",{className:"stat-value text-lg",children:w(c,h.language)}),e.jsx("div",{className:"stat-desc",children:x(c)})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("ram_usage")}),e.jsxs("div",{className:"stat-value text-lg",children:[t.process.memory_percent," %"]}),e.jsxs("div",{className:"stat-desc",children:[t.process.memory_used_mb," MB"]})]})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsx("div",{className:"stat place-items-center",children:e.jsx("div",{className:"stat-value text-xl",children:a("settings:mqtt")})}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-value text-lg",children:e.jsx(l,{icon:g,className:t.mqtt.connected?"text-success":"text-error"})}),e.jsxs("div",{className:"stat-desc",children:[a("queued"),": ",t.mqtt.queued]})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("published")}),e.jsx("div",{className:"stat-value text-lg",children:t.mqtt.published})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("received")}),e.jsx("div",{className:"stat-value text-lg",children:t.mqtt.received})]})]})]}),e.jsx(f,{id:"health-devices",columns:j,data:v})]})}export{z as default};
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./RawNetworkData-DZzchkc5.js","./index-EQzdH3Y4.js","./envs-DFlyG_dH.js","./index-sQ1gk-WC.css","./DeviceImage-DpiYs_Yi.js","./index-HxBDf2nL.js","./DebouncedInput-BafFXiut.js","./PowerSource-CQr3yan7.js","./snakeCase-BDJPMNX4.js","./_createCompounder-BZl5m4SO.js","./index-Bs7zcW7e.js","./Lqi-DYhonPXp.js","./DisplayValue-tdl7RHar.js","./RawNetworkMap-CYuhgIzz.js"])))=>i.map(i=>d[i]);
2
- import{C,r as s,W as E,b as R,a as m,s as d,E as h,G as M,I as T,j as e,F as n,J as x,B as z,K as I,i as S,_ as g}from"./index-EQzdH3Y4.js";import{C as A}from"./CheckboxField-BnGINJ_L.js";import{S as f}from"./SelectField-BnBBz4eT.js";import"./envs-DFlyG_dH.js";const D=s.lazy(async()=>await g(()=>import("./RawNetworkData-DZzchkc5.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url)),F=s.lazy(async()=>await g(()=>import("./RawNetworkMap-CYuhgIzz.js"),__vite__mapDeps([13,1,2,3,10]),import.meta.url));function q(){const o=C(),{sendMessage:u}=s.useContext(E),{t:a}=R(["network","common"]),i=m(t=>t.networkMapIsLoading),r=m(t=>t.networkMap),[l,w]=s.useState("raw"),[c,j]=s.useState(!1),[p,k]=s.useState(d.get(h,"data")),v=s.useCallback(t=>{t.target.value&&w(t.target.value)},[]),y=s.useCallback(t=>{t.target.value&&(d.set(h,t.target.value),k(t.target.value))},[]),b=s.useCallback(t=>{j(t.target.checked)},[]),_=s.useCallback(async()=>{o(M(void 0)),o(T()),await u("bridge/request/networkmap",{type:l,routes:c})},[l,c,o,u]),N=s.useMemo(()=>{if(i)return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:e.jsx("span",{className:"loading loading-infinity loading-xl"})}),e.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:a("loading")})]});if(r)switch(r.type){case"raw":return p==="data"?e.jsx(D,{map:r.value}):e.jsx(F,{map:r.value});case"graphviz":return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[e.jsx(n,{icon:x,size:"2xl"}),a("copy_paste_on"),e.jsx("a",{href:"https://dreampuf.github.io/GraphvizOnline",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://dreampuf.github.io/GraphvizOnline"}),e.jsx("a",{href:"https://edotor.net/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://edotor.net/"})]}),e.jsx("textarea",{className:"textarea w-full",rows:5,readOnly:!0,value:r.value})]});case"plantuml":return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[e.jsx(n,{icon:x,size:"2xl"}),a("copy_paste_on"),e.jsx("a",{href:"https://editor.plantuml.com/uml/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://editor.plantuml.com/uml/"}),e.jsx("a",{href:"https://www.planttext.com/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://www.planttext.com/"})]}),e.jsx("textarea",{className:"textarea w-full",rows:5,readOnly:!0,value:r.value})]})}return null},[r,i,p,a]);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-row justify-center gap-3 mb-2",children:[e.jsxs(f,{name:"type",label:a("type"),value:l,onChange:v,children:[e.jsx("option",{value:"raw",children:a("raw")}),e.jsx("option",{value:"graphviz",children:a("graphviz")}),e.jsx("option",{value:"plantuml",children:a("plantuml")})]}),e.jsx(A,{name:"enable_routes",label:a("enable_routes"),checked:c,onChange:b}),e.jsx(z,{className:"btn btn-primary btn-square self-center ms-3 me-6",onClick:_,title:a(r?"reload":"load"),disabled:i,children:r?e.jsx(n,{icon:I}):e.jsx(n,{icon:S})}),l==="raw"&&e.jsxs(f,{name:"display_type",label:a("display_type"),value:p,onChange:y,children:[e.jsx("option",{value:"data",children:a("data")}),e.jsx("option",{value:"map",children:a("map")})]})]}),N]})}export{q as default};
@@ -1 +0,0 @@
1
- import{r as o,b as f,j as s,B as S,F as u,S as F,R as h,T as g,U as q,V as M,a as $,W as z,L as A,X as O}from"./index-EQzdH3Y4.js";import{D as U}from"./DeviceImage-DpiYs_Yi.js";import{C as P}from"./CheckboxField-BnGINJ_L.js";import{T as B}from"./Table-CEsZoDJr.js";import{M as R,V as T}from"./VendorLink-D2CzkjON.js";import{P as E}from"./PowerSource-CQr3yan7.js";import"./envs-DFlyG_dH.js";import"./index-HxBDf2nL.js";import"./DebouncedInput-BafFXiut.js";import"./snakeCase-BDJPMNX4.js";import"./_createCompounder-BZl5m4SO.js";const I=o.memo(({label:l,remaining:n,progress:t})=>{if(n&&n>0){const a=Math.floor(n/3600),i=Math.floor(n/60)%60,m=Math.floor(n%60),r=a>0,b=i>0;return s.jsxs(s.Fragment,{children:[s.jsx("progress",{className:"progress w-48",value:t,max:"100"}),s.jsxs("div",{children:[l," ",`${r?`${a}:`:""}${b?`${i}:`:""}${m}`]})]})}return s.jsx("progress",{className:"progress w-48",value:t,max:"100"})}),V=o.memo(l=>{const{t:n}=f(["ota","common"]),{device:t,state:a,onCheckClick:i,onUpdateClick:m,onScheduleClick:r,onUnscheduleClick:b}=l;return a==null||a.state==="idle"?s.jsxs("div",{className:"join join-horizontal",children:[s.jsx(S,{className:"btn btn-square btn-outline btn-primary join-item",onClick:i,item:t.ieee_address,title:n("check"),children:s.jsx(u,{icon:F})}),s.jsx(h,{className:"btn btn-square btn-outline btn-info join-item",onClick:r,item:t.ieee_address,title:n("schedule"),modalDescription:n("schedule_info"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:g})})]}):a.state==="updating"?s.jsx(I,{label:n("remaining_time"),remaining:a.remaining,progress:a.progress}):s.jsx("div",{className:"join join-horizontal",children:a.state==="available"?s.jsxs(s.Fragment,{children:[s.jsx(h,{className:"btn btn-square btn-outline btn-error join-item",onClick:m,item:t.ieee_address,title:n("update"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:q})}),s.jsx(h,{className:"btn btn-square btn-outline btn-info join-item",onClick:r,item:t.ieee_address,title:n("schedule"),modalDescription:n("schedule_info"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:g})})]}):a.state==="scheduled"?s.jsx(h,{className:"btn btn-square btn-outline btn-error join-item",onClick:b,item:t.ieee_address,title:n("unschedule"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:M})}):s.jsxs(s.Fragment,{children:[s.jsx(S,{className:"btn btn-square btn-outline btn-primary join-item",onClick:i,item:t.ieee_address,title:n("check"),children:s.jsx(u,{icon:F})}),s.jsx(h,{className:"btn btn-square btn-outline btn-info join-item",onClick:r,item:t.ieee_address,title:n("schedule"),modalDescription:n("schedule_info"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:g})})]})})}),L=o.memo(l=>{const{t:n}=f("ota"),t=o.useMemo(()=>{if(l.version==null||l.version<0)return;const a=l.version.toString(16).padStart(8,"0"),i=`${a[0]}.${a[1]}`,m=a.slice(2,4),r=`${a[4]}.${a[5]}`,b=a.slice(6);return[i,m,r,b]},[l.version]);return t===void 0?s.jsx("span",{children:"N/A"}):s.jsxs("div",{className:"join join-vertical",children:[s.jsxs("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default join-item w-full",children:[n("app"),": ",`${t[0]} build ${t[1]}`]}),s.jsxs("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default join-item w-full",children:[n("stack"),": ",`${t[2]} build ${t[3]}`]})]})}),K=o.memo(({device:l})=>{const{t:n}=f("zigbee");let t="https://github.com/Koenkk/zigbee-OTA/releases";const a=l.software_build_id||n("unknown");switch(l?.definition?.vendor){case"IKEA":t="https://ww8.ikea.com/ikeahomesmart/releasenotes/releasenotes.html";break;case"Inovelli":t="https://help.inovelli.com/en/articles/8503774-what-is-the-latest-firmware-version-for-your-device#h_b74c1e7dc6";break;case"Philips":t=`https://www.philips-hue.com/en-us/support/release-notes/${l.definition?.exposes.find(i=>i.type==="light")?"lamps":"accessories"}`;break;case"Ubisys":t=`https://www.ubisys.de/en/support/firmware/change-logs-${l.definition?.model?.replace(/[-]/g,"").toLowerCase()}/`;break}return s.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:t,className:"link link-hover",children:a})});function te(){const l=$(e=>e.devices),n=$(e=>e.deviceStates),{sendMessage:t}=o.useContext(z),{t:a}=f(["ota","zigbee","common"]),[i,m]=o.useState([]),[r,b]=o.useState(!1);o.useEffect(()=>{m([])},[l]);const p=o.useMemo(()=>{const e=[];for(const c of l)if(c.definition?.supports_ota&&!c.disabled){const d=n[c.friendly_name]??{};(!r||d.update?.state==="available")&&e.push({device:c,state:d.update,batteryState:c.power_source==="Battery"?{batteryPercent:d.battery,batteryState:d.battery_state,batteryLow:d.battery_low}:void 0,selected:i.includes(c.ieee_address)})}return e},[n,l,i,r]),x=o.useCallback(e=>{e.target.checked?m(p.map(({device:c})=>c.ieee_address)):m([])},[p]),j=o.useCallback((e,c)=>{m(c?[...i,e.ieee_address]:i.filter(d=>d!==e.ieee_address))},[i]),k=o.useCallback(async()=>{await Promise.allSettled(i.map(e=>t("bridge/request/device/ota_update/check",{id:e})))},[t,i]),_=o.useCallback(async()=>{await Promise.allSettled(i.map(e=>t("bridge/request/device/ota_update/update",{id:e})))},[t,i]),C=o.useCallback(async e=>await t("bridge/request/device/ota_update/check",{id:e}),[t]),v=o.useCallback(async e=>await t("bridge/request/device/ota_update/update",{id:e}),[t]),w=o.useCallback(async e=>await t("bridge/request/device/ota_update/schedule",{id:e}),[t]),y=o.useCallback(async e=>await t("bridge/request/device/ota_update/unschedule",{id:e}),[t]),N=o.useCallback(e=>{b(e.target.checked)},[]),D=o.useMemo(()=>[{id:"select",header:()=>s.jsx("label",{children:s.jsx("input",{type:"checkbox",className:"checkbox",onChange:x,defaultChecked:i.length===p.length})}),accessorFn:()=>"",cell:({row:{original:{device:e,selected:c}}})=>s.jsx("label",{children:s.jsx("input",{type:"checkbox",className:"checkbox",onChange:d=>j(e,d.target.checked),defaultChecked:c})}),enableColumnFilter:!1,enableSorting:!1},{id:"friendly_name",header:a("common:friendly_name"),accessorFn:({device:e})=>[e.friendly_name,e.description,e.ieee_address].join(" "),cell:({row:{original:{device:e,state:c,batteryState:d}}})=>s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"avatar",children:s.jsx("div",{className:"h-11 w-11",style:{overflow:"visible"},children:s.jsx(U,{device:e,otaState:c?.state,disabled:!1})})}),s.jsxs("div",{className:"flex-grow flex flex-col",children:[s.jsxs(A,{to:`/device/${e.ieee_address}/info`,className:"link link-hover",children:[e.friendly_name,e.friendly_name!==e.ieee_address?` (${e.ieee_address})`:""]}),e.description&&s.jsx("div",{className:"max-w-3xs text-xs opacity-50 truncate",title:e.description,children:e.description}),s.jsxs("div",{className:"flex flex-row gap-1 mt-0.5 items-center",children:[s.jsxs("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default",title:a("zigbee:firmware_id"),children:[s.jsx(u,{icon:O}),s.jsx(K,{device:e}),e.date_code?s.jsxs("span",{title:a("zigbee:firmware_build_date"),children:[" (",e.date_code,")"]}):void 0]}),d&&s.jsx("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default",children:s.jsx(E,{device:e,...d})})]})]})]})},{id:"model",header:a("zigbee:model"),accessorFn:({device:e})=>[e.definition?.model,e.model_id,e.definition?.vendor,e.manufacturer].join(" "),cell:({row:{original:{device:e}}})=>s.jsxs(s.Fragment,{children:[s.jsx(R,{device:e}),s.jsx("div",{children:s.jsx("span",{className:"badge badge-sm badge-ghost",title:a("zigbee:manufacturer"),children:s.jsx(T,{device:e})})})]})},{id:"firmware_version",header:a("firmware_version"),accessorFn:({state:e})=>e?.installed_version,cell:({row:{original:{state:e}}})=>s.jsx(L,{version:e?.installed_version}),enableColumnFilter:!1},{id:"available_firmware_version",header:a("available_firmware_version"),accessorFn:({state:e})=>e?.latest_version,cell:({row:{original:{state:e}}})=>s.jsx(L,{version:e?.latest_version}),enableColumnFilter:!1},{id:"actions",header:()=>s.jsxs(s.Fragment,{children:[s.jsx(P,{name:"available_only",detail:a("common:available_only"),onChange:N,checked:r,className:"checkbox checkbox-sm"}),s.jsxs("div",{className:"join join-horizontal",children:[s.jsx(h,{className:"btn btn-outline btn-error btn-xs join-item",onClick:k,title:a("check_selected"),modalDescription:a("common:dialog_confirmation_prompt"),modalCancelLabel:a("common:cancel"),disabled:i.length===0,children:a("check_selected")}),s.jsx(h,{className:"btn btn-outline btn-error btn-xs join-item",onClick:_,title:a("update_selected"),modalDescription:a("update_selected_info"),modalCancelLabel:a("common:cancel"),disabled:i.length===0,children:a("update_selected")})]})]}),accessorFn:({state:e})=>e?.state,cell:({row:{original:{device:e,state:c}}})=>s.jsx(V,{device:e,state:c,onCheckClick:C,onUpdateClick:v,onScheduleClick:w,onUnscheduleClick:y}),enableSorting:!1,enableColumnFilter:!1}],[i.length,p.length,r,x,j,k,_,C,v,w,y,N,a]);return s.jsx(B,{id:"ota-devices",columns:D,data:p})}export{te as default};
Binary file
@@ -1 +0,0 @@
1
- import{r as d,b as j,j as t,F as o,bN as g,bK as E,bO as B,bn as P,bD as f,bE as k,bF as w,bG as F,bx as m}from"./index-EQzdH3Y4.js";import{s as y}from"./snakeCase-BDJPMNX4.js";const G=d.memo(x=>{const{device:u,batteryPercent:a,batteryState:b,batteryLow:c,showLevel:h,...n}=x,{t:i}=j("zigbee");let s;switch(u?.power_source&&(s=u.power_source),s){case"Battery":{let p=i("battery"),r="",e=f,l=!1;if(a!=null)r=`${a}%`,a>=85?e=f:a>=65?e=k:a>=40?e=w:a>=20?e=F:(e=m,l=!0);else if(b!=null)switch(r=b,b){case"high":e=f;break;case"medium":e=w;break;case"low":e=m,l=!0;break}else c!=null&&(r=c?"low":"ok",e=c?m:f);return c===!0&&(l=!0),r!==""&&(p+=`, ${i("power_level")}: ${r}`),t.jsxs("span",{className:l?"text-error":"",children:[t.jsx(o,{icon:e,fade:l,title:p,...n}),h&&t.jsx("span",{className:"ps-2",children:r})]})}case"Mains (single phase)":case"Mains (3 phase)":case"DC Source":return t.jsx(o,{icon:P,title:i(y(s)),...n});case"Emergency mains and transfer switch":case"Emergency mains constantly powered":return t.jsx(o,{icon:B,title:i(y(s)),...n});default:return u?.type==="GreenPower"?t.jsx(o,{icon:g,title:"Green",...n}):t.jsx(o,{icon:E,title:s?i(y(s)):void 0,...n})}});export{G as P};
@@ -1 +0,0 @@
1
- import{a,j as e}from"./index-EQzdH3Y4.js";import{A as s,R as m}from"./RecallRemove-DMAg3dfh.js";import"./envs-DFlyG_dH.js";import"./DashboardFeatureWrapper-thmNrJlL.js";import"./Feature-DFOLPdqE.js";import"./DisplayValue-tdl7RHar.js";import"./_createCompounder-BZl5m4SO.js";import"./InputField-B0_X2eEk.js";import"./SelectField-BnBBz4eT.js";function j(t){const i=a(r=>r.deviceStates[t.device.friendly_name]??{});return e.jsxs("div",{className:"flex flex-row flex-wrap justify-around items-start gap-3 my-2",children:[e.jsx("div",{children:e.jsx(s,{target:t.device,deviceState:i})}),e.jsx("div",{children:e.jsx(m,{target:t.device,deviceState:i})})]})}export{j as default};
Binary file
Binary file
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./About-DWd-FRHV.js","./index-EQzdH3Y4.js","./envs-DFlyG_dH.js","./index-sQ1gk-WC.css","./snakeCase-BDJPMNX4.js","./_createCompounder-BZl5m4SO.js","./Health-C6KCb66Y.js","./DeviceImage-DpiYs_Yi.js","./index-HxBDf2nL.js","./Table-CEsZoDJr.js","./DebouncedInput-BafFXiut.js","./format-CJ06xbdM.js","./Frontend-DK8RSLa_.js","./CheckboxField-BnGINJ_L.js","./InputField-B0_X2eEk.js","./NumberField-BreLavc2.js","./SelectField-BnBBz4eT.js","./Settings-oOf-PU-v.js","./SettingsList-GhU74csM.js","./Tools-DQSEnJ2x.js","./Bridge-D_vSQVtL.js","./DevConsole-CbIcjK1p.js","./TextareaField-CyY_oPqW.js","./Donate-UTTky4SH.js"])))=>i.map(i=>d[i]);
2
- import{u,d as _,b as d,r as a,j as s,N as o,F as n,e as b,a9 as x,aa as j,k as g,ab as p,ac as v,q as N,ad as T,_ as r}from"./index-EQzdH3Y4.js";import"./envs-DFlyG_dH.js";const h=a.lazy(async()=>await r(()=>import("./About-DWd-FRHV.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)),f=a.lazy(async()=>await r(()=>import("./Health-C6KCb66Y.js"),__vite__mapDeps([6,1,2,3,7,8,9,10,11]),import.meta.url)),E=a.lazy(async()=>await r(()=>import("./Frontend-DK8RSLa_.js"),__vite__mapDeps([12,1,2,3,13,14,15,16]),import.meta.url)),y=a.lazy(async()=>await r(()=>import("./Settings-oOf-PU-v.js"),__vite__mapDeps([17,1,2,3,18,13,14,15,16]),import.meta.url)),P=a.lazy(async()=>await r(()=>import("./Tools-DQSEnJ2x.js"),__vite__mapDeps([19,1,2,3,14,8]),import.meta.url)),A=a.lazy(async()=>await r(()=>import("./Bridge-D_vSQVtL.js"),__vite__mapDeps([20,1,2,3]),import.meta.url)),D=a.lazy(async()=>await r(()=>import("./DevConsole-CbIcjK1p.js"),__vite__mapDeps([21,1,2,3,14,16,22]),import.meta.url)),w=a.lazy(async()=>await r(()=>import("./Donate-UTTky4SH.js"),__vite__mapDeps([23,1,2,3]),import.meta.url));function R(){const c=u(),{tab:i}=_(),{t}=d(["settings","navbar"]);a.useEffect(()=>{i||c("/settings/about",{replace:!0})},[i,c]);const l=a.useMemo(()=>{switch(i){case"about":return s.jsx(h,{});case"health":return s.jsx(f,{});case"frontend":return s.jsx(E,{});case"settings":return s.jsx(y,{});case"tools":return s.jsx(P,{});case"bridge":return s.jsx(A,{});case"dev-console":return s.jsx(D,{});case"donate":return s.jsx(w,{})}return""},[i]),e=({isActive:m})=>m?"tab tab-active":"tab";return s.jsxs("div",{className:"tabs tabs-border",children:[s.jsxs(o,{to:"/settings/about",className:e,children:[s.jsx(n,{icon:b,className:"me-2"}),t("about")]}),s.jsxs(o,{to:"/settings/health",className:e,children:[s.jsx(n,{icon:x,className:"me-2"}),t("health")]}),s.jsxs(o,{to:"/settings/frontend",className:e,children:[s.jsx(n,{icon:j,className:"me-2"}),t("frontend")]}),s.jsxs(o,{to:"/settings/settings",className:e,children:[s.jsx(n,{icon:g,className:"me-2"}),t("settings")]}),s.jsxs(o,{to:"/settings/tools",className:e,children:[s.jsx(n,{icon:p,className:"me-2"}),t("tools")]}),s.jsxs(o,{to:"/settings/bridge",className:e,children:[s.jsx(n,{icon:v,className:"me-2"}),t("bridge")]}),s.jsxs(o,{to:"/settings/dev-console",className:e,children:[s.jsx(n,{icon:N,className:"me-2"}),t("dev_console")]}),s.jsxs(o,{to:"/settings/donate",className:e,children:[s.jsx(n,{icon:T,className:"me-2"}),t("donate")]}),s.jsx("div",{className:"tab-content block h-full bg-base-100 p-3",children:l})]})}export{R as default};
@@ -1 +0,0 @@
1
- import{a as o,j as l}from"./index-EQzdH3Y4.js";import"./envs-DFlyG_dH.js";function u(e){const{device:a}=e,s=o(r=>r.deviceStates[a.friendly_name]??{}),t=JSON.stringify(s,null,4),n=Math.max(10,(t.match(/\n/g)||"").length+1);return l.jsx("textarea",{className:"textarea w-full",rows:n,readOnly:!0,value:t})}export{u as default};
Binary file
Binary file
Binary file
@@ -1 +0,0 @@
1
- import{r,W as y,C as _,a as o,b as C,Y as I,Z as P,$ as w,j as s,L as N,B as m,F as b,a0 as k,a1 as F,a2 as T}from"./index-EQzdH3Y4.js";import{T as v}from"./Table-CEsZoDJr.js";import"./envs-DFlyG_dH.js";import"./DebouncedInput-BafFXiut.js";function A(){const{sendMessage:i}=r.useContext(y),a=_(),x=o(e=>e.touchlinkDevices),d=o(e=>e.devices),c=o(e=>e.touchlinkIdentifyInProgress),l=o(e=>e.touchlinkResetInProgress),h=o(e=>e.touchlinkScanInProgress),u=c||l,{t:n}=C(["touchlink","common","zigbee"]),p=r.useCallback(async()=>{a(I({inProgress:!0,devices:[]})),await i("bridge/request/touchlink/scan","")},[i,a]),f=r.useCallback(async e=>{a(P(!0)),await i("bridge/request/touchlink/identify",e)},[i,a]),g=r.useCallback(async e=>{a(w(!0)),await i("bridge/request/touchlink/factory_reset",e)},[i,a]),j=r.useMemo(()=>[{id:"ieee_address",header:n("zigbee:ieee_address"),accessorFn:e=>e.ieee_address,cell:({row:{original:e}})=>d.find(t=>t.ieee_address===e.ieee_address)?s.jsx(N,{to:`/device/${e.ieee_address}/info`,className:"link link-hover",children:e.ieee_address}):e.ieee_address,sortingFn:(e,t)=>e.original.ieee_address.localeCompare(t.original.ieee_address)},{id:"friendly_name",header:n("common:friendly_name"),accessorFn:e=>d.find(t=>t.ieee_address===e.ieee_address)?.friendly_name},{id:"channel",header:n("zigbee:channel"),accessorFn:e=>e.channel},{id:"actions",header:"",cell:({row:{original:e}})=>s.jsxs("div",{className:"join join-horizontal",children:[s.jsx(m,{disabled:u,item:e,title:n("identify"),className:"btn btn-square btn-outline btn-primary join-item",onClick:f,children:s.jsx(b,{icon:c?k:F,spin:c})}),s.jsx(m,{disabled:u,item:e,title:n("factory_reset"),className:"btn btn-square btn-outline btn-error join-item",onClick:g,children:s.jsx(b,{icon:l?k:T,spin:l})})]}),enableSorting:!1,enableColumnFilter:!1}],[c,l,u,d,n,f,g]);return h?s.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:s.jsx("span",{className:"loading loading-infinity loading-xl"})}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"flex flex-row flex-wrap justify-center items-center gap-2 mb-3",children:s.jsx(m,{className:"btn btn-primary",onClick:p,disabled:h,children:n("scan")})}),s.jsx(v,{id:"touchlink-devices",columns:j,data:x})]})}export{A as default};