@victronenergy/mfd-modules 3.3.6

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 (239) hide show
  1. package/README.md +12 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +2 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/src/Modules/AcLoads/AcLoads.provider.d.ts +16 -0
  6. package/dist/src/Modules/AcLoads/AcLoads.provider.js +34 -0
  7. package/dist/src/Modules/AcLoads/AcLoads.provider.js.map +1 -0
  8. package/dist/src/Modules/AcLoads/index.d.ts +1 -0
  9. package/dist/src/Modules/AcLoads/index.js +2 -0
  10. package/dist/src/Modules/AcLoads/index.js.map +1 -0
  11. package/dist/src/Modules/AcMode/AcMode.provider.d.ts +18 -0
  12. package/dist/src/Modules/AcMode/AcMode.provider.js +51 -0
  13. package/dist/src/Modules/AcMode/AcMode.provider.js.map +1 -0
  14. package/dist/src/Modules/AcMode/index.d.ts +1 -0
  15. package/dist/src/Modules/AcMode/index.js +2 -0
  16. package/dist/src/Modules/AcMode/index.js.map +1 -0
  17. package/dist/src/Modules/ActiveSource/ActiveInValues.provider.d.ts +13 -0
  18. package/dist/src/Modules/ActiveSource/ActiveInValues.provider.js +33 -0
  19. package/dist/src/Modules/ActiveSource/ActiveInValues.provider.js.map +1 -0
  20. package/dist/src/Modules/ActiveSource/ActiveSource.provider.d.ts +6 -0
  21. package/dist/src/Modules/ActiveSource/ActiveSource.provider.js +20 -0
  22. package/dist/src/Modules/ActiveSource/ActiveSource.provider.js.map +1 -0
  23. package/dist/src/Modules/ActiveSource/index.d.ts +2 -0
  24. package/dist/src/Modules/ActiveSource/index.js +3 -0
  25. package/dist/src/Modules/ActiveSource/index.js.map +1 -0
  26. package/dist/src/Modules/Alternators/Alternator.provider.d.ts +6 -0
  27. package/dist/src/Modules/Alternators/Alternator.provider.js +14 -0
  28. package/dist/src/Modules/Alternators/Alternator.provider.js.map +1 -0
  29. package/dist/src/Modules/Alternators/Alternators.provider.d.ts +1 -0
  30. package/dist/src/Modules/Alternators/Alternators.provider.js +24 -0
  31. package/dist/src/Modules/Alternators/Alternators.provider.js.map +1 -0
  32. package/dist/src/Modules/Alternators/Alternators.store.d.ts +7 -0
  33. package/dist/src/Modules/Alternators/Alternators.store.js +37 -0
  34. package/dist/src/Modules/Alternators/Alternators.store.js.map +1 -0
  35. package/dist/src/Modules/Alternators/index.d.ts +3 -0
  36. package/dist/src/Modules/Alternators/index.js +4 -0
  37. package/dist/src/Modules/Alternators/index.js.map +1 -0
  38. package/dist/src/Modules/App/App.provider.d.ts +1 -0
  39. package/dist/src/Modules/App/App.provider.js +26 -0
  40. package/dist/src/Modules/App/App.provider.js.map +1 -0
  41. package/dist/src/Modules/App/App.store.d.ts +24 -0
  42. package/dist/src/Modules/App/App.store.js +132 -0
  43. package/dist/src/Modules/App/App.store.js.map +1 -0
  44. package/dist/src/Modules/App/index.d.ts +2 -0
  45. package/dist/src/Modules/App/index.js +3 -0
  46. package/dist/src/Modules/App/index.js.map +1 -0
  47. package/dist/src/Modules/Battery/Batteries.provider.d.ts +1 -0
  48. package/dist/src/Modules/Battery/Batteries.provider.js +28 -0
  49. package/dist/src/Modules/Battery/Batteries.provider.js.map +1 -0
  50. package/dist/src/Modules/Battery/Batteries.store.d.ts +10 -0
  51. package/dist/src/Modules/Battery/Batteries.store.js +37 -0
  52. package/dist/src/Modules/Battery/Batteries.store.js.map +1 -0
  53. package/dist/src/Modules/Battery/Battery.provider.d.ts +21 -0
  54. package/dist/src/Modules/Battery/Battery.provider.js +12 -0
  55. package/dist/src/Modules/Battery/Battery.provider.js.map +1 -0
  56. package/dist/src/Modules/Battery/index.d.ts +3 -0
  57. package/dist/src/Modules/Battery/index.js +4 -0
  58. package/dist/src/Modules/Battery/index.js.map +1 -0
  59. package/dist/src/Modules/Chargers/Charger.provider.d.ts +25 -0
  60. package/dist/src/Modules/Chargers/Charger.provider.js +41 -0
  61. package/dist/src/Modules/Chargers/Charger.provider.js.map +1 -0
  62. package/dist/src/Modules/Chargers/Chargers.provider.d.ts +4 -0
  63. package/dist/src/Modules/Chargers/Chargers.provider.js +24 -0
  64. package/dist/src/Modules/Chargers/Chargers.provider.js.map +1 -0
  65. package/dist/src/Modules/Chargers/Chargers.store.d.ts +7 -0
  66. package/dist/src/Modules/Chargers/Chargers.store.js +37 -0
  67. package/dist/src/Modules/Chargers/Chargers.store.js.map +1 -0
  68. package/dist/src/Modules/Chargers/index.d.ts +3 -0
  69. package/dist/src/Modules/Chargers/index.js +4 -0
  70. package/dist/src/Modules/Chargers/index.js.map +1 -0
  71. package/dist/src/Modules/DcLoads/DcLoads.provider.d.ts +12 -0
  72. package/dist/src/Modules/DcLoads/DcLoads.provider.js +26 -0
  73. package/dist/src/Modules/DcLoads/DcLoads.provider.js.map +1 -0
  74. package/dist/src/Modules/DcLoads/index.d.ts +1 -0
  75. package/dist/src/Modules/DcLoads/index.js +2 -0
  76. package/dist/src/Modules/DcLoads/index.js.map +1 -0
  77. package/dist/src/Modules/Generators/GeneratorFp.provider.d.ts +24 -0
  78. package/dist/src/Modules/Generators/GeneratorFp.provider.js +39 -0
  79. package/dist/src/Modules/Generators/GeneratorFp.provider.js.map +1 -0
  80. package/dist/src/Modules/Generators/GeneratorRelay.provider.d.ts +24 -0
  81. package/dist/src/Modules/Generators/GeneratorRelay.provider.js +47 -0
  82. package/dist/src/Modules/Generators/GeneratorRelay.provider.js.map +1 -0
  83. package/dist/src/Modules/Generators/GensetValues.provider.d.ts +20 -0
  84. package/dist/src/Modules/Generators/GensetValues.provider.js +37 -0
  85. package/dist/src/Modules/Generators/GensetValues.provider.js.map +1 -0
  86. package/dist/src/Modules/Generators/index.d.ts +3 -0
  87. package/dist/src/Modules/Generators/index.js +4 -0
  88. package/dist/src/Modules/Generators/index.js.map +1 -0
  89. package/dist/src/Modules/Header/Header.provider.d.ts +8 -0
  90. package/dist/src/Modules/Header/Header.provider.js +14 -0
  91. package/dist/src/Modules/Header/Header.provider.js.map +1 -0
  92. package/dist/src/Modules/Header/index.d.ts +1 -0
  93. package/dist/src/Modules/Header/index.js +2 -0
  94. package/dist/src/Modules/Header/index.js.map +1 -0
  95. package/dist/src/Modules/InverterCharger/InputLimit.provider.d.ts +10 -0
  96. package/dist/src/Modules/InverterCharger/InputLimit.provider.js +28 -0
  97. package/dist/src/Modules/InverterCharger/InputLimit.provider.js.map +1 -0
  98. package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.d.ts +15 -0
  99. package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.js +34 -0
  100. package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.js.map +1 -0
  101. package/dist/src/Modules/InverterCharger/InverterCharger.provider.d.ts +19 -0
  102. package/dist/src/Modules/InverterCharger/InverterCharger.provider.js +36 -0
  103. package/dist/src/Modules/InverterCharger/InverterCharger.provider.js.map +1 -0
  104. package/dist/src/Modules/InverterCharger/index.d.ts +3 -0
  105. package/dist/src/Modules/InverterCharger/index.js +4 -0
  106. package/dist/src/Modules/InverterCharger/index.js.map +1 -0
  107. package/dist/src/Modules/Inverters/Inverter.provider.d.ts +26 -0
  108. package/dist/src/Modules/Inverters/Inverter.provider.js +37 -0
  109. package/dist/src/Modules/Inverters/Inverter.provider.js.map +1 -0
  110. package/dist/src/Modules/Inverters/Inverters.provider.d.ts +9 -0
  111. package/dist/src/Modules/Inverters/Inverters.provider.js +26 -0
  112. package/dist/src/Modules/Inverters/Inverters.provider.js.map +1 -0
  113. package/dist/src/Modules/Inverters/Inverters.store.d.ts +7 -0
  114. package/dist/src/Modules/Inverters/Inverters.store.js +37 -0
  115. package/dist/src/Modules/Inverters/Inverters.store.js.map +1 -0
  116. package/dist/src/Modules/Inverters/index.d.ts +3 -0
  117. package/dist/src/Modules/Inverters/index.js +4 -0
  118. package/dist/src/Modules/Inverters/index.js.map +1 -0
  119. package/dist/src/Modules/Language/Language.provider.d.ts +9 -0
  120. package/dist/src/Modules/Language/Language.provider.js +86 -0
  121. package/dist/src/Modules/Language/Language.provider.js.map +1 -0
  122. package/dist/src/Modules/Language/index.d.ts +1 -0
  123. package/dist/src/Modules/Language/index.js +2 -0
  124. package/dist/src/Modules/Language/index.js.map +1 -0
  125. package/dist/src/Modules/Mqtt/Mqtt.constants.d.ts +6 -0
  126. package/dist/src/Modules/Mqtt/Mqtt.constants.js +7 -0
  127. package/dist/src/Modules/Mqtt/Mqtt.constants.js.map +1 -0
  128. package/dist/src/Modules/Mqtt/Mqtt.provider.d.ts +4 -0
  129. package/dist/src/Modules/Mqtt/Mqtt.provider.js +18 -0
  130. package/dist/src/Modules/Mqtt/Mqtt.provider.js.map +1 -0
  131. package/dist/src/Modules/Mqtt/Mqtt.store.d.ts +43 -0
  132. package/dist/src/Modules/Mqtt/Mqtt.store.js +467 -0
  133. package/dist/src/Modules/Mqtt/Mqtt.store.js.map +1 -0
  134. package/dist/src/Modules/Mqtt/Mqtt.types.d.ts +8 -0
  135. package/dist/src/Modules/Mqtt/Mqtt.types.js +2 -0
  136. package/dist/src/Modules/Mqtt/Mqtt.types.js.map +1 -0
  137. package/dist/src/Modules/Mqtt/index.d.ts +4 -0
  138. package/dist/src/Modules/Mqtt/index.js +5 -0
  139. package/dist/src/Modules/Mqtt/index.js.map +1 -0
  140. package/dist/src/Modules/PvCharger/PvCharger.provider.d.ts +10 -0
  141. package/dist/src/Modules/PvCharger/PvCharger.provider.js +14 -0
  142. package/dist/src/Modules/PvCharger/PvCharger.provider.js.map +1 -0
  143. package/dist/src/Modules/PvCharger/index.d.ts +1 -0
  144. package/dist/src/Modules/PvCharger/index.js +2 -0
  145. package/dist/src/Modules/PvCharger/index.js.map +1 -0
  146. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.d.ts +2 -0
  147. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.js +37 -0
  148. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.js.map +1 -0
  149. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.d.ts +10 -0
  150. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.js +37 -0
  151. package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.js.map +1 -0
  152. package/dist/src/Modules/ShorePowerInput/index.d.ts +2 -0
  153. package/dist/src/Modules/ShorePowerInput/index.js +3 -0
  154. package/dist/src/Modules/ShorePowerInput/index.js.map +1 -0
  155. package/dist/src/Modules/SystemState/SystemState.provider.d.ts +8 -0
  156. package/dist/src/Modules/SystemState/SystemState.provider.js +12 -0
  157. package/dist/src/Modules/SystemState/SystemState.provider.js.map +1 -0
  158. package/dist/src/Modules/SystemState/index.d.ts +1 -0
  159. package/dist/src/Modules/SystemState/index.js +2 -0
  160. package/dist/src/Modules/SystemState/index.js.map +1 -0
  161. package/dist/src/Modules/Tanks/Tank.provider.d.ts +19 -0
  162. package/dist/src/Modules/Tanks/Tank.provider.js +17 -0
  163. package/dist/src/Modules/Tanks/Tank.provider.js.map +1 -0
  164. package/dist/src/Modules/Tanks/Tanks.provider.d.ts +4 -0
  165. package/dist/src/Modules/Tanks/Tanks.provider.js +26 -0
  166. package/dist/src/Modules/Tanks/Tanks.provider.js.map +1 -0
  167. package/dist/src/Modules/Tanks/Tanks.store.d.ts +10 -0
  168. package/dist/src/Modules/Tanks/Tanks.store.js +37 -0
  169. package/dist/src/Modules/Tanks/Tanks.store.js.map +1 -0
  170. package/dist/src/Modules/Tanks/index.d.ts +3 -0
  171. package/dist/src/Modules/Tanks/index.js +4 -0
  172. package/dist/src/Modules/Tanks/index.js.map +1 -0
  173. package/dist/src/Modules/Temperatures/Temperature.provider.d.ts +19 -0
  174. package/dist/src/Modules/Temperatures/Temperature.provider.js +36 -0
  175. package/dist/src/Modules/Temperatures/Temperature.provider.js.map +1 -0
  176. package/dist/src/Modules/Temperatures/Temperatures.provider.d.ts +3 -0
  177. package/dist/src/Modules/Temperatures/Temperatures.provider.js +26 -0
  178. package/dist/src/Modules/Temperatures/Temperatures.provider.js.map +1 -0
  179. package/dist/src/Modules/Temperatures/Temperatures.store.d.ts +7 -0
  180. package/dist/src/Modules/Temperatures/Temperatures.store.js +37 -0
  181. package/dist/src/Modules/Temperatures/Temperatures.store.js.map +1 -0
  182. package/dist/src/Modules/Temperatures/index.d.ts +3 -0
  183. package/dist/src/Modules/Temperatures/index.js +4 -0
  184. package/dist/src/Modules/Temperatures/index.js.map +1 -0
  185. package/dist/src/Modules/Theme/Theme.provider.d.ts +4 -0
  186. package/dist/src/Modules/Theme/Theme.provider.js +7 -0
  187. package/dist/src/Modules/Theme/Theme.provider.js.map +1 -0
  188. package/dist/src/Modules/Theme/Theme.store.d.ts +9 -0
  189. package/dist/src/Modules/Theme/Theme.store.js +44 -0
  190. package/dist/src/Modules/Theme/Theme.store.js.map +1 -0
  191. package/dist/src/Modules/Theme/index.d.ts +1 -0
  192. package/dist/src/Modules/Theme/index.js +2 -0
  193. package/dist/src/Modules/Theme/index.js.map +1 -0
  194. package/dist/src/Modules/Vebus/Vebus.provider.d.ts +2 -0
  195. package/dist/src/Modules/Vebus/Vebus.provider.js +67 -0
  196. package/dist/src/Modules/Vebus/Vebus.provider.js.map +1 -0
  197. package/dist/src/Modules/Vebus/Vebus.store.d.ts +19 -0
  198. package/dist/src/Modules/Vebus/Vebus.store.js +63 -0
  199. package/dist/src/Modules/Vebus/Vebus.store.js.map +1 -0
  200. package/dist/src/Modules/Vebus/index.d.ts +2 -0
  201. package/dist/src/Modules/Vebus/index.js +3 -0
  202. package/dist/src/Modules/Vebus/index.js.map +1 -0
  203. package/dist/src/Modules/Vrm/Vrm.store.d.ts +38 -0
  204. package/dist/src/Modules/Vrm/Vrm.store.js +299 -0
  205. package/dist/src/Modules/Vrm/Vrm.store.js.map +1 -0
  206. package/dist/src/Modules/Vrm/Vrm.types.d.ts +16 -0
  207. package/dist/src/Modules/Vrm/Vrm.types.js +2 -0
  208. package/dist/src/Modules/Vrm/Vrm.types.js.map +1 -0
  209. package/dist/src/Modules/Vrm/index.d.ts +2 -0
  210. package/dist/src/Modules/Vrm/index.js +3 -0
  211. package/dist/src/Modules/Vrm/index.js.map +1 -0
  212. package/dist/src/Modules/WindGenerators/WindGenerator.provider.d.ts +6 -0
  213. package/dist/src/Modules/WindGenerators/WindGenerator.provider.js +14 -0
  214. package/dist/src/Modules/WindGenerators/WindGenerator.provider.js.map +1 -0
  215. package/dist/src/Modules/WindGenerators/WindGenerators.provider.d.ts +1 -0
  216. package/dist/src/Modules/WindGenerators/WindGenerators.provider.js +34 -0
  217. package/dist/src/Modules/WindGenerators/WindGenerators.provider.js.map +1 -0
  218. package/dist/src/Modules/WindGenerators/WindGenerators.store.d.ts +7 -0
  219. package/dist/src/Modules/WindGenerators/WindGenerators.store.js +37 -0
  220. package/dist/src/Modules/WindGenerators/WindGenerators.store.js.map +1 -0
  221. package/dist/src/Modules/WindGenerators/index.d.ts +3 -0
  222. package/dist/src/Modules/WindGenerators/index.js +4 -0
  223. package/dist/src/Modules/WindGenerators/index.js.map +1 -0
  224. package/dist/src/index.d.ts +24 -0
  225. package/dist/src/index.js +25 -0
  226. package/dist/src/index.js.map +1 -0
  227. package/dist/src/utils/constants.d.ts +88 -0
  228. package/dist/src/utils/constants.js +81 -0
  229. package/dist/src/utils/constants.js.map +1 -0
  230. package/dist/src/utils/logger.d.ts +9 -0
  231. package/dist/src/utils/logger.js +28 -0
  232. package/dist/src/utils/logger.js.map +1 -0
  233. package/dist/src/utils/storage.d.ts +2 -0
  234. package/dist/src/utils/storage.js +42 -0
  235. package/dist/src/utils/storage.js.map +1 -0
  236. package/dist/src/utils/util.d.ts +16 -0
  237. package/dist/src/utils/util.js +112 -0
  238. package/dist/src/utils/util.js.map +1 -0
  239. package/package.json +43 -0
@@ -0,0 +1,467 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { makeAutoObservable, runInAction } from "mobx";
38
+ import { computedFn } from "mobx-utils";
39
+ import * as mqtt from "mqtt";
40
+ import { STATUS } from "../Mqtt";
41
+ import Logger from "../../utils/logger";
42
+ import { getMessageJson } from "../../utils/util";
43
+ import { useMemo } from "react";
44
+ import { assign, debounce } from "lodash-es";
45
+ var store;
46
+ var MqttStore = /** @class */ (function () {
47
+ function MqttStore() {
48
+ var _this = this;
49
+ Object.defineProperty(this, "client", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: void 0
54
+ });
55
+ Object.defineProperty(this, "error", {
56
+ enumerable: true,
57
+ configurable: true,
58
+ writable: true,
59
+ value: void 0
60
+ });
61
+ Object.defineProperty(this, "firstKeepalive", {
62
+ enumerable: true,
63
+ configurable: true,
64
+ writable: true,
65
+ value: true
66
+ });
67
+ Object.defineProperty(this, "status", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: STATUS.CONNECTING
72
+ });
73
+ Object.defineProperty(this, "messages", {
74
+ enumerable: true,
75
+ configurable: true,
76
+ writable: true,
77
+ value: {}
78
+ });
79
+ Object.defineProperty(this, "messageQueue", {
80
+ enumerable: true,
81
+ configurable: true,
82
+ writable: true,
83
+ value: {}
84
+ });
85
+ Object.defineProperty(this, "topicsSubscribed", {
86
+ enumerable: true,
87
+ configurable: true,
88
+ writable: true,
89
+ value: new Set()
90
+ });
91
+ Object.defineProperty(this, "portalId", {
92
+ enumerable: true,
93
+ configurable: true,
94
+ writable: true,
95
+ value: void 0
96
+ });
97
+ Object.defineProperty(this, "keepAliveHandlerRef", {
98
+ enumerable: true,
99
+ configurable: true,
100
+ writable: true,
101
+ value: void 0
102
+ });
103
+ Object.defineProperty(this, "queueWorker", {
104
+ enumerable: true,
105
+ configurable: true,
106
+ writable: true,
107
+ value: void 0
108
+ });
109
+ Object.defineProperty(this, "messageFromTopic", {
110
+ enumerable: true,
111
+ configurable: true,
112
+ writable: true,
113
+ value: computedFn(function (topic) {
114
+ return topic ? _this.messages[topic] : undefined;
115
+ })
116
+ });
117
+ Object.defineProperty(this, "messagesByTopics", {
118
+ enumerable: true,
119
+ configurable: true,
120
+ writable: true,
121
+ value: computedFn(function (topics) {
122
+ if (!topics) {
123
+ return {};
124
+ }
125
+ var result = {};
126
+ Object.entries(topics).forEach(function (_a) {
127
+ var label = _a[0], topic = _a[1];
128
+ if (Array.isArray(topic)) {
129
+ result[label] = topic.map(function (t) { return _this.messageFromTopic(t); });
130
+ }
131
+ else if (topic === undefined) {
132
+ result[label] = undefined;
133
+ }
134
+ else {
135
+ result[label] = _this.messageFromTopic(topic);
136
+ }
137
+ });
138
+ return result;
139
+ })
140
+ });
141
+ Object.defineProperty(this, "subscribeToTopic", {
142
+ enumerable: true,
143
+ configurable: true,
144
+ writable: true,
145
+ value: function (topic) {
146
+ var _a;
147
+ if (!topic)
148
+ return;
149
+ if (topic.includes("undefined"))
150
+ return;
151
+ if (!_this.topicsSubscribed.has(topic)) {
152
+ Logger.log("Subscribing to " + topic);
153
+ (_a = _this.client) === null || _a === void 0 ? void 0 : _a.subscribe(topic, function (err, granted) {
154
+ if (err) {
155
+ Logger.error(err);
156
+ return;
157
+ }
158
+ Logger.warn("Subscribed to " + (granted[0] ? granted[0].topic : topic) + " with QoS " + (granted[0] ? granted[0].qos : "unknown"));
159
+ });
160
+ _this.topicsSubscribed.add(topic);
161
+ _this.sendKeepalive();
162
+ }
163
+ }
164
+ });
165
+ Object.defineProperty(this, "unsubscribeFromTopic", {
166
+ enumerable: true,
167
+ configurable: true,
168
+ writable: true,
169
+ value: function (topic) {
170
+ var _a;
171
+ if (!topic)
172
+ return;
173
+ if (_this.topicsSubscribed.has(topic)) {
174
+ (_a = _this.client) === null || _a === void 0 ? void 0 : _a.unsubscribe(topic, function (err) {
175
+ if (err) {
176
+ Logger.error(err);
177
+ return;
178
+ }
179
+ Logger.log("Unsubscribed from " + topic);
180
+ });
181
+ _this.topicsSubscribed.delete(topic);
182
+ }
183
+ }
184
+ });
185
+ Object.defineProperty(this, "subscribeToTopics", {
186
+ enumerable: true,
187
+ configurable: true,
188
+ writable: true,
189
+ value: function (topics) {
190
+ topics && Object.values(topics).flat().map(function (value) { return _this.subscribeToTopic(value); });
191
+ }
192
+ });
193
+ Object.defineProperty(this, "unsubscribeFromTopics", {
194
+ enumerable: true,
195
+ configurable: true,
196
+ writable: true,
197
+ value: function (topics) {
198
+ _this.setFirstKeepalive(true);
199
+ topics && Object.values(topics).flat().map(function (value) { return _this.unsubscribeFromTopic(value); });
200
+ }
201
+ });
202
+ Object.defineProperty(this, "addMessage", {
203
+ enumerable: true,
204
+ configurable: true,
205
+ writable: true,
206
+ value: function (topic, message) { return __awaiter(_this, void 0, void 0, function () {
207
+ var _a;
208
+ return __generator(this, function (_b) {
209
+ this.messageQueue[topic] = (_a = message.value) !== null && _a !== void 0 ? _a : undefined;
210
+ return [2 /*return*/];
211
+ });
212
+ }); }
213
+ });
214
+ Object.defineProperty(this, "addMessagesFromQueue", {
215
+ enumerable: true,
216
+ configurable: true,
217
+ writable: true,
218
+ value: function () { return __awaiter(_this, void 0, void 0, function () {
219
+ return __generator(this, function (_a) {
220
+ if (Object.values(this.messageQueue).length > 0) {
221
+ assign(this.messages, this.messageQueue);
222
+ this.messageQueue = {};
223
+ }
224
+ return [2 /*return*/];
225
+ });
226
+ }); }
227
+ });
228
+ Object.defineProperty(this, "setupQueueWorker", {
229
+ enumerable: true,
230
+ configurable: true,
231
+ writable: true,
232
+ value: function () {
233
+ if (_this.queueWorker) {
234
+ _this.removeQueueWorker();
235
+ }
236
+ _this.queueWorker = setInterval(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
237
+ switch (_a.label) {
238
+ case 0: return [4 /*yield*/, this.addMessagesFromQueue()];
239
+ case 1: return [2 /*return*/, _a.sent()];
240
+ }
241
+ }); }); }, 1000);
242
+ }
243
+ });
244
+ Object.defineProperty(this, "removeQueueWorker", {
245
+ enumerable: true,
246
+ configurable: true,
247
+ writable: true,
248
+ value: function () {
249
+ if (_this.queueWorker) {
250
+ clearInterval(_this.queueWorker);
251
+ }
252
+ }
253
+ });
254
+ Object.defineProperty(this, "setPortalId", {
255
+ enumerable: true,
256
+ configurable: true,
257
+ writable: true,
258
+ value: function (portalId) {
259
+ _this.portalId = portalId;
260
+ }
261
+ });
262
+ Object.defineProperty(this, "boot", {
263
+ enumerable: true,
264
+ configurable: true,
265
+ writable: true,
266
+ value: function (host, port, remote, portalId) {
267
+ if (host === void 0) { host = "localhost"; }
268
+ if (remote === void 0) { remote = false; }
269
+ Logger.log("MQTT booting");
270
+ var client = _this.client;
271
+ if (client) {
272
+ client.end(true);
273
+ _this.client = undefined;
274
+ _this.portalId = undefined;
275
+ _this.topicsSubscribed = new Set();
276
+ }
277
+ if (remote) {
278
+ if (!host) {
279
+ return;
280
+ }
281
+ client = mqtt.connect("mqtts://" + host + ":443");
282
+ }
283
+ else {
284
+ client = mqtt.connect("mqtt://" + host + ":" + port);
285
+ }
286
+ _this.client = client;
287
+ _this.portalId = portalId;
288
+ client.on("error", function (error) {
289
+ Logger.log("MQTT error");
290
+ runInAction(function () { return _this.setError(error); });
291
+ runInAction(function () { return _this.setStatus(STATUS.DISCONNECTED); });
292
+ _this.removeQueueWorker();
293
+ });
294
+ client.on("offline", function () {
295
+ Logger.log("MQTT offline");
296
+ runInAction(function () { return _this.setError(true); });
297
+ runInAction(function () { return _this.setStatus(STATUS.OFFLINE); });
298
+ runInAction(function () { return _this.setFirstKeepalive(true); });
299
+ _this.removeQueueWorker();
300
+ });
301
+ client.on("connect", function () {
302
+ Logger.log("MQTT connected");
303
+ runInAction(function () { return _this.setFirstKeepalive(true); });
304
+ runInAction(function () { return _this.setError(null); });
305
+ runInAction(function () { return _this.setStatus(STATUS.CONNECTED); });
306
+ runInAction(function () { return _this.subscribeToTopic("N/" + (remote ? portalId : "+") + "/system/0/Serial"); }); // Never use wildcard when connecting remotely
307
+ _this.setupQueueWorker();
308
+ runInAction(function () { return _this.sendKeepalive(); });
309
+ runInAction(function () { return _this.setupKeepalive(); });
310
+ });
311
+ client.on("message", function (topic, message) { return __awaiter(_this, void 0, void 0, function () {
312
+ var portalId_1;
313
+ return __generator(this, function (_a) {
314
+ switch (_a.label) {
315
+ case 0:
316
+ Logger.log("Message received: " + topic + " - " + message.toString());
317
+ if (topic.endsWith("/system/0/Serial") && !this.portalId) {
318
+ portalId_1 = getMessageJson(message).value;
319
+ this.setPortalId(portalId_1);
320
+ }
321
+ if (!(message.toString() !== "")) return [3 /*break*/, 2];
322
+ return [4 /*yield*/, this.addMessage(topic, getMessageJson(message))];
323
+ case 1:
324
+ _a.sent();
325
+ return [3 /*break*/, 3];
326
+ case 2:
327
+ this.setFirstKeepalive(true);
328
+ _a.label = 3;
329
+ case 3: return [2 /*return*/];
330
+ }
331
+ });
332
+ }); });
333
+ Logger.log("MQTT booted");
334
+ }
335
+ });
336
+ Object.defineProperty(this, "sendKeepalive", {
337
+ enumerable: true,
338
+ configurable: true,
339
+ writable: true,
340
+ value: debounce(function (isInitial) {
341
+ var _a;
342
+ if (isInitial === void 0) { isInitial = false; }
343
+ if (_this.portalId) {
344
+ Logger.log("Sending keepalive for " + _this.portalId + " with " + (_this.firstKeepalive
345
+ ? ""
346
+ : JSON.stringify({ "keepalive-options": ["suppress-republish"] })));
347
+ (_a = _this.client) === null || _a === void 0 ? void 0 : _a.publish("R/" + _this.portalId + "/keepalive", _this.firstKeepalive
348
+ ? ""
349
+ : JSON.stringify({ "keepalive-options": ["suppress-republish"] }));
350
+ _this.setFirstKeepalive(false);
351
+ }
352
+ }, 1000)
353
+ });
354
+ Object.defineProperty(this, "setupKeepalive", {
355
+ enumerable: true,
356
+ configurable: true,
357
+ writable: true,
358
+ value: function () {
359
+ var ref = _this.keepAliveHandlerRef;
360
+ if (ref) {
361
+ clearInterval(ref);
362
+ }
363
+ _this.keepAliveHandlerRef = setInterval(_this.sendKeepalive, 30000);
364
+ }
365
+ });
366
+ Object.defineProperty(this, "publish", {
367
+ enumerable: true,
368
+ configurable: true,
369
+ writable: true,
370
+ value: function (topic, data, options) {
371
+ var _a;
372
+ if (_this.status !== STATUS.CONNECTED || !_this.client) {
373
+ Logger.warn("Could not publish value, not connected to MQTT broker");
374
+ }
375
+ var message = JSON.stringify({ value: data });
376
+ Logger.log("Publishing to " + topic + ": " + message);
377
+ (_a = _this.client) === null || _a === void 0 ? void 0 : _a.publish(topic, message, options !== null && options !== void 0 ? options : {});
378
+ }
379
+ });
380
+ Object.defineProperty(this, "messagesByWildcard", {
381
+ enumerable: true,
382
+ configurable: true,
383
+ writable: true,
384
+ value: computedFn(function (wildcard) {
385
+ if (wildcard === undefined || wildcard === "" || wildcard === null)
386
+ return {};
387
+ var topicRegex = new RegExp(wildcard.replace(/\+/g, "\\w*")); // + in mqtt is anything -> .*
388
+ return Object.fromEntries(Object.entries(_this.messages)
389
+ .filter(function (_a) {
390
+ var topic = _a[0];
391
+ return topic.match(topicRegex);
392
+ })
393
+ .map(function (_a) {
394
+ var topic = _a[0];
395
+ return [topic, _this.messages[topic]];
396
+ })
397
+ // Filter out empty results
398
+ .filter(function (_a) {
399
+ var _ = _a[0], message = _a[1];
400
+ return message !== undefined && message !== null
401
+ && (!Array.isArray(message) || (message.length !== 0 && !message.every(function (v) { return v === undefined || v === null; })));
402
+ }));
403
+ })
404
+ });
405
+ makeAutoObservable(this, {
406
+ messageQueue: false
407
+ });
408
+ }
409
+ Object.defineProperty(MqttStore.prototype, "isConnected", {
410
+ get: function () {
411
+ return this.status === STATUS.CONNECTED;
412
+ },
413
+ enumerable: false,
414
+ configurable: true
415
+ });
416
+ Object.defineProperty(MqttStore.prototype, "subscribedTopicsWithoutIdentifier", {
417
+ get: function () {
418
+ if (this.portalId === undefined) {
419
+ return [];
420
+ }
421
+ var portalId = this.portalId;
422
+ return Array.from(this.topicsSubscribed).map(function (topic) { return topic.indexOf(portalId) !== -1 ? topic.substring(topic.indexOf(portalId) + portalId.length + 1) : topic; });
423
+ },
424
+ enumerable: false,
425
+ configurable: true
426
+ });
427
+ Object.defineProperty(MqttStore.prototype, "setStatus", {
428
+ enumerable: false,
429
+ configurable: true,
430
+ writable: true,
431
+ value: function (status) {
432
+ this.status = status;
433
+ }
434
+ });
435
+ Object.defineProperty(MqttStore.prototype, "setError", {
436
+ enumerable: false,
437
+ configurable: true,
438
+ writable: true,
439
+ value: function (error) {
440
+ this.error = error;
441
+ }
442
+ });
443
+ Object.defineProperty(MqttStore.prototype, "setFirstKeepalive", {
444
+ enumerable: false,
445
+ configurable: true,
446
+ writable: true,
447
+ value: function (f) {
448
+ this.firstKeepalive = f;
449
+ }
450
+ });
451
+ return MqttStore;
452
+ }());
453
+ export { MqttStore };
454
+ function initializeStore() {
455
+ var _store = store !== null && store !== void 0 ? store : new MqttStore();
456
+ // For SSG and SSR always create a new store
457
+ if (typeof window === "undefined")
458
+ return _store;
459
+ // Create the store once in the client
460
+ if (!store)
461
+ store = _store;
462
+ return _store;
463
+ }
464
+ export function useMqtt() {
465
+ return useMemo(function () { return initializeStore(); }, []);
466
+ }
467
+ //# sourceMappingURL=Mqtt.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mqtt.store.js","sourceRoot":"","sources":["../../../../src/Modules/Mqtt/Mqtt.store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare type MqttMessage = string | any[] | undefined;
2
+ export declare type MqttMessages = {
3
+ [topic: string]: MqttMessage;
4
+ };
5
+ export declare type PortalId = string | null | undefined;
6
+ export declare type Topics = {
7
+ [key: string]: string | string[] | undefined;
8
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Mqtt.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mqtt.types.js","sourceRoot":"","sources":["../../../../src/Modules/Mqtt/Mqtt.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from "./Mqtt.types";
2
+ export * from "./Mqtt.constants";
3
+ export * from "./Mqtt.store";
4
+ export * from "./Mqtt.provider";
@@ -0,0 +1,5 @@
1
+ export * from "./Mqtt.types";
2
+ export * from "./Mqtt.constants";
3
+ export * from "./Mqtt.store";
4
+ export * from "./Mqtt.provider";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modules/Mqtt/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { Topics } from "../Mqtt";
2
+ export interface PvChargerState {
3
+ current: number;
4
+ power: number;
5
+ }
6
+ export interface PvChargerTopics extends Topics {
7
+ current?: string;
8
+ power?: string;
9
+ }
10
+ export declare function usePvCharger(): PvChargerState;
@@ -0,0 +1,14 @@
1
+ import { useMqtt, useTopicsState, useTopicSubscriptions } from "../Mqtt";
2
+ import { useMemo } from "react";
3
+ export function usePvCharger() {
4
+ var getTopics = function (portalId) { return ({
5
+ power: "N/" + portalId + "/system/0/Dc/Pv/Power",
6
+ current: "N/" + portalId + "/system/0/Dc/Pv/Current",
7
+ }); };
8
+ var portalId = useMqtt().portalId;
9
+ var topics = useMemo(function () { return getTopics(portalId); }, [portalId]);
10
+ useTopicSubscriptions(topics);
11
+ var _a = useTopicsState(topics), power = _a.power, current = _a.current;
12
+ return { power: power, current: current };
13
+ }
14
+ //# sourceMappingURL=PvCharger.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PvCharger.provider.js","sourceRoot":"","sources":["../../../../src/Modules/PvCharger/PvCharger.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC1F,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAY/B,MAAM,UAAU,YAAY;IAC1B,IAAM,SAAS,GAAG,UAAC,QAAkB,IAAK,OAAA,CAAC;QACzC,KAAK,EAAE,OAAK,QAAQ,0BAAuB;QAC3C,OAAO,EAAE,OAAK,QAAQ,4BAAyB;KAChD,CAAC,EAHwC,CAGxC,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,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACzB,IAAA,KAAqB,cAAc,CAAiB,MAAM,CAAC,EAAzD,KAAK,WAAA,EAAE,OAAO,aAA2C,CAAA;IAE/D,OAAO,EAAE,KAAK,OAAA,EAAE,OAAO,SAAA,EAAE,CAAA;AAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./PvCharger.provider";
@@ -0,0 +1,2 @@
1
+ export * from "./PvCharger.provider";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modules/PvCharger/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { ShorePowerInputState } from "./ShorePowerInput.store";
2
+ export declare function useShorePowerInput(): ShorePowerInputState;
@@ -0,0 +1,37 @@
1
+ import { useMemo } from "react";
2
+ import { useMqtt, useTopicSubscriptions } from "../Mqtt";
3
+ import { AC_SOURCE_TYPE } from "../../utils/constants";
4
+ import { useShorePowerInputStore } from "./ShorePowerInput.store";
5
+ import { reaction } from "mobx";
6
+ export function useShorePowerInput() {
7
+ var getTopics = function (portalId) {
8
+ return {
9
+ acInput1: "N/" + portalId + "/settings/0/Settings/SystemSetup/AcInput1",
10
+ acInput2: "N/" + portalId + "/settings/0/Settings/SystemSetup/AcInput2",
11
+ };
12
+ };
13
+ var mqtt = useMqtt();
14
+ var shorePowerInputStore = useShorePowerInputStore();
15
+ var topics = useMemo(function () { return getTopics(mqtt.portalId); }, [mqtt.portalId]);
16
+ useTopicSubscriptions(topics);
17
+ reaction(function () { return mqtt.messagesByTopics(topics); }, function (messages) {
18
+ var acInput1 = messages.acInput1, acInput2 = messages.acInput2;
19
+ var inputId = undefined;
20
+ // prioritize shore and grid inputs first
21
+ if (Number(acInput1) === AC_SOURCE_TYPE.SHORE || Number(acInput1) === AC_SOURCE_TYPE.GRID) {
22
+ inputId = 1;
23
+ }
24
+ else if (Number(acInput2) === AC_SOURCE_TYPE.SHORE || Number(acInput2) === AC_SOURCE_TYPE.GRID) {
25
+ inputId = 2;
26
+ }
27
+ else if (Number(acInput1) !== AC_SOURCE_TYPE.NOT_IN_USE) {
28
+ inputId = 1;
29
+ }
30
+ else if (Number(acInput2) !== AC_SOURCE_TYPE.NOT_IN_USE) {
31
+ inputId = 2;
32
+ }
33
+ shorePowerInputStore.setInputId(inputId);
34
+ }, { fireImmediately: true });
35
+ return { inputId: shorePowerInputStore.inputId };
36
+ }
37
+ //# sourceMappingURL=ShorePowerInput.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShorePowerInput.provider.js","sourceRoot":"","sources":["../../../../src/Modules/ShorePowerInput/ShorePowerInput.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAY,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAwB,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAE/B,MAAM,UAAU,kBAAkB;IAChC,IAAM,SAAS,GAAG,UAAC,QAAkB;QACnC,OAAO;YACL,QAAQ,EAAE,OAAK,QAAQ,8CAA2C;YAClE,QAAQ,EAAE,OAAK,QAAQ,8CAA2C;SACnE,CAAA;IACH,CAAC,CAAA;IACD,IAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,IAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAA;IAEtD,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAxB,CAAwB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACvE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAE7B,QAAQ,CAAC,cAAM,OAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAA7B,CAA6B,EAAE,UAAC,QAAQ;QAC7C,IAAA,QAAQ,GAAe,QAAQ,SAAvB,EAAE,QAAQ,GAAK,QAAQ,SAAb,CAAa;QAEvC,IAAI,OAAO,GAAG,SAAS,CAAA;QAEvB,yCAAyC;QACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,IAAI,EAAE;YACzF,OAAO,GAAG,CAAC,CAAA;SACZ;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,IAAI,EAAE;YAChG,OAAO,GAAG,CAAC,CAAA;SACZ;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,UAAU,EAAE;YACzD,OAAO,GAAG,CAAC,CAAC;SACb;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,UAAU,EAAE;YACzD,OAAO,GAAG,CAAC,CAAC;SACb;QAED,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;IAE7B,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,CAAA;AAClD,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare type ShorePowerInputId = number | null | undefined;
2
+ export interface ShorePowerInputState {
3
+ inputId: ShorePowerInputId;
4
+ }
5
+ export declare class ShorePowerInputStore {
6
+ inputId: ShorePowerInputId;
7
+ constructor();
8
+ setInputId: (inputId: ShorePowerInputId) => ShorePowerInputId;
9
+ }
10
+ export declare function useShorePowerInputStore(): ShorePowerInputStore;
@@ -0,0 +1,37 @@
1
+ import { makeAutoObservable } from "mobx";
2
+ import { useMemo } from "react";
3
+ var store;
4
+ var ShorePowerInputStore = /** @class */ (function () {
5
+ function ShorePowerInputStore() {
6
+ var _this = this;
7
+ Object.defineProperty(this, "inputId", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: void 0
12
+ });
13
+ Object.defineProperty(this, "setInputId", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: function (inputId) { return _this.inputId = inputId; }
18
+ });
19
+ makeAutoObservable(this);
20
+ }
21
+ return ShorePowerInputStore;
22
+ }());
23
+ export { ShorePowerInputStore };
24
+ function initializeStore() {
25
+ var _store = store !== null && store !== void 0 ? store : new ShorePowerInputStore();
26
+ // For SSG and SSR always create a new store
27
+ if (typeof window === "undefined")
28
+ return _store;
29
+ // Create the store once in the client
30
+ if (!store)
31
+ store = _store;
32
+ return _store;
33
+ }
34
+ export function useShorePowerInputStore() {
35
+ return useMemo(function () { return initializeStore(); }, []);
36
+ }
37
+ //# sourceMappingURL=ShorePowerInput.store.js.map