zigbee2mqtt-windfront 1.5.0 → 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 (204) hide show
  1. package/dist/assets/{About-DHBleH9O.js → About-CjM5WomG.js} +1 -1
  2. package/dist/assets/About-CjM5WomG.js.br +0 -0
  3. package/dist/assets/{Availability-sjnvjDuO.js → Availability-BiumPUeO.js} +1 -1
  4. package/dist/assets/Availability-BiumPUeO.js.br +0 -0
  5. package/dist/assets/{Bind-nfI5jlXq.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-CyrNR_uS.js → CheckboxField-De0QHbsG.js} +1 -1
  10. package/dist/assets/CheckboxField-De0QHbsG.js.br +0 -0
  11. package/dist/assets/{ClusterSinglePicker-BXFCn9zD.js → ClusterSinglePicker-Di8d-bx5.js} +1 -1
  12. package/dist/assets/ClusterSinglePicker-Di8d-bx5.js.br +0 -0
  13. package/dist/assets/{Clusters-BtFTzPFp.js → Clusters-EXal5imX.js} +1 -1
  14. package/dist/assets/Clusters-EXal5imX.js.br +0 -0
  15. package/dist/assets/{Dashboard-BfS01Uur.js → Dashboard-DNnODdKY.js} +1 -1
  16. package/dist/assets/Dashboard-DNnODdKY.js.br +0 -0
  17. package/dist/assets/{DashboardFeatureWrapper-6_9Frx26.js → DashboardFeatureWrapper-TlB_F76s.js} +1 -1
  18. package/dist/assets/DashboardFeatureWrapper-TlB_F76s.js.br +0 -0
  19. package/dist/assets/{DebouncedInput-CoVdkqma.js → DebouncedInput-C8tkXJ7U.js} +1 -1
  20. package/dist/assets/DebouncedInput-C8tkXJ7U.js.br +0 -0
  21. package/dist/assets/{DevConsole-7oD0HfIN.js → DevConsole-BCcxO2rX.js} +1 -1
  22. package/dist/assets/DevConsole-BCcxO2rX.js.br +0 -0
  23. package/dist/assets/{DevConsole-BrvS9SAX.js → DevConsole-YqbpD45I.js} +1 -1
  24. package/dist/assets/DevConsole-YqbpD45I.js.br +0 -0
  25. package/dist/assets/{DeviceCard-XgIVlEVU.js → DeviceCard-C9vw9b6F.js} +1 -1
  26. package/dist/assets/DeviceCard-C9vw9b6F.js.br +0 -0
  27. package/dist/assets/{DeviceControlEditName-gEK3myvD.js → DeviceControlEditName-BObC136U.js} +1 -1
  28. package/dist/assets/DeviceControlEditName-BObC136U.js.br +0 -0
  29. package/dist/assets/{DeviceImage-B9eEwSRN.js → DeviceImage-DshByPQQ.js} +1 -1
  30. package/dist/assets/DeviceImage-DshByPQQ.js.br +0 -0
  31. package/dist/assets/{DeviceInfo-DflAAwJG.js → DeviceInfo-V522QLe7.js} +1 -1
  32. package/dist/assets/DeviceInfo-V522QLe7.js.br +0 -0
  33. package/dist/assets/{DevicePage-BM01IGL6.js → DevicePage-BGbRRkF3.js} +2 -2
  34. package/dist/assets/DevicePage-BGbRRkF3.js.br +0 -0
  35. package/dist/assets/{DevicePicker-C_uNiqNT.js → DevicePicker-DUSP1774.js} +1 -1
  36. package/dist/assets/DevicePicker-DUSP1774.js.br +0 -0
  37. package/dist/assets/{DeviceSettings-D5NT5neR.js → DeviceSettings-BPsmP0OM.js} +1 -1
  38. package/dist/assets/DeviceSettings-BPsmP0OM.js.br +0 -0
  39. package/dist/assets/{DeviceSpecificSettings-BMD6JgXK.js → DeviceSpecificSettings-eDupl8hE.js} +1 -1
  40. package/dist/assets/DeviceSpecificSettings-eDupl8hE.js.br +0 -0
  41. package/dist/assets/{Devices-BqW_D-CT.js → Devices-TK6OH5en.js} +1 -1
  42. package/dist/assets/Devices-TK6OH5en.js.br +0 -0
  43. package/dist/assets/{DevicesPage-DIJE3s4y.js → DevicesPage-DCVj8eRe.js} +1 -1
  44. package/dist/assets/DevicesPage-DCVj8eRe.js.br +0 -0
  45. package/dist/assets/{DisplayValue-Vl_N2Giu.js → DisplayValue-CfKoGI0j.js} +1 -1
  46. package/dist/assets/DisplayValue-CfKoGI0j.js.br +0 -0
  47. package/dist/assets/{Donate-BcOI4cVD.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-C6pB7yzt.js → EndpointPicker-CKjImsmQ.js} +1 -1
  50. package/dist/assets/EndpointPicker-CKjImsmQ.js.br +0 -0
  51. package/dist/assets/{Exposes-BpWcprdI.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-Bcrxr5nM.js → Frontend-V9wqeWFl.js} +1 -1
  56. package/dist/assets/Frontend-V9wqeWFl.js.br +0 -0
  57. package/dist/assets/{GroupPage-DYg2QY_6.js → GroupPage-NDEFGCAo.js} +2 -2
  58. package/dist/assets/GroupPage-NDEFGCAo.js.br +0 -0
  59. package/dist/assets/{GroupSettings-C0adQrvB.js → GroupSettings-C9hZwz-c.js} +1 -1
  60. package/dist/assets/GroupSettings-C9hZwz-c.js.br +0 -0
  61. package/dist/assets/{Groups-CfpUsleW.js → Groups-BBXSMxiv.js} +1 -1
  62. package/dist/assets/Groups-BBXSMxiv.js.br +0 -0
  63. package/dist/assets/{GroupsPage-Bkclk3th.js → GroupsPage-Bjp4L8m8.js} +1 -1
  64. package/dist/assets/GroupsPage-Bjp4L8m8.js.br +0 -0
  65. package/dist/assets/{Health-DvK-VuBS.js → Health-DaYm6W6j.js} +1 -1
  66. package/dist/assets/Health-DaYm6W6j.js.br +0 -0
  67. package/dist/assets/{HomePage-CLLejuw5.js → HomePage-_eUNylSo.js} +1 -1
  68. package/dist/assets/HomePage-_eUNylSo.js.br +0 -0
  69. package/dist/assets/{InputField-B9740sbX.js → InputField-D4dIbfoE.js} +1 -1
  70. package/dist/assets/InputField-D4dIbfoE.js.br +0 -0
  71. package/dist/assets/{Json-Dj89CG8L.js → Json-CL1gHmYN.js} +1 -1
  72. package/dist/assets/Json-CL1gHmYN.js.br +0 -0
  73. package/dist/assets/{LastSeen-Dr5srIn2.js → LastSeen-CUs1Vb2e.js} +1 -1
  74. package/dist/assets/LastSeen-CUs1Vb2e.js.br +0 -0
  75. package/dist/assets/{LogsPage-n4G_zHF4.js → LogsPage-Rn9K7jry.js} +1 -1
  76. package/dist/assets/LogsPage-Rn9K7jry.js.br +0 -0
  77. package/dist/assets/{Lqi-yOA_ZawF.js → Lqi-DXzNBOZd.js} +1 -1
  78. package/dist/assets/Lqi-DXzNBOZd.js.br +0 -0
  79. package/dist/assets/{NetworkPage-B0Dv0N2S.js → NetworkPage-B-vdyAjg.js} +2 -2
  80. package/dist/assets/NetworkPage-B-vdyAjg.js.br +0 -0
  81. package/dist/assets/{NumberField-BbSzIzwW.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-ps1CP_vk.js → PowerSource-DHbzVhTD.js} +1 -1
  86. package/dist/assets/PowerSource-DHbzVhTD.js.br +0 -0
  87. package/dist/assets/{RawNetworkData-BwEIoYbN.js → RawNetworkData-BA35YEdR.js} +1 -1
  88. package/dist/assets/RawNetworkData-BA35YEdR.js.br +0 -0
  89. package/dist/assets/{RawNetworkMap-DzqNpyAN.js → RawNetworkMap-IKJdBkYI.js} +1 -1
  90. package/dist/assets/RawNetworkMap-IKJdBkYI.js.br +0 -0
  91. package/dist/assets/{RecallRemove-DVH8q-yU.js → RecallRemove-UfYYwosz.js} +1 -1
  92. package/dist/assets/RecallRemove-UfYYwosz.js.br +0 -0
  93. package/dist/assets/{Reporting-lNscMbhu.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-DpD6uPGH.js → SelectField-BFSZ1jgU.js} +1 -1
  98. package/dist/assets/SelectField-BFSZ1jgU.js.br +5 -0
  99. package/dist/assets/{Settings-C1eLKv4-.js → Settings-8U06br4I.js} +1 -1
  100. package/dist/assets/Settings-8U06br4I.js.br +0 -0
  101. package/dist/assets/{SettingsList-dNKR5gZZ.js → SettingsList-B5lRPdmf.js} +1 -1
  102. package/dist/assets/SettingsList-B5lRPdmf.js.br +0 -0
  103. package/dist/assets/{SettingsPage-Bs1XPDRk.js → SettingsPage-JGHlT8fi.js} +2 -2
  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-C2_nVs0A.js → Table-BvIilxHn.js} +1 -1
  108. package/dist/assets/Table-BvIilxHn.js.br +0 -0
  109. package/dist/assets/{TextareaField-LvadOq0V.js → TextareaField-DgNWd4bB.js} +1 -1
  110. package/dist/assets/TextareaField-DgNWd4bB.js.br +0 -0
  111. package/dist/assets/{Tools-u0DVD6AM.js → Tools-BQw74JrP.js} +1 -1
  112. package/dist/assets/Tools-BQw74JrP.js.br +0 -0
  113. package/dist/assets/{TouchlinkPage-ozNvpy74.js → TouchlinkPage-Dkq8XRUw.js} +1 -1
  114. package/dist/assets/TouchlinkPage-Dkq8XRUw.js.br +0 -0
  115. package/dist/assets/{VendorLink-DtjI49OQ.js → VendorLink-AmsYWJKL.js} +1 -1
  116. package/dist/assets/VendorLink-AmsYWJKL.js.br +0 -0
  117. package/dist/assets/{_createCompounder-CpOgpCYz.js → _createCompounder-CDCf6N6Y.js} +1 -1
  118. package/dist/assets/_createCompounder-CDCf6N6Y.js.br +0 -0
  119. package/dist/assets/{format-CuwbQz5p.js → format-CFXT8pE2.js} +1 -1
  120. package/dist/assets/format-CFXT8pE2.js.br +0 -0
  121. package/dist/assets/{index-BVDgSJwp.css → index-DGcjwAm-.css} +1 -1
  122. package/dist/assets/index-DGcjwAm-.css.br +0 -0
  123. package/dist/assets/{index-DUzs9ZWF.js → index-Dncflq5A.js} +1 -1
  124. package/dist/assets/index-Dncflq5A.js.br +1 -0
  125. package/dist/assets/{index-B8fX2NvP.js → index-iXNIEDco.js} +6 -6
  126. package/dist/assets/index-iXNIEDco.js.br +0 -0
  127. package/dist/assets/{jszip.min-CbFhbUuH.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 +7 -7
  134. package/dist/assets/About-DHBleH9O.js.br +0 -0
  135. package/dist/assets/Availability-sjnvjDuO.js.br +0 -0
  136. package/dist/assets/Bind-nfI5jlXq.js.br +0 -0
  137. package/dist/assets/Bridge-DklBbqFm.js +0 -1
  138. package/dist/assets/Bridge-DklBbqFm.js.br +0 -0
  139. package/dist/assets/CheckboxField-CyrNR_uS.js.br +0 -0
  140. package/dist/assets/ClusterSinglePicker-BXFCn9zD.js.br +0 -0
  141. package/dist/assets/Clusters-BtFTzPFp.js.br +0 -0
  142. package/dist/assets/Dashboard-BfS01Uur.js.br +0 -0
  143. package/dist/assets/DashboardFeatureWrapper-6_9Frx26.js.br +0 -0
  144. package/dist/assets/DebouncedInput-CoVdkqma.js.br +0 -0
  145. package/dist/assets/DevConsole-7oD0HfIN.js.br +0 -0
  146. package/dist/assets/DevConsole-BrvS9SAX.js.br +0 -0
  147. package/dist/assets/DeviceCard-XgIVlEVU.js.br +0 -5
  148. package/dist/assets/DeviceControlEditName-gEK3myvD.js.br +0 -0
  149. package/dist/assets/DeviceImage-B9eEwSRN.js.br +0 -0
  150. package/dist/assets/DeviceInfo-DflAAwJG.js.br +0 -0
  151. package/dist/assets/DevicePage-BM01IGL6.js.br +0 -0
  152. package/dist/assets/DevicePicker-C_uNiqNT.js.br +0 -0
  153. package/dist/assets/DeviceSettings-D5NT5neR.js.br +0 -0
  154. package/dist/assets/DeviceSpecificSettings-BMD6JgXK.js.br +0 -0
  155. package/dist/assets/Devices-BqW_D-CT.js.br +0 -0
  156. package/dist/assets/DevicesPage-DIJE3s4y.js.br +0 -0
  157. package/dist/assets/DisplayValue-Vl_N2Giu.js.br +0 -0
  158. package/dist/assets/Donate-BcOI4cVD.js.br +0 -0
  159. package/dist/assets/EndpointPicker-C6pB7yzt.js.br +0 -0
  160. package/dist/assets/Exposes-BpWcprdI.js.br +0 -2
  161. package/dist/assets/Feature-DeimuZQM.js +0 -1
  162. package/dist/assets/Feature-DeimuZQM.js.br +0 -0
  163. package/dist/assets/Frontend-Bcrxr5nM.js.br +0 -0
  164. package/dist/assets/GroupPage-DYg2QY_6.js.br +0 -0
  165. package/dist/assets/GroupSettings-C0adQrvB.js.br +0 -0
  166. package/dist/assets/Groups-CfpUsleW.js.br +0 -0
  167. package/dist/assets/GroupsPage-Bkclk3th.js.br +0 -0
  168. package/dist/assets/Health-DvK-VuBS.js.br +0 -0
  169. package/dist/assets/HomePage-CLLejuw5.js.br +0 -0
  170. package/dist/assets/InputField-B9740sbX.js.br +0 -0
  171. package/dist/assets/Json-Dj89CG8L.js.br +0 -0
  172. package/dist/assets/LastSeen-Dr5srIn2.js.br +0 -0
  173. package/dist/assets/LogsPage-n4G_zHF4.js.br +0 -0
  174. package/dist/assets/Lqi-yOA_ZawF.js.br +0 -0
  175. package/dist/assets/NetworkPage-B0Dv0N2S.js.br +0 -0
  176. package/dist/assets/NumberField-BbSzIzwW.js.br +0 -0
  177. package/dist/assets/OtaPage-BmLnsEw9.js +0 -1
  178. package/dist/assets/OtaPage-BmLnsEw9.js.br +0 -0
  179. package/dist/assets/PowerSource-ps1CP_vk.js.br +0 -0
  180. package/dist/assets/RawNetworkData-BwEIoYbN.js.br +0 -0
  181. package/dist/assets/RawNetworkMap-DzqNpyAN.js.br +0 -0
  182. package/dist/assets/RecallRemove-DVH8q-yU.js.br +0 -0
  183. package/dist/assets/Reporting-lNscMbhu.js.br +0 -0
  184. package/dist/assets/Scene-dHvclkRY.js +0 -1
  185. package/dist/assets/Scene-dHvclkRY.js.br +0 -0
  186. package/dist/assets/SelectField-DpD6uPGH.js.br +0 -0
  187. package/dist/assets/Settings-C1eLKv4-.js.br +0 -0
  188. package/dist/assets/SettingsList-dNKR5gZZ.js.br +0 -0
  189. package/dist/assets/SettingsPage-Bs1XPDRk.js.br +0 -0
  190. package/dist/assets/State-xJyLs2-y.js +0 -1
  191. package/dist/assets/State-xJyLs2-y.js.br +0 -0
  192. package/dist/assets/Table-C2_nVs0A.js.br +0 -0
  193. package/dist/assets/TextareaField-LvadOq0V.js.br +0 -0
  194. package/dist/assets/Tools-u0DVD6AM.js.br +0 -0
  195. package/dist/assets/TouchlinkPage-ozNvpy74.js.br +0 -0
  196. package/dist/assets/VendorLink-DtjI49OQ.js.br +0 -0
  197. package/dist/assets/_createCompounder-CpOgpCYz.js.br +0 -0
  198. package/dist/assets/format-CuwbQz5p.js.br +0 -0
  199. package/dist/assets/index-B8fX2NvP.js.br +0 -0
  200. package/dist/assets/index-BVDgSJwp.css.br +0 -0
  201. package/dist/assets/index-DUzs9ZWF.js.br +0 -0
  202. package/dist/assets/jszip.min-CbFhbUuH.js.br +0 -0
  203. package/dist/assets/snakeCase-xzAHYU4z.js +0 -1
  204. package/dist/assets/snakeCase-xzAHYU4z.js.br +0 -0
Binary file
@@ -1,4 +1,4 @@
1
- import{af as bt,ag as It}from"./index-B8fX2NvP.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-B8fX2NvP.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-BVDgSJwp.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.5.0",
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,21 +41,21 @@
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.47",
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",
Binary file
Binary file
@@ -1 +0,0 @@
1
- import{a as t,j as e}from"./index-B8fX2NvP.js";import{J as s}from"./Json-Dj89CG8L.js";import"./envs-DFlyG_dH.js";function a(){const o=t(r=>r.bridgeInfo);return e.jsx(s,{obj:o})}export{a as default};
Binary file
Binary file
@@ -1,5 +0,0 @@
1
- $ �Z����¤��.N�8�(�Zdd#EV�܎p��6<���U����Ȏ�·�,Q:]���κ=�
2
- T����HٚØs�pS�
3
- j ����6���Z/�e���`��
4
- ��P�!st���&���V*y��-2���ň0x�3�*��Z�l��k�ZiDq� w��"�:[S�8�M�;����.�G��A�Rk�F0S����#u�Tc��ӃpID>�3 l5XF� �Q��`���H�d )�7]>����(h<���.^K3�p�d�'po�x;m��k
5
- �wY��;�W��'"಺F�#-�P2X^�i<�$�p��9���A�n�|K.��¡]�,~i�K+)J(��z��%]r�.#i]P������VM�n_�3,5X Kk��Ha1b^��Q��bxKU�P�Z-f[f.�hB0�n��r7�%,]��ϵ�0w���E[^KZx�P4���l��d�(�Je̒�ʃ��Ʈ�z����0B��:m��G3_�j3�"(������0�t�=�(7���{
Binary file
Binary file
@@ -1,2 +0,0 @@
1
-  �4��}^�G�tq�5����蒒����K��6��Ac��%� �w|�-�3��T��v��'6�h ���4������B�����)>X�;���~�(SbS5�9��"5��D<��N1)�炙J�XΨ�9ϗvpɰ���#�{n�O.�^J���8��QX-���!�O�V��9���.k�?*4{�N%f��?,��
2
- `X�zK"{��>��Z��9 !�P gF��KY٫;1ap�c�4B3]
@@ -1 +0,0 @@
1
- import{ag as le,aW as rr,aX as tr,aY as ar,aZ as nr,l as sr,a_ as or,a$ as cr,b0 as ir,b1 as lr,b2 as ur,aO as ue,b3 as me,b4 as mr,b5 as fr,b6 as hr,b7 as dr,b8 as xr,b9 as pr,ba as fe,bb as br,bc as he,bd as gr,be as _r,bf as L,bg as de,bh as xe,a2 as yr,bi as Cr,bj as vr,bk as jr,bl as Sr,bm as Tr,bn as kr,bo as Er,bp as Rr,bq as Nr,br as Ar,bs as wr,bt as Fr,bu as qr,bv as $r,bw as Ir,bx as Br,by as Mr,bz as Or,bA as Gr,bB as F,aQ as Vr,bC as pe,bD as Ur,bE as Hr,bF as Lr,bG as Pr,bH as Be,bI as zr,bJ as Me,bK as Wr,bL as Dr,bM as Xr,bN as Qr,r as i,j as o,b as w,B as j,F as ie,bO as Yr,ax as Jr,bP as Kr,bQ as Zr,M as et}from"./index-B8fX2NvP.js";import{D as U}from"./DisplayValue-Vl_N2Giu.js";import{r as Oe,a as Ge,b as rt}from"./_createCompounder-CpOgpCYz.js";var P,be;function tt(){if(be)return P;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 u=Array(n);++s<n;)u[s]=t[s+a];return u}return P=e,P}var z,ge;function at(){if(ge)return z;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 z=t,z}var W,_e;function Ve(){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",u="\\u200d",c=RegExp("["+u+e+s+n+"]");function f(l){return c.test(l)}return W=f,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",u="["+e+"]",c="["+s+"]",f="\\ud83c[\\udffb-\\udfff]",l="(?:"+c+"|"+f+")",x="[^"+e+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",m="[\\ud800-\\udbff][\\udc00-\\udfff]",d="\\u200d",p=l+"?",v="["+n+"]?",k="(?:"+d+"(?:"+[x,h,m].join("|")+")"+v+p+")*",R=v+p+k,b="(?:"+[x+c+"?",c,h,m,u].join("|")+")",g=RegExp(f+"(?="+f+")|"+b+R,"g");function y(E){return E.match(g)||[]}return X=y,X}var Q,ve;function ot(){if(ve)return Q;ve=1;var e=nt(),t=Ve(),a=st();function r(s){return t(s)?a(s):e(s)}return Q=r,Q}var Y,je;function ct(){if(je)return Y;je=1;var e=at(),t=Ve(),a=ot(),r=Oe();function s(n){return function(u){u=r(u);var c=t(u)?a(u):void 0,f=c?c[0]:u.charAt(0),l=c?e(c,1).join(""):u.slice(1);return f[n]()+l}}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 K,Te;function it(){if(Te)return K;Te=1;var e=Oe(),t=Ue();function a(r){return t(e(r).toLowerCase())}return K=a,K}var Z,ke;function lt(){if(ke)return Z;ke=1;var e=it(),t=Ge(),a=t(function(r,s,n){return s=s.toLowerCase(),r+(n?e(s):s)});return Z=a,Z}var ut=lt();const mt=le(ut);var ee,Ee;function ft(){if(Ee)return ee;Ee=1;var e=Ge(),t=Ue(),a=e(function(r,s,n){return r+(n?" ":"")+t(s)});return ee=a,ee}var ht=ft();const dt=le(ht),xt={battery_low:F,humidity:Gr,illuminance:L,pressure:Or,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:fe,week:gr,workdays_schedule:he,holidays_schedule:he,away_mode:br,vibration:fe,power_outage_count:pr,action:xr,angle_x:dr,angle_y:hr,angle_z:fr,side:mr,humidity_alarm:me,temperature_alarm:me,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=zr: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=Pr: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:Qr,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]:[Vr,"opacity-0",{}])},He=e=>`${e.type}-${e.name}-${e.label}-${e.property}-${e.access}-${e.category}-${e.endpoint}`;var C=(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))(C||{});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=C.SET,name:a,property:r,value_off:s,value_on:n},deviceValue:u,onChange:c,minimal:f}=e,{t:l}=w("zigbee"),x=i.useCallback(m=>c({[r]:m}),[r,c]),h=i.useCallback(m=>c({[r]:m.target.checked?n:s}),[n,s,r,c]);if(t&C.SET){const m=u!=null,d=!f||f&&!m;return o.jsxs("div",{children:[d&&o.jsx(j,{className:"btn btn-link",item:s,onClick:x,children:o.jsx(U,{value:s,name:a})}),m?o.jsx("input",{className:"toggle",type:"checkbox",checked:u===n,onChange:h}):o.jsx(ie,{icon:Yr,title:l("unknown")}),d&&o.jsx(j,{className:"btn btn-link",item:n,onClick:x,children:o.jsx(U,{value:n,name:a})})]})}return t&C.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),N=i.memo(e=>{const{feature:t,onChange:a,parentFeatures:r,onRead:s,device:n,deviceState:u,featureWrapperClass:c,minimal:f,endpointSpecific:l,steps:x}=e,{type:h,property:m}=t,[d,p]=i.useState({}),{t:v}=w(["composite","common"]),k=i.useMemo(()=>Jr({},u,d),[u,d]),R="features"in t&&t.features||[],b=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(()=>{p({})},[n.ieee_address]);const g=i.useCallback(_=>{p({...d,..._}),b||a(h==="composite"&&m?{[m]:{...d,..._}}:_)},[d,h,m,b,a]),y=i.useCallback(()=>{const _={...u,...d};a(m?{[m]:_}:_)},[m,a,d,u]),E=i.useCallback(_=>{s?.(h==="composite"&&m?{[m]:_}:_)},[s,h,m]);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:f,endpointSpecific:l,steps:x?.[_.name]},He(_))),b&&o.jsx("div",{className:"self-end float-right",children:o.jsx(j,{className:`btn btn-primary ${f?"btn-sm":""}`,onClick:y,children:v("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=Kr(),a=rt(),r=NaN,s=/^[-+]0x[0-9a-f]+$/i,n=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function f(l){if(typeof l=="number")return l;if(a(l))return r;if(t(l)){var x=typeof l.valueOf=="function"?l.valueOf():l;l=t(x)?x+"":x}if(typeof l!="string")return l===0?l:+l;l=e(l);var h=n.test(l);return h||u.test(l)?c(l.slice(2),h?2:8):s.test(l)?r:+l}return ne=f,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,Pe=.0031308,ze=12.92,H=.055,G=e=>e<=Pe?ze*e:(1+H)*e**Le-H,At=1/Le,wt=G(Pe),Ft=1/ze,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[G(r[0]),G(r[1]),G(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,f,l]=qe(1,1,1),x=c+f+l;return[c/x,f/x,0]}const[r,s,n]=qe(e,t,a),u=r+s+n;return[r/u,s/u,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,u=r?s/r*100:0,c=r*100;return[T(n,0,360),T(u,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),u=a*(1-t*s),c=a*(1-t*(1-s)),f=r%6,l=[a,u,n,n,c,a][f]*255,x=[c,a,a,u,n,n][f]*255,h=[n,n,c,a,a,u][f]*255;return[T(l,0,255),T(x,0,255),T(h,0,255)]},M=(e,t,a)=>{const[r,s,n]=[e,t,a].map(u=>Math.round(u).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}}},Qe=e=>`${e[0].toFixed(3)}, ${e[1].toFixed(3)}, ${e[2].toFixed(3)}`,V=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:Qe(e.color_xy),color_hs:V(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))},Ot=e=>{const t=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((a,r)=>T(+(t[r]??0),0,r?100:360))},Gt=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=Ot(e);return A({hue:a[0],saturation:a[1]},"color_hs")}case"color_rgb":{const a=Gt(e);return A({r:a[0],g:a[1],b:a[2]},"color_rgb")}case"hex":return A({hex:e},"hex")}},Vt="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))",O=i.memo(({label:e,...t})=>o.jsxs("label",{className:"input",children:[e,o.jsx("input",{type:"text",className:"grow",...t})]})),Ke=i.memo(e=>{const{onChange:t,value:a={},format:r,minimal:s}=e,[n,u]=i.useState(A(a,r)),[c,f]=i.useState(Ie(n)),[l,x]=i.useState({color_rgb:!1,color_hs:!1,color_xy:!1,hex:!1});i.useEffect(()=>{const b=A(a,r);u(b),f(Ie(b))},[a,r]),i.useEffect(()=>{if(!l.color_xy){const b=Qe(n.color_xy);f(g=>({...g,color_xy:b}))}},[l.color_xy,n.color_xy]),i.useEffect(()=>{if(!l.color_hs){const b=V(n.color_hs);f(g=>({...g,color_hs:b}))}},[l.color_hs,n.color_hs]),i.useEffect(()=>{if(!l.color_rgb){const b=Ye(n.color_rgb);f(g=>({...g,color_rgb:b}))}},[l.color_rgb,n.color_rgb]),i.useEffect(()=>{if(!l.hex){const b=Je(n.hex);f(g=>({...g,hex:b}))}},[l.hex,n.hex]);const h=i.useCallback(b=>{if(b.target.value){const g=Array.from(n.color_hs);g[1]=b.target.valueAsNumber;const y=V(g);f(E=>({...E,color_hs:y})),u(ce(y,"color_hs"))}},[n.color_hs]),m=i.useCallback(b=>{if(b.target.value){const g=Array.from(n.color_hs),y=g[1];g[1]=y===0?100:y,g[0]=b.target.valueAsNumber;const E=V(g);f(_=>({..._,color_hs:E})),u(ce(E,"color_hs"))}},[n.color_hs]),d=i.useCallback(b=>{const{value:g,name:y}=b.target;f(E=>({...E,[y]:g})),u(ce(g,y))},[]),p=i.useCallback(b=>{x(g=>({...g,[b.target.name]:!0}))},[]),v=i.useCallback(b=>{x(g=>({...g,[b.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:Vt,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:m,onTouchEnd:k,onMouseUp:k})})}),!s&&o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 justify-around",children:[o.jsx(O,{label:"hex",name:"hex",value:c.hex,onChange:d,onFocus:p,onBlur:v}),o.jsx(O,{label:"rgb",name:"color_rgb",value:c.color_rgb,onChange:d,onFocus:p,onBlur:v}),o.jsx(O,{label:"hsv",name:"color_hs",value:c.color_hs,onChange:d,onFocus:p,onBlur:v}),o.jsx(O,{label:"xyY",name:"color_xy",value:c.color_xy,onChange:d,onFocus:p,onBlur:v})]})]})}),Ht=i.memo(e=>{const{deviceValue:t,feature:{name:a,features:r,property:s},onChange:n,minimal:u}=e,c=i.useMemo(()=>{const l={};for(const x of r){const h=Number.parseFloat(t?.[x.name]);l[x.name]=Number.isNaN(h)?0:h}return l},[t,r]),f=i.useCallback(l=>n({[s??"color"]:l}),[s,n]);return o.jsx(Ke,{onChange:f,value:c,format:a,minimal:u})}),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}`}))},Pt=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"),u=i.useCallback(c=>{const f=a.find(l=>S(l)?l===c.target.value:l.value===Number.parseInt(c.target.value,10));t(f)},[a,t]);return s?o.jsxs("select",{className:"select",onChange:u,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:f=>t(f),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))})}),zt=6,Wt=i.memo(e=>{const{onChange:t,feature:{access:a=C.SET,values:r,property:s},deviceValue:n,minimal:u}=e;return a&C.SET?o.jsx(Ze,{onChange:c=>t({[s]:c}),values:r,value:n||"",minimal:u||r.length>zt}):a&C.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:u}=e,{t:c}=w(["gradient","common"]),[f,l]=i.useState(r>0?Array(r).fill("#ffffff"):[]);i.useEffect(()=>{u&&Array.isArray(u)&&u.length>0&&l(u)},[u]);const x=i.useCallback((b,g)=>{const y=Array.from(f);y[b]=g,l(y)},[f]),h=i.useCallback(()=>{const b=Array.from(f);b.push("#ffffff"),l(b)},[f]),m=i.useCallback(b=>{const g=Array.from(f);g.splice(b,1),l(g)},[f]),d=i.useCallback(()=>a({[n??"gradient"]:f}),[f,n,a]),[p,v]=i.useState(!1),[k,R]=i.useState(!1);return i.useEffect(()=>{v(f.length<s),R(f.length>r)},[f,r,s]),o.jsxs("div",{className:"flex flex-col gap-2",children:[f.map((b,g)=>o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 items-center",children:[o.jsx(Ke,{onChange:y=>{x(g,y.hex)},value:{hex:b},format:"hex",minimal:t}),k&&o.jsx(j,{className:"btn btn-sm btn-error",onClick:()=>m(g),children:"-"})]},`${b}-${g}`)),p&&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:d,children:c("common:apply")})})]})}),Qt={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:Qt}));function Jt(e){return e.type==="composite"&&(e.name==="color_xy"||e.name==="color_hs")}const Kt=i.memo(e=>{const{t}=w("zigbee"),{children:a,feature:r,deviceValue:s,onRead:n,endpointSpecific:u}=e,c=r.unit,f=i.useMemo(()=>_t(r.name,s,c),[c,r.name,s]),l=i.useMemo(()=>r.property&&r.access&C.GET||Jt(r),[r]),x=e.parentFeatures?.[e.parentFeatures.length-1],h=r.name==="state"?r.property:r.name;let m=r.label||dt(mt(h));x?.label&&r.name==="state"&&x.type!=="light"&&x.type!=="switch"&&(m=`${x.label} ${r.label.charAt(0).toLowerCase()}${r.label.slice(1)}`);const d=i.useCallback(p=>{p.property&&n?.({[p.property]:""})},[n]);return o.jsxs("div",{className:"list-row p-3",children:[o.jsx("div",{children:o.jsx(ie,{icon:f[0],fixedWidth:!0,className:f[1],...f[2],size:"2xl"})}),o.jsxs("div",{children:[o.jsxs("div",{title:h,children:[m,!u&&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}),l&&o.jsx(j,{item:r,onClick:d,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,u]=i.useState(a);i.useEffect(()=>{u(a)},[a]);const c=i.useCallback(h=>{u(h),t(h)},[t]),f=i.useCallback((h,m)=>{const d=Array.from(n);typeof h=="object"&&(h={...n[m],...h}),d[m]=h,c(d)},[n,c]),l=i.useCallback(h=>{const m=Array.from(n);m.splice(h,1),c(m)},[n,c]),x=i.useCallback(()=>u([...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:x,children:"+"})}):n.map((h,m)=>o.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[o.jsx(er,{feature:r,device:{},deviceState:h,onChange:d=>f(d,m),onRead:d=>{},featureWrapperClass:Kt,parentFeatures:s}),o.jsxs("div",{className:"join join-vertical lg:join-horizontal",children:[o.jsx(j,{item:m,className:"btn btn-sm btn-error btn-square join-item",onClick:l,children:"-"}),n.length-1===m&&o.jsx(j,{className:"btn btn-sm btn-success btn-square join-item",onClick:x,children:"+"})]})]},m))}),ea=i.memo(e=>{const{feature:t,minimal:a,parentFeatures:r,onChange:s,deviceValue:n}=e,[u,c]=i.useState({value:t.property?n?.[t.property]??[]:[]}),{t:f}=w(["list","common"]),l=i.useMemo(()=>{if(r!==void 0){if(r.length===1)return!0;if(r.length===2){const p=r[1].type;return p!=null&&p!=="composite"&&p!=="list"}}return!1},[r]),x=i.useCallback(p=>{c({value:p}),l||s(t.property?{[t.property]:p}:p)},[t.property,s,l]),h=i.useCallback(()=>{s(t.property?{[t.property]:u.value}:u.value)},[t.property,s,u.value]),{access:m=C.SET,item_type:d}=t;return m&C.SET?o.jsxs(o.Fragment,{children:[o.jsx(Zt,{feature:d,parentFeatures:[...r,t],onChange:x,value:u.value}),l&&o.jsx("div",{children:o.jsx(j,{className:`btn btn-primary ${a?"btn-sm":""}`,onClick:h,disabled:u.value.length===0,children:f("common:apply")})})]}):m&C.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,min:r,max:s,unit:n,steps:u,minimal:c,...f}=e,[l,x]=i.useState(a),h=r!=null&&s!=null;i.useEffect(()=>{x(a)},[a]);const m=i.useCallback(p=>!!p.target.value&&x(p.target.valueAsNumber),[]),d=i.useCallback(p=>!p.target.validationMessage&&t(l),[l,t]);return o.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-center",children:[!c&&u?o.jsx(Ze,{values:u,onChange:t,value:l}):null,h?o.jsxs("div",{className:"w-full max-w-xs",children:[o.jsx("input",{min:r,max:s,type:"range",className:"range range-xs range-primary validator",value:l,onChange:m,onTouchEnd:d,onMouseUp:d,...f}),o.jsxs("div",{className:"flex justify-between px-1 mt-1 text-xs",children:[o.jsx("span",{children:r}),c&&o.jsx("span",{children:l}),o.jsx("span",{children:s})]})]}):null,(!c||!h)&&o.jsxs("label",{className:"input",children:[o.jsx("input",{type:"number",className:"grow validator",value:l,onChange:m,onBlur:d,min:r,max:s,...f}),n]})]})}),aa=i.memo(e=>{const{feature:{presets:t,access:a=C.SET,property:r,unit:s,value_max:n,value_min:u,value_step:c},deviceValue:f,steps:l,onChange:x,minimal:h}=e;return a&C.SET?o.jsx(ta,{onChange:m=>x({[r]:m}),value:f??"",min:u,max:n,step:c,steps:t?.length?t:l,unit:s,minimal:h}):a&C.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:u=>n(u.target.value),onBlur:u=>!u.target.validationMessage&&t(s),...r})}),oa=i.memo(e=>{const{feature:{access:t=C.SET,property:a},deviceValue:r,onChange:s}=e;return t&C.SET?o.jsx(sa,{onChange:n=>s({[a]:n}),value:r??""}):t&C.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),er=i.memo(e=>{const{feature:t,device:a,deviceState:r,steps:s,onRead:n,onChange:u,featureWrapperClass:c,minimal:f,endpointSpecific:l,parentFeatures:x}=e,h=i.useMemo(()=>t.property?r[t.property]:void 0,[t.property,r[t.property]]),m=i.useMemo(()=>He(t),[t]),d=i.useMemo(()=>({device:a,deviceValue:h,onChange:u,onRead:n,featureWrapperClass:c,minimal:f,endpointSpecific:l,parentFeatures:x}),[a,h,u,n,c,f,l,x]),p=i.useMemo(()=>({feature:t,onRead:n,deviceValue:h,parentFeatures:x,endpointSpecific:l}),[t,n,h,x,l]);switch(t.type){case"binary":return o.jsx(c,{...p,children:o.jsx(yt,{feature:t,...d},m)},m);case"numeric":return o.jsx(c,{...p,children:o.jsx(aa,{feature:t,...d,steps:s},m)},m);case"list":return t.name==="gradient"&&t.length_min!=null&&t.length_max!=null?o.jsx(c,{...p,children:o.jsx(Xt,{feature:t,...d},m)},m):o.jsx(c,{...p,children:o.jsx(ea,{feature:t,...d},m)},m);case"text":return o.jsx(c,{...p,children:o.jsx(oa,{feature:t,...d},m)},m);case"enum":return o.jsx(c,{...p,children:o.jsx(Wt,{feature:t,...d},m)},m);case"light":return o.jsx(Yt,{feature:t,...d,deviceState:r},m);case"switch":return o.jsx(na,{feature:t,...d,deviceState:r},m);case"cover":return o.jsx(Pt,{feature:t,...d,deviceState:r},m);case"lock":return o.jsx(ra,{feature:t,...d,deviceState:r},m);case"climate":return o.jsx(Ct,{feature:t,...d,deviceState:r},m);case"fan":return o.jsx(Dt,{feature:t,...d,deviceState:r},m);case"composite":{if(t.name==="color_xy"||t.name==="color_hs")return o.jsx(c,{...p,children:o.jsx(Ht,{feature:t,...d},m)},m);const v=x&&t.property?r[t.property]:r;return o.jsx(c,{...p,children:o.jsx(N,{feature:t,...d,deviceState:v},m)},m)}default:return console.error("Unsupported feature",t),o.jsx(c,{...p,children:o.jsx("pre",{children:JSON.stringify(t,null,4)})},m)}});export{er as F,Kt as a,C as b,_t as c,mt as d,He as g,dt as s};
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 f,j as s,B as S,F as u,T as F,S as h,U as g,V as q,X as M,a as $,W as z,L as A,Y as O}from"./index-B8fX2NvP.js";import{D as U}from"./DeviceImage-B9eEwSRN.js";import{C as P}from"./CheckboxField-CyrNR_uS.js";import{T as B}from"./Table-C2_nVs0A.js";import{M as R,V as T}from"./VendorLink-DtjI49OQ.js";import{P as E}from"./PowerSource-ps1CP_vk.js";import"./envs-DFlyG_dH.js";import"./index-DUzs9ZWF.js";import"./DebouncedInput-CoVdkqma.js";import"./snakeCase-xzAHYU4z.js";import"./_createCompounder-CpOgpCYz.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})})]})]})]}),filterFn:"includesString"},{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})})})]}),filterFn:"includesString"},{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{a,j as e}from"./index-B8fX2NvP.js";import{A as s,R as m}from"./RecallRemove-DVH8q-yU.js";import"./envs-DFlyG_dH.js";import"./DashboardFeatureWrapper-6_9Frx26.js";import"./Feature-DeimuZQM.js";import"./DisplayValue-Vl_N2Giu.js";import"./_createCompounder-CpOgpCYz.js";import"./InputField-B9740sbX.js";import"./SelectField-DpD6uPGH.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 +0,0 @@
1
- import{a as r,j as a}from"./index-B8fX2NvP.js";import{J as i}from"./Json-Dj89CG8L.js";import"./envs-DFlyG_dH.js";function p(e){const{device:t}=e,o=r(s=>s.deviceStates[t.friendly_name]??{});return a.jsx(i,{obj:o})}export{p as default};
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1 +0,0 @@
1
- import{ag as u}from"./index-B8fX2NvP.js";import{a as C}from"./_createCompounder-CpOgpCYz.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};