@victronenergy/mfd-modules 10.4.1 → 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 (234) 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.d.ts.map +1 -1
  22. package/dist/src/Modules/App/App.provider.js +51 -51
  23. package/dist/src/Modules/App/App.provider.js.map +1 -1
  24. package/dist/src/Modules/App/App.store.d.ts +11 -7
  25. package/dist/src/Modules/App/App.store.d.ts.map +1 -1
  26. package/dist/src/Modules/App/App.store.js +73 -107
  27. package/dist/src/Modules/App/App.store.js.map +1 -1
  28. package/dist/src/Modules/Battery/Batteries.provider.d.ts.map +1 -1
  29. package/dist/src/Modules/Battery/Batteries.provider.js +16 -14
  30. package/dist/src/Modules/Battery/Batteries.provider.js.map +1 -1
  31. package/dist/src/Modules/Battery/Batteries.store.d.ts.map +1 -1
  32. package/dist/src/Modules/Battery/Batteries.store.js +7 -10
  33. package/dist/src/Modules/Battery/Batteries.store.js.map +1 -1
  34. package/dist/src/Modules/Battery/SystemBatteries.provider.js +5 -5
  35. package/dist/src/Modules/Battery/SystemBatteries.provider.js.map +1 -1
  36. package/dist/src/Modules/Chargers/Charger.provider.js +23 -33
  37. package/dist/src/Modules/Chargers/Charger.provider.js.map +1 -1
  38. package/dist/src/Modules/Chargers/Chargers.provider.d.ts.map +1 -1
  39. package/dist/src/Modules/Chargers/Chargers.provider.js +16 -15
  40. package/dist/src/Modules/Chargers/Chargers.provider.js.map +1 -1
  41. package/dist/src/Modules/Chargers/Chargers.store.d.ts.map +1 -1
  42. package/dist/src/Modules/Chargers/Chargers.store.js +7 -10
  43. package/dist/src/Modules/Chargers/Chargers.store.js.map +1 -1
  44. package/dist/src/Modules/DcLoads/DcLoads.provider.d.ts.map +1 -1
  45. package/dist/src/Modules/DcLoads/DcLoads.provider.js +9 -20
  46. package/dist/src/Modules/DcLoads/DcLoads.provider.js.map +1 -1
  47. package/dist/src/Modules/Generators/ConnectedGenset.provider.d.ts.map +1 -1
  48. package/dist/src/Modules/Generators/ConnectedGenset.provider.js +36 -47
  49. package/dist/src/Modules/Generators/ConnectedGenset.provider.js.map +1 -1
  50. package/dist/src/Modules/Generators/ConnectedGensets.provider.d.ts.map +1 -1
  51. package/dist/src/Modules/Generators/ConnectedGensets.provider.js +16 -14
  52. package/dist/src/Modules/Generators/ConnectedGensets.provider.js.map +1 -1
  53. package/dist/src/Modules/Generators/ConnectedGensets.store.d.ts.map +1 -1
  54. package/dist/src/Modules/Generators/ConnectedGensets.store.js +8 -11
  55. package/dist/src/Modules/Generators/ConnectedGensets.store.js.map +1 -1
  56. package/dist/src/Modules/Generators/GeneratorConnectedGenset.provider.js +17 -27
  57. package/dist/src/Modules/Generators/GeneratorConnectedGenset.provider.js.map +1 -1
  58. package/dist/src/Modules/Generators/GeneratorRelay.provider.d.ts +2 -2
  59. package/dist/src/Modules/Generators/GeneratorRelay.provider.d.ts.map +1 -1
  60. package/dist/src/Modules/Generators/GeneratorRelay.provider.js +24 -34
  61. package/dist/src/Modules/Generators/GeneratorRelay.provider.js.map +1 -1
  62. package/dist/src/Modules/Header/Header.provider.js +4 -4
  63. package/dist/src/Modules/Header/Header.provider.js.map +1 -1
  64. package/dist/src/Modules/InverterCharger/InputLimit.provider.js +6 -17
  65. package/dist/src/Modules/InverterCharger/InputLimit.provider.js.map +1 -1
  66. package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.d.ts.map +1 -1
  67. package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.js +12 -26
  68. package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.js.map +1 -1
  69. package/dist/src/Modules/InverterCharger/InverterCharger.provider.d.ts.map +1 -1
  70. package/dist/src/Modules/InverterCharger/InverterCharger.provider.js +16 -27
  71. package/dist/src/Modules/InverterCharger/InverterCharger.provider.js.map +1 -1
  72. package/dist/src/Modules/Inverters/Inverter.provider.d.ts.map +1 -1
  73. package/dist/src/Modules/Inverters/Inverter.provider.js +19 -30
  74. package/dist/src/Modules/Inverters/Inverter.provider.js.map +1 -1
  75. package/dist/src/Modules/Inverters/Inverters.provider.d.ts.map +1 -1
  76. package/dist/src/Modules/Inverters/Inverters.provider.js +14 -13
  77. package/dist/src/Modules/Inverters/Inverters.provider.js.map +1 -1
  78. package/dist/src/Modules/Inverters/Inverters.store.d.ts.map +1 -1
  79. package/dist/src/Modules/Inverters/Inverters.store.js +7 -10
  80. package/dist/src/Modules/Inverters/Inverters.store.js.map +1 -1
  81. package/dist/src/Modules/Inverters/index.js.map +1 -1
  82. package/dist/src/Modules/Language/Language.provider.d.ts +1 -1
  83. package/dist/src/Modules/Language/Language.provider.d.ts.map +1 -1
  84. package/dist/src/Modules/Language/Language.provider.js +21 -56
  85. package/dist/src/Modules/Language/Language.provider.js.map +1 -1
  86. package/dist/src/Modules/Mqtt/Mqtt.constants.js +1 -1
  87. package/dist/src/Modules/Mqtt/Mqtt.constants.js.map +1 -1
  88. package/dist/src/Modules/Mqtt/Mqtt.provider.d.ts +2 -2
  89. package/dist/src/Modules/Mqtt/Mqtt.provider.d.ts.map +1 -1
  90. package/dist/src/Modules/Mqtt/Mqtt.provider.js +4 -4
  91. package/dist/src/Modules/Mqtt/Mqtt.provider.js.map +1 -1
  92. package/dist/src/Modules/Mqtt/Mqtt.store.d.ts +3 -3
  93. package/dist/src/Modules/Mqtt/Mqtt.store.d.ts.map +1 -1
  94. package/dist/src/Modules/Mqtt/Mqtt.store.js +169 -193
  95. package/dist/src/Modules/Mqtt/Mqtt.store.js.map +1 -1
  96. package/dist/src/Modules/Mqtt/Mqtt.types.d.ts +1 -1
  97. package/dist/src/Modules/Mqtt/Mqtt.types.d.ts.map +1 -1
  98. package/dist/src/Modules/Mqtt/Mqtt.types.js +0 -1
  99. package/dist/src/Modules/Mqtt/Mqtt.types.js.map +1 -1
  100. package/dist/src/Modules/PvCharger/PvCharger.provider.js +8 -8
  101. package/dist/src/Modules/PvCharger/PvCharger.provider.js.map +1 -1
  102. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.d.ts +4 -1
  103. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.d.ts.map +1 -1
  104. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.js +24 -35
  105. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.js.map +1 -1
  106. package/dist/src/Modules/ShorePowerInput/index.d.ts +0 -1
  107. package/dist/src/Modules/ShorePowerInput/index.d.ts.map +1 -1
  108. package/dist/src/Modules/ShorePowerInput/index.js +0 -1
  109. package/dist/src/Modules/ShorePowerInput/index.js.map +1 -1
  110. package/dist/src/Modules/SwitchingPane/GenericInput.provider.d.ts +27 -0
  111. package/dist/src/Modules/SwitchingPane/GenericInput.provider.d.ts.map +1 -0
  112. package/dist/src/Modules/SwitchingPane/GenericInput.provider.js +32 -0
  113. package/dist/src/Modules/SwitchingPane/GenericInput.provider.js.map +1 -0
  114. package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchableOutput.provider.d.ts +25 -9
  115. package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.d.ts.map +1 -0
  116. package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.js +58 -0
  117. package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.js.map +1 -0
  118. package/dist/src/Modules/SwitchingPane/SwitchingDevice.provider.d.ts.map +1 -0
  119. package/dist/src/Modules/SwitchingPane/SwitchingDevice.provider.js +48 -0
  120. package/dist/src/Modules/SwitchingPane/SwitchingDevice.provider.js.map +1 -0
  121. package/dist/src/Modules/SwitchingPane/SwitchingDevices.store.d.ts.map +1 -0
  122. package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchingDevices.store.js +7 -10
  123. package/dist/src/Modules/SwitchingPane/SwitchingDevices.store.js.map +1 -0
  124. package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.d.ts +2 -0
  125. package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.d.ts.map +1 -0
  126. package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.js +256 -0
  127. package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.js.map +1 -0
  128. package/dist/src/Modules/SwitchingPane/SwitchingPane.store.d.ts +50 -0
  129. package/dist/src/Modules/SwitchingPane/SwitchingPane.store.d.ts.map +1 -0
  130. package/dist/src/Modules/{SwitchableOutputs/SwitchableOutputs.store.js → SwitchingPane/SwitchingPane.store.js} +67 -18
  131. package/dist/src/Modules/SwitchingPane/SwitchingPane.store.js.map +1 -0
  132. package/dist/src/Modules/SwitchingPane/index.d.ts +7 -0
  133. package/dist/src/Modules/SwitchingPane/index.d.ts.map +1 -0
  134. package/dist/src/Modules/SwitchingPane/index.js +7 -0
  135. package/dist/src/Modules/SwitchingPane/index.js.map +1 -0
  136. package/dist/src/Modules/SystemState/SystemState.provider.js +5 -5
  137. package/dist/src/Modules/SystemState/SystemState.provider.js.map +1 -1
  138. package/dist/src/Modules/Tanks/Tank.provider.d.ts.map +1 -1
  139. package/dist/src/Modules/Tanks/Tank.provider.js +11 -11
  140. package/dist/src/Modules/Tanks/Tank.provider.js.map +1 -1
  141. package/dist/src/Modules/Tanks/Tanks.provider.d.ts.map +1 -1
  142. package/dist/src/Modules/Tanks/Tanks.provider.js +19 -18
  143. package/dist/src/Modules/Tanks/Tanks.provider.js.map +1 -1
  144. package/dist/src/Modules/Tanks/Tanks.store.d.ts.map +1 -1
  145. package/dist/src/Modules/Tanks/Tanks.store.js +7 -10
  146. package/dist/src/Modules/Tanks/Tanks.store.js.map +1 -1
  147. package/dist/src/Modules/Temperatures/Temperature.provider.d.ts.map +1 -1
  148. package/dist/src/Modules/Temperatures/Temperature.provider.js +29 -29
  149. package/dist/src/Modules/Temperatures/Temperature.provider.js.map +1 -1
  150. package/dist/src/Modules/Temperatures/Temperatures.provider.d.ts.map +1 -1
  151. package/dist/src/Modules/Temperatures/Temperatures.provider.js +18 -17
  152. package/dist/src/Modules/Temperatures/Temperatures.provider.js.map +1 -1
  153. package/dist/src/Modules/Temperatures/Temperatures.store.d.ts.map +1 -1
  154. package/dist/src/Modules/Temperatures/Temperatures.store.js +7 -10
  155. package/dist/src/Modules/Temperatures/Temperatures.store.js.map +1 -1
  156. package/dist/src/Modules/Temperatures/index.d.ts +3 -3
  157. package/dist/src/Modules/Temperatures/index.js +3 -3
  158. package/dist/src/Modules/Temperatures/index.js.map +1 -1
  159. package/dist/src/Modules/Theme/Theme.provider.js +6 -6
  160. package/dist/src/Modules/Theme/Theme.provider.js.map +1 -1
  161. package/dist/src/Modules/Theme/Theme.store.d.ts.map +1 -1
  162. package/dist/src/Modules/Theme/Theme.store.js +35 -38
  163. package/dist/src/Modules/Theme/Theme.store.js.map +1 -1
  164. package/dist/src/Modules/Vebus/Vebus.provider.d.ts.map +1 -1
  165. package/dist/src/Modules/Vebus/Vebus.provider.js +39 -48
  166. package/dist/src/Modules/Vebus/Vebus.provider.js.map +1 -1
  167. package/dist/src/Modules/Vebus/Vebus.store.d.ts.map +1 -1
  168. package/dist/src/Modules/Vebus/Vebus.store.js +11 -14
  169. package/dist/src/Modules/Vebus/Vebus.store.js.map +1 -1
  170. package/dist/src/Modules/Vrm/Vrm.store.d.ts.map +1 -1
  171. package/dist/src/Modules/Vrm/Vrm.store.js +85 -154
  172. package/dist/src/Modules/Vrm/Vrm.store.js.map +1 -1
  173. package/dist/src/Modules/Vrm/Vrm.types.js +0 -1
  174. package/dist/src/Modules/WindGenerators/WindGenerator.provider.d.ts.map +1 -1
  175. package/dist/src/Modules/WindGenerators/WindGenerator.provider.js +6 -7
  176. package/dist/src/Modules/WindGenerators/WindGenerator.provider.js.map +1 -1
  177. package/dist/src/Modules/WindGenerators/WindGenerators.provider.d.ts.map +1 -1
  178. package/dist/src/Modules/WindGenerators/WindGenerators.provider.js +21 -19
  179. package/dist/src/Modules/WindGenerators/WindGenerators.provider.js.map +1 -1
  180. package/dist/src/Modules/WindGenerators/WindGenerators.store.d.ts.map +1 -1
  181. package/dist/src/Modules/WindGenerators/WindGenerators.store.js +7 -10
  182. package/dist/src/Modules/WindGenerators/WindGenerators.store.js.map +1 -1
  183. package/dist/src/index.d.ts +2 -1
  184. package/dist/src/index.d.ts.map +1 -1
  185. package/dist/src/index.js +2 -1
  186. package/dist/src/index.js.map +1 -1
  187. package/dist/src/utils/constants.d.ts +53 -3
  188. package/dist/src/utils/constants.d.ts.map +1 -1
  189. package/dist/src/utils/constants.js +82 -30
  190. package/dist/src/utils/constants.js.map +1 -1
  191. package/dist/src/utils/hsvw.d.ts.map +1 -1
  192. package/dist/src/utils/hsvw.js +24 -25
  193. package/dist/src/utils/hsvw.js.map +1 -1
  194. package/dist/src/utils/logger.d.ts +5 -8
  195. package/dist/src/utils/logger.d.ts.map +1 -1
  196. package/dist/src/utils/logger.js +11 -23
  197. package/dist/src/utils/logger.js.map +1 -1
  198. package/dist/src/utils/storage.d.ts.map +1 -1
  199. package/dist/src/utils/storage.js +7 -6
  200. package/dist/src/utils/storage.js.map +1 -1
  201. package/dist/src/utils/util.d.ts +6 -15
  202. package/dist/src/utils/util.d.ts.map +1 -1
  203. package/dist/src/utils/util.js +8 -100
  204. package/dist/src/utils/util.js.map +1 -1
  205. package/package.json +26 -15
  206. package/dist/eslint.config.d.mts +0 -13
  207. package/dist/eslint.config.d.mts.map +0 -1
  208. package/dist/eslint.config.mjs +0 -28
  209. package/dist/eslint.config.mjs.map +0 -1
  210. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.d.ts +0 -11
  211. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.d.ts.map +0 -1
  212. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.js +0 -37
  213. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.js.map +0 -1
  214. package/dist/src/Modules/SwitchableOutputs/SwitchableOutput.provider.d.ts.map +0 -1
  215. package/dist/src/Modules/SwitchableOutputs/SwitchableOutput.provider.js +0 -67
  216. package/dist/src/Modules/SwitchableOutputs/SwitchableOutput.provider.js.map +0 -1
  217. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.d.ts +0 -2
  218. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.d.ts.map +0 -1
  219. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.js +0 -168
  220. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.js.map +0 -1
  221. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.d.ts +0 -38
  222. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.d.ts.map +0 -1
  223. package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.js.map +0 -1
  224. package/dist/src/Modules/SwitchableOutputs/SwitchingDevice.provider.d.ts.map +0 -1
  225. package/dist/src/Modules/SwitchableOutputs/SwitchingDevice.provider.js +0 -50
  226. package/dist/src/Modules/SwitchableOutputs/SwitchingDevice.provider.js.map +0 -1
  227. package/dist/src/Modules/SwitchableOutputs/SwitchingDevices.store.d.ts.map +0 -1
  228. package/dist/src/Modules/SwitchableOutputs/SwitchingDevices.store.js.map +0 -1
  229. package/dist/src/Modules/SwitchableOutputs/index.d.ts +0 -6
  230. package/dist/src/Modules/SwitchableOutputs/index.d.ts.map +0 -1
  231. package/dist/src/Modules/SwitchableOutputs/index.js +0 -6
  232. package/dist/src/Modules/SwitchableOutputs/index.js.map +0 -1
  233. /package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchingDevice.provider.d.ts +0 -0
  234. /package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchingDevices.store.d.ts +0 -0
@@ -1,9 +1,8 @@
1
1
  import { action, makeAutoObservable } from "mobx";
2
2
  import { useMemo } from "react";
3
- var store;
4
- var SwitchableOutputsStore = /** @class */ (function () {
5
- function SwitchableOutputsStore() {
6
- var _this = this;
3
+ let store;
4
+ export class SwitchingPaneStore {
5
+ constructor() {
7
6
  Object.defineProperty(this, "groups", {
8
7
  enumerable: true,
9
8
  configurable: true,
@@ -46,47 +45,95 @@ var SwitchableOutputsStore = /** @class */ (function () {
46
45
  writable: true,
47
46
  value: []
48
47
  });
48
+ Object.defineProperty(this, "genericInputGroupAssignments", {
49
+ enumerable: true,
50
+ configurable: true,
51
+ writable: true,
52
+ value: []
53
+ });
54
+ Object.defineProperty(this, "genericInputTypes", {
55
+ enumerable: true,
56
+ configurable: true,
57
+ writable: true,
58
+ value: []
59
+ });
60
+ Object.defineProperty(this, "genericInputNames", {
61
+ enumerable: true,
62
+ configurable: true,
63
+ writable: true,
64
+ value: []
65
+ });
66
+ Object.defineProperty(this, "genericInputVisibilityFlags", {
67
+ enumerable: true,
68
+ configurable: true,
69
+ writable: true,
70
+ value: []
71
+ });
49
72
  Object.defineProperty(this, "setGroups", {
50
73
  enumerable: true,
51
74
  configurable: true,
52
75
  writable: true,
53
- value: function (groups) { return (_this.groups = groups); }
76
+ value: (groups) => (this.groups = groups)
54
77
  });
55
78
  Object.defineProperty(this, "setCustomGroupAssignments", {
56
79
  enumerable: true,
57
80
  configurable: true,
58
81
  writable: true,
59
- value: function (assignments) { return (_this.customGroupAssignments = assignments); }
82
+ value: (assignments) => (this.customGroupAssignments = assignments)
60
83
  });
61
84
  Object.defineProperty(this, "setOutputTypes", {
62
85
  enumerable: true,
63
86
  configurable: true,
64
87
  writable: true,
65
- value: function (outputTypes) { return (_this.outputTypes = outputTypes); }
88
+ value: (outputTypes) => (this.outputTypes = outputTypes)
66
89
  });
67
90
  Object.defineProperty(this, "setOutputNames", {
68
91
  enumerable: true,
69
92
  configurable: true,
70
93
  writable: true,
71
- value: function (outputNames) { return (_this.outputNames = outputNames); }
94
+ value: (outputNames) => (this.outputNames = outputNames)
72
95
  });
73
96
  Object.defineProperty(this, "setOutputVisibilityFlags", {
74
97
  enumerable: true,
75
98
  configurable: true,
76
99
  writable: true,
77
- value: function (outputVisibilityFlags) { return (_this.outputVisibilityFlags = outputVisibilityFlags); }
100
+ value: (outputVisibilityFlags) => (this.outputVisibilityFlags = outputVisibilityFlags)
78
101
  });
79
102
  Object.defineProperty(this, "setSwitchingDevices", {
80
103
  enumerable: true,
81
104
  configurable: true,
82
105
  writable: true,
83
- value: function (switchingDevices) { return (_this.switchingDevices = switchingDevices); }
106
+ value: (switchingDevices) => (this.switchingDevices = switchingDevices)
84
107
  });
85
108
  Object.defineProperty(this, "setSwitchingDeviceNames", {
86
109
  enumerable: true,
87
110
  configurable: true,
88
111
  writable: true,
89
- value: function (switchingDeviceNames) { return (_this.switchingDeviceNames = switchingDeviceNames); }
112
+ value: (switchingDeviceNames) => (this.switchingDeviceNames = switchingDeviceNames)
113
+ });
114
+ Object.defineProperty(this, "setGenericInputGroupAssignments", {
115
+ enumerable: true,
116
+ configurable: true,
117
+ writable: true,
118
+ value: (assignments) => (this.genericInputGroupAssignments = assignments)
119
+ });
120
+ Object.defineProperty(this, "setGenericInputTypes", {
121
+ enumerable: true,
122
+ configurable: true,
123
+ writable: true,
124
+ value: (types) => (this.genericInputTypes = types)
125
+ });
126
+ Object.defineProperty(this, "setGenericInputNames", {
127
+ enumerable: true,
128
+ configurable: true,
129
+ writable: true,
130
+ value: (names) => (this.genericInputNames = names)
131
+ });
132
+ Object.defineProperty(this, "setGenericInputVisibilityFlags", {
133
+ enumerable: true,
134
+ configurable: true,
135
+ writable: true,
136
+ value: (flags) => (this.genericInputVisibilityFlags = flags)
90
137
  });
91
138
  makeAutoObservable(this, {
92
139
  setGroups: action,
@@ -95,13 +142,15 @@ var SwitchableOutputsStore = /** @class */ (function () {
95
142
  setOutputVisibilityFlags: action,
96
143
  setSwitchingDevices: action,
97
144
  setSwitchingDeviceNames: action,
145
+ setGenericInputGroupAssignments: action,
146
+ setGenericInputTypes: action,
147
+ setGenericInputNames: action,
148
+ setGenericInputVisibilityFlags: action,
98
149
  });
99
150
  }
100
- return SwitchableOutputsStore;
101
- }());
102
- export { SwitchableOutputsStore };
151
+ }
103
152
  function initializeStore() {
104
- var _store = store !== null && store !== void 0 ? store : new SwitchableOutputsStore();
153
+ const _store = store !== null && store !== void 0 ? store : new SwitchingPaneStore();
105
154
  // For SSG and SSR always create a new store
106
155
  if (typeof window === "undefined")
107
156
  return _store;
@@ -110,7 +159,7 @@ function initializeStore() {
110
159
  store = _store;
111
160
  return _store;
112
161
  }
113
- export function useSwitchableOutputsStore() {
114
- return useMemo(function () { return initializeStore(); }, []);
162
+ export function useSwitchingPaneStore() {
163
+ return useMemo(() => initializeStore(), []);
115
164
  }
116
- //# sourceMappingURL=SwitchableOutputs.store.js.map
165
+ //# sourceMappingURL=SwitchingPane.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchingPane.store.js","sourceRoot":"/","sources":["src/Modules/SwitchingPane/SwitchingPane.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAI/B,IAAI,KAAyB,CAAA;AA0B7B,MAAM,OAAO,kBAAkB;IAa7B;QAZA;;;;mBAAiD,EAAE;WAAA;QACnD;;;;mBAAmC,EAAE;WAAA;QACrC;;;;mBAAsC,EAAE;WAAA;QACxC;;;;mBAAwB,EAAE;WAAA;QAC1B;;;;mBAAmC,EAAE;WAAA;QACrC;;;;mBAA6B,EAAE;WAAA;QAC/B;;;;mBAAiC,EAAE;WAAA;QACnC;;;;mBAAyC,EAAE;WAAA;QAC3C;;;;mBAAwC,EAAE;WAAA;QAC1C;;;;mBAA8B,EAAE;WAAA;QAChC;;;;mBAAyC,EAAE;WAAA;QAiB3C;;;;mBAAY,CAAC,MAA8C,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;WAAA;QACtF;;;;mBAA4B,CAAC,WAAqB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC;WAAA;QAClG;;;;mBAAiB,CAAC,WAAmC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;WAAA;QAC1F;;;;mBAAiB,CAAC,WAAqB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;WAAA;QAC5E;;;;mBAA2B,CAAC,qBAAgC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;WAAA;QACrH;;;;mBAAsB,CAAC,gBAA0B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;WAAA;QAChG;;;;mBAA0B,CAAC,oBAA8B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;WAAA;QAChH;;;;mBAAkC,CAAC,WAAqB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,4BAA4B,GAAG,WAAW,CAAC;WAAA;QAC9G;;;;mBAAuB,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;WAAA;QACtF;;;;mBAAuB,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;WAAA;QAC5E;;;;mBAAiC,CAAC,KAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;WAAA;QAxB/F,kBAAkB,CAAC,IAAI,EAAE;YACvB,SAAS,EAAE,MAAM;YACjB,yBAAyB,EAAE,MAAM;YACjC,cAAc,EAAE,MAAM;YACtB,wBAAwB,EAAE,MAAM;YAChC,mBAAmB,EAAE,MAAM;YAC3B,uBAAuB,EAAE,MAAM;YAC/B,+BAA+B,EAAE,MAAM;YACvC,oBAAoB,EAAE,MAAM;YAC5B,oBAAoB,EAAE,MAAM;YAC5B,8BAA8B,EAAE,MAAM;SACvC,CAAC,CAAA;IACJ,CAAC;CAaF;AAED,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,kBAAkB,EAAE,CAAA;IAChD,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,qBAAqB;IACnC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { action, makeAutoObservable } from \"mobx\"\nimport { useMemo } from \"react\"\nimport { SwitchingPaneItem } from \"./SwitchableOutput.provider\"\nimport { GenericInputType, SwitchableOutputType } from \"../../utils/constants\"\n\nlet store: SwitchingPaneStore\n\nexport interface SwitchingPaneState {\n groups: { [key: string]: SwitchingPaneItem[] }\n // custom group assignments for available switchable outputs sorted by their topic path\n customGroupAssignments: string[]\n // types of switchable outputs sorted by their topic path\n outputTypes: SwitchableOutputType[]\n // custom names of switchable outputs sorted by their topic path\n outputNames: string[]\n // visibility status of switchable outputs sorted by their topic path\n outputVisibilityFlags: (0 | 1)[]\n // switching devices\n switchingDevices: string[]\n // switching devices custom names\n switchingDeviceNames: string[]\n // custom group assignments for available generic inputs sorted by their topic path\n genericInputGroupAssignments: string[]\n // types of generic inputs sorted by their topic path\n genericInputTypes: GenericInputType[]\n // custom names of generic inputs sorted by their topic path\n genericInputNames: string[]\n // visibility status of generic inputs sorted by their topic path\n genericInputVisibilityFlags: (0 | 1)[]\n}\n\nexport class SwitchingPaneStore {\n groups: { [key: string]: SwitchingPaneItem[] } = {}\n customGroupAssignments: string[] = []\n outputTypes: SwitchableOutputType[] = []\n outputNames: string[] = []\n outputVisibilityFlags: (0 | 1)[] = []\n switchingDevices: string[] = []\n switchingDeviceNames: string[] = []\n genericInputGroupAssignments: string[] = []\n genericInputTypes: GenericInputType[] = []\n genericInputNames: string[] = []\n genericInputVisibilityFlags: (0 | 1)[] = []\n\n constructor() {\n makeAutoObservable(this, {\n setGroups: action,\n setCustomGroupAssignments: action,\n setOutputTypes: action,\n setOutputVisibilityFlags: action,\n setSwitchingDevices: action,\n setSwitchingDeviceNames: action,\n setGenericInputGroupAssignments: action,\n setGenericInputTypes: action,\n setGenericInputNames: action,\n setGenericInputVisibilityFlags: action,\n })\n }\n\n setGroups = (groups: { [key: string]: SwitchingPaneItem[] }) => (this.groups = groups)\n setCustomGroupAssignments = (assignments: string[]) => (this.customGroupAssignments = assignments)\n setOutputTypes = (outputTypes: SwitchableOutputType[]) => (this.outputTypes = outputTypes)\n setOutputNames = (outputNames: string[]) => (this.outputNames = outputNames)\n setOutputVisibilityFlags = (outputVisibilityFlags: (0 | 1)[]) => (this.outputVisibilityFlags = outputVisibilityFlags)\n setSwitchingDevices = (switchingDevices: string[]) => (this.switchingDevices = switchingDevices)\n setSwitchingDeviceNames = (switchingDeviceNames: string[]) => (this.switchingDeviceNames = switchingDeviceNames)\n setGenericInputGroupAssignments = (assignments: string[]) => (this.genericInputGroupAssignments = assignments)\n setGenericInputTypes = (types: GenericInputType[]) => (this.genericInputTypes = types)\n setGenericInputNames = (names: string[]) => (this.genericInputNames = names)\n setGenericInputVisibilityFlags = (flags: (0 | 1)[]) => (this.genericInputVisibilityFlags = flags)\n}\n\nfunction initializeStore() {\n const _store = store ?? new SwitchingPaneStore()\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 useSwitchingPaneStore() {\n return useMemo(() => initializeStore(), [])\n}\n"]}
@@ -0,0 +1,7 @@
1
+ export * from "./SwitchingDevice.provider";
2
+ export * from "./SwitchingDevices.store";
3
+ export * from "./SwitchableOutput.provider";
4
+ export * from "./SwitchingPane.provider";
5
+ export * from "./SwitchingPane.store";
6
+ export * from "./GenericInput.provider";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["src/Modules/SwitchingPane/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA"}
@@ -0,0 +1,7 @@
1
+ export * from "./SwitchingDevice.provider";
2
+ export * from "./SwitchingDevices.store";
3
+ export * from "./SwitchableOutput.provider";
4
+ export * from "./SwitchingPane.provider";
5
+ export * from "./SwitchingPane.store";
6
+ export * from "./GenericInput.provider";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["src/Modules/SwitchingPane/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA","sourcesContent":["export * from \"./SwitchingDevice.provider\"\nexport * from \"./SwitchingDevices.store\"\nexport * from \"./SwitchableOutput.provider\"\nexport * from \"./SwitchingPane.provider\"\nexport * from \"./SwitchingPane.store\"\nexport * from \"./GenericInput.provider\"\n"]}
@@ -1,11 +1,11 @@
1
1
  import { useMqtt, useTopicsState } from "../Mqtt";
2
2
  import { useMemo } from "react";
3
3
  export function useSystemState() {
4
- var getTopics = function (portalId) { return ({
5
- systemState: "N/".concat(portalId, "/system/0/SystemState/State"),
6
- }); };
7
- var portalId = useMqtt().portalId;
8
- var topics = useMemo(function () { return getTopics(portalId); }, [portalId]);
4
+ const getTopics = (portalId) => ({
5
+ systemState: `N/${portalId}/system/0/SystemState/State`,
6
+ });
7
+ const { portalId } = useMqtt();
8
+ const topics = useMemo(() => getTopics(portalId), [portalId]);
9
9
  return useTopicsState(topics);
10
10
  }
11
11
  //# sourceMappingURL=SystemState.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SystemState.provider.js","sourceRoot":"/","sources":["src/Modules/SystemState/SystemState.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAU/B,MAAM,UAAU,cAAc;IAC5B,IAAM,SAAS,GAAG,UAAC,QAAkB,IAAK,OAAA,CAAC;QACzC,WAAW,EAAE,YAAK,QAAQ,gCAA6B;KACxD,CAAC,EAFwC,CAExC,CAAA;IAEM,IAAA,QAAQ,GAAK,OAAO,EAAE,SAAd,CAAc;IAC9B,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,QAAQ,CAAC,EAAnB,CAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7D,OAAO,cAAc,CAAmB,MAAM,CAAC,CAAA;AACjD,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport interface SystemStateState {\n systemState: number\n}\n\nexport interface SystemStateTopics extends Topics {\n systemState?: string\n}\n\nexport function useSystemState(): SystemStateState {\n const getTopics = (portalId: PortalId) => ({\n systemState: `N/${portalId}/system/0/SystemState/State`,\n })\n\n const { portalId } = useMqtt()\n const topics = useMemo(() => getTopics(portalId), [portalId])\n\n return useTopicsState<SystemStateState>(topics)\n}\n"]}
1
+ {"version":3,"file":"SystemState.provider.js","sourceRoot":"/","sources":["src/Modules/SystemState/SystemState.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAU/B,MAAM,UAAU,cAAc;IAC5B,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QACzC,WAAW,EAAE,KAAK,QAAQ,6BAA6B;KACxD,CAAC,CAAA;IAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7D,OAAO,cAAc,CAAmB,MAAM,CAAC,CAAA;AACjD,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport interface SystemStateState {\n systemState: number\n}\n\nexport interface SystemStateTopics extends Topics {\n systemState?: string\n}\n\nexport function useSystemState(): SystemStateState {\n const getTopics = (portalId: PortalId) => ({\n systemState: `N/${portalId}/system/0/SystemState/State`,\n })\n\n const { portalId } = useMqtt()\n const topics = useMemo(() => getTopics(portalId), [portalId])\n\n return useTopicsState<SystemStateState>(topics)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Tank.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Tanks/Tank.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAA2B,MAAM,SAAS,CAAA;AAGnE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEtD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,kBAAkB,GAAI,UAAU,QAAQ,EAAE,QAAQ,cAAc;;;;;;;;CAQ3E,CAAA;AAEF,wBAAgB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAMzD"}
1
+ {"version":3,"file":"Tank.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Tanks/Tank.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAA2B,MAAM,SAAS,CAAA;AAGnE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEtD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,kBAAkB,GAAI,UAAU,QAAQ,EAAE,QAAQ,cAAc;;;;;;;;CAQ3E,CAAA;AAEF,wBAAgB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAKzD"}
@@ -1,17 +1,17 @@
1
1
  import { useMqtt, useTopicsState } from "../Mqtt";
2
2
  import { useMemo } from "react";
3
- export var getTankStateTopics = function (portalId, tankId) { return ({
4
- capacity: "N/".concat(portalId, "/tank/").concat(tankId, "/Capacity"),
5
- level: "N/".concat(portalId, "/tank/").concat(tankId, "/Level"),
6
- remaining: "N/".concat(portalId, "/tank/").concat(tankId, "/Remaining"),
7
- fluidType: "N/".concat(portalId, "/tank/").concat(tankId, "/FluidType"),
8
- unit: "N/".concat(portalId, "/settings/0/Settings/System/VolumeUnit"),
9
- customName: "N/".concat(portalId, "/tank/").concat(tankId, "/CustomName"),
10
- instance: "N/".concat(portalId, "/tank/").concat(tankId, "/DeviceInstance"),
11
- }); };
3
+ export const getTankStateTopics = (portalId, tankId) => ({
4
+ capacity: `N/${portalId}/tank/${tankId}/Capacity`,
5
+ level: `N/${portalId}/tank/${tankId}/Level`,
6
+ remaining: `N/${portalId}/tank/${tankId}/Remaining`,
7
+ fluidType: `N/${portalId}/tank/${tankId}/FluidType`,
8
+ unit: `N/${portalId}/settings/0/Settings/System/VolumeUnit`,
9
+ customName: `N/${portalId}/tank/${tankId}/CustomName`,
10
+ instance: `N/${portalId}/tank/${tankId}/DeviceInstance`,
11
+ });
12
12
  export function useTank(tankId) {
13
- var portalId = useMqtt().portalId;
14
- var topics = useMemo(function () { return getTankStateTopics(portalId, tankId); }, [portalId, tankId]);
13
+ const { portalId } = useMqtt();
14
+ const topics = useMemo(() => getTankStateTopics(portalId, tankId), [portalId, tankId]);
15
15
  return useTopicsState(topics);
16
16
  }
17
17
  //# sourceMappingURL=Tank.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tank.provider.js","sourceRoot":"/","sources":["src/Modules/Tanks/Tank.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAuB/B,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,QAAkB,EAAE,MAAsB,IAAK,OAAA,CAAC;IACjF,QAAQ,EAAE,YAAK,QAAQ,mBAAS,MAAM,cAAW;IACjD,KAAK,EAAE,YAAK,QAAQ,mBAAS,MAAM,WAAQ;IAC3C,SAAS,EAAE,YAAK,QAAQ,mBAAS,MAAM,eAAY;IACnD,SAAS,EAAE,YAAK,QAAQ,mBAAS,MAAM,eAAY;IACnD,IAAI,EAAE,YAAK,QAAQ,2CAAwC;IAC3D,UAAU,EAAE,YAAK,QAAQ,mBAAS,MAAM,gBAAa;IACrD,QAAQ,EAAE,YAAK,QAAQ,mBAAS,MAAM,oBAAiB;CACxD,CAAC,EARgF,CAQhF,CAAA;AAEF,MAAM,UAAU,OAAO,CAAC,MAAsB;IAEpC,IAAA,QAAQ,GAAK,OAAO,EAAE,SAAd,CAAc;IAC9B,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAApC,CAAoC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAEtF,OAAO,cAAc,CAAY,MAAM,CAAC,CAAA;AAC1C,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport type TankInstanceId = number | null | undefined\n\nexport interface TankState {\n capacity: number\n level: number\n remaining: number\n fluidType: number\n unit: string\n customName: string\n instance: number\n}\n\nexport interface TankTopics extends Topics {\n capacity?: string\n level?: string\n remaining?: string\n fluidType?: string\n unit?: string\n customName?: string\n}\n\nexport const getTankStateTopics = (portalId: PortalId, tankId: TankInstanceId) => ({\n capacity: `N/${portalId}/tank/${tankId}/Capacity`,\n level: `N/${portalId}/tank/${tankId}/Level`,\n remaining: `N/${portalId}/tank/${tankId}/Remaining`,\n fluidType: `N/${portalId}/tank/${tankId}/FluidType`,\n unit: `N/${portalId}/settings/0/Settings/System/VolumeUnit`,\n customName: `N/${portalId}/tank/${tankId}/CustomName`,\n instance: `N/${portalId}/tank/${tankId}/DeviceInstance`,\n})\n\nexport function useTank(tankId: TankInstanceId): TankState {\n\n const { portalId } = useMqtt()\n const topics = useMemo(() => getTankStateTopics(portalId, tankId), [portalId, tankId])\n\n return useTopicsState<TankState>(topics)\n}\n"]}
1
+ {"version":3,"file":"Tank.provider.js","sourceRoot":"/","sources":["src/Modules/Tanks/Tank.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAuB/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAkB,EAAE,MAAsB,EAAE,EAAE,CAAC,CAAC;IACjF,QAAQ,EAAE,KAAK,QAAQ,SAAS,MAAM,WAAW;IACjD,KAAK,EAAE,KAAK,QAAQ,SAAS,MAAM,QAAQ;IAC3C,SAAS,EAAE,KAAK,QAAQ,SAAS,MAAM,YAAY;IACnD,SAAS,EAAE,KAAK,QAAQ,SAAS,MAAM,YAAY;IACnD,IAAI,EAAE,KAAK,QAAQ,wCAAwC;IAC3D,UAAU,EAAE,KAAK,QAAQ,SAAS,MAAM,aAAa;IACrD,QAAQ,EAAE,KAAK,QAAQ,SAAS,MAAM,iBAAiB;CACxD,CAAC,CAAA;AAEF,MAAM,UAAU,OAAO,CAAC,MAAsB;IAC5C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAEtF,OAAO,cAAc,CAAY,MAAM,CAAC,CAAA;AAC1C,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport type TankInstanceId = number | null | undefined\n\nexport interface TankState {\n capacity: number\n level: number\n remaining: number\n fluidType: number\n unit: string\n customName: string\n instance: number\n}\n\nexport interface TankTopics extends Topics {\n capacity?: string\n level?: string\n remaining?: string\n fluidType?: string\n unit?: string\n customName?: string\n}\n\nexport const getTankStateTopics = (portalId: PortalId, tankId: TankInstanceId) => ({\n capacity: `N/${portalId}/tank/${tankId}/Capacity`,\n level: `N/${portalId}/tank/${tankId}/Level`,\n remaining: `N/${portalId}/tank/${tankId}/Remaining`,\n fluidType: `N/${portalId}/tank/${tankId}/FluidType`,\n unit: `N/${portalId}/settings/0/Settings/System/VolumeUnit`,\n customName: `N/${portalId}/tank/${tankId}/CustomName`,\n instance: `N/${portalId}/tank/${tankId}/DeviceInstance`,\n})\n\nexport function useTank(tankId: TankInstanceId): TankState {\n const { portalId } = useMqtt()\n const topics = useMemo(() => getTankStateTopics(portalId, tankId), [portalId, tankId])\n\n return useTopicsState<TankState>(topics)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Tanks.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Tanks/Tanks.provider.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ,0CAkCpB,CAAA"}
1
+ {"version":3,"file":"Tanks.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Tanks/Tanks.provider.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ,0CAsCpB,CAAA"}
@@ -4,34 +4,35 @@ import { useMqtt } from "../Mqtt";
4
4
  import { getTankStateTopics } from "./Tank.provider";
5
5
  import { useTanksStore } from "./Tanks.store";
6
6
  import { useMemo, useEffect } from "react";
7
- export var useTanks = function () {
8
- var tanksStore = useTanksStore();
9
- var getTopics = function (portalId) { return ({
10
- tanks: "N/".concat(portalId, "/tank/+/DeviceInstance"),
11
- }); };
12
- var mqtt = useMqtt();
13
- var topics = useMemo(function () { return getTopics(mqtt.portalId); }, [mqtt.portalId]);
14
- var messages = mqtt.messagesByWildcard(topics.tanks);
15
- useEffect(function () {
7
+ export const useTanks = () => {
8
+ const tanksStore = useTanksStore();
9
+ const getTopics = (portalId) => ({
10
+ tanks: `N/${portalId}/tank/+/DeviceInstance`,
11
+ });
12
+ const mqtt = useMqtt();
13
+ const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);
14
+ const messages = mqtt.messagesByWildcard(topics.tanks);
15
+ useEffect(() => {
16
16
  if (!messages || Object.entries(messages).length === 0) {
17
17
  // Logger.log("Waiting for tanks...")
18
18
  }
19
19
  else {
20
- var deviceInstances_1 = Object.values(messages);
21
- var dispose_1 = autorun(function () {
22
- var oldTanks = tanksStore.tanks;
23
- var newTanks = deviceInstances_1.map(function (tankInstanceId) { return mqtt.messagesByTopics(getTankStateTopics(mqtt.portalId, tankInstanceId)); });
20
+ const deviceInstances = Object.values(messages);
21
+ const dispose = autorun(() => {
22
+ const oldTanks = tanksStore.tanks;
23
+ const newTanks = deviceInstances.map((tankInstanceId) => mqtt.messagesByTopics(getTankStateTopics(mqtt.portalId, tankInstanceId)));
24
24
  // TODO: check unordered structural identify of old and new state
25
25
  // TODO: to avoid unnecessary re-rendering: O(n^2) baby
26
- if (!oldTanks || oldTanks.length != newTanks.length || !oldTanks.every(function (id) { return deviceInstances_1.includes(id.instance); })) {
27
- Logger.log("New tanks instances: ".concat(JSON.stringify(deviceInstances_1)));
26
+ if (!oldTanks ||
27
+ oldTanks.length !== newTanks.length ||
28
+ !oldTanks.every((id) => deviceInstances.includes(id.instance))) {
29
+ Logger.log(`New tanks instances: ${JSON.stringify(deviceInstances)}`);
28
30
  tanksStore.setTanks(newTanks);
29
31
  }
30
32
  });
31
- return function () { return dispose_1(); };
33
+ return () => dispose();
32
34
  }
33
- }, [messages]);
34
- var tanks = tanksStore.tanks;
35
+ }, [messages, mqtt, tanksStore]);
35
36
  return tanksStore;
36
37
  };
37
38
  //# sourceMappingURL=Tanks.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tanks.provider.js","sourceRoot":"/","sources":["src/Modules/Tanks/Tanks.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAY,OAAO,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAA6B,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,CAAC,IAAM,QAAQ,GAAG;IACtB,IAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAElC,IAAM,SAAS,GAAG,UAAC,QAAkB,IAAK,OAAA,CAAC;QACzC,KAAK,EAAE,YAAK,QAAQ,2BAAwB;KAC7C,CAAC,EAFwC,CAExC,CAAA;IAEF,IAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAxB,CAAwB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvE,IAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEtD,SAAS,CAAC;QACR,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,qCAAqC;QACvC,CAAC;aAAM,CAAC;YACN,IAAM,iBAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAqB,CAAA;YACnE,IAAM,SAAO,GAAG,OAAO,CAAC;gBACtB,IAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAA;gBACjC,IAAM,QAAQ,GAAG,iBAAe,CAAC,GAAG,CAAC,UAAC,cAAc,IAAK,OAAA,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAxE,CAAwE,CAA2B,CAAA;gBAC5J,iEAAiE;gBACjE,uDAAuD;gBACvD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAC,EAAE,IAAK,OAAA,iBAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAArC,CAAqC,CAAC,EAAE,CAAC;oBACtH,MAAM,CAAC,GAAG,CAAC,+BAAwB,IAAI,CAAC,SAAS,CAAC,iBAAe,CAAC,CAAE,CAAC,CAAC;oBACtE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC,CAAC,CAAA;YACF,OAAO,cAAM,OAAA,SAAO,EAAE,EAAT,CAAS,CAAA;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,IAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAE9B,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA","sourcesContent":["import { autorun } from \"mobx\"\nimport Logger from \"../../utils/logger\"\nimport { PortalId, useMqtt } from \"../Mqtt\"\nimport { getTankStateTopics, TankInstanceId, TankState } from \"./Tank.provider\"\nimport { useTanksStore } from \"./Tanks.store\"\nimport { useMemo, useEffect } from \"react\"\n\nexport const useTanks = () => {\n const tanksStore = useTanksStore()\n\n const getTopics = (portalId: PortalId) => ({\n tanks: `N/${portalId}/tank/+/DeviceInstance`,\n })\n\n const mqtt = useMqtt()\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n const messages = mqtt.messagesByWildcard(topics.tanks)\n\n useEffect(() => {\n if (!messages || Object.entries(messages).length === 0) {\n // Logger.log(\"Waiting for tanks...\")\n } else {\n const deviceInstances = Object.values(messages) as TankInstanceId[]\n const dispose = autorun(() => {\n const oldTanks = tanksStore.tanks\n const newTanks = deviceInstances.map((tankInstanceId) => mqtt.messagesByTopics(getTankStateTopics(mqtt.portalId, tankInstanceId))) as unknown as TankState[]\n // TODO: check unordered structural identify of old and new state\n // TODO: to avoid unnecessary re-rendering: O(n^2) baby\n if (!oldTanks || oldTanks.length != newTanks.length || !oldTanks.every((id) => deviceInstances.includes(id.instance))) {\n Logger.log(`New tanks instances: ${JSON.stringify(deviceInstances)}`);\n tanksStore.setTanks(newTanks)\n }\n })\n return () => dispose()\n }\n }, [messages])\n\n const tanks = tanksStore.tanks\n\n return tanksStore\n}\n"]}
1
+ {"version":3,"file":"Tanks.provider.js","sourceRoot":"/","sources":["src/Modules/Tanks/Tanks.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAY,OAAO,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAA6B,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAElC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QACzC,KAAK,EAAE,KAAK,QAAQ,wBAAwB;KAC7C,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,qCAAqC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAqB,CAAA;YACnE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;gBAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAA;gBACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CACtD,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAC/C,CAAA;gBAC3B,iEAAiE;gBACjE,uDAAuD;gBACvD,IACE,CAAC,QAAQ;oBACT,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;oBACnC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAC9D,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;oBACrE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC,CAAC,CAAA;YACF,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;IAEhC,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA","sourcesContent":["import { autorun } from \"mobx\"\nimport Logger from \"../../utils/logger\"\nimport { PortalId, useMqtt } from \"../Mqtt\"\nimport { getTankStateTopics, TankInstanceId, TankState } from \"./Tank.provider\"\nimport { useTanksStore } from \"./Tanks.store\"\nimport { useMemo, useEffect } from \"react\"\n\nexport const useTanks = () => {\n const tanksStore = useTanksStore()\n\n const getTopics = (portalId: PortalId) => ({\n tanks: `N/${portalId}/tank/+/DeviceInstance`,\n })\n\n const mqtt = useMqtt()\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n const messages = mqtt.messagesByWildcard(topics.tanks)\n\n useEffect(() => {\n if (!messages || Object.entries(messages).length === 0) {\n // Logger.log(\"Waiting for tanks...\")\n } else {\n const deviceInstances = Object.values(messages) as TankInstanceId[]\n const dispose = autorun(() => {\n const oldTanks = tanksStore.tanks\n const newTanks = deviceInstances.map((tankInstanceId) =>\n mqtt.messagesByTopics(getTankStateTopics(mqtt.portalId, tankInstanceId))\n ) as unknown as TankState[]\n // TODO: check unordered structural identify of old and new state\n // TODO: to avoid unnecessary re-rendering: O(n^2) baby\n if (\n !oldTanks ||\n oldTanks.length !== newTanks.length ||\n !oldTanks.every((id) => deviceInstances.includes(id.instance))\n ) {\n Logger.log(`New tanks instances: ${JSON.stringify(deviceInstances)}`)\n tanksStore.setTanks(newTanks)\n }\n })\n return () => dispose()\n }\n }, [messages, mqtt, tanksStore])\n\n return tanksStore\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Tanks.store.d.ts","sourceRoot":"/","sources":["src/Modules/Tanks/Tanks.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,qBAAa,UAAU;IACrB,KAAK,EAAE,SAAS,EAAE,CAAK;;IAMvB,QAAQ,GAAI,OAAO,SAAS,EAAE,iBAAuB;CACtD;AAYD,wBAAgB,aAAa,eAE5B"}
1
+ {"version":3,"file":"Tanks.store.d.ts","sourceRoot":"/","sources":["src/Modules/Tanks/Tanks.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,qBAAa,UAAU;IACrB,KAAK,EAAE,SAAS,EAAE,CAAK;;IAMvB,QAAQ,GAAI,OAAO,SAAS,EAAE,iBAAyB;CACxD;AAYD,wBAAgB,aAAa,eAE5B"}
@@ -1,9 +1,8 @@
1
1
  import { action, makeAutoObservable } from "mobx";
2
2
  import { useMemo } from "react";
3
- var store;
4
- var TanksStore = /** @class */ (function () {
5
- function TanksStore() {
6
- var _this = this;
3
+ let store;
4
+ export class TanksStore {
5
+ constructor() {
7
6
  Object.defineProperty(this, "tanks", {
8
7
  enumerable: true,
9
8
  configurable: true,
@@ -14,15 +13,13 @@ var TanksStore = /** @class */ (function () {
14
13
  enumerable: true,
15
14
  configurable: true,
16
15
  writable: true,
17
- value: function (tanks) { return _this.tanks = tanks; }
16
+ value: (tanks) => (this.tanks = tanks)
18
17
  });
19
18
  makeAutoObservable(this, { setTanks: action });
20
19
  }
21
- return TanksStore;
22
- }());
23
- export { TanksStore };
20
+ }
24
21
  function initializeStore() {
25
- var _store = store !== null && store !== void 0 ? store : new TanksStore();
22
+ const _store = store !== null && store !== void 0 ? store : new TanksStore();
26
23
  // For SSG and SSR always create a new store
27
24
  if (typeof window === "undefined")
28
25
  return _store;
@@ -32,6 +29,6 @@ function initializeStore() {
32
29
  return _store;
33
30
  }
34
31
  export function useTanksStore() {
35
- return useMemo(function () { return initializeStore(); }, []);
32
+ return useMemo(() => initializeStore(), []);
36
33
  }
37
34
  //# sourceMappingURL=Tanks.store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tanks.store.js","sourceRoot":"/","sources":["src/Modules/Tanks/Tanks.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAe,MAAM,MAAM,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAG/B,IAAI,KAAiB,CAAA;AAMrB;IAGE;QAAA,iBAEC;QAJD;;;;mBAAqB,EAAE;WAAA;QAMvB;;;;mBAAW,UAAC,KAAkB,IAAK,OAAA,KAAI,CAAC,KAAK,GAAG,KAAK,EAAlB,CAAkB;WAAA;QAHnD,kBAAkB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAChD,CAAC;IAGH,iBAAC;AAAD,CAAC,AARD,IAQC;;AAED,SAAS,eAAe;IACtB,IAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,UAAU,EAAE,CAAA;IACxC,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,aAAa;IAC3B,OAAO,OAAO,CAAC,cAAM,OAAA,eAAe,EAAE,EAAjB,CAAiB,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { action, makeAutoObservable, runInAction } from \"mobx\"\nimport { useMemo } from \"react\"\nimport { TankState } from \"./Tank.provider\"\n\nlet store: TanksStore\n\nexport interface TanksState {\n tanks: TankState[]\n}\n\nexport class TanksStore {\n tanks: TankState[] = []\n\n constructor() {\n makeAutoObservable(this, { setTanks: action })\n }\n\n setTanks = (tanks: TankState[]) => this.tanks = tanks\n}\n\nfunction initializeStore() {\n const _store = store ?? new TanksStore()\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 useTanksStore() {\n return useMemo(() => initializeStore(), [])\n}"]}
1
+ {"version":3,"file":"Tanks.store.js","sourceRoot":"/","sources":["src/Modules/Tanks/Tanks.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAG/B,IAAI,KAAiB,CAAA;AAMrB,MAAM,OAAO,UAAU;IAGrB;QAFA;;;;mBAAqB,EAAE;WAAA;QAMvB;;;;mBAAW,CAAC,KAAkB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;WAAA;QAHrD,kBAAkB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAChD,CAAC;CAGF;AAED,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,UAAU,EAAE,CAAA;IACxC,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,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { action, makeAutoObservable } from \"mobx\"\nimport { useMemo } from \"react\"\nimport { TankState } from \"./Tank.provider\"\n\nlet store: TanksStore\n\nexport interface TanksState {\n tanks: TankState[]\n}\n\nexport class TanksStore {\n tanks: TankState[] = []\n\n constructor() {\n makeAutoObservable(this, { setTanks: action })\n }\n\n setTanks = (tanks: TankState[]) => (this.tanks = tanks)\n}\n\nfunction initializeStore() {\n const _store = store ?? new TanksStore()\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 useTanksStore() {\n return useMemo(() => initializeStore(), [])\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Temperature.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperature.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,MAAM,EAGP,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAE1C,MAAM,WAAW,iBAAkB,SAAQ,MAAM;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,yBAAyB,GAAI,UAAU,QAAQ,EAAE,eAAe,qBAAqB;;;;;;;CAOhG,CAAA;AAEF,wBAAgB,cAAc,CAAC,aAAa,EAAE,qBAAqB,oBAiBlE;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,qBAAqB,oBAiB/D;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,qBAAqB,oBAiB/D"}
1
+ {"version":3,"file":"Temperature.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperature.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAA2B,MAAM,SAAS,CAAA;AAGnE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAE1C,MAAM,WAAW,iBAAkB,SAAQ,MAAM;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,yBAAyB,GAAI,UAAU,QAAQ,EAAE,eAAe,qBAAqB;;;;;;;CAOhG,CAAA;AAEF,wBAAgB,cAAc,CAAC,aAAa,EAAE,qBAAqB,oBAWlE;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,qBAAqB,oBAW/D;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,qBAAqB,oBAW/D"}
@@ -1,41 +1,41 @@
1
1
  import { useMqtt, useTopicsState } from "../Mqtt";
2
2
  import { useMemo } from "react";
3
- export var getTemperatureStateTopics = function (portalId, temperatureId) { return ({
4
- customName: "N/".concat(portalId, "/temperature/").concat(temperatureId, "/CustomName"),
5
- temperature: "N/".concat(portalId, "/temperature/").concat(temperatureId, "/Temperature"),
6
- temperatureType: "N/".concat(portalId, "/temperature/").concat(temperatureId, "/TemperatureType"),
7
- humidity: "N/".concat(portalId, "/temperature/").concat(temperatureId, "/Humidity"),
8
- pressure: "N/".concat(portalId, "/temperature/").concat(temperatureId, "/Pressure"),
9
- instance: "N/".concat(portalId, "/temperature/").concat(temperatureId, "/DeviceInstance"),
10
- }); };
3
+ export const getTemperatureStateTopics = (portalId, temperatureId) => ({
4
+ customName: `N/${portalId}/temperature/${temperatureId}/CustomName`,
5
+ temperature: `N/${portalId}/temperature/${temperatureId}/Temperature`,
6
+ temperatureType: `N/${portalId}/temperature/${temperatureId}/TemperatureType`,
7
+ humidity: `N/${portalId}/temperature/${temperatureId}/Humidity`,
8
+ pressure: `N/${portalId}/temperature/${temperatureId}/Pressure`,
9
+ instance: `N/${portalId}/temperature/${temperatureId}/DeviceInstance`,
10
+ });
11
11
  export function useTemperature(temperatureId) {
12
- var getTopics = function (portalId, temperatureInstanceId) { return ({
13
- customName: "N/".concat(portalId, "/temperature/").concat(temperatureInstanceId, "/CustomName"),
14
- temperature: "N/".concat(portalId, "/temperature/").concat(temperatureInstanceId, "/Temperature"),
15
- temperatureType: "N/".concat(portalId, "/temperature/").concat(temperatureInstanceId, "/TemperatureType"),
16
- }); };
17
- var portalId = useMqtt().portalId;
18
- var topics = useMemo(function () { return getTopics(portalId, temperatureId); }, [portalId, temperatureId]);
12
+ const getTopics = (portalId, temperatureInstanceId) => ({
13
+ customName: `N/${portalId}/temperature/${temperatureInstanceId}/CustomName`,
14
+ temperature: `N/${portalId}/temperature/${temperatureInstanceId}/Temperature`,
15
+ temperatureType: `N/${portalId}/temperature/${temperatureInstanceId}/TemperatureType`,
16
+ });
17
+ const { portalId } = useMqtt();
18
+ const topics = useMemo(() => getTopics(portalId, temperatureId), [portalId, temperatureId]);
19
19
  return useTopicsState(topics);
20
20
  }
21
21
  export function useHumidity(temperatureId) {
22
- var getTopics = function (portalId, temperatureInstanceId) { return ({
23
- customName: "N/".concat(portalId, "/temperature/").concat(temperatureInstanceId, "/CustomName"),
24
- humidity: "N/".concat(portalId, "/temperature/").concat(temperatureInstanceId, "/Humidity"),
25
- temperatureType: "N/".concat(portalId, "/temperature/").concat(temperatureInstanceId, "/TemperatureType"),
26
- }); };
27
- var portalId = useMqtt().portalId;
28
- var topics = useMemo(function () { return getTopics(portalId, temperatureId); }, [portalId, temperatureId]);
22
+ const getTopics = (portalId, temperatureInstanceId) => ({
23
+ customName: `N/${portalId}/temperature/${temperatureInstanceId}/CustomName`,
24
+ humidity: `N/${portalId}/temperature/${temperatureInstanceId}/Humidity`,
25
+ temperatureType: `N/${portalId}/temperature/${temperatureInstanceId}/TemperatureType`,
26
+ });
27
+ const { portalId } = useMqtt();
28
+ const topics = useMemo(() => getTopics(portalId, temperatureId), [portalId, temperatureId]);
29
29
  return useTopicsState(topics);
30
30
  }
31
31
  export function usePressure(temperatureId) {
32
- var getTopics = function (portalId, temperatureInstanceId) { return ({
33
- customName: "N/".concat(portalId, "/temperature/").concat(temperatureInstanceId, "/CustomName"),
34
- pressure: "N/".concat(portalId, "/temperature/").concat(temperatureInstanceId, "/Pressure"),
35
- temperatureType: "N/".concat(portalId, "/temperature/").concat(temperatureInstanceId, "/TemperatureType"),
36
- }); };
37
- var portalId = useMqtt().portalId;
38
- var topics = useMemo(function () { return getTopics(portalId, temperatureId); }, [portalId, temperatureId]);
32
+ const getTopics = (portalId, temperatureInstanceId) => ({
33
+ customName: `N/${portalId}/temperature/${temperatureInstanceId}/CustomName`,
34
+ pressure: `N/${portalId}/temperature/${temperatureInstanceId}/Pressure`,
35
+ temperatureType: `N/${portalId}/temperature/${temperatureInstanceId}/TemperatureType`,
36
+ });
37
+ const { portalId } = useMqtt();
38
+ const topics = useMemo(() => getTopics(portalId, temperatureId), [portalId, temperatureId]);
39
39
  return useTopicsState(topics);
40
40
  }
41
41
  //# sourceMappingURL=Temperature.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Temperature.provider.js","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperature.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EACP,cAAc,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAqBhC,MAAM,CAAC,IAAM,yBAAyB,GAAG,UAAC,QAAkB,EAAE,aAAoC,IAAK,OAAA,CAAC;IACtG,UAAU,EAAE,YAAK,QAAQ,0BAAgB,aAAa,gBAAa;IACnE,WAAW,EAAE,YAAK,QAAQ,0BAAgB,aAAa,iBAAc;IACrE,eAAe,EAAE,YAAK,QAAQ,0BAAgB,aAAa,qBAAkB;IAC7E,QAAQ,EAAE,YAAK,QAAQ,0BAAgB,aAAa,cAAW;IAC/D,QAAQ,EAAE,YAAK,QAAQ,0BAAgB,aAAa,cAAW;IAC/D,QAAQ,EAAE,YAAK,QAAQ,0BAAgB,aAAa,oBAAiB;CACtE,CAAC,EAPqG,CAOrG,CAAA;AAEF,MAAM,UAAU,cAAc,CAAC,aAAoC;IACjE,IAAM,SAAS,GAAG,UAChB,QAAkB,EAClB,qBAA4C,IACzC,OAAA,CAAC;QACJ,UAAU,EAAE,YAAK,QAAQ,0BAAgB,qBAAqB,gBAAa;QAC3E,WAAW,EAAE,YAAK,QAAQ,0BAAgB,qBAAqB,iBAAc;QAC7E,eAAe,EAAE,YAAK,QAAQ,0BAAgB,qBAAqB,qBAAkB;KACtF,CAAC,EAJG,CAIH,CAAC;IAEK,IAAA,QAAQ,GAAK,OAAO,EAAE,SAAd,CAAe;IAC/B,IAAM,MAAM,GAAG,OAAO,CACpB,cAAM,OAAA,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAlC,CAAkC,EACxC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC1B,CAAC;IAEF,OAAO,cAAc,CAAmB,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,aAAoC;IAC9D,IAAM,SAAS,GAAG,UAChB,QAAkB,EAClB,qBAA4C,IACzC,OAAA,CAAC;QACJ,UAAU,EAAE,YAAK,QAAQ,0BAAgB,qBAAqB,gBAAa;QAC3E,QAAQ,EAAE,YAAK,QAAQ,0BAAgB,qBAAqB,cAAW;QACvE,eAAe,EAAE,YAAK,QAAQ,0BAAgB,qBAAqB,qBAAkB;KACtF,CAAC,EAJG,CAIH,CAAC;IAEK,IAAA,QAAQ,GAAK,OAAO,EAAE,SAAd,CAAe;IAC/B,IAAM,MAAM,GAAG,OAAO,CACpB,cAAM,OAAA,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAlC,CAAkC,EACxC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC1B,CAAC;IAEF,OAAO,cAAc,CAAmB,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,aAAoC;IAC9D,IAAM,SAAS,GAAG,UAChB,QAAkB,EAClB,qBAA4C,IACzC,OAAA,CAAC;QACJ,UAAU,EAAE,YAAK,QAAQ,0BAAgB,qBAAqB,gBAAa;QAC3E,QAAQ,EAAE,YAAK,QAAQ,0BAAgB,qBAAqB,cAAW;QACvE,eAAe,EAAE,YAAK,QAAQ,0BAAgB,qBAAqB,qBAAkB;KACtF,CAAC,EAJG,CAIH,CAAC;IAEK,IAAA,QAAQ,GAAK,OAAO,EAAE,SAAd,CAAe;IAC/B,IAAM,MAAM,GAAG,OAAO,CACpB,cAAM,OAAA,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAlC,CAAkC,EACxC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC1B,CAAC;IAEF,OAAO,cAAc,CAAmB,MAAM,CAAC,CAAC;AAClD,CAAC","sourcesContent":["import {\n PortalId,\n Topics,\n useMqtt,\n useTopicsState\n} from \"../Mqtt\";\nimport { useMemo } from \"react\";\n\nexport type TemperatureInstanceId = number\n\nexport interface TemperatureTopics extends Topics {\n customName?: string;\n temperature?: string;\n temperatureType?: string;\n humidity?: string;\n pressure?: string;\n}\n\nexport interface TemperatureState {\n customName: string;\n temperature?: number;\n temperatureType?: number;\n humidity?: number | undefined;\n pressure?: number | undefined;\n instance: number;\n}\n\nexport const getTemperatureStateTopics = (portalId: PortalId, temperatureId: TemperatureInstanceId) => ({\n customName: `N/${portalId}/temperature/${temperatureId}/CustomName`,\n temperature: `N/${portalId}/temperature/${temperatureId}/Temperature`,\n temperatureType: `N/${portalId}/temperature/${temperatureId}/TemperatureType`,\n humidity: `N/${portalId}/temperature/${temperatureId}/Humidity`,\n pressure: `N/${portalId}/temperature/${temperatureId}/Pressure`,\n instance: `N/${portalId}/temperature/${temperatureId}/DeviceInstance`,\n})\n\nexport function useTemperature(temperatureId: TemperatureInstanceId) {\n const getTopics = (\n portalId: PortalId,\n temperatureInstanceId: TemperatureInstanceId\n ) => ({\n customName: `N/${portalId}/temperature/${temperatureInstanceId}/CustomName`,\n temperature: `N/${portalId}/temperature/${temperatureInstanceId}/Temperature`,\n temperatureType: `N/${portalId}/temperature/${temperatureInstanceId}/TemperatureType`,\n });\n\n const { portalId } = useMqtt();\n const topics = useMemo(\n () => getTopics(portalId, temperatureId),\n [portalId, temperatureId]\n );\n\n return useTopicsState<TemperatureState>(topics);\n}\n\nexport function useHumidity(temperatureId: TemperatureInstanceId) {\n const getTopics = (\n portalId: PortalId,\n temperatureInstanceId: TemperatureInstanceId\n ) => ({\n customName: `N/${portalId}/temperature/${temperatureInstanceId}/CustomName`,\n humidity: `N/${portalId}/temperature/${temperatureInstanceId}/Humidity`,\n temperatureType: `N/${portalId}/temperature/${temperatureInstanceId}/TemperatureType`,\n });\n\n const { portalId } = useMqtt();\n const topics = useMemo(\n () => getTopics(portalId, temperatureId),\n [portalId, temperatureId]\n );\n\n return useTopicsState<TemperatureState>(topics);\n}\n\nexport function usePressure(temperatureId: TemperatureInstanceId) {\n const getTopics = (\n portalId: PortalId,\n temperatureInstanceId: TemperatureInstanceId\n ) => ({\n customName: `N/${portalId}/temperature/${temperatureInstanceId}/CustomName`,\n pressure: `N/${portalId}/temperature/${temperatureInstanceId}/Pressure`,\n temperatureType: `N/${portalId}/temperature/${temperatureInstanceId}/TemperatureType`,\n });\n\n const { portalId } = useMqtt();\n const topics = useMemo(\n () => getTopics(portalId, temperatureId),\n [portalId, temperatureId]\n );\n\n return useTopicsState<TemperatureState>(topics);\n}\n"]}
1
+ {"version":3,"file":"Temperature.provider.js","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperature.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAqB/B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAAkB,EAAE,aAAoC,EAAE,EAAE,CAAC,CAAC;IACtG,UAAU,EAAE,KAAK,QAAQ,gBAAgB,aAAa,aAAa;IACnE,WAAW,EAAE,KAAK,QAAQ,gBAAgB,aAAa,cAAc;IACrE,eAAe,EAAE,KAAK,QAAQ,gBAAgB,aAAa,kBAAkB;IAC7E,QAAQ,EAAE,KAAK,QAAQ,gBAAgB,aAAa,WAAW;IAC/D,QAAQ,EAAE,KAAK,QAAQ,gBAAgB,aAAa,WAAW;IAC/D,QAAQ,EAAE,KAAK,QAAQ,gBAAgB,aAAa,iBAAiB;CACtE,CAAC,CAAA;AAEF,MAAM,UAAU,cAAc,CAAC,aAAoC;IACjE,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,qBAA4C,EAAE,EAAE,CAAC,CAAC;QACvF,UAAU,EAAE,KAAK,QAAQ,gBAAgB,qBAAqB,aAAa;QAC3E,WAAW,EAAE,KAAK,QAAQ,gBAAgB,qBAAqB,cAAc;QAC7E,eAAe,EAAE,KAAK,QAAQ,gBAAgB,qBAAqB,kBAAkB;KACtF,CAAC,CAAA;IAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAE3F,OAAO,cAAc,CAAmB,MAAM,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,aAAoC;IAC9D,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,qBAA4C,EAAE,EAAE,CAAC,CAAC;QACvF,UAAU,EAAE,KAAK,QAAQ,gBAAgB,qBAAqB,aAAa;QAC3E,QAAQ,EAAE,KAAK,QAAQ,gBAAgB,qBAAqB,WAAW;QACvE,eAAe,EAAE,KAAK,QAAQ,gBAAgB,qBAAqB,kBAAkB;KACtF,CAAC,CAAA;IAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAE3F,OAAO,cAAc,CAAmB,MAAM,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,aAAoC;IAC9D,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,qBAA4C,EAAE,EAAE,CAAC,CAAC;QACvF,UAAU,EAAE,KAAK,QAAQ,gBAAgB,qBAAqB,aAAa;QAC3E,QAAQ,EAAE,KAAK,QAAQ,gBAAgB,qBAAqB,WAAW;QACvE,eAAe,EAAE,KAAK,QAAQ,gBAAgB,qBAAqB,kBAAkB;KACtF,CAAC,CAAA;IAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAE3F,OAAO,cAAc,CAAmB,MAAM,CAAC,CAAA;AACjD,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport type TemperatureInstanceId = number\n\nexport interface TemperatureTopics extends Topics {\n customName?: string\n temperature?: string\n temperatureType?: string\n humidity?: string\n pressure?: string\n}\n\nexport interface TemperatureState {\n customName: string\n temperature?: number\n temperatureType?: number\n humidity?: number | undefined\n pressure?: number | undefined\n instance: number\n}\n\nexport const getTemperatureStateTopics = (portalId: PortalId, temperatureId: TemperatureInstanceId) => ({\n customName: `N/${portalId}/temperature/${temperatureId}/CustomName`,\n temperature: `N/${portalId}/temperature/${temperatureId}/Temperature`,\n temperatureType: `N/${portalId}/temperature/${temperatureId}/TemperatureType`,\n humidity: `N/${portalId}/temperature/${temperatureId}/Humidity`,\n pressure: `N/${portalId}/temperature/${temperatureId}/Pressure`,\n instance: `N/${portalId}/temperature/${temperatureId}/DeviceInstance`,\n})\n\nexport function useTemperature(temperatureId: TemperatureInstanceId) {\n const getTopics = (portalId: PortalId, temperatureInstanceId: TemperatureInstanceId) => ({\n customName: `N/${portalId}/temperature/${temperatureInstanceId}/CustomName`,\n temperature: `N/${portalId}/temperature/${temperatureInstanceId}/Temperature`,\n temperatureType: `N/${portalId}/temperature/${temperatureInstanceId}/TemperatureType`,\n })\n\n const { portalId } = useMqtt()\n const topics = useMemo(() => getTopics(portalId, temperatureId), [portalId, temperatureId])\n\n return useTopicsState<TemperatureState>(topics)\n}\n\nexport function useHumidity(temperatureId: TemperatureInstanceId) {\n const getTopics = (portalId: PortalId, temperatureInstanceId: TemperatureInstanceId) => ({\n customName: `N/${portalId}/temperature/${temperatureInstanceId}/CustomName`,\n humidity: `N/${portalId}/temperature/${temperatureInstanceId}/Humidity`,\n temperatureType: `N/${portalId}/temperature/${temperatureInstanceId}/TemperatureType`,\n })\n\n const { portalId } = useMqtt()\n const topics = useMemo(() => getTopics(portalId, temperatureId), [portalId, temperatureId])\n\n return useTopicsState<TemperatureState>(topics)\n}\n\nexport function usePressure(temperatureId: TemperatureInstanceId) {\n const getTopics = (portalId: PortalId, temperatureInstanceId: TemperatureInstanceId) => ({\n customName: `N/${portalId}/temperature/${temperatureInstanceId}/CustomName`,\n pressure: `N/${portalId}/temperature/${temperatureInstanceId}/Pressure`,\n temperatureType: `N/${portalId}/temperature/${temperatureInstanceId}/TemperatureType`,\n })\n\n const { portalId } = useMqtt()\n const topics = useMemo(() => getTopics(portalId, temperatureId), [portalId, temperatureId])\n\n return useTopicsState<TemperatureState>(topics)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Temperatures.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperatures.provider.ts"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,qDAkC9B"}
1
+ {"version":3,"file":"Temperatures.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperatures.provider.ts"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,qDAsC9B"}
@@ -5,33 +5,34 @@ import Logger from "../../utils/logger";
5
5
  import { getTemperatureStateTopics } from "./Temperature.provider";
6
6
  import { autorun } from "mobx";
7
7
  export function useTemperatures() {
8
- var temperaturesStore = useTemperaturesStore();
9
- var mqtt = useMqtt();
10
- var getTopics = function (portalId) { return ({
11
- temperatureInstances: "N/".concat(portalId, "/temperature/+/DeviceInstance"),
12
- }); };
13
- var topics = useMemo(function () { return getTopics(mqtt.portalId); }, [mqtt.portalId]);
14
- var temperatures = temperaturesStore.temperatures;
15
- var messages = mqtt.messagesByWildcard(topics.temperatureInstances);
16
- useEffect(function () {
8
+ const temperaturesStore = useTemperaturesStore();
9
+ const mqtt = useMqtt();
10
+ const getTopics = (portalId) => ({
11
+ temperatureInstances: `N/${portalId}/temperature/+/DeviceInstance`,
12
+ });
13
+ const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);
14
+ const messages = mqtt.messagesByWildcard(topics.temperatureInstances);
15
+ useEffect(() => {
17
16
  if (!messages || Object.entries(messages).length === 0) {
18
17
  // Logger.log("Waiting for temperatures...");
19
18
  }
20
19
  else {
21
- var deviceInstances_1 = Object.values(messages);
22
- var dispose_1 = autorun(function () {
23
- var oldTemperatures = temperaturesStore.temperatures;
24
- var newTemperatures = deviceInstances_1.map(function (temperatureInstanceId) { return mqtt.messagesByTopics(getTemperatureStateTopics(mqtt.portalId, temperatureInstanceId)); });
20
+ const deviceInstances = Object.values(messages);
21
+ const dispose = autorun(() => {
22
+ const oldTemperatures = temperaturesStore.temperatures;
23
+ const newTemperatures = deviceInstances.map((temperatureInstanceId) => mqtt.messagesByTopics(getTemperatureStateTopics(mqtt.portalId, temperatureInstanceId)));
25
24
  // TODO: check unordered structural identify of old and new state
26
25
  // TODO: to avoid unnecessary re-rendering: O(n^2) baby
27
- if (!oldTemperatures || oldTemperatures.length != newTemperatures.length || !oldTemperatures.every(function (id) { return deviceInstances_1.includes(id.instance); })) {
28
- Logger.log("New temperatures instances: ".concat(JSON.stringify(deviceInstances_1)));
26
+ if (!oldTemperatures ||
27
+ oldTemperatures.length !== newTemperatures.length ||
28
+ !oldTemperatures.every((id) => deviceInstances.includes(id.instance))) {
29
+ Logger.log(`New temperatures instances: ${JSON.stringify(deviceInstances)}`);
29
30
  temperaturesStore.setTemperatures(newTemperatures);
30
31
  }
31
32
  });
32
- return function () { return dispose_1(); };
33
+ return () => dispose();
33
34
  }
34
- }, [messages]);
35
+ }, [messages, mqtt, temperaturesStore]);
35
36
  return temperaturesStore;
36
37
  }
37
38
  //# sourceMappingURL=Temperatures.provider.js.map