@victronenergy/mfd-modules 10.4.2 → 11.0.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 (233) hide show
  1. package/README.md +1 -1
  2. package/dist/src/Modules/AcLoads/AcLoads.provider.d.ts.map +1 -1
  3. package/dist/src/Modules/AcLoads/AcLoads.provider.js +19 -19
  4. package/dist/src/Modules/AcLoads/AcLoads.provider.js.map +1 -1
  5. package/dist/src/Modules/AcMode/AcMode.provider.d.ts.map +1 -1
  6. package/dist/src/Modules/AcMode/AcMode.provider.js +19 -31
  7. package/dist/src/Modules/AcMode/AcMode.provider.js.map +1 -1
  8. package/dist/src/Modules/ActiveSource/ActiveInValues.provider.js +17 -17
  9. package/dist/src/Modules/ActiveSource/ActiveInValues.provider.js.map +1 -1
  10. package/dist/src/Modules/ActiveSource/ActiveSource.provider.js +11 -11
  11. package/dist/src/Modules/ActiveSource/ActiveSource.provider.js.map +1 -1
  12. package/dist/src/Modules/Alternators/Alternator.provider.d.ts.map +1 -1
  13. package/dist/src/Modules/Alternators/Alternator.provider.js +7 -8
  14. package/dist/src/Modules/Alternators/Alternator.provider.js.map +1 -1
  15. package/dist/src/Modules/Alternators/Alternators.provider.d.ts.map +1 -1
  16. package/dist/src/Modules/Alternators/Alternators.provider.js +16 -14
  17. package/dist/src/Modules/Alternators/Alternators.provider.js.map +1 -1
  18. package/dist/src/Modules/Alternators/Alternators.store.d.ts.map +1 -1
  19. package/dist/src/Modules/Alternators/Alternators.store.js +7 -10
  20. package/dist/src/Modules/Alternators/Alternators.store.js.map +1 -1
  21. package/dist/src/Modules/App/App.provider.js +47 -47
  22. package/dist/src/Modules/App/App.provider.js.map +1 -1
  23. package/dist/src/Modules/App/App.store.d.ts +2 -2
  24. package/dist/src/Modules/App/App.store.d.ts.map +1 -1
  25. package/dist/src/Modules/App/App.store.js +67 -110
  26. package/dist/src/Modules/App/App.store.js.map +1 -1
  27. package/dist/src/Modules/Battery/Batteries.provider.d.ts.map +1 -1
  28. package/dist/src/Modules/Battery/Batteries.provider.js +16 -14
  29. package/dist/src/Modules/Battery/Batteries.provider.js.map +1 -1
  30. package/dist/src/Modules/Battery/Batteries.store.d.ts.map +1 -1
  31. package/dist/src/Modules/Battery/Batteries.store.js +7 -10
  32. package/dist/src/Modules/Battery/Batteries.store.js.map +1 -1
  33. package/dist/src/Modules/Battery/SystemBatteries.provider.js +5 -5
  34. package/dist/src/Modules/Battery/SystemBatteries.provider.js.map +1 -1
  35. package/dist/src/Modules/Chargers/Charger.provider.js +23 -33
  36. package/dist/src/Modules/Chargers/Charger.provider.js.map +1 -1
  37. package/dist/src/Modules/Chargers/Chargers.provider.d.ts.map +1 -1
  38. package/dist/src/Modules/Chargers/Chargers.provider.js +16 -15
  39. package/dist/src/Modules/Chargers/Chargers.provider.js.map +1 -1
  40. package/dist/src/Modules/Chargers/Chargers.store.d.ts.map +1 -1
  41. package/dist/src/Modules/Chargers/Chargers.store.js +7 -10
  42. package/dist/src/Modules/Chargers/Chargers.store.js.map +1 -1
  43. package/dist/src/Modules/DcLoads/DcLoads.provider.d.ts.map +1 -1
  44. package/dist/src/Modules/DcLoads/DcLoads.provider.js +9 -20
  45. package/dist/src/Modules/DcLoads/DcLoads.provider.js.map +1 -1
  46. package/dist/src/Modules/Generators/ConnectedGenset.provider.d.ts.map +1 -1
  47. package/dist/src/Modules/Generators/ConnectedGenset.provider.js +36 -47
  48. package/dist/src/Modules/Generators/ConnectedGenset.provider.js.map +1 -1
  49. package/dist/src/Modules/Generators/ConnectedGensets.provider.d.ts.map +1 -1
  50. package/dist/src/Modules/Generators/ConnectedGensets.provider.js +16 -14
  51. package/dist/src/Modules/Generators/ConnectedGensets.provider.js.map +1 -1
  52. package/dist/src/Modules/Generators/ConnectedGensets.store.d.ts.map +1 -1
  53. package/dist/src/Modules/Generators/ConnectedGensets.store.js +8 -11
  54. package/dist/src/Modules/Generators/ConnectedGensets.store.js.map +1 -1
  55. package/dist/src/Modules/Generators/GeneratorConnectedGenset.provider.js +17 -27
  56. package/dist/src/Modules/Generators/GeneratorConnectedGenset.provider.js.map +1 -1
  57. package/dist/src/Modules/Generators/GeneratorRelay.provider.d.ts +2 -2
  58. package/dist/src/Modules/Generators/GeneratorRelay.provider.d.ts.map +1 -1
  59. package/dist/src/Modules/Generators/GeneratorRelay.provider.js +24 -34
  60. package/dist/src/Modules/Generators/GeneratorRelay.provider.js.map +1 -1
  61. package/dist/src/Modules/Header/Header.provider.js +4 -4
  62. package/dist/src/Modules/Header/Header.provider.js.map +1 -1
  63. package/dist/src/Modules/InverterCharger/InputLimit.provider.js +6 -17
  64. package/dist/src/Modules/InverterCharger/InputLimit.provider.js.map +1 -1
  65. package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.d.ts.map +1 -1
  66. package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.js +12 -26
  67. package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.js.map +1 -1
  68. package/dist/src/Modules/InverterCharger/InverterCharger.provider.d.ts.map +1 -1
  69. package/dist/src/Modules/InverterCharger/InverterCharger.provider.js +16 -27
  70. package/dist/src/Modules/InverterCharger/InverterCharger.provider.js.map +1 -1
  71. package/dist/src/Modules/Inverters/Inverter.provider.d.ts.map +1 -1
  72. package/dist/src/Modules/Inverters/Inverter.provider.js +19 -30
  73. package/dist/src/Modules/Inverters/Inverter.provider.js.map +1 -1
  74. package/dist/src/Modules/Inverters/Inverters.provider.d.ts.map +1 -1
  75. package/dist/src/Modules/Inverters/Inverters.provider.js +14 -13
  76. package/dist/src/Modules/Inverters/Inverters.provider.js.map +1 -1
  77. package/dist/src/Modules/Inverters/Inverters.store.d.ts.map +1 -1
  78. package/dist/src/Modules/Inverters/Inverters.store.js +7 -10
  79. package/dist/src/Modules/Inverters/Inverters.store.js.map +1 -1
  80. package/dist/src/Modules/Inverters/index.js.map +1 -1
  81. package/dist/src/Modules/Language/Language.provider.d.ts +1 -1
  82. package/dist/src/Modules/Language/Language.provider.d.ts.map +1 -1
  83. package/dist/src/Modules/Language/Language.provider.js +21 -56
  84. package/dist/src/Modules/Language/Language.provider.js.map +1 -1
  85. package/dist/src/Modules/Mqtt/Mqtt.constants.js +1 -1
  86. package/dist/src/Modules/Mqtt/Mqtt.constants.js.map +1 -1
  87. package/dist/src/Modules/Mqtt/Mqtt.provider.d.ts +2 -2
  88. package/dist/src/Modules/Mqtt/Mqtt.provider.d.ts.map +1 -1
  89. package/dist/src/Modules/Mqtt/Mqtt.provider.js +4 -4
  90. package/dist/src/Modules/Mqtt/Mqtt.provider.js.map +1 -1
  91. package/dist/src/Modules/Mqtt/Mqtt.store.d.ts +3 -3
  92. package/dist/src/Modules/Mqtt/Mqtt.store.d.ts.map +1 -1
  93. package/dist/src/Modules/Mqtt/Mqtt.store.js +169 -193
  94. package/dist/src/Modules/Mqtt/Mqtt.store.js.map +1 -1
  95. package/dist/src/Modules/Mqtt/Mqtt.types.d.ts +1 -1
  96. package/dist/src/Modules/Mqtt/Mqtt.types.d.ts.map +1 -1
  97. package/dist/src/Modules/Mqtt/Mqtt.types.js +0 -1
  98. package/dist/src/Modules/Mqtt/Mqtt.types.js.map +1 -1
  99. package/dist/src/Modules/PvCharger/PvCharger.provider.js +8 -8
  100. package/dist/src/Modules/PvCharger/PvCharger.provider.js.map +1 -1
  101. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.d.ts +4 -1
  102. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.d.ts.map +1 -1
  103. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.js +24 -35
  104. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.js.map +1 -1
  105. package/dist/src/Modules/ShorePowerInput/index.d.ts +0 -1
  106. package/dist/src/Modules/ShorePowerInput/index.d.ts.map +1 -1
  107. package/dist/src/Modules/ShorePowerInput/index.js +0 -1
  108. package/dist/src/Modules/ShorePowerInput/index.js.map +1 -1
  109. package/dist/src/Modules/SwitchingPane/GenericInput.provider.d.ts +27 -0
  110. package/dist/src/Modules/SwitchingPane/GenericInput.provider.d.ts.map +1 -0
  111. package/dist/src/Modules/SwitchingPane/GenericInput.provider.js +32 -0
  112. package/dist/src/Modules/SwitchingPane/GenericInput.provider.js.map +1 -0
  113. package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchableOutput.provider.d.ts +25 -9
  114. package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.d.ts.map +1 -0
  115. package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.js +58 -0
  116. package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.js.map +1 -0
  117. package/dist/src/Modules/SwitchingPane/SwitchingDevice.provider.d.ts.map +1 -0
  118. package/dist/src/Modules/SwitchingPane/SwitchingDevice.provider.js +48 -0
  119. package/dist/src/Modules/SwitchingPane/SwitchingDevice.provider.js.map +1 -0
  120. package/dist/src/Modules/SwitchingPane/SwitchingDevices.store.d.ts.map +1 -0
  121. package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchingDevices.store.js +7 -10
  122. package/dist/src/Modules/SwitchingPane/SwitchingDevices.store.js.map +1 -0
  123. package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.d.ts +2 -0
  124. package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.d.ts.map +1 -0
  125. package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.js +256 -0
  126. package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.js.map +1 -0
  127. package/dist/src/Modules/SwitchingPane/SwitchingPane.store.d.ts +50 -0
  128. package/dist/src/Modules/SwitchingPane/SwitchingPane.store.d.ts.map +1 -0
  129. package/dist/src/Modules/{SwitchableOutputs/SwitchableOutputs.store.js → SwitchingPane/SwitchingPane.store.js} +67 -18
  130. package/dist/src/Modules/SwitchingPane/SwitchingPane.store.js.map +1 -0
  131. package/dist/src/Modules/SwitchingPane/index.d.ts +7 -0
  132. package/dist/src/Modules/SwitchingPane/index.d.ts.map +1 -0
  133. package/dist/src/Modules/SwitchingPane/index.js +7 -0
  134. package/dist/src/Modules/SwitchingPane/index.js.map +1 -0
  135. package/dist/src/Modules/SystemState/SystemState.provider.js +5 -5
  136. package/dist/src/Modules/SystemState/SystemState.provider.js.map +1 -1
  137. package/dist/src/Modules/Tanks/Tank.provider.d.ts.map +1 -1
  138. package/dist/src/Modules/Tanks/Tank.provider.js +11 -11
  139. package/dist/src/Modules/Tanks/Tank.provider.js.map +1 -1
  140. package/dist/src/Modules/Tanks/Tanks.provider.d.ts.map +1 -1
  141. package/dist/src/Modules/Tanks/Tanks.provider.js +19 -18
  142. package/dist/src/Modules/Tanks/Tanks.provider.js.map +1 -1
  143. package/dist/src/Modules/Tanks/Tanks.store.d.ts.map +1 -1
  144. package/dist/src/Modules/Tanks/Tanks.store.js +7 -10
  145. package/dist/src/Modules/Tanks/Tanks.store.js.map +1 -1
  146. package/dist/src/Modules/Temperatures/Temperature.provider.d.ts.map +1 -1
  147. package/dist/src/Modules/Temperatures/Temperature.provider.js +29 -29
  148. package/dist/src/Modules/Temperatures/Temperature.provider.js.map +1 -1
  149. package/dist/src/Modules/Temperatures/Temperatures.provider.d.ts.map +1 -1
  150. package/dist/src/Modules/Temperatures/Temperatures.provider.js +18 -17
  151. package/dist/src/Modules/Temperatures/Temperatures.provider.js.map +1 -1
  152. package/dist/src/Modules/Temperatures/Temperatures.store.d.ts.map +1 -1
  153. package/dist/src/Modules/Temperatures/Temperatures.store.js +7 -10
  154. package/dist/src/Modules/Temperatures/Temperatures.store.js.map +1 -1
  155. package/dist/src/Modules/Temperatures/index.d.ts +3 -3
  156. package/dist/src/Modules/Temperatures/index.js +3 -3
  157. package/dist/src/Modules/Temperatures/index.js.map +1 -1
  158. package/dist/src/Modules/Theme/Theme.provider.js +6 -6
  159. package/dist/src/Modules/Theme/Theme.provider.js.map +1 -1
  160. package/dist/src/Modules/Theme/Theme.store.d.ts.map +1 -1
  161. package/dist/src/Modules/Theme/Theme.store.js +35 -38
  162. package/dist/src/Modules/Theme/Theme.store.js.map +1 -1
  163. package/dist/src/Modules/Vebus/Vebus.provider.d.ts.map +1 -1
  164. package/dist/src/Modules/Vebus/Vebus.provider.js +39 -48
  165. package/dist/src/Modules/Vebus/Vebus.provider.js.map +1 -1
  166. package/dist/src/Modules/Vebus/Vebus.store.d.ts.map +1 -1
  167. package/dist/src/Modules/Vebus/Vebus.store.js +11 -14
  168. package/dist/src/Modules/Vebus/Vebus.store.js.map +1 -1
  169. package/dist/src/Modules/Vrm/Vrm.store.d.ts.map +1 -1
  170. package/dist/src/Modules/Vrm/Vrm.store.js +85 -154
  171. package/dist/src/Modules/Vrm/Vrm.store.js.map +1 -1
  172. package/dist/src/Modules/Vrm/Vrm.types.js +0 -1
  173. package/dist/src/Modules/WindGenerators/WindGenerator.provider.d.ts.map +1 -1
  174. package/dist/src/Modules/WindGenerators/WindGenerator.provider.js +6 -7
  175. package/dist/src/Modules/WindGenerators/WindGenerator.provider.js.map +1 -1
  176. package/dist/src/Modules/WindGenerators/WindGenerators.provider.d.ts.map +1 -1
  177. package/dist/src/Modules/WindGenerators/WindGenerators.provider.js +21 -19
  178. package/dist/src/Modules/WindGenerators/WindGenerators.provider.js.map +1 -1
  179. package/dist/src/Modules/WindGenerators/WindGenerators.store.d.ts.map +1 -1
  180. package/dist/src/Modules/WindGenerators/WindGenerators.store.js +7 -10
  181. package/dist/src/Modules/WindGenerators/WindGenerators.store.js.map +1 -1
  182. package/dist/src/index.d.ts +2 -1
  183. package/dist/src/index.d.ts.map +1 -1
  184. package/dist/src/index.js +2 -1
  185. package/dist/src/index.js.map +1 -1
  186. package/dist/src/utils/constants.d.ts +53 -3
  187. package/dist/src/utils/constants.d.ts.map +1 -1
  188. package/dist/src/utils/constants.js +82 -30
  189. package/dist/src/utils/constants.js.map +1 -1
  190. package/dist/src/utils/hsvw.d.ts.map +1 -1
  191. package/dist/src/utils/hsvw.js +24 -25
  192. package/dist/src/utils/hsvw.js.map +1 -1
  193. package/dist/src/utils/logger.d.ts +5 -8
  194. package/dist/src/utils/logger.d.ts.map +1 -1
  195. package/dist/src/utils/logger.js +11 -23
  196. package/dist/src/utils/logger.js.map +1 -1
  197. package/dist/src/utils/storage.d.ts.map +1 -1
  198. package/dist/src/utils/storage.js +7 -6
  199. package/dist/src/utils/storage.js.map +1 -1
  200. package/dist/src/utils/util.d.ts +6 -15
  201. package/dist/src/utils/util.d.ts.map +1 -1
  202. package/dist/src/utils/util.js +8 -100
  203. package/dist/src/utils/util.js.map +1 -1
  204. package/package.json +26 -15
  205. package/dist/eslint.config.d.mts +0 -13
  206. package/dist/eslint.config.d.mts.map +0 -1
  207. package/dist/eslint.config.mjs +0 -28
  208. package/dist/eslint.config.mjs.map +0 -1
  209. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.d.ts +0 -11
  210. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.d.ts.map +0 -1
  211. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.js +0 -37
  212. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.js.map +0 -1
  213. package/dist/src/Modules/SwitchableOutputs/SwitchableOutput.provider.d.ts.map +0 -1
  214. package/dist/src/Modules/SwitchableOutputs/SwitchableOutput.provider.js +0 -67
  215. package/dist/src/Modules/SwitchableOutputs/SwitchableOutput.provider.js.map +0 -1
  216. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.d.ts +0 -2
  217. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.d.ts.map +0 -1
  218. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.js +0 -168
  219. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.js.map +0 -1
  220. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.d.ts +0 -38
  221. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.d.ts.map +0 -1
  222. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.js.map +0 -1
  223. package/dist/src/Modules/SwitchableOutputs/SwitchingDevice.provider.d.ts.map +0 -1
  224. package/dist/src/Modules/SwitchableOutputs/SwitchingDevice.provider.js +0 -50
  225. package/dist/src/Modules/SwitchableOutputs/SwitchingDevice.provider.js.map +0 -1
  226. package/dist/src/Modules/SwitchableOutputs/SwitchingDevices.store.d.ts.map +0 -1
  227. package/dist/src/Modules/SwitchableOutputs/SwitchingDevices.store.js.map +0 -1
  228. package/dist/src/Modules/SwitchableOutputs/index.d.ts +0 -6
  229. package/dist/src/Modules/SwitchableOutputs/index.d.ts.map +0 -1
  230. package/dist/src/Modules/SwitchableOutputs/index.js +0 -6
  231. package/dist/src/Modules/SwitchableOutputs/index.js.map +0 -1
  232. /package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchingDevice.provider.d.ts +0 -0
  233. /package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchingDevices.store.d.ts +0 -0
@@ -2,84 +2,84 @@ import { useEffect, useMemo } from "react";
2
2
  import { useMqtt, useTopicState } from "../Mqtt";
3
3
  import { TEMPERATURE_UNITS, SPEED_UNITS, VolumeUnit, PowerUnit, useAppStore, parseUnionValue, parseEnumValue, } from "./App.store";
4
4
  import { stringToHSVWPresets } from "../../utils/hsvw";
5
- export var useApp = function () {
6
- var appStore = useAppStore();
7
- var mqtt = useMqtt();
8
- var getTopics = function (portalId) { return ({
9
- locked: "N/".concat(portalId, "/settings/0/Settings/VenusApp/LockState"),
10
- firmwareVersion: "N/".concat(portalId, "/system/0/FirmwareVersion"),
5
+ export const useApp = () => {
6
+ const appStore = useAppStore();
7
+ const mqtt = useMqtt();
8
+ const getTopics = (portalId) => ({
9
+ locked: `N/${portalId}/settings/0/Settings/VenusApp/LockState`,
10
+ firmwareVersion: `N/${portalId}/system/0/FirmwareVersion`,
11
11
  units: {
12
- temperature: "N/".concat(portalId, "/settings/0/Settings/System/Units/Temperature"),
13
- speed: "N/".concat(portalId, "/settings/0/Settings/Gps/SpeedUnit"),
14
- volume: "N/".concat(portalId, "/settings/0/Settings/System/VolumeUnit"),
12
+ temperature: `N/${portalId}/settings/0/Settings/System/Units/Temperature`,
13
+ speed: `N/${portalId}/settings/0/Settings/Gps/SpeedUnit`,
14
+ volume: `N/${portalId}/settings/0/Settings/System/VolumeUnit`,
15
15
  },
16
- guiVersion: "N/".concat(portalId, "/settings/0/Settings/Gui/RunningVersion"),
17
- electricalPowerIndicator: "N/".concat(portalId, "/settings/0/Settings/Gui/ElectricalPowerIndicator"),
18
- rgbColorPresetsArray: "N/".concat(portalId, "/settings/0/Settings/Gui2/Switchpane/Preset/RGB"),
19
- rgbwColorPresetsArray: "N/".concat(portalId, "/settings/0/Settings/Gui2/Switchpane/Preset/RGBW"),
20
- cctColorPresetsArray: "N/".concat(portalId, "/settings/0/Settings/Gui2/Switchpane/Preset/CCT"),
21
- }); };
22
- var topics = useMemo(function () { return getTopics(mqtt.portalId); }, [mqtt.portalId]);
23
- var locked = useTopicState(topics.locked);
24
- var firmwareVersion = useTopicState(topics.firmwareVersion);
25
- var temperatureUnit = useTopicState(topics.units.temperature);
26
- var speedUnit = useTopicState(topics.units.speed);
27
- var volumeUnit = useTopicState(topics.units.volume);
28
- var guiVersion = useTopicState(topics.guiVersion);
29
- var electricalPowerIndicator = useTopicState(topics.electricalPowerIndicator);
30
- var rgbColorPresetsCommaSeparatedString = useTopicState(topics.rgbColorPresetsArray);
31
- var rgbwColorPresetsCommaSeparatedString = useTopicState(topics.rgbwColorPresetsArray);
32
- var cctColorPresetsCommaSeparatedString = useTopicState(topics.cctColorPresetsArray);
33
- useEffect(function () {
16
+ guiVersion: `N/${portalId}/settings/0/Settings/Gui/RunningVersion`,
17
+ electricalPowerIndicator: `N/${portalId}/settings/0/Settings/Gui/ElectricalPowerIndicator`,
18
+ rgbColorPresetsArray: `N/${portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGB`,
19
+ rgbwColorPresetsArray: `N/${portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGBW`,
20
+ cctColorPresetsArray: `N/${portalId}/settings/0/Settings/Gui2/Switchpane/Preset/CCT`,
21
+ });
22
+ const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);
23
+ const locked = useTopicState(topics.locked);
24
+ const firmwareVersion = useTopicState(topics.firmwareVersion);
25
+ const temperatureUnit = useTopicState(topics.units.temperature);
26
+ const speedUnit = useTopicState(topics.units.speed);
27
+ const volumeUnit = useTopicState(topics.units.volume);
28
+ const guiVersion = useTopicState(topics.guiVersion);
29
+ const electricalPowerIndicator = useTopicState(topics.electricalPowerIndicator);
30
+ const rgbColorPresetsCommaSeparatedString = useTopicState(topics.rgbColorPresetsArray);
31
+ const rgbwColorPresetsCommaSeparatedString = useTopicState(topics.rgbwColorPresetsArray);
32
+ const cctColorPresetsCommaSeparatedString = useTopicState(topics.cctColorPresetsArray);
33
+ useEffect(() => {
34
34
  if (locked !== undefined) {
35
35
  appStore.setLockedWithoutPersistence(!!locked);
36
36
  }
37
- }, [locked]);
38
- useEffect(function () {
37
+ }, [locked, appStore]);
38
+ useEffect(() => {
39
39
  if (firmwareVersion) {
40
40
  appStore.setFirmwareVersion(firmwareVersion);
41
41
  }
42
- }, [firmwareVersion]);
43
- useEffect(function () {
42
+ }, [firmwareVersion, appStore]);
43
+ useEffect(() => {
44
44
  if (temperatureUnit !== undefined) {
45
45
  appStore.setUnit("temperature", parseUnionValue(TEMPERATURE_UNITS, temperatureUnit, "celsius"));
46
46
  }
47
- }, [temperatureUnit]);
48
- useEffect(function () {
47
+ }, [temperatureUnit, appStore]);
48
+ useEffect(() => {
49
49
  if (speedUnit !== undefined) {
50
- appStore.setUnit("speed", parseUnionValue(SPEED_UNITS, speedUnit, "m/s"));
50
+ appStore.setUnit("speed", parseUnionValue(SPEED_UNITS, speedUnit, "km/h"));
51
51
  }
52
- }, [speedUnit]);
53
- useEffect(function () {
52
+ }, [speedUnit, appStore]);
53
+ useEffect(() => {
54
54
  if (volumeUnit !== undefined) {
55
55
  appStore.setUnit("volume", parseEnumValue(VolumeUnit, volumeUnit, VolumeUnit.CUBIC_METERS));
56
56
  }
57
- }, [volumeUnit]);
58
- useEffect(function () {
57
+ }, [volumeUnit, appStore]);
58
+ useEffect(() => {
59
59
  if (guiVersion) {
60
60
  appStore.setGuiVersion(guiVersion);
61
61
  }
62
- }, [guiVersion]);
63
- useEffect(function () {
62
+ }, [guiVersion, appStore]);
63
+ useEffect(() => {
64
64
  if (electricalPowerIndicator !== undefined) {
65
65
  appStore.setElectricalPowerIndicator(parseEnumValue(PowerUnit, electricalPowerIndicator, PowerUnit.AMPS));
66
66
  }
67
- }, [electricalPowerIndicator]);
68
- useEffect(function () {
67
+ }, [electricalPowerIndicator, appStore]);
68
+ useEffect(() => {
69
69
  if (rgbColorPresetsCommaSeparatedString !== undefined) {
70
70
  appStore.setRGBColorPresets(stringToHSVWPresets(rgbColorPresetsCommaSeparatedString));
71
71
  }
72
- }, [rgbColorPresetsCommaSeparatedString]);
73
- useEffect(function () {
72
+ }, [rgbColorPresetsCommaSeparatedString, appStore]);
73
+ useEffect(() => {
74
74
  if (rgbwColorPresetsCommaSeparatedString !== undefined) {
75
75
  appStore.setRGBWColorPresets(stringToHSVWPresets(rgbwColorPresetsCommaSeparatedString));
76
76
  }
77
- }, [rgbwColorPresetsCommaSeparatedString]);
78
- useEffect(function () {
77
+ }, [rgbwColorPresetsCommaSeparatedString, appStore]);
78
+ useEffect(() => {
79
79
  if (cctColorPresetsCommaSeparatedString !== undefined) {
80
80
  appStore.setCCTColorPresets(stringToHSVWPresets(cctColorPresetsCommaSeparatedString));
81
81
  }
82
- }, [cctColorPresetsCommaSeparatedString]);
82
+ }, [cctColorPresetsCommaSeparatedString, appStore]);
83
83
  return appStore;
84
84
  };
85
85
  //# sourceMappingURL=App.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.provider.js","sourceRoot":"/","sources":["src/Modules/App/App.provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo } from \"react\"\nimport { PortalId, useMqtt, useTopicState } from \"../Mqtt\"\nimport {\n TEMPERATURE_UNITS,\n SPEED_UNITS,\n VolumeUnit,\n PowerUnit,\n useAppStore,\n AppProvider,\n parseUnionValue,\n parseEnumValue,\n} from \"./App.store\"\nimport { stringToHSVWPresets } from \"../../utils/hsvw\"\n\nexport const useApp = (): AppProvider => {\n const appStore = useAppStore()\n const mqtt = useMqtt()\n\n const getTopics = (portalId: PortalId) => ({\n locked: `N/${portalId}/settings/0/Settings/VenusApp/LockState`,\n firmwareVersion: `N/${portalId}/system/0/FirmwareVersion`,\n units: {\n temperature: `N/${portalId}/settings/0/Settings/System/Units/Temperature`,\n speed: `N/${portalId}/settings/0/Settings/Gps/SpeedUnit`,\n volume: `N/${portalId}/settings/0/Settings/System/VolumeUnit`,\n },\n guiVersion: `N/${portalId}/settings/0/Settings/Gui/RunningVersion`,\n electricalPowerIndicator: `N/${portalId}/settings/0/Settings/Gui/ElectricalPowerIndicator`,\n rgbColorPresetsArray: `N/${portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGB`,\n rgbwColorPresetsArray: `N/${portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGBW`,\n cctColorPresetsArray: `N/${portalId}/settings/0/Settings/Gui2/Switchpane/Preset/CCT`,\n })\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n const locked = useTopicState<number>(topics.locked)\n const firmwareVersion = useTopicState<string>(topics.firmwareVersion)\n const temperatureUnit = useTopicState<string>(topics.units.temperature)\n const speedUnit = useTopicState<string>(topics.units.speed)\n const volumeUnit = useTopicState<number>(topics.units.volume)\n const guiVersion = useTopicState<number>(topics.guiVersion)\n const electricalPowerIndicator = useTopicState<number>(topics.electricalPowerIndicator)\n const rgbColorPresetsCommaSeparatedString = useTopicState<string>(topics.rgbColorPresetsArray)\n const rgbwColorPresetsCommaSeparatedString = useTopicState<string>(topics.rgbwColorPresetsArray)\n const cctColorPresetsCommaSeparatedString = useTopicState<string>(topics.cctColorPresetsArray)\n\n useEffect(() => {\n if (locked !== undefined) {\n appStore.setLockedWithoutPersistence(!!locked)\n }\n }, [locked])\n\n useEffect(() => {\n if (firmwareVersion) {\n appStore.setFirmwareVersion(firmwareVersion)\n }\n }, [firmwareVersion])\n\n useEffect(() => {\n if (temperatureUnit !== undefined) {\n appStore.setUnit(\"temperature\", parseUnionValue(TEMPERATURE_UNITS, temperatureUnit, \"celsius\"))\n }\n }, [temperatureUnit])\n\n useEffect(() => {\n if (speedUnit !== undefined) {\n appStore.setUnit(\"speed\", parseUnionValue(SPEED_UNITS, speedUnit, \"m/s\"))\n }\n }, [speedUnit])\n\n useEffect(() => {\n if (volumeUnit !== undefined) {\n appStore.setUnit(\"volume\", parseEnumValue(VolumeUnit, volumeUnit, VolumeUnit.CUBIC_METERS))\n }\n }, [volumeUnit])\n\n useEffect(() => {\n if (guiVersion) {\n appStore.setGuiVersion(guiVersion)\n }\n }, [guiVersion])\n\n useEffect(() => {\n if (electricalPowerIndicator !== undefined) {\n appStore.setElectricalPowerIndicator(parseEnumValue(PowerUnit, electricalPowerIndicator, PowerUnit.AMPS))\n }\n }, [electricalPowerIndicator])\n\n useEffect(() => {\n if (rgbColorPresetsCommaSeparatedString !== undefined) {\n appStore.setRGBColorPresets(stringToHSVWPresets(rgbColorPresetsCommaSeparatedString))\n }\n }, [rgbColorPresetsCommaSeparatedString])\n\n useEffect(() => {\n if (rgbwColorPresetsCommaSeparatedString !== undefined) {\n appStore.setRGBWColorPresets(stringToHSVWPresets(rgbwColorPresetsCommaSeparatedString))\n }\n }, [rgbwColorPresetsCommaSeparatedString])\n\n useEffect(() => {\n if (cctColorPresetsCommaSeparatedString !== undefined) {\n appStore.setCCTColorPresets(stringToHSVWPresets(cctColorPresetsCommaSeparatedString))\n }\n }, [cctColorPresetsCommaSeparatedString])\n\n return appStore\n}\n"]}
1
+ {"version":3,"file":"App.provider.js","sourceRoot":"/","sources":["src/Modules/App/App.provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo } from \"react\"\nimport { PortalId, useMqtt, useTopicState } from \"../Mqtt\"\nimport {\n TEMPERATURE_UNITS,\n SPEED_UNITS,\n VolumeUnit,\n PowerUnit,\n useAppStore,\n AppProvider,\n parseUnionValue,\n parseEnumValue,\n} from \"./App.store\"\nimport { stringToHSVWPresets } from \"../../utils/hsvw\"\n\nexport const useApp = (): AppProvider => {\n const appStore = useAppStore()\n const mqtt = useMqtt()\n\n const getTopics = (portalId: PortalId) => ({\n locked: `N/${portalId}/settings/0/Settings/VenusApp/LockState`,\n firmwareVersion: `N/${portalId}/system/0/FirmwareVersion`,\n units: {\n temperature: `N/${portalId}/settings/0/Settings/System/Units/Temperature`,\n speed: `N/${portalId}/settings/0/Settings/Gps/SpeedUnit`,\n volume: `N/${portalId}/settings/0/Settings/System/VolumeUnit`,\n },\n guiVersion: `N/${portalId}/settings/0/Settings/Gui/RunningVersion`,\n electricalPowerIndicator: `N/${portalId}/settings/0/Settings/Gui/ElectricalPowerIndicator`,\n rgbColorPresetsArray: `N/${portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGB`,\n rgbwColorPresetsArray: `N/${portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGBW`,\n cctColorPresetsArray: `N/${portalId}/settings/0/Settings/Gui2/Switchpane/Preset/CCT`,\n })\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n const locked = useTopicState<number>(topics.locked)\n const firmwareVersion = useTopicState<string>(topics.firmwareVersion)\n const temperatureUnit = useTopicState<string>(topics.units.temperature)\n const speedUnit = useTopicState<string>(topics.units.speed)\n const volumeUnit = useTopicState<number>(topics.units.volume)\n const guiVersion = useTopicState<number>(topics.guiVersion)\n const electricalPowerIndicator = useTopicState<number>(topics.electricalPowerIndicator)\n const rgbColorPresetsCommaSeparatedString = useTopicState<string>(topics.rgbColorPresetsArray)\n const rgbwColorPresetsCommaSeparatedString = useTopicState<string>(topics.rgbwColorPresetsArray)\n const cctColorPresetsCommaSeparatedString = useTopicState<string>(topics.cctColorPresetsArray)\n\n useEffect(() => {\n if (locked !== undefined) {\n appStore.setLockedWithoutPersistence(!!locked)\n }\n }, [locked, appStore])\n\n useEffect(() => {\n if (firmwareVersion) {\n appStore.setFirmwareVersion(firmwareVersion)\n }\n }, [firmwareVersion, appStore])\n\n useEffect(() => {\n if (temperatureUnit !== undefined) {\n appStore.setUnit(\"temperature\", parseUnionValue(TEMPERATURE_UNITS, temperatureUnit, \"celsius\"))\n }\n }, [temperatureUnit, appStore])\n\n useEffect(() => {\n if (speedUnit !== undefined) {\n appStore.setUnit(\"speed\", parseUnionValue(SPEED_UNITS, speedUnit, \"km/h\"))\n }\n }, [speedUnit, appStore])\n\n useEffect(() => {\n if (volumeUnit !== undefined) {\n appStore.setUnit(\"volume\", parseEnumValue(VolumeUnit, volumeUnit, VolumeUnit.CUBIC_METERS))\n }\n }, [volumeUnit, appStore])\n\n useEffect(() => {\n if (guiVersion) {\n appStore.setGuiVersion(guiVersion)\n }\n }, [guiVersion, appStore])\n\n useEffect(() => {\n if (electricalPowerIndicator !== undefined) {\n appStore.setElectricalPowerIndicator(parseEnumValue(PowerUnit, electricalPowerIndicator, PowerUnit.AMPS))\n }\n }, [electricalPowerIndicator, appStore])\n\n useEffect(() => {\n if (rgbColorPresetsCommaSeparatedString !== undefined) {\n appStore.setRGBColorPresets(stringToHSVWPresets(rgbColorPresetsCommaSeparatedString))\n }\n }, [rgbColorPresetsCommaSeparatedString, appStore])\n\n useEffect(() => {\n if (rgbwColorPresetsCommaSeparatedString !== undefined) {\n appStore.setRGBWColorPresets(stringToHSVWPresets(rgbwColorPresetsCommaSeparatedString))\n }\n }, [rgbwColorPresetsCommaSeparatedString, appStore])\n\n useEffect(() => {\n if (cctColorPresetsCommaSeparatedString !== undefined) {\n appStore.setCCTColorPresets(stringToHSVWPresets(cctColorPresetsCommaSeparatedString))\n }\n }, [cctColorPresetsCommaSeparatedString, appStore])\n\n return appStore\n}\n"]}
@@ -64,8 +64,8 @@ export declare class AppStore implements AppProvider {
64
64
  rgbwColorPresets: HSVWColorPresets;
65
65
  cctColorPresets: HSVWColorPresets;
66
66
  constructor(mqttStore: MqttStore);
67
- get humanReadableFirmwareVersion(): any;
68
- get temperatureUnitToHumanReadable(): "°C" | "°F";
67
+ get humanReadableFirmwareVersion(): string;
68
+ get temperatureUnitToHumanReadable(): "°F" | "°C";
69
69
  get temperatureUnit(): "fahrenheit" | "celsius";
70
70
  get speedUnitToHumanReadable(): "km/h" | "m/s" | "mph" | "kt";
71
71
  get speedUnit(): "km/h" | "m/s" | "mph" | "kt";
@@ -1 +1 @@
1
- {"version":3,"file":"App.store.d.ts","sourceRoot":"/","sources":["src/Modules/App/App.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.store.d.ts","sourceRoot":"/","sources":["src/Modules/App/App.store.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,16 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  import { makeAutoObservable } from "mobx";
13
2
  import { useMemo } from "react";
14
3
  import { versionToHumanReadable } from "../../utils/util";
15
4
  import { VIEWS } from "../../utils/constants";
16
5
  import { useMqtt } from "../Mqtt";
17
6
  import { emptyHSVWColorPresets, hwvwPresetsToString } from "../../utils/hsvw";
18
- export var TEMPERATURE_UNITS = ["fahrenheit", "celsius"];
19
- export var SPEED_UNITS = ["km/h", "m/s", "mph", "kt"];
7
+ export const TEMPERATURE_UNITS = ["fahrenheit", "celsius"];
8
+ export const SPEED_UNITS = ["km/h", "m/s", "mph", "kt"];
20
9
  export function parseUnionValue(valid, value, fallback) {
21
10
  return valid.includes(value) ? value : fallback;
22
11
  }
23
12
  export function parseEnumValue(enumObj, value, fallback) {
24
- var validValues = Object.values(enumObj).filter(function (v) { return typeof v === "number"; });
13
+ const validValues = Object.values(enumObj).filter((v) => typeof v === "number");
25
14
  return validValues.includes(value) ? value : fallback;
26
15
  }
27
16
  export var VolumeUnit;
@@ -37,10 +26,9 @@ export var PowerUnit;
37
26
  PowerUnit[PowerUnit["AMPS"] = 1] = "AMPS";
38
27
  PowerUnit[PowerUnit["MIXED"] = 2] = "MIXED";
39
28
  })(PowerUnit || (PowerUnit = {}));
40
- var store;
41
- var AppStore = /** @class */ (function () {
42
- function AppStore(mqttStore) {
43
- var _this = this;
29
+ let store;
30
+ export class AppStore {
31
+ constructor(mqttStore) {
44
32
  Object.defineProperty(this, "page", {
45
33
  enumerable: true,
46
34
  configurable: true,
@@ -122,20 +110,20 @@ var AppStore = /** @class */ (function () {
122
110
  enumerable: true,
123
111
  configurable: true,
124
112
  writable: true,
125
- value: function (page) { return (_this.page = page); }
113
+ value: (page) => (this.page = page)
126
114
  });
127
115
  Object.defineProperty(this, "setLockedWithoutPersistence", {
128
116
  enumerable: true,
129
117
  configurable: true,
130
118
  writable: true,
131
- value: function (locked) { return (_this.locked = locked); }
119
+ value: (locked) => (this.locked = locked)
132
120
  });
133
121
  Object.defineProperty(this, "setRemote", {
134
122
  enumerable: true,
135
123
  configurable: true,
136
124
  writable: true,
137
- value: function (remote) {
138
- _this.remote = remote;
125
+ value: (remote) => {
126
+ this.remote = remote;
139
127
  // @ts-expect-error Missing TS declaration for venusNativeApp
140
128
  if (window === null || window === void 0 ? void 0 : window.venusNativeApp) {
141
129
  if (remote) {
@@ -153,92 +141,89 @@ var AppStore = /** @class */ (function () {
153
141
  enumerable: true,
154
142
  configurable: true,
155
143
  writable: true,
156
- value: function () { return _this.setRemote(!_this.remote); }
144
+ value: () => this.setRemote(!this.remote)
157
145
  });
158
146
  Object.defineProperty(this, "toggleLocked", {
159
147
  enumerable: true,
160
148
  configurable: true,
161
149
  writable: true,
162
- value: function () {
163
- _this.mqtt.publish("N/".concat(_this.mqtt.portalId, "/settings/0/Settings/VenusApp/LockState"), +!_this.locked);
164
- _this.locked = !_this.locked;
150
+ value: () => {
151
+ this.mqtt.publish(`N/${this.mqtt.portalId}/settings/0/Settings/VenusApp/LockState`, +!this.locked);
152
+ this.locked = !this.locked;
165
153
  }
166
154
  });
167
155
  Object.defineProperty(this, "setLanguage", {
168
156
  enumerable: true,
169
157
  configurable: true,
170
158
  writable: true,
171
- value: function (language) { return (_this.language = language); }
159
+ value: (language) => (this.language = language)
172
160
  });
173
161
  Object.defineProperty(this, "setFirmwareVersion", {
174
162
  enumerable: true,
175
163
  configurable: true,
176
164
  writable: true,
177
- value: function (firmwareVersion) { return (_this.firmwareVersion = firmwareVersion); }
165
+ value: (firmwareVersion) => (this.firmwareVersion = firmwareVersion)
178
166
  });
179
167
  Object.defineProperty(this, "setUnit", {
180
168
  enumerable: true,
181
169
  configurable: true,
182
170
  writable: true,
183
- value: function (unit, value) {
184
- var _a;
185
- _this.units = __assign(__assign({}, _this.units), (_a = {}, _a[unit] = value, _a));
171
+ value: (unit, value) => {
172
+ this.units = Object.assign(Object.assign({}, this.units), { [unit]: value });
186
173
  }
187
174
  });
188
175
  Object.defineProperty(this, "setGuiVersion", {
189
176
  enumerable: true,
190
177
  configurable: true,
191
178
  writable: true,
192
- value: function (guiVersion) { return (_this.guiVersion = guiVersion); }
179
+ value: (guiVersion) => (this.guiVersion = guiVersion)
193
180
  });
194
181
  Object.defineProperty(this, "setElectricalPowerIndicator", {
195
182
  enumerable: true,
196
183
  configurable: true,
197
184
  writable: true,
198
- value: function (electricalPowerIndicator) {
199
- return (_this.electricalPowerIndicator = electricalPowerIndicator);
200
- }
185
+ value: (electricalPowerIndicator) => (this.electricalPowerIndicator = electricalPowerIndicator)
201
186
  });
202
187
  Object.defineProperty(this, "setRGBColorPresets", {
203
188
  enumerable: true,
204
189
  configurable: true,
205
190
  writable: true,
206
- value: function (presets) { return (_this.rgbColorPresets = presets); }
191
+ value: (presets) => (this.rgbColorPresets = presets)
207
192
  });
208
193
  Object.defineProperty(this, "setRGBWColorPresets", {
209
194
  enumerable: true,
210
195
  configurable: true,
211
196
  writable: true,
212
- value: function (presets) { return (_this.rgbwColorPresets = presets); }
197
+ value: (presets) => (this.rgbwColorPresets = presets)
213
198
  });
214
199
  Object.defineProperty(this, "setCCTColorPresets", {
215
200
  enumerable: true,
216
201
  configurable: true,
217
202
  writable: true,
218
- value: function (presets) { return (_this.cctColorPresets = presets); }
203
+ value: (presets) => (this.cctColorPresets = presets)
219
204
  });
220
205
  Object.defineProperty(this, "updateRGBColorPresets", {
221
206
  enumerable: true,
222
207
  configurable: true,
223
208
  writable: true,
224
- value: function (presets) {
225
- _this.mqtt.publish("W/".concat(_this.mqtt.portalId, "/settings/0/Settings/Gui2/Switchpane/Preset/RGB"), hwvwPresetsToString(presets));
209
+ value: (presets) => {
210
+ this.mqtt.publish(`W/${this.mqtt.portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGB`, hwvwPresetsToString(presets));
226
211
  }
227
212
  });
228
213
  Object.defineProperty(this, "updateRGBWColorPresets", {
229
214
  enumerable: true,
230
215
  configurable: true,
231
216
  writable: true,
232
- value: function (presets) {
233
- _this.mqtt.publish("W/".concat(_this.mqtt.portalId, "/settings/0/Settings/Gui2/Switchpane/Preset/RGBW"), hwvwPresetsToString(presets));
217
+ value: (presets) => {
218
+ this.mqtt.publish(`W/${this.mqtt.portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGBW`, hwvwPresetsToString(presets));
234
219
  }
235
220
  });
236
221
  Object.defineProperty(this, "updateCCTColorPresets", {
237
222
  enumerable: true,
238
223
  configurable: true,
239
224
  writable: true,
240
- value: function (presets) {
241
- _this.mqtt.publish("W/".concat(_this.mqtt.portalId, "/settings/0/Settings/Gui2/Switchpane/Preset/CCT"), hwvwPresetsToString(presets));
225
+ value: (presets) => {
226
+ this.mqtt.publish(`W/${this.mqtt.portalId}/settings/0/Settings/Gui2/Switchpane/Preset/CCT`, hwvwPresetsToString(presets));
242
227
  }
243
228
  });
244
229
  makeAutoObservable(this, { mqtt: false });
@@ -255,72 +240,44 @@ var AppStore = /** @class */ (function () {
255
240
  this.rgbwColorPresets = emptyHSVWColorPresets;
256
241
  this.cctColorPresets = emptyHSVWColorPresets;
257
242
  }
258
- Object.defineProperty(AppStore.prototype, "humanReadableFirmwareVersion", {
259
- get: function () {
260
- return versionToHumanReadable(+this.firmwareVersion) || "-";
261
- },
262
- enumerable: false,
263
- configurable: true
264
- });
265
- Object.defineProperty(AppStore.prototype, "temperatureUnitToHumanReadable", {
266
- get: function () {
267
- if (this.units.temperature === "celsius") {
268
- return "°C";
269
- }
243
+ get humanReadableFirmwareVersion() {
244
+ return versionToHumanReadable(+this.firmwareVersion) || "-";
245
+ }
246
+ get temperatureUnitToHumanReadable() {
247
+ if (this.units.temperature === "fahrenheit") {
270
248
  return "°F";
271
- },
272
- enumerable: false,
273
- configurable: true
274
- });
275
- Object.defineProperty(AppStore.prototype, "temperatureUnit", {
276
- get: function () {
277
- return this.units.temperature;
278
- },
279
- enumerable: false,
280
- configurable: true
281
- });
282
- Object.defineProperty(AppStore.prototype, "speedUnitToHumanReadable", {
283
- get: function () {
284
- return this.units.speed;
285
- },
286
- enumerable: false,
287
- configurable: true
288
- });
289
- Object.defineProperty(AppStore.prototype, "speedUnit", {
290
- get: function () {
291
- return this.units.speed;
292
- },
293
- enumerable: false,
294
- configurable: true
295
- });
296
- Object.defineProperty(AppStore.prototype, "volumeUnitToHumanReadable", {
297
- get: function () {
298
- switch (this.units.volume) {
299
- case VolumeUnit.CUBIC_METERS:
300
- return "m³";
301
- case VolumeUnit.LITRES:
302
- return "l";
303
- case VolumeUnit.GALLONS_IMPERIAL:
304
- return "gal";
305
- case VolumeUnit.GALLONS_US:
306
- return "gal";
307
- }
308
- },
309
- enumerable: false,
310
- configurable: true
311
- });
312
- Object.defineProperty(AppStore.prototype, "volumeUnit", {
313
- get: function () {
314
- return this.units.volume;
315
- },
316
- enumerable: false,
317
- configurable: true
318
- });
319
- return AppStore;
320
- }());
321
- export { AppStore };
249
+ }
250
+ return "°C";
251
+ }
252
+ get temperatureUnit() {
253
+ return this.units.temperature;
254
+ }
255
+ get speedUnitToHumanReadable() {
256
+ return this.units.speed;
257
+ }
258
+ get speedUnit() {
259
+ return this.units.speed;
260
+ }
261
+ get volumeUnitToHumanReadable() {
262
+ switch (this.units.volume) {
263
+ case VolumeUnit.CUBIC_METERS:
264
+ return "m³";
265
+ case VolumeUnit.LITRES:
266
+ return "l";
267
+ case VolumeUnit.GALLONS_IMPERIAL:
268
+ return "gal";
269
+ case VolumeUnit.GALLONS_US:
270
+ return "gal";
271
+ default:
272
+ return "m³";
273
+ }
274
+ }
275
+ get volumeUnit() {
276
+ return this.units.volume;
277
+ }
278
+ }
322
279
  function initializeStore(mqttStore) {
323
- var _store = store !== null && store !== void 0 ? store : new AppStore(mqttStore);
280
+ const _store = store !== null && store !== void 0 ? store : new AppStore(mqttStore);
324
281
  // For SSG and SSR always create a new store
325
282
  if (typeof window === "undefined")
326
283
  return _store;
@@ -330,7 +287,7 @@ function initializeStore(mqttStore) {
330
287
  return _store;
331
288
  }
332
289
  export function useAppStore() {
333
- var mqtt = useMqtt();
334
- return useMemo(function () { return initializeStore(mqtt); }, []);
290
+ const mqtt = useMqtt();
291
+ return useMemo(() => initializeStore(mqtt), [mqtt]);
335
292
  }
336
293
  //# sourceMappingURL=App.store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.store.js","sourceRoot":"/","sources":["src/Modules/App/App.store.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAutoObservable } from \"mobx\"\nimport { useMemo } from \"react\"\nimport { versionToHumanReadable } from \"../../utils/util\"\nimport { VIEWS } from \"../../utils/constants\"\nimport { MqttStore, useMqtt } from \"../Mqtt\"\nimport { emptyHSVWColorPresets, HSVWColorPresets, hwvwPresetsToString } from \"../../utils/hsvw\"\n\nexport interface IUnit {\n temperature: TemperatureUnit\n speed: SpeedUnit\n volume: VolumeUnit\n}\n\nexport interface AppState {\n page: string\n locked: boolean\n remote: boolean\n language?: string\n firmwareVersion: string\n units: IUnit\n guiVersion: number\n electricalPowerIndicator: PowerUnit\n\n rgbColorPresets: HSVWColorPresets\n rgbwColorPresets: HSVWColorPresets\n cctColorPresets: HSVWColorPresets\n\n humanReadableFirmwareVersion: string\n temperatureUnitToHumanReadable: string\n temperatureUnit: TemperatureUnit\n speedUnitToHumanReadable: string\n speedUnit: SpeedUnit\n volumeUnitToHumanReadable: string\n volumeUnit: VolumeUnit\n\n toggleRemote: () => void\n toggleLocked: () => void\n setPage: (page: string) => void\n}\n\nexport interface AppProvider extends AppState {\n updateRGBColorPresets: (presets: HSVWColorPresets) => void\n updateRGBWColorPresets: (presets: HSVWColorPresets) => void\n updateCCTColorPresets: (presets: HSVWColorPresets) => void\n}\n\nexport const TEMPERATURE_UNITS = [\"fahrenheit\", \"celsius\"] as const\nexport type TemperatureUnit = (typeof TEMPERATURE_UNITS)[number]\n\nexport const SPEED_UNITS = [\"km/h\", \"m/s\", \"mph\", \"kt\"] as const\nexport type SpeedUnit = (typeof SPEED_UNITS)[number]\n\nexport function parseUnionValue<T extends string>(valid: readonly T[], value: string, fallback: T): T {\n return (valid as readonly string[]).includes(value) ? (value as T) : fallback\n}\n\nexport function parseEnumValue<T extends number>(\n enumObj: Record<string, number | string>,\n value: number,\n fallback: T\n): T {\n const validValues = Object.values(enumObj).filter((v): v is number => typeof v === \"number\")\n return validValues.includes(value) ? (value as T) : fallback\n}\n\nexport enum VolumeUnit {\n CUBIC_METERS = 0,\n LITRES = 1,\n GALLONS_IMPERIAL = 2,\n GALLONS_US = 3,\n}\n\nexport enum PowerUnit {\n WATTS = 0,\n AMPS = 1,\n MIXED = 2, // AC in Watts, DC in Ampers\n}\n\nlet store: AppStore\n\nexport class AppStore implements AppProvider {\n page: string = VIEWS.METRICS\n locked: boolean = false\n // figure out whether we are connecting to VRM provided MQTT broker\n // see https://github.com/victronenergy/dbus-flashmq?tab=readme-ov-file#determining-the-broker-url-for-a-given-installation\n remote: boolean =\n typeof window !== \"undefined\" &&\n window?.location.protocol === \"https:\" &&\n window?.location.hostname.endsWith(\"victronenergy.com\") &&\n (window?.location.hostname.startsWith(\"mqtt\") || window?.location.hostname.startsWith(\"webmqtt\"))\n language?: string\n mqtt: MqttStore\n firmwareVersion: string\n units: IUnit\n guiVersion: number\n electricalPowerIndicator: PowerUnit\n\n rgbColorPresets: HSVWColorPresets\n rgbwColorPresets: HSVWColorPresets\n cctColorPresets: HSVWColorPresets\n\n constructor(mqttStore: MqttStore) {\n makeAutoObservable(this, { mqtt: false })\n this.mqtt = mqttStore\n this.firmwareVersion = \"-\"\n this.units = {\n temperature: \"celsius\",\n speed: \"km/h\",\n volume: VolumeUnit.CUBIC_METERS,\n }\n this.guiVersion = 2\n this.electricalPowerIndicator = PowerUnit.AMPS\n this.rgbColorPresets = emptyHSVWColorPresets\n this.rgbwColorPresets = emptyHSVWColorPresets\n this.cctColorPresets = emptyHSVWColorPresets\n }\n\n get humanReadableFirmwareVersion() {\n return versionToHumanReadable(+this.firmwareVersion) || \"-\"\n }\n\n get temperatureUnitToHumanReadable() {\n if (this.units.temperature === \"celsius\") {\n return \"°C\"\n }\n\n return \"°F\"\n }\n\n get temperatureUnit() {\n return this.units.temperature\n }\n\n get speedUnitToHumanReadable() {\n return this.units.speed\n }\n\n get speedUnit() {\n return this.units.speed\n }\n\n get volumeUnitToHumanReadable() {\n switch (this.units.volume) {\n case VolumeUnit.CUBIC_METERS:\n return \"m³\"\n case VolumeUnit.LITRES:\n return \"l\"\n case VolumeUnit.GALLONS_IMPERIAL:\n return \"gal\"\n case VolumeUnit.GALLONS_US:\n return \"gal\"\n }\n }\n\n get volumeUnit() {\n return this.units.volume\n }\n\n setPage = (page: string) => (this.page = page)\n setLockedWithoutPersistence = (locked: boolean) => (this.locked = locked)\n setRemote = (remote: boolean) => {\n this.remote = remote\n\n // @ts-expect-error Missing TS declaration for venusNativeApp\n if (window?.venusNativeApp) {\n if (remote) {\n // @ts-expect-error Missing TS declaration for venusNativeApp\n window.venusNativeApp.switchToRemote()\n } else {\n // @ts-expect-error Missing TS declaration for venusNativeApp\n window.venusNativeApp.switchToLocal()\n }\n }\n }\n toggleRemote = () => this.setRemote(!this.remote)\n toggleLocked = () => {\n this.mqtt.publish(`N/${this.mqtt.portalId}/settings/0/Settings/VenusApp/LockState`, +!this.locked)\n this.locked = !this.locked\n }\n setLanguage = (language: string) => (this.language = language)\n setFirmwareVersion = (firmwareVersion: string) => (this.firmwareVersion = firmwareVersion)\n setUnit = <K extends keyof IUnit>(unit: K, value: IUnit[K]) => {\n this.units = {\n ...this.units,\n [unit]: value,\n }\n }\n setGuiVersion = (guiVersion: number) => (this.guiVersion = guiVersion)\n setElectricalPowerIndicator = (electricalPowerIndicator: PowerUnit) =>\n (this.electricalPowerIndicator = electricalPowerIndicator)\n\n setRGBColorPresets = (presets: HSVWColorPresets) => (this.rgbColorPresets = presets)\n setRGBWColorPresets = (presets: HSVWColorPresets) => (this.rgbwColorPresets = presets)\n setCCTColorPresets = (presets: HSVWColorPresets) => (this.cctColorPresets = presets)\n\n updateRGBColorPresets = (presets: HSVWColorPresets) => {\n this.mqtt.publish(\n `W/${this.mqtt.portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGB`,\n hwvwPresetsToString(presets)\n )\n }\n updateRGBWColorPresets = (presets: HSVWColorPresets) => {\n this.mqtt.publish(\n `W/${this.mqtt.portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGBW`,\n hwvwPresetsToString(presets)\n )\n }\n updateCCTColorPresets = (presets: HSVWColorPresets) => {\n this.mqtt.publish(\n `W/${this.mqtt.portalId}/settings/0/Settings/Gui2/Switchpane/Preset/CCT`,\n hwvwPresetsToString(presets)\n )\n }\n}\n\nfunction initializeStore(mqttStore: MqttStore) {\n const _store = store ?? new AppStore(mqttStore)\n // For SSG and SSR always create a new store\n if (typeof window === \"undefined\") return _store\n // Create the store once in the client\n if (!store) store = _store\n\n return _store\n}\n\nexport function useAppStore(): AppStore {\n const mqtt = useMqtt()\n return useMemo(() => initializeStore(mqtt), [])\n}\n"]}
1
+ {"version":3,"file":"App.store.js","sourceRoot":"/","sources":["src/Modules/App/App.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAa,OAAO,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAoB,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAyC/F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,SAAS,CAAU,CAAA;AAGnE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAU,CAAA;AAGhE,MAAM,UAAU,eAAe,CAAmB,KAAmB,EAAE,KAAa,EAAE,QAAW;IAC/F,OAAQ,KAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAW,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAwC,EACxC,KAAa,EACb,QAAW;IAEX,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAA;IAC5F,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAW,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC9D,CAAC;AAED,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2DAAgB,CAAA;IAChB,+CAAU,CAAA;IACV,mEAAoB,CAAA;IACpB,uDAAc,CAAA;AAChB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,2CAAS,CAAA;IACT,yCAAQ,CAAA;IACR,2CAAS,CAAA;AACX,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAED,IAAI,KAAe,CAAA;AAEnB,MAAM,OAAO,QAAQ;IAqBnB,YAAY,SAAoB;QApBhC;;;;mBAAe,KAAK,CAAC,OAAO;WAAA;QAC5B;;;;mBAAkB,KAAK;WAAA;QACvB,mEAAmE;QACnE,2HAA2H;QAC3H;;;;mBACE,OAAO,MAAM,KAAK,WAAW;gBAC7B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,QAAQ,MAAK,QAAQ;iBACtC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;gBACvD,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA,CAAC;WAAA;QACnG;;;;;WAAiB;QACjB;;;;;WAAe;QACf;;;;;WAAuB;QACvB;;;;;WAAY;QACZ;;;;;WAAkB;QAClB;;;;;WAAmC;QAEnC;;;;;WAAiC;QACjC;;;;;WAAkC;QAClC;;;;;WAAiC;QA6DjC;;;;mBAAU,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;WAAA;QAC9C;;;;mBAA8B,CAAC,MAAe,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;WAAA;QACzE;;;;mBAAY,CAAC,MAAe,EAAE,EAAE;gBAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;gBAEpB,6DAA6D;gBAC7D,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,EAAE,CAAC;oBAC3B,IAAI,MAAM,EAAE,CAAC;wBACX,6DAA6D;wBAC7D,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,CAAA;oBACxC,CAAC;yBAAM,CAAC;wBACN,6DAA6D;wBAC7D,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,CAAA;oBACvC,CAAC;gBACH,CAAC;YACH,CAAC;WAAA;QACD;;;;mBAAe,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;WAAA;QACjD;;;;mBAAe,GAAG,EAAE;gBAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,yCAAyC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAClG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAA;YAC5B,CAAC;WAAA;QACD;;;;mBAAc,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;WAAA;QAC9D;;;;mBAAqB,CAAC,eAAuB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;WAAA;QAC1F;;;;mBAAU,CAAwB,IAAO,EAAE,KAAe,EAAE,EAAE;gBAC5D,IAAI,CAAC,KAAK,mCACL,IAAI,CAAC,KAAK,KACb,CAAC,IAAI,CAAC,EAAE,KAAK,GACd,CAAA;YACH,CAAC;WAAA;QACD;;;;mBAAgB,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;WAAA;QACtE;;;;mBAA8B,CAAC,wBAAmC,EAAE,EAAE,CACpE,CAAC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;WAAA;QAE5D;;;;mBAAqB,CAAC,OAAyB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;WAAA;QACpF;;;;mBAAsB,CAAC,OAAyB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;WAAA;QACtF;;;;mBAAqB,CAAC,OAAyB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;WAAA;QAEpF;;;;mBAAwB,CAAC,OAAyB,EAAE,EAAE;gBACpD,IAAI,CAAC,IAAI,CAAC,OAAO,CACf,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,iDAAiD,EACxE,mBAAmB,CAAC,OAAO,CAAC,CAC7B,CAAA;YACH,CAAC;WAAA;QACD;;;;mBAAyB,CAAC,OAAyB,EAAE,EAAE;gBACrD,IAAI,CAAC,IAAI,CAAC,OAAO,CACf,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,kDAAkD,EACzE,mBAAmB,CAAC,OAAO,CAAC,CAC7B,CAAA;YACH,CAAC;WAAA;QACD;;;;mBAAwB,CAAC,OAAyB,EAAE,EAAE;gBACpD,IAAI,CAAC,IAAI,CAAC,OAAO,CACf,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,iDAAiD,EACxE,mBAAmB,CAAC,OAAO,CAAC,CAC7B,CAAA;YACH,CAAC;WAAA;QAhHC,kBAAkB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,UAAU,CAAC,YAAY;SAChC,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC,IAAI,CAAA;QAC9C,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAA;QAC5C,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAA;QAC7C,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAA;IAC9C,CAAC;IAED,IAAI,4BAA4B;QAC9B,OAAO,sBAAsB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAA;IAC7D,CAAC;IAED,IAAI,8BAA8B;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAA;IAC/B,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,IAAI,yBAAyB;QAC3B,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1B,KAAK,UAAU,CAAC,YAAY;gBAC1B,OAAO,IAAI,CAAA;YACb,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,GAAG,CAAA;YACZ,KAAK,UAAU,CAAC,gBAAgB;gBAC9B,OAAO,KAAK,CAAA;YACd,KAAK,UAAU,CAAC,UAAU;gBACxB,OAAO,KAAK,CAAA;YACd;gBACE,OAAO,IAAI,CAAA;QACf,CAAC;IACH,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;CAyDF;AAED,SAAS,eAAe,CAAC,SAAoB;IAC3C,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC/C,4CAA4C;IAC5C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAA;IAChD,sCAAsC;IACtC,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,MAAM,CAAA;IAE1B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;AACrD,CAAC","sourcesContent":["import { makeAutoObservable } from \"mobx\"\nimport { useMemo } from \"react\"\nimport { versionToHumanReadable } from \"../../utils/util\"\nimport { VIEWS } from \"../../utils/constants\"\nimport { MqttStore, useMqtt } from \"../Mqtt\"\nimport { emptyHSVWColorPresets, HSVWColorPresets, hwvwPresetsToString } from \"../../utils/hsvw\"\n\nexport interface IUnit {\n temperature: TemperatureUnit\n speed: SpeedUnit\n volume: VolumeUnit\n}\n\nexport interface AppState {\n page: string\n locked: boolean\n remote: boolean\n language?: string\n firmwareVersion: string\n units: IUnit\n guiVersion: number\n electricalPowerIndicator: PowerUnit\n\n rgbColorPresets: HSVWColorPresets\n rgbwColorPresets: HSVWColorPresets\n cctColorPresets: HSVWColorPresets\n\n humanReadableFirmwareVersion: string\n temperatureUnitToHumanReadable: string\n temperatureUnit: TemperatureUnit\n speedUnitToHumanReadable: string\n speedUnit: SpeedUnit\n volumeUnitToHumanReadable: string\n volumeUnit: VolumeUnit\n\n toggleRemote: () => void\n toggleLocked: () => void\n setPage: (page: string) => void\n}\n\nexport interface AppProvider extends AppState {\n updateRGBColorPresets: (presets: HSVWColorPresets) => void\n updateRGBWColorPresets: (presets: HSVWColorPresets) => void\n updateCCTColorPresets: (presets: HSVWColorPresets) => void\n}\n\nexport const TEMPERATURE_UNITS = [\"fahrenheit\", \"celsius\"] as const\nexport type TemperatureUnit = (typeof TEMPERATURE_UNITS)[number]\n\nexport const SPEED_UNITS = [\"km/h\", \"m/s\", \"mph\", \"kt\"] as const\nexport type SpeedUnit = (typeof SPEED_UNITS)[number]\n\nexport function parseUnionValue<T extends string>(valid: readonly T[], value: string, fallback: T): T {\n return (valid as readonly string[]).includes(value) ? (value as T) : fallback\n}\n\nexport function parseEnumValue<T extends number>(\n enumObj: Record<string, number | string>,\n value: number,\n fallback: T\n): T {\n const validValues = Object.values(enumObj).filter((v): v is number => typeof v === \"number\")\n return validValues.includes(value) ? (value as T) : fallback\n}\n\nexport enum VolumeUnit {\n CUBIC_METERS = 0,\n LITRES = 1,\n GALLONS_IMPERIAL = 2,\n GALLONS_US = 3,\n}\n\nexport enum PowerUnit {\n WATTS = 0,\n AMPS = 1,\n MIXED = 2, // AC in Watts, DC in Ampers\n}\n\nlet store: AppStore\n\nexport class AppStore implements AppProvider {\n page: string = VIEWS.METRICS\n locked: boolean = false\n // figure out whether we are connecting to VRM provided MQTT broker\n // see https://github.com/victronenergy/dbus-flashmq?tab=readme-ov-file#determining-the-broker-url-for-a-given-installation\n remote: boolean =\n typeof window !== \"undefined\" &&\n window?.location.protocol === \"https:\" &&\n window?.location.hostname.endsWith(\"victronenergy.com\") &&\n (window?.location.hostname.startsWith(\"mqtt\") || window?.location.hostname.startsWith(\"webmqtt\"))\n language?: string\n mqtt: MqttStore\n firmwareVersion: string\n units: IUnit\n guiVersion: number\n electricalPowerIndicator: PowerUnit\n\n rgbColorPresets: HSVWColorPresets\n rgbwColorPresets: HSVWColorPresets\n cctColorPresets: HSVWColorPresets\n\n constructor(mqttStore: MqttStore) {\n makeAutoObservable(this, { mqtt: false })\n this.mqtt = mqttStore\n this.firmwareVersion = \"-\"\n this.units = {\n temperature: \"celsius\",\n speed: \"km/h\",\n volume: VolumeUnit.CUBIC_METERS,\n }\n this.guiVersion = 2\n this.electricalPowerIndicator = PowerUnit.AMPS\n this.rgbColorPresets = emptyHSVWColorPresets\n this.rgbwColorPresets = emptyHSVWColorPresets\n this.cctColorPresets = emptyHSVWColorPresets\n }\n\n get humanReadableFirmwareVersion() {\n return versionToHumanReadable(+this.firmwareVersion) || \"-\"\n }\n\n get temperatureUnitToHumanReadable() {\n if (this.units.temperature === \"fahrenheit\") {\n return \"°F\"\n }\n\n return \"°C\"\n }\n\n get temperatureUnit() {\n return this.units.temperature\n }\n\n get speedUnitToHumanReadable() {\n return this.units.speed\n }\n\n get speedUnit() {\n return this.units.speed\n }\n\n get volumeUnitToHumanReadable() {\n switch (this.units.volume) {\n case VolumeUnit.CUBIC_METERS:\n return \"m³\"\n case VolumeUnit.LITRES:\n return \"l\"\n case VolumeUnit.GALLONS_IMPERIAL:\n return \"gal\"\n case VolumeUnit.GALLONS_US:\n return \"gal\"\n default:\n return \"m³\"\n }\n }\n\n get volumeUnit() {\n return this.units.volume\n }\n\n setPage = (page: string) => (this.page = page)\n setLockedWithoutPersistence = (locked: boolean) => (this.locked = locked)\n setRemote = (remote: boolean) => {\n this.remote = remote\n\n // @ts-expect-error Missing TS declaration for venusNativeApp\n if (window?.venusNativeApp) {\n if (remote) {\n // @ts-expect-error Missing TS declaration for venusNativeApp\n window.venusNativeApp.switchToRemote()\n } else {\n // @ts-expect-error Missing TS declaration for venusNativeApp\n window.venusNativeApp.switchToLocal()\n }\n }\n }\n toggleRemote = () => this.setRemote(!this.remote)\n toggleLocked = () => {\n this.mqtt.publish(`N/${this.mqtt.portalId}/settings/0/Settings/VenusApp/LockState`, +!this.locked)\n this.locked = !this.locked\n }\n setLanguage = (language: string) => (this.language = language)\n setFirmwareVersion = (firmwareVersion: string) => (this.firmwareVersion = firmwareVersion)\n setUnit = <K extends keyof IUnit>(unit: K, value: IUnit[K]) => {\n this.units = {\n ...this.units,\n [unit]: value,\n }\n }\n setGuiVersion = (guiVersion: number) => (this.guiVersion = guiVersion)\n setElectricalPowerIndicator = (electricalPowerIndicator: PowerUnit) =>\n (this.electricalPowerIndicator = electricalPowerIndicator)\n\n setRGBColorPresets = (presets: HSVWColorPresets) => (this.rgbColorPresets = presets)\n setRGBWColorPresets = (presets: HSVWColorPresets) => (this.rgbwColorPresets = presets)\n setCCTColorPresets = (presets: HSVWColorPresets) => (this.cctColorPresets = presets)\n\n updateRGBColorPresets = (presets: HSVWColorPresets) => {\n this.mqtt.publish(\n `W/${this.mqtt.portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGB`,\n hwvwPresetsToString(presets)\n )\n }\n updateRGBWColorPresets = (presets: HSVWColorPresets) => {\n this.mqtt.publish(\n `W/${this.mqtt.portalId}/settings/0/Settings/Gui2/Switchpane/Preset/RGBW`,\n hwvwPresetsToString(presets)\n )\n }\n updateCCTColorPresets = (presets: HSVWColorPresets) => {\n this.mqtt.publish(\n `W/${this.mqtt.portalId}/settings/0/Settings/Gui2/Switchpane/Preset/CCT`,\n hwvwPresetsToString(presets)\n )\n }\n}\n\nfunction initializeStore(mqttStore: MqttStore) {\n const _store = store ?? new AppStore(mqttStore)\n // For SSG and SSR always create a new store\n if (typeof window === \"undefined\") return _store\n // Create the store once in the client\n if (!store) store = _store\n\n return _store\n}\n\nexport function useAppStore(): AppStore {\n const mqtt = useMqtt()\n return useMemo(() => initializeStore(mqtt), [mqtt])\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Batteries.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Battery/Batteries.provider.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,kDA4BxB,CAAA"}
1
+ {"version":3,"file":"Batteries.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Battery/Batteries.provider.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY,kDAgCxB,CAAA"}
@@ -2,29 +2,31 @@ import Logger from "../../utils/logger";
2
2
  import { useEffect, useMemo } from "react";
3
3
  import { useMqtt } from "../Mqtt";
4
4
  import { useBatteriesStore } from "./Batteries.store";
5
- export var useBatteries = function () {
6
- var batteriesStore = useBatteriesStore();
7
- var mqtt = useMqtt();
8
- var getTopics = function (portalId) { return ({
9
- batteryInstances: "N/".concat(portalId, "/battery/+/DeviceInstance"),
10
- }); };
11
- var topics = useMemo(function () { return getTopics(mqtt.portalId); }, [mqtt.portalId]);
12
- var messages = mqtt.messagesByWildcard(topics.batteryInstances);
13
- useEffect(function () {
5
+ export const useBatteries = () => {
6
+ const batteriesStore = useBatteriesStore();
7
+ const mqtt = useMqtt();
8
+ const getTopics = (portalId) => ({
9
+ batteryInstances: `N/${portalId}/battery/+/DeviceInstance`,
10
+ });
11
+ const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);
12
+ const messages = mqtt.messagesByWildcard(topics.batteryInstances);
13
+ useEffect(() => {
14
14
  if (!messages || Object.entries(messages).length === 0) {
15
15
  // Logger.log("Waiting for batteries...")
16
16
  }
17
17
  else {
18
- var batteries_1 = batteriesStore.batteries;
19
- var deviceInstances = Object.values(messages).sort();
18
+ const batteries = batteriesStore.batteries;
19
+ const deviceInstances = Object.values(messages).sort();
20
20
  // TODO: check unordered structural identify of old and new state
21
21
  // TODO: to avoid unnecessary re-rendering: O(n^2) baby
22
- if (!batteries_1 || batteries_1.length != deviceInstances.length || !deviceInstances.every(function (id) { return batteries_1.includes(id); })) {
23
- Logger.log("New batteries instances: ".concat(JSON.stringify(deviceInstances)));
22
+ if (!batteries ||
23
+ batteries.length !== deviceInstances.length ||
24
+ !deviceInstances.every((id) => batteries.includes(id))) {
25
+ Logger.log(`New batteries instances: ${JSON.stringify(deviceInstances)}`);
24
26
  batteriesStore.setBatteries(deviceInstances);
25
27
  }
26
28
  }
27
- }, [messages]);
29
+ }, [messages, batteriesStore]);
28
30
  return batteriesStore;
29
31
  };
30
32
  //# sourceMappingURL=Batteries.provider.js.map