zigbee2mqtt-windfront 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/dist/assets/About-CsN4GzvF.js +1 -0
  2. package/dist/assets/About-CsN4GzvF.js.br +0 -0
  3. package/dist/assets/{Availability-Dg28cVsy.js → Availability-DxRGSmh6.js} +1 -1
  4. package/dist/assets/Availability-DxRGSmh6.js.br +0 -0
  5. package/dist/assets/{Bind-Dj7BlJ9c.js → Bind-D5soDk_7.js} +1 -1
  6. package/dist/assets/Bind-D5soDk_7.js.br +0 -0
  7. package/dist/assets/{Bridge-Dg4Q3BhD.js → Bridge-uKtdZHp4.js} +1 -1
  8. package/dist/assets/Bridge-uKtdZHp4.js.br +0 -0
  9. package/dist/assets/{CheckboxField-BhwpagjA.js → CheckboxField-B0ZAooGT.js} +1 -1
  10. package/dist/assets/CheckboxField-B0ZAooGT.js.br +0 -0
  11. package/dist/assets/{ClusterSinglePicker-BavLYJxh.js → ClusterSinglePicker-Cz6fnglh.js} +1 -1
  12. package/dist/assets/ClusterSinglePicker-Cz6fnglh.js.br +0 -0
  13. package/dist/assets/{Clusters-PG0HopAK.js → Clusters-BnHOJn4e.js} +1 -1
  14. package/dist/assets/Clusters-BnHOJn4e.js.br +0 -0
  15. package/dist/assets/{Dashboard-D1wWXNU0.js → Dashboard-CPU9Dlfq.js} +1 -1
  16. package/dist/assets/Dashboard-CPU9Dlfq.js.br +0 -0
  17. package/dist/assets/{DashboardFeatureWrapper-QO-XFtKk.js → DashboardFeatureWrapper-CvTRlO7L.js} +1 -1
  18. package/dist/assets/DashboardFeatureWrapper-CvTRlO7L.js.br +0 -0
  19. package/dist/assets/{DebouncedInput-jeSVRz3c.js → DebouncedInput-CQn1amHY.js} +1 -1
  20. package/dist/assets/DebouncedInput-CQn1amHY.js.br +0 -0
  21. package/dist/assets/{DevConsole-CRKukHFU.js → DevConsole-BMsuo5jq.js} +1 -1
  22. package/dist/assets/DevConsole-BMsuo5jq.js.br +0 -0
  23. package/dist/assets/{DevConsole-DeRbEIDK.js → DevConsole-CjMvBn3F.js} +1 -1
  24. package/dist/assets/DevConsole-CjMvBn3F.js.br +0 -0
  25. package/dist/assets/{DeviceCard-D2ifb9S1.js → DeviceCard-CqjKMuGs.js} +1 -1
  26. package/dist/assets/DeviceCard-CqjKMuGs.js.br +0 -0
  27. package/dist/assets/{DeviceControlEditName-D6ss-GnK.js → DeviceControlEditName-BwoBZKij.js} +1 -1
  28. package/dist/assets/DeviceControlEditName-BwoBZKij.js.br +0 -0
  29. package/dist/assets/{DeviceImage-CGx5yo8m.js → DeviceImage-D1eMVw0z.js} +1 -1
  30. package/dist/assets/DeviceImage-D1eMVw0z.js.br +0 -0
  31. package/dist/assets/{DeviceInfo-Ll9Bxn4L.js → DeviceInfo-DHlCOKM3.js} +1 -1
  32. package/dist/assets/DeviceInfo-DHlCOKM3.js.br +0 -0
  33. package/dist/assets/{DevicePage-BTarwyEH.js → DevicePage-B2tXPfXy.js} +2 -2
  34. package/dist/assets/DevicePage-B2tXPfXy.js.br +0 -0
  35. package/dist/assets/{DevicePicker-DIWryjuN.js → DevicePicker-BSj7s6Os.js} +1 -1
  36. package/dist/assets/DevicePicker-BSj7s6Os.js.br +0 -0
  37. package/dist/assets/{DeviceSettings-B8rSL_p0.js → DeviceSettings-BI4caBIt.js} +1 -1
  38. package/dist/assets/DeviceSettings-BI4caBIt.js.br +0 -0
  39. package/dist/assets/{DeviceSpecificSettings-DRSJ44yr.js → DeviceSpecificSettings-DKENaBOD.js} +1 -1
  40. package/dist/assets/DeviceSpecificSettings-DKENaBOD.js.br +0 -0
  41. package/dist/assets/{Devices-BXMoCKuc.js → Devices-CNUs_WDM.js} +1 -1
  42. package/dist/assets/Devices-CNUs_WDM.js.br +0 -0
  43. package/dist/assets/{DevicesPage-D4M96fmP.js → DevicesPage-CltsJHhz.js} +1 -1
  44. package/dist/assets/DevicesPage-CltsJHhz.js.br +0 -0
  45. package/dist/assets/{DisplayValue-y4u-p3TF.js → DisplayValue-DF3KVUYK.js} +1 -1
  46. package/dist/assets/DisplayValue-DF3KVUYK.js.br +0 -0
  47. package/dist/assets/{Donate-Ceq-2-mP.js → Donate-J54tmjMR.js} +1 -1
  48. package/dist/assets/Donate-J54tmjMR.js.br +0 -0
  49. package/dist/assets/{EndpointPicker-Cni8eLro.js → EndpointPicker-QBnwwpG7.js} +1 -1
  50. package/dist/assets/EndpointPicker-QBnwwpG7.js.br +2 -0
  51. package/dist/assets/{Exposes-CVaHXwu-.js → Exposes-DB1nUv-y.js} +1 -1
  52. package/dist/assets/Exposes-DB1nUv-y.js.br +2 -0
  53. package/dist/assets/{Feature-B18PTY7Z.js → Feature-DXpEIH6i.js} +1 -1
  54. package/dist/assets/Feature-DXpEIH6i.js.br +0 -0
  55. package/dist/assets/{Frontend-Bw0vB4aZ.js → Frontend-DbI75_sQ.js} +1 -1
  56. package/dist/assets/Frontend-DbI75_sQ.js.br +0 -0
  57. package/dist/assets/{GroupPage-SyuMBjnt.js → GroupPage-C-uGQ967.js} +2 -2
  58. package/dist/assets/GroupPage-C-uGQ967.js.br +0 -0
  59. package/dist/assets/{GroupSettings-Wbczyt9u.js → GroupSettings-BrVKINoM.js} +1 -1
  60. package/dist/assets/GroupSettings-BrVKINoM.js.br +0 -0
  61. package/dist/assets/{Groups-C16FRyjr.js → Groups-CwWwtqiu.js} +1 -1
  62. package/dist/assets/Groups-CwWwtqiu.js.br +0 -0
  63. package/dist/assets/{GroupsPage-DZiiSPYf.js → GroupsPage-DfLXjejW.js} +1 -1
  64. package/dist/assets/GroupsPage-DfLXjejW.js.br +0 -0
  65. package/dist/assets/{Health-D0P1xz_-.js → Health-BHwQBdn9.js} +1 -1
  66. package/dist/assets/Health-BHwQBdn9.js.br +0 -0
  67. package/dist/assets/{HomePage-DG90gg1s.js → HomePage-DAbwX6AM.js} +1 -1
  68. package/dist/assets/HomePage-DAbwX6AM.js.br +0 -0
  69. package/dist/assets/{InputField-E2g5qJCn.js → InputField-DwVHyBbK.js} +1 -1
  70. package/dist/assets/InputField-DwVHyBbK.js.br +0 -0
  71. package/dist/assets/{LastSeen-Tt-X3bir.js → LastSeen-Dzc_PuKE.js} +1 -1
  72. package/dist/assets/LastSeen-Dzc_PuKE.js.br +0 -0
  73. package/dist/assets/{LogsPage-CWjf1H8Z.js → LogsPage-DzlWQ0Qw.js} +1 -1
  74. package/dist/assets/LogsPage-DzlWQ0Qw.js.br +0 -0
  75. package/dist/assets/{Lqi-Bexjv2VI.js → Lqi-YSPJvreQ.js} +1 -1
  76. package/dist/assets/Lqi-YSPJvreQ.js.br +0 -0
  77. package/dist/assets/{NetworkPage-a2O4oSwP.js → NetworkPage-BeS7YkCJ.js} +2 -2
  78. package/dist/assets/NetworkPage-BeS7YkCJ.js.br +0 -0
  79. package/dist/assets/{NumberField-CH6-YRbT.js → NumberField-BGsY1mZs.js} +1 -1
  80. package/dist/assets/NumberField-BGsY1mZs.js.br +0 -0
  81. package/dist/assets/OtaPage-BCVRElfT.js +1 -0
  82. package/dist/assets/OtaPage-BCVRElfT.js.br +0 -0
  83. package/dist/assets/{PowerSource-M8I2qqUm.js → PowerSource-o1vFxO_3.js} +1 -1
  84. package/dist/assets/PowerSource-o1vFxO_3.js.br +0 -0
  85. package/dist/assets/{RawNetworkData-ZdR_BdBV.js → RawNetworkData-CeSDwrpo.js} +1 -1
  86. package/dist/assets/RawNetworkData-CeSDwrpo.js.br +0 -0
  87. package/dist/assets/{RawNetworkMap-DIse-aug.js → RawNetworkMap-CGARBCHA.js} +1 -1
  88. package/dist/assets/RawNetworkMap-CGARBCHA.js.br +0 -0
  89. package/dist/assets/{RecallRemove-BT61_xFm.js → RecallRemove-qhHT3b6Y.js} +1 -1
  90. package/dist/assets/RecallRemove-qhHT3b6Y.js.br +0 -0
  91. package/dist/assets/{Reporting-CUO_xgvP.js → Reporting-qquUW4HQ.js} +1 -1
  92. package/dist/assets/Reporting-qquUW4HQ.js.br +0 -0
  93. package/dist/assets/Scene-CoCPIiDa.js +1 -0
  94. package/dist/assets/Scene-CoCPIiDa.js.br +0 -0
  95. package/dist/assets/{SelectField-CgXiODUe.js → SelectField-DsBhV18y.js} +1 -1
  96. package/dist/assets/SelectField-DsBhV18y.js.br +0 -0
  97. package/dist/assets/{Settings-CwUeWW5z.js → Settings-4wju5kjK.js} +1 -1
  98. package/dist/assets/Settings-4wju5kjK.js.br +0 -0
  99. package/dist/assets/{SettingsList-wPZC4AYF.js → SettingsList-BA676BSd.js} +1 -1
  100. package/dist/assets/SettingsList-BA676BSd.js.br +0 -0
  101. package/dist/assets/{SettingsPage-DQqFAgM7.js → SettingsPage-Cg3VXcPX.js} +2 -2
  102. package/dist/assets/SettingsPage-Cg3VXcPX.js.br +0 -0
  103. package/dist/assets/{State-B0esCQUT.js → State-CDxVFhly.js} +1 -1
  104. package/dist/assets/State-CDxVFhly.js.br +0 -0
  105. package/dist/assets/{Table-CH7yonv3.js → Table-CCXyChbm.js} +1 -1
  106. package/dist/assets/Table-CCXyChbm.js.br +0 -0
  107. package/dist/assets/{TextareaField-DAyUngHz.js → TextareaField-CKk5rFN-.js} +1 -1
  108. package/dist/assets/TextareaField-CKk5rFN-.js.br +0 -0
  109. package/dist/assets/{Tools-BQ5g0Zg_.js → Tools-B-tYRgCW.js} +1 -1
  110. package/dist/assets/Tools-B-tYRgCW.js.br +0 -0
  111. package/dist/assets/{TouchlinkPage-gI3LcGdI.js → TouchlinkPage-Cq33rQxG.js} +1 -1
  112. package/dist/assets/TouchlinkPage-Cq33rQxG.js.br +0 -0
  113. package/dist/assets/{VendorLink-B_MZftSG.js → VendorLink-BDajakAs.js} +1 -1
  114. package/dist/assets/VendorLink-BDajakAs.js.br +0 -0
  115. package/dist/assets/{_createCompounder-HA4t3BbU.js → _createCompounder-D8WZ6ZEG.js} +1 -1
  116. package/dist/assets/_createCompounder-D8WZ6ZEG.js.br +0 -0
  117. package/dist/assets/{format-LeabZw87.js → format-t-kPiPTm.js} +1 -1
  118. package/dist/assets/format-t-kPiPTm.js.br +2 -0
  119. package/dist/assets/index-DgPAmC_w.js +644 -0
  120. package/dist/assets/index-DgPAmC_w.js.br +0 -0
  121. package/dist/assets/{index-CIWfMo3U.js → index-DrTwaLT5.js} +1 -1
  122. package/dist/assets/index-DrTwaLT5.js.br +2 -0
  123. package/dist/assets/{jszip.min-D01WTHXF.js → jszip.min-szgaw0VD.js} +1 -1
  124. package/dist/assets/jszip.min-szgaw0VD.js.br +0 -0
  125. package/dist/assets/snakeCase-qp4IAc5c.js +1 -0
  126. package/dist/assets/snakeCase-qp4IAc5c.js.br +0 -0
  127. package/dist/index.html +1 -1
  128. package/dist/index.html.br +0 -0
  129. package/package.json +6 -6
  130. package/dist/assets/About-Cd5G1nNd.js +0 -1
  131. package/dist/assets/About-Cd5G1nNd.js.br +0 -0
  132. package/dist/assets/Availability-Dg28cVsy.js.br +0 -0
  133. package/dist/assets/Bind-Dj7BlJ9c.js.br +0 -0
  134. package/dist/assets/Bridge-Dg4Q3BhD.js.br +0 -2
  135. package/dist/assets/CheckboxField-BhwpagjA.js.br +0 -0
  136. package/dist/assets/ClusterSinglePicker-BavLYJxh.js.br +0 -0
  137. package/dist/assets/Clusters-PG0HopAK.js.br +0 -0
  138. package/dist/assets/Dashboard-D1wWXNU0.js.br +0 -0
  139. package/dist/assets/DashboardFeatureWrapper-QO-XFtKk.js.br +0 -0
  140. package/dist/assets/DebouncedInput-jeSVRz3c.js.br +0 -0
  141. package/dist/assets/DevConsole-CRKukHFU.js.br +0 -0
  142. package/dist/assets/DevConsole-DeRbEIDK.js.br +0 -0
  143. package/dist/assets/DeviceCard-D2ifb9S1.js.br +0 -0
  144. package/dist/assets/DeviceControlEditName-D6ss-GnK.js.br +0 -0
  145. package/dist/assets/DeviceImage-CGx5yo8m.js.br +0 -0
  146. package/dist/assets/DeviceInfo-Ll9Bxn4L.js.br +0 -0
  147. package/dist/assets/DevicePage-BTarwyEH.js.br +0 -0
  148. package/dist/assets/DevicePicker-DIWryjuN.js.br +0 -0
  149. package/dist/assets/DeviceSettings-B8rSL_p0.js.br +0 -0
  150. package/dist/assets/DeviceSpecificSettings-DRSJ44yr.js.br +0 -0
  151. package/dist/assets/Devices-BXMoCKuc.js.br +0 -0
  152. package/dist/assets/DevicesPage-D4M96fmP.js.br +0 -0
  153. package/dist/assets/DisplayValue-y4u-p3TF.js.br +0 -0
  154. package/dist/assets/Donate-Ceq-2-mP.js.br +0 -0
  155. package/dist/assets/EndpointPicker-Cni8eLro.js.br +0 -0
  156. package/dist/assets/Exposes-CVaHXwu-.js.br +0 -0
  157. package/dist/assets/Feature-B18PTY7Z.js.br +0 -0
  158. package/dist/assets/Frontend-Bw0vB4aZ.js.br +0 -0
  159. package/dist/assets/GroupPage-SyuMBjnt.js.br +0 -0
  160. package/dist/assets/GroupSettings-Wbczyt9u.js.br +0 -0
  161. package/dist/assets/Groups-C16FRyjr.js.br +0 -0
  162. package/dist/assets/GroupsPage-DZiiSPYf.js.br +0 -0
  163. package/dist/assets/Health-D0P1xz_-.js.br +0 -0
  164. package/dist/assets/HomePage-DG90gg1s.js.br +0 -0
  165. package/dist/assets/InputField-E2g5qJCn.js.br +0 -0
  166. package/dist/assets/LastSeen-Tt-X3bir.js.br +0 -0
  167. package/dist/assets/LogsPage-CWjf1H8Z.js.br +0 -0
  168. package/dist/assets/Lqi-Bexjv2VI.js.br +0 -0
  169. package/dist/assets/NetworkPage-a2O4oSwP.js.br +0 -0
  170. package/dist/assets/NumberField-CH6-YRbT.js.br +0 -0
  171. package/dist/assets/OtaPage-j_Bw2-GQ.js +0 -1
  172. package/dist/assets/OtaPage-j_Bw2-GQ.js.br +0 -0
  173. package/dist/assets/PowerSource-M8I2qqUm.js.br +0 -0
  174. package/dist/assets/RawNetworkData-ZdR_BdBV.js.br +0 -0
  175. package/dist/assets/RawNetworkMap-DIse-aug.js.br +0 -0
  176. package/dist/assets/RecallRemove-BT61_xFm.js.br +0 -0
  177. package/dist/assets/Reporting-CUO_xgvP.js.br +0 -0
  178. package/dist/assets/Scene-C7Y19gU0.js +0 -1
  179. package/dist/assets/Scene-C7Y19gU0.js.br +0 -0
  180. package/dist/assets/SelectField-CgXiODUe.js.br +0 -0
  181. package/dist/assets/Settings-CwUeWW5z.js.br +0 -0
  182. package/dist/assets/SettingsList-wPZC4AYF.js.br +0 -0
  183. package/dist/assets/SettingsPage-DQqFAgM7.js.br +0 -0
  184. package/dist/assets/State-B0esCQUT.js.br +0 -2
  185. package/dist/assets/Table-CH7yonv3.js.br +0 -0
  186. package/dist/assets/TextareaField-DAyUngHz.js.br +0 -0
  187. package/dist/assets/Tools-BQ5g0Zg_.js.br +0 -0
  188. package/dist/assets/TouchlinkPage-gI3LcGdI.js.br +0 -0
  189. package/dist/assets/VendorLink-B_MZftSG.js.br +0 -0
  190. package/dist/assets/_createCompounder-HA4t3BbU.js.br +0 -0
  191. package/dist/assets/format-LeabZw87.js.br +0 -0
  192. package/dist/assets/index-BeDhuS24.js +0 -635
  193. package/dist/assets/index-BeDhuS24.js.br +0 -0
  194. package/dist/assets/index-CIWfMo3U.js.br +0 -0
  195. package/dist/assets/jszip.min-D01WTHXF.js.br +0 -0
  196. package/dist/assets/snakeCase-DF3cbatb.js +0 -1
  197. package/dist/assets/snakeCase-DF3cbatb.js.br +0 -0
Binary file
@@ -1 +1 @@
1
- import{c4 as t}from"./index-BeDhuS24.js";const n=""+new URL("generic-zigbee-device-Dj-9sUqG.png",import.meta.url).href,s="https://www.zigbee2mqtt.io/images/devices/",a=i=>{const e=t(i.definition?.model);return e==="NA"?n:`${s}${e}.png`};export{n as a,a as g};
1
+ import{c4 as t}from"./index-DgPAmC_w.js";const n=""+new URL("generic-zigbee-device-Dj-9sUqG.png",import.meta.url).href,s="https://www.zigbee2mqtt.io/images/devices/",a=i=>{const e=t(i.definition?.model);return e==="NA"?n:`${s}${e}.png`};export{n as a,a as g};
@@ -0,0 +1,2 @@
1
+  e�m��E�j��E��Ȳ����ZTV��������l0�Jc�Ư�nj��� ���O޺�U�ў (���&e�%� �=���k���]!y�Y��|�ϋ��bT�."X`�JH��K7Ϋ
2
+ ��&(wWɀ>\|��8�4�<��8�5��Է������g�œ�tC2*���
@@ -1,4 +1,4 @@
1
- import{ae as bt,af as It}from"./index-BeDhuS24.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{ae as bt,af as It}from"./index-DgPAmC_w.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{af as u}from"./index-DgPAmC_w.js";import{a as C}from"./_createCompounder-D8WZ6ZEG.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 f=i();const k=u(f);export{k as s};
package/dist/index.html CHANGED
@@ -12,7 +12,7 @@
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-BeDhuS24.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-DgPAmC_w.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="./assets/envs-DFlyG_dH.js">
17
17
  <link rel="stylesheet" crossorigin href="./assets/index-sQ1gk-WC.css">
18
18
  </head>
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee2mqtt-windfront",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
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.0.6",
33
+ "@biomejs/biome": "^2.1.2",
34
34
  "@ebay/nice-modal-react": "^1.2.13",
35
35
  "@fortawesome/fontawesome-svg-core": "^6.7.2",
36
36
  "@fortawesome/free-solid-svg-icons": "^6.7.2",
@@ -44,7 +44,7 @@
44
44
  "@types/react": "^19.1.8",
45
45
  "@types/react-dom": "^19.1.6",
46
46
  "@types/ws": "^8.18.1",
47
- "@vitejs/plugin-react": "^4.6.0",
47
+ "@vitejs/plugin-react": "^4.7.0",
48
48
  "@vitest/coverage-v8": "^3.2.4",
49
49
  "daisyui": "^5.0.46",
50
50
  "file-saver": "^2.0.5",
@@ -59,14 +59,14 @@
59
59
  "react-i18next": "^15.6.0",
60
60
  "react-image": "^4.1.0",
61
61
  "react-redux": "^9.2.0",
62
- "react-router": "^7.6.3",
62
+ "react-router": "^7.7.0",
63
63
  "react-use-websocket": "^4.13.0",
64
64
  "reagraph": "^4.25.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.4",
69
+ "vite": "^7.0.5",
70
70
  "vite-plugin-compression2": "^2.2.0",
71
71
  "vitest": "^3.1.2",
72
72
  "ws": "^8.18.3",
@@ -80,4 +80,4 @@
80
80
  "./index.d.ts",
81
81
  "./dist"
82
82
  ]
83
- }
83
+ }
@@ -1 +0,0 @@
1
- import{r as j,b as h,j as e,L as u,a as g}from"./index-BeDhuS24.js";import{s as p}from"./snakeCase-DF3cbatb.js";import"./envs-DFlyG_dH.js";import"./_createCompounder-HA4t3BbU.js";const N="1.3.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/${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
Binary file
@@ -1,2 +0,0 @@
1
- ( !I�9�K�$�x�y�:Q�:�Jы*��������
2
- ����x���'H�0�jiQC���C_����� +���򳓶}{��S�_!'m��{�/�٧��J�6!=a��o�a6b��K@���i���#��P}��X9e=<���:'y�Cń�����H��M$���;��͚�l�n �5����8=0E�
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1 +0,0 @@
1
- import{r as o,b as p,j as s,B as v,F as b,S as N,R as h,T as f,U as $,V as L,a as y,W as D,L as q,X as M}from"./index-BeDhuS24.js";import{D as z}from"./DeviceImage-CGx5yo8m.js";import{T as A}from"./Table-CH7yonv3.js";import{M as U,V as P}from"./VendorLink-B_MZftSG.js";import{P as B}from"./PowerSource-M8I2qqUm.js";import"./envs-DFlyG_dH.js";import"./index-CIWfMo3U.js";import"./DebouncedInput-jeSVRz3c.js";import"./snakeCase-DF3cbatb.js";import"./_createCompounder-HA4t3BbU.js";const R=o.memo(({label:l,remaining:n,progress:t})=>{if(n&&n>0){const a=Math.floor(n/3600),i=Math.floor(n/60)%60,d=Math.floor(n%60),r=a>0,u=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}:`:""}${u?`${i}:`:""}${d}`]})]})}return s.jsx("progress",{className:"progress w-48",value:t,max:"100"})}),O=o.memo(l=>{const{t:n}=p(["ota","common"]),{device:t,state:a,onCheckClick:i,onUpdateClick:d,onScheduleClick:r,onUnscheduleClick:u}=l;return a==null||a.state==="idle"?s.jsxs("div",{className:"join join-horizontal",children:[s.jsx(v,{className:"btn btn-square btn-outline btn-primary join-item",onClick:i,item:t.ieee_address,title:n("check"),children:s.jsx(b,{icon:N})}),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(b,{icon:f})})]}):a.state==="updating"?s.jsx(R,{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:d,item:t.ieee_address,title:n("update"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:s.jsx(b,{icon:$})}),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(b,{icon:f})})]}):a.state==="scheduled"?s.jsx(h,{className:"btn btn-square btn-outline btn-error join-item",onClick:u,item:t.ieee_address,title:n("unschedule"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:s.jsx(b,{icon:L})}):s.jsxs(s.Fragment,{children:[s.jsx(v,{className:"btn btn-square btn-outline btn-primary join-item",onClick:i,item:t.ieee_address,title:n("check"),children:s.jsx(b,{icon:N})}),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(b,{icon:f})})]})})}),S=o.memo(l=>{const{t:n}=p("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]}`,d=a.slice(2,4),r=`${a[4]}.${a[5]}`,u=a.slice(6);return[i,d,r,u]},[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]}`]})]})}),T=o.memo(({device:l})=>{const{t:n}=p("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 Y(){const l=y(e=>e.devices),n=y(e=>e.deviceStates),{sendMessage:t}=o.useContext(D),{t:a}=p(["ota","zigbee","common"]),[i,d]=o.useState([]);o.useEffect(()=>{d([])},[l]);const r=o.useMemo(()=>{const e=[];for(const c of l)if(c.definition?.supports_ota&&!c.disabled){const m=n[c.friendly_name]??{};e.push({device:c,state:m.update,batteryState:c.power_source==="Battery"?{batteryPercent:m.battery,batteryState:m.battery_state,batteryLow:m.battery_low}:void 0,selected:i.includes(c.ieee_address)})}return e},[n,l,i]),u=o.useCallback(e=>{e.target.checked?d(r.map(({device:c})=>c.ieee_address)):d([])},[r]),g=o.useCallback((e,c)=>{d(c?[...i,e.ieee_address]:i.filter(m=>m!==e.ieee_address))},[i]),x=o.useCallback(async()=>{await Promise.allSettled(i.map(e=>t("bridge/request/device/ota_update/check",{id:e})))},[t,i]),j=o.useCallback(async()=>{await Promise.allSettled(i.map(e=>t("bridge/request/device/ota_update/update",{id:e})))},[t,i]),_=o.useCallback(async e=>await t("bridge/request/device/ota_update/check",{id:e}),[t]),k=o.useCallback(async e=>await t("bridge/request/device/ota_update/update",{id:e}),[t]),C=o.useCallback(async e=>await t("bridge/request/device/ota_update/schedule",{id:e}),[t]),w=o.useCallback(async e=>await t("bridge/request/device/ota_update/unschedule",{id:e}),[t]),F=o.useMemo(()=>[{id:"select",header:()=>s.jsx("label",{children:s.jsx("input",{type:"checkbox",className:"checkbox",onChange:u,defaultChecked:i.length===r.length})}),accessorFn:()=>"",cell:({row:{original:{device:e,selected:c}}})=>s.jsx("label",{children:s.jsx("input",{type:"checkbox",className:"checkbox",onChange:m=>g(e,m.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:m}}})=>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(z,{device:e,otaState:c?.state,disabled:!1})})}),s.jsxs("div",{className:"flex-grow flex flex-col",children:[s.jsxs(q,{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(b,{icon:M}),s.jsx(T,{device:e}),e.date_code?s.jsxs("span",{title:a("zigbee:firmware_build_date"),children:[" (",e.date_code,")"]}):void 0]}),m&&s.jsx("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default",children:s.jsx(B,{device:e,...m})})]})]})]})},{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(U,{device:e}),s.jsx("div",{children:s.jsx("span",{className:"badge badge-sm badge-ghost",title:a("zigbee:manufacturer"),children:s.jsx(P,{device:e})})})]})},{id:"firmware_version",header:a("firmware_version"),accessorFn:({state:e})=>e?.installed_version,cell:({row:{original:{state:e}}})=>s.jsx(S,{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(S,{version:e?.latest_version}),enableColumnFilter:!1},{id:"actions",header:()=>s.jsxs("div",{className:"join join-vertical",children:[s.jsx(h,{className:"btn btn-error btn-xs join-item",onClick:x,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-error btn-xs join-item",onClick:j,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(O,{device:e,state:c,onCheckClick:_,onUpdateClick:k,onScheduleClick:C,onUnscheduleClick:w}),enableSorting:!1,enableColumnFilter:!1}],[i.length,r.length,u,g,x,j,_,k,C,w,a]);return s.jsx(A,{id:"ota-devices",columns:F,data:r})}export{Y as default};
Binary file
@@ -1 +0,0 @@
1
- import{a,j as e}from"./index-BeDhuS24.js";import{A as s,R as m}from"./RecallRemove-BT61_xFm.js";import"./envs-DFlyG_dH.js";import"./DashboardFeatureWrapper-QO-XFtKk.js";import"./Feature-B18PTY7Z.js";import"./DisplayValue-y4u-p3TF.js";import"./_createCompounder-HA4t3BbU.js";import"./InputField-E2g5qJCn.js";import"./SelectField-CgXiODUe.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
- E �hn��ƥ��'�;q�>u��*Q�V��^�Ux�7q���.��bVCt\�t����e`�+�����
2
- ���C�O����[�t~�^�̬ <��S�ǩ9�u�WzF ��)7�V:�4�C-��A-��8ANg����{�F�xh7�y#d�c`�;
Binary file
Binary file
Binary file