@victronenergy/mfd-modules 8.0.1 → 8.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/Modules/AcLoads/AcLoads.provider.d.ts +1 -0
- package/dist/src/Modules/AcLoads/AcLoads.provider.d.ts.map +1 -0
- package/dist/src/Modules/AcLoads/AcLoads.provider.js.map +1 -1
- package/dist/src/Modules/AcLoads/index.d.ts +1 -0
- package/dist/src/Modules/AcLoads/index.d.ts.map +1 -0
- package/dist/src/Modules/AcLoads/index.js.map +1 -1
- package/dist/src/Modules/AcMode/AcMode.provider.d.ts +1 -0
- package/dist/src/Modules/AcMode/AcMode.provider.d.ts.map +1 -0
- package/dist/src/Modules/AcMode/AcMode.provider.js.map +1 -1
- package/dist/src/Modules/AcMode/index.d.ts +1 -0
- package/dist/src/Modules/AcMode/index.d.ts.map +1 -0
- package/dist/src/Modules/AcMode/index.js.map +1 -1
- package/dist/src/Modules/ActiveSource/ActiveInValues.provider.d.ts +1 -0
- package/dist/src/Modules/ActiveSource/ActiveInValues.provider.d.ts.map +1 -0
- package/dist/src/Modules/ActiveSource/ActiveInValues.provider.js.map +1 -1
- package/dist/src/Modules/ActiveSource/ActiveSource.provider.d.ts +1 -0
- package/dist/src/Modules/ActiveSource/ActiveSource.provider.d.ts.map +1 -0
- package/dist/src/Modules/ActiveSource/ActiveSource.provider.js.map +1 -1
- package/dist/src/Modules/ActiveSource/index.d.ts +1 -0
- package/dist/src/Modules/ActiveSource/index.d.ts.map +1 -0
- package/dist/src/Modules/ActiveSource/index.js.map +1 -1
- package/dist/src/Modules/Alternators/Alternator.provider.d.ts +1 -0
- package/dist/src/Modules/Alternators/Alternator.provider.d.ts.map +1 -0
- package/dist/src/Modules/Alternators/Alternator.provider.js.map +1 -1
- package/dist/src/Modules/Alternators/Alternators.provider.d.ts +1 -0
- package/dist/src/Modules/Alternators/Alternators.provider.d.ts.map +1 -0
- package/dist/src/Modules/Alternators/Alternators.provider.js.map +1 -1
- package/dist/src/Modules/Alternators/Alternators.store.d.ts +1 -0
- package/dist/src/Modules/Alternators/Alternators.store.d.ts.map +1 -0
- package/dist/src/Modules/Alternators/Alternators.store.js.map +1 -1
- package/dist/src/Modules/Alternators/index.d.ts +1 -0
- package/dist/src/Modules/Alternators/index.d.ts.map +1 -0
- package/dist/src/Modules/Alternators/index.js.map +1 -1
- package/dist/src/Modules/App/App.provider.d.ts +1 -0
- package/dist/src/Modules/App/App.provider.d.ts.map +1 -0
- package/dist/src/Modules/App/App.provider.js.map +1 -1
- package/dist/src/Modules/App/App.store.d.ts +1 -0
- package/dist/src/Modules/App/App.store.d.ts.map +1 -0
- package/dist/src/Modules/App/App.store.js.map +1 -1
- package/dist/src/Modules/App/index.d.ts +1 -0
- package/dist/src/Modules/App/index.d.ts.map +1 -0
- package/dist/src/Modules/App/index.js.map +1 -1
- package/dist/src/Modules/Battery/Batteries.provider.d.ts +1 -0
- package/dist/src/Modules/Battery/Batteries.provider.d.ts.map +1 -0
- package/dist/src/Modules/Battery/Batteries.provider.js.map +1 -1
- package/dist/src/Modules/Battery/Batteries.store.d.ts +1 -0
- package/dist/src/Modules/Battery/Batteries.store.d.ts.map +1 -0
- package/dist/src/Modules/Battery/Batteries.store.js.map +1 -1
- package/dist/src/Modules/Battery/SystemBatteries.provider.d.ts +1 -0
- package/dist/src/Modules/Battery/SystemBatteries.provider.d.ts.map +1 -0
- package/dist/src/Modules/Battery/SystemBatteries.provider.js.map +1 -1
- package/dist/src/Modules/Battery/index.d.ts +1 -0
- package/dist/src/Modules/Battery/index.d.ts.map +1 -0
- package/dist/src/Modules/Battery/index.js.map +1 -1
- package/dist/src/Modules/Chargers/Charger.provider.d.ts +1 -0
- package/dist/src/Modules/Chargers/Charger.provider.d.ts.map +1 -0
- package/dist/src/Modules/Chargers/Charger.provider.js.map +1 -1
- package/dist/src/Modules/Chargers/Chargers.provider.d.ts +1 -0
- package/dist/src/Modules/Chargers/Chargers.provider.d.ts.map +1 -0
- package/dist/src/Modules/Chargers/Chargers.provider.js.map +1 -1
- package/dist/src/Modules/Chargers/Chargers.store.d.ts +1 -0
- package/dist/src/Modules/Chargers/Chargers.store.d.ts.map +1 -0
- package/dist/src/Modules/Chargers/Chargers.store.js.map +1 -1
- package/dist/src/Modules/Chargers/index.d.ts +1 -0
- package/dist/src/Modules/Chargers/index.d.ts.map +1 -0
- package/dist/src/Modules/Chargers/index.js.map +1 -1
- package/dist/src/Modules/DcLoads/DcLoads.provider.d.ts +1 -0
- package/dist/src/Modules/DcLoads/DcLoads.provider.d.ts.map +1 -0
- package/dist/src/Modules/DcLoads/DcLoads.provider.js.map +1 -1
- package/dist/src/Modules/DcLoads/index.d.ts +1 -0
- package/dist/src/Modules/DcLoads/index.d.ts.map +1 -0
- package/dist/src/Modules/DcLoads/index.js.map +1 -1
- package/dist/src/Modules/Generators/ConnectedGenset.provider.d.ts +3 -0
- package/dist/src/Modules/Generators/ConnectedGenset.provider.d.ts.map +1 -0
- package/dist/src/Modules/Generators/ConnectedGenset.provider.js +1 -0
- package/dist/src/Modules/Generators/ConnectedGenset.provider.js.map +1 -1
- package/dist/src/Modules/Generators/ConnectedGensets.provider.d.ts +1 -0
- package/dist/src/Modules/Generators/ConnectedGensets.provider.d.ts.map +1 -0
- package/dist/src/Modules/Generators/ConnectedGensets.provider.js.map +1 -1
- package/dist/src/Modules/Generators/ConnectedGensets.store.d.ts +1 -0
- package/dist/src/Modules/Generators/ConnectedGensets.store.d.ts.map +1 -0
- package/dist/src/Modules/Generators/ConnectedGensets.store.js.map +1 -1
- package/dist/src/Modules/Generators/GeneratorConnectedGenset.provider.d.ts +1 -0
- package/dist/src/Modules/Generators/GeneratorConnectedGenset.provider.d.ts.map +1 -0
- package/dist/src/Modules/Generators/GeneratorConnectedGenset.provider.js.map +1 -1
- package/dist/src/Modules/Generators/GeneratorRelay.provider.d.ts +1 -0
- package/dist/src/Modules/Generators/GeneratorRelay.provider.d.ts.map +1 -0
- package/dist/src/Modules/Generators/GeneratorRelay.provider.js.map +1 -1
- package/dist/src/Modules/Generators/index.d.ts +1 -0
- package/dist/src/Modules/Generators/index.d.ts.map +1 -0
- package/dist/src/Modules/Generators/index.js.map +1 -1
- package/dist/src/Modules/Header/Header.provider.d.ts +1 -0
- package/dist/src/Modules/Header/Header.provider.d.ts.map +1 -0
- package/dist/src/Modules/Header/Header.provider.js.map +1 -1
- package/dist/src/Modules/Header/index.d.ts +1 -0
- package/dist/src/Modules/Header/index.d.ts.map +1 -0
- package/dist/src/Modules/Header/index.js.map +1 -1
- package/dist/src/Modules/InverterCharger/InputLimit.provider.d.ts +1 -0
- package/dist/src/Modules/InverterCharger/InputLimit.provider.d.ts.map +1 -0
- package/dist/src/Modules/InverterCharger/InputLimit.provider.js.map +1 -1
- package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.d.ts +1 -0
- package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.d.ts.map +1 -0
- package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.js.map +1 -1
- package/dist/src/Modules/InverterCharger/InverterCharger.provider.d.ts +1 -0
- package/dist/src/Modules/InverterCharger/InverterCharger.provider.d.ts.map +1 -0
- package/dist/src/Modules/InverterCharger/InverterCharger.provider.js.map +1 -1
- package/dist/src/Modules/InverterCharger/index.d.ts +1 -0
- package/dist/src/Modules/InverterCharger/index.d.ts.map +1 -0
- package/dist/src/Modules/InverterCharger/index.js.map +1 -1
- package/dist/src/Modules/Inverters/Inverter.provider.d.ts +1 -0
- package/dist/src/Modules/Inverters/Inverter.provider.d.ts.map +1 -0
- package/dist/src/Modules/Inverters/Inverter.provider.js.map +1 -1
- package/dist/src/Modules/Inverters/Inverters.provider.d.ts +1 -0
- package/dist/src/Modules/Inverters/Inverters.provider.d.ts.map +1 -0
- package/dist/src/Modules/Inverters/Inverters.provider.js.map +1 -1
- package/dist/src/Modules/Inverters/Inverters.store.d.ts +1 -0
- package/dist/src/Modules/Inverters/Inverters.store.d.ts.map +1 -0
- package/dist/src/Modules/Inverters/Inverters.store.js.map +1 -1
- package/dist/src/Modules/Inverters/index.d.ts +1 -0
- package/dist/src/Modules/Inverters/index.d.ts.map +1 -0
- package/dist/src/Modules/Inverters/index.js.map +1 -1
- package/dist/src/Modules/Language/Language.provider.d.ts +1 -0
- package/dist/src/Modules/Language/Language.provider.d.ts.map +1 -0
- package/dist/src/Modules/Language/Language.provider.js.map +1 -1
- package/dist/src/Modules/Language/index.d.ts +1 -0
- package/dist/src/Modules/Language/index.d.ts.map +1 -0
- package/dist/src/Modules/Language/index.js.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.constants.d.ts +1 -0
- package/dist/src/Modules/Mqtt/Mqtt.constants.d.ts.map +1 -0
- package/dist/src/Modules/Mqtt/Mqtt.constants.js.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.provider.d.ts +1 -0
- package/dist/src/Modules/Mqtt/Mqtt.provider.d.ts.map +1 -0
- package/dist/src/Modules/Mqtt/Mqtt.provider.js.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.store.d.ts +1 -0
- package/dist/src/Modules/Mqtt/Mqtt.store.d.ts.map +1 -0
- package/dist/src/Modules/Mqtt/Mqtt.store.js.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.types.d.ts +1 -0
- package/dist/src/Modules/Mqtt/Mqtt.types.d.ts.map +1 -0
- package/dist/src/Modules/Mqtt/Mqtt.types.js.map +1 -1
- package/dist/src/Modules/Mqtt/index.d.ts +1 -0
- package/dist/src/Modules/Mqtt/index.d.ts.map +1 -0
- package/dist/src/Modules/Mqtt/index.js.map +1 -1
- package/dist/src/Modules/PvCharger/PvCharger.provider.d.ts +1 -0
- package/dist/src/Modules/PvCharger/PvCharger.provider.d.ts.map +1 -0
- package/dist/src/Modules/PvCharger/PvCharger.provider.js.map +1 -1
- package/dist/src/Modules/PvCharger/index.d.ts +1 -0
- package/dist/src/Modules/PvCharger/index.d.ts.map +1 -0
- package/dist/src/Modules/PvCharger/index.js.map +1 -1
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.d.ts +1 -0
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.d.ts.map +1 -0
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.js.map +1 -1
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.d.ts +1 -0
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.d.ts.map +1 -0
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.js.map +1 -1
- package/dist/src/Modules/ShorePowerInput/index.d.ts +1 -0
- package/dist/src/Modules/ShorePowerInput/index.d.ts.map +1 -0
- package/dist/src/Modules/ShorePowerInput/index.js.map +1 -1
- package/dist/src/Modules/SystemState/SystemState.provider.d.ts +1 -0
- package/dist/src/Modules/SystemState/SystemState.provider.d.ts.map +1 -0
- package/dist/src/Modules/SystemState/SystemState.provider.js.map +1 -1
- package/dist/src/Modules/SystemState/index.d.ts +1 -0
- package/dist/src/Modules/SystemState/index.d.ts.map +1 -0
- package/dist/src/Modules/SystemState/index.js.map +1 -1
- package/dist/src/Modules/Tanks/Tank.provider.d.ts +1 -0
- package/dist/src/Modules/Tanks/Tank.provider.d.ts.map +1 -0
- package/dist/src/Modules/Tanks/Tank.provider.js.map +1 -1
- package/dist/src/Modules/Tanks/Tanks.provider.d.ts +1 -0
- package/dist/src/Modules/Tanks/Tanks.provider.d.ts.map +1 -0
- package/dist/src/Modules/Tanks/Tanks.provider.js.map +1 -1
- package/dist/src/Modules/Tanks/Tanks.store.d.ts +1 -0
- package/dist/src/Modules/Tanks/Tanks.store.d.ts.map +1 -0
- package/dist/src/Modules/Tanks/Tanks.store.js.map +1 -1
- package/dist/src/Modules/Tanks/index.d.ts +1 -0
- package/dist/src/Modules/Tanks/index.d.ts.map +1 -0
- package/dist/src/Modules/Tanks/index.js.map +1 -1
- package/dist/src/Modules/Temperatures/Temperature.provider.d.ts +1 -0
- package/dist/src/Modules/Temperatures/Temperature.provider.d.ts.map +1 -0
- package/dist/src/Modules/Temperatures/Temperature.provider.js.map +1 -1
- package/dist/src/Modules/Temperatures/Temperatures.provider.d.ts +1 -0
- package/dist/src/Modules/Temperatures/Temperatures.provider.d.ts.map +1 -0
- package/dist/src/Modules/Temperatures/Temperatures.provider.js.map +1 -1
- package/dist/src/Modules/Temperatures/Temperatures.store.d.ts +1 -0
- package/dist/src/Modules/Temperatures/Temperatures.store.d.ts.map +1 -0
- package/dist/src/Modules/Temperatures/Temperatures.store.js.map +1 -1
- package/dist/src/Modules/Temperatures/index.d.ts +1 -0
- package/dist/src/Modules/Temperatures/index.d.ts.map +1 -0
- package/dist/src/Modules/Temperatures/index.js.map +1 -1
- package/dist/src/Modules/Theme/Theme.provider.d.ts +1 -0
- package/dist/src/Modules/Theme/Theme.provider.d.ts.map +1 -0
- package/dist/src/Modules/Theme/Theme.provider.js.map +1 -1
- package/dist/src/Modules/Theme/Theme.store.d.ts +1 -0
- package/dist/src/Modules/Theme/Theme.store.d.ts.map +1 -0
- package/dist/src/Modules/Theme/Theme.store.js.map +1 -1
- package/dist/src/Modules/Theme/index.d.ts +1 -0
- package/dist/src/Modules/Theme/index.d.ts.map +1 -0
- package/dist/src/Modules/Theme/index.js.map +1 -1
- package/dist/src/Modules/Vebus/Vebus.provider.d.ts +1 -0
- package/dist/src/Modules/Vebus/Vebus.provider.d.ts.map +1 -0
- package/dist/src/Modules/Vebus/Vebus.provider.js.map +1 -1
- package/dist/src/Modules/Vebus/Vebus.store.d.ts +1 -0
- package/dist/src/Modules/Vebus/Vebus.store.d.ts.map +1 -0
- package/dist/src/Modules/Vebus/Vebus.store.js.map +1 -1
- package/dist/src/Modules/Vebus/index.d.ts +1 -0
- package/dist/src/Modules/Vebus/index.d.ts.map +1 -0
- package/dist/src/Modules/Vebus/index.js.map +1 -1
- package/dist/src/Modules/Vrm/Vrm.store.d.ts +1 -0
- package/dist/src/Modules/Vrm/Vrm.store.d.ts.map +1 -0
- package/dist/src/Modules/Vrm/Vrm.store.js.map +1 -1
- package/dist/src/Modules/Vrm/Vrm.types.d.ts +1 -0
- package/dist/src/Modules/Vrm/Vrm.types.d.ts.map +1 -0
- package/dist/src/Modules/Vrm/Vrm.types.js.map +1 -1
- package/dist/src/Modules/Vrm/index.d.ts +1 -0
- package/dist/src/Modules/Vrm/index.d.ts.map +1 -0
- package/dist/src/Modules/Vrm/index.js.map +1 -1
- package/dist/src/Modules/WindGenerators/WindGenerator.provider.d.ts +1 -0
- package/dist/src/Modules/WindGenerators/WindGenerator.provider.d.ts.map +1 -0
- package/dist/src/Modules/WindGenerators/WindGenerator.provider.js.map +1 -1
- package/dist/src/Modules/WindGenerators/WindGenerators.provider.d.ts +1 -0
- package/dist/src/Modules/WindGenerators/WindGenerators.provider.d.ts.map +1 -0
- package/dist/src/Modules/WindGenerators/WindGenerators.provider.js.map +1 -1
- package/dist/src/Modules/WindGenerators/WindGenerators.store.d.ts +1 -0
- package/dist/src/Modules/WindGenerators/WindGenerators.store.d.ts.map +1 -0
- package/dist/src/Modules/WindGenerators/WindGenerators.store.js.map +1 -1
- package/dist/src/Modules/WindGenerators/index.d.ts +1 -0
- package/dist/src/Modules/WindGenerators/index.d.ts.map +1 -0
- package/dist/src/Modules/WindGenerators/index.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils/constants.d.ts +1 -0
- package/dist/src/utils/constants.d.ts.map +1 -0
- package/dist/src/utils/constants.js.map +1 -1
- package/dist/src/utils/logger.d.ts +1 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js.map +1 -1
- package/dist/src/utils/storage.d.ts +1 -0
- package/dist/src/utils/storage.d.ts.map +1 -0
- package/dist/src/utils/storage.js.map +1 -1
- package/dist/src/utils/util.d.ts +1 -0
- package/dist/src/utils/util.d.ts.map +1 -0
- package/dist/src/utils/util.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PvCharger.provider.d.ts","sourceRoot":"/","sources":["src/Modules/PvCharger/PvCharger.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AAGnE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,MAAM;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,YAAY,IAAI,cAAc,CAY7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PvCharger.provider.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"PvCharger.provider.js","sourceRoot":"/","sources":["src/Modules/PvCharger/PvCharger.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAY/B,MAAM,UAAU,YAAY;IAC1B,IAAM,SAAS,GAAG,UAAC,QAAkB,IAAK,OAAA,CAAC;QACzC,KAAK,EAAE,YAAK,QAAQ,0BAAuB;QAC3C,OAAO,EAAE,YAAK,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;IAEzD,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","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport interface PvChargerState {\n current: number\n power: number\n}\n\nexport interface PvChargerTopics extends Topics {\n current?: string\n power?: string\n}\n\nexport function usePvCharger(): PvChargerState {\n const getTopics = (portalId: PortalId) => ({\n power: `N/${portalId}/system/0/Dc/Pv/Power`,\n current: `N/${portalId}/system/0/Dc/Pv/Current`,\n })\n\n const { portalId } = useMqtt()\n const topics = useMemo(() => getTopics(portalId), [portalId])\n\n let { power, current } = useTopicsState<PvChargerState>(topics)\n\n return { power, current }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["src/Modules/PvCharger/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/Modules/PvCharger/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA","sourcesContent":["export * from \"./PvCharger.provider\"\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShorePowerInput.provider.d.ts","sourceRoot":"/","sources":["src/Modules/ShorePowerInput/ShorePowerInput.provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAA2B,MAAM,yBAAyB,CAAA;AAGvF,wBAAgB,kBAAkB,IAAI,oBAAoB,CAmCzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShorePowerInput.provider.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"ShorePowerInput.provider.js","sourceRoot":"/","sources":["src/Modules/ShorePowerInput/ShorePowerInput.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAY,OAAO,EAAE,MAAM,SAAS,CAAA;AAC3C,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,YAAK,QAAQ,8CAA2C;YAClE,QAAQ,EAAE,YAAK,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;IAEvE,SAAS,CAAC;QACR,IAAM,OAAO,GAAG,QAAQ,CAAC,cAAM,OAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAA7B,CAA6B,EAAE,UAAC,QAAQ;YAC7D,IAAA,QAAQ,GAAe,QAAQ,SAAvB,EAAE,QAAQ,GAAK,QAAQ,SAAb,CAAa;YAEvC,IAAI,OAAO,GAAG,SAAS,CAAA;YAEvB,yCAAyC;YACzC,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;gBACtG,OAAO,GAAG,CAAC,CAAA;YACb,CAAC;iBAAM,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/G,OAAO,GAAG,CAAC,CAAA;YACb,CAAC;iBAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;gBACtE,OAAO,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;gBACtE,OAAO,GAAG,CAAC,CAAC;YACd,CAAC;YAED,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7B,OAAO,cAAM,OAAA,OAAO,EAAE,EAAT,CAAS,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,CAAA;AAClD,CAAC","sourcesContent":["import { useEffect, useMemo } from \"react\"\nimport { PortalId, useMqtt } from \"../Mqtt\"\nimport { AC_SOURCE_TYPE } from \"../../utils/constants\"\nimport { ShorePowerInputState, useShorePowerInputStore } from \"./ShorePowerInput.store\"\nimport { reaction } from \"mobx\"\n\nexport function useShorePowerInput(): ShorePowerInputState {\n const getTopics = (portalId: PortalId) => {\n return {\n acInput1: `N/${portalId}/settings/0/Settings/SystemSetup/AcInput1`,\n acInput2: `N/${portalId}/settings/0/Settings/SystemSetup/AcInput2`,\n }\n }\n const mqtt = useMqtt()\n const shorePowerInputStore = useShorePowerInputStore()\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n useEffect(() => {\n const dispose = reaction(() => mqtt.messagesByTopics(topics), (messages) => {\n const { acInput1, acInput2 } = messages\n\n let inputId = undefined\n\n // prioritize shore and grid inputs first\n if (acInput1 && Number(acInput1) === AC_SOURCE_TYPE.SHORE || Number(acInput1) === AC_SOURCE_TYPE.GRID) {\n inputId = 1\n } else if (acInput2 && (Number(acInput2) === AC_SOURCE_TYPE.SHORE || Number(acInput2) === AC_SOURCE_TYPE.GRID)) {\n inputId = 2\n } else if (acInput1 && Number(acInput1) !== AC_SOURCE_TYPE.NOT_IN_USE) {\n inputId = 1;\n } else if (acInput2 && Number(acInput2) !== AC_SOURCE_TYPE.NOT_IN_USE) {\n inputId = 2;\n }\n\n shorePowerInputStore.setInputId(inputId)\n }, { fireImmediately: true })\n return () => dispose()\n })\n\n return { inputId: shorePowerInputStore.inputId }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShorePowerInput.store.d.ts","sourceRoot":"/","sources":["src/Modules/ShorePowerInput/ShorePowerInput.store.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEzD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,iBAAiB,CAAA;CAC3B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,EAAE,iBAAiB,CAAA;;IAM1B,UAAU,YAAa,iBAAiB,uBAA2B;CACpE;AAYD,wBAAgB,uBAAuB,yBAEtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShorePowerInput.store.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"ShorePowerInput.store.js","sourceRoot":"/","sources":["src/Modules/ShorePowerInput/ShorePowerInput.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,IAAI,KAA2B,CAAA;AAQ/B;IAGE;QAAA,iBAEC;QAJD;;;;;WAA0B;QAM1B;;;;mBAAa,UAAC,OAA0B,IAAK,OAAA,KAAI,CAAC,OAAO,GAAG,OAAO,EAAtB,CAAsB;WAAA;QAHjE,kBAAkB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;IAClD,CAAC;IAGH,2BAAC;AAAD,CAAC,AARD,IAQC;;AAED,SAAS,eAAe;IACtB,IAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,oBAAoB,EAAE,CAAA;IAClD,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,uBAAuB;IACrC,OAAO,OAAO,CAAC,cAAM,OAAA,eAAe,EAAE,EAAjB,CAAiB,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { action, makeAutoObservable } from \"mobx\"\nimport { useMemo } from \"react\"\n\nlet store: ShorePowerInputStore\n\nexport type ShorePowerInputId = number | null | undefined\n\nexport interface ShorePowerInputState {\n inputId: ShorePowerInputId\n}\n\nexport class ShorePowerInputStore {\n inputId: ShorePowerInputId\n\n constructor() {\n makeAutoObservable(this, { setInputId: action })\n }\n\n setInputId = (inputId: ShorePowerInputId) => this.inputId = inputId\n}\n\nfunction initializeStore() {\n const _store = store ?? new ShorePowerInputStore()\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 useShorePowerInputStore() {\n return useMemo(() => initializeStore(), [])\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["src/Modules/ShorePowerInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/Modules/ShorePowerInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA","sourcesContent":["export * from \"./ShorePowerInput.store\"\nexport * from \"./ShorePowerInput.provider\"\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SystemState.provider.d.ts","sourceRoot":"/","sources":["src/Modules/SystemState/SystemState.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AAGnE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAkB,SAAQ,MAAM;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,cAAc,IAAI,gBAAgB,CASjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemState.provider.js","sourceRoot":"","sources":["
|
|
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,KAAK,EAAE,YAAK,QAAQ,gCAA6B;KAClD,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 state: number\n}\n\nexport interface SystemStateTopics extends Topics {\n state?: string\n}\n\nexport function useSystemState(): SystemStateState {\n const getTopics = (portalId: PortalId) => ({\n state: `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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["src/Modules/SystemState/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/Modules/SystemState/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA","sourcesContent":["export * from \"./SystemState.provider\"\n"]}
|
|
@@ -0,0 +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,aAAc,QAAQ,UAAU,cAAc;;;;;;;;CAQ3E,CAAA;AAEF,wBAAgB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAMzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tank.provider.js","sourceRoot":"","sources":["
|
|
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"]}
|
|
@@ -0,0 +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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tanks.provider.js","sourceRoot":"","sources":["
|
|
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"]}
|
|
@@ -0,0 +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,UAAW,SAAS,EAAE,iBAAuB;CACtD;AAYD,wBAAgB,aAAa,eAE5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tanks.store.js","sourceRoot":"","sources":["
|
|
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}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["src/Modules/Tanks/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/Modules/Tanks/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA","sourcesContent":["export * from \"./Tank.provider\"\nexport * from \"./Tanks.store\"\nexport * from \"./Tanks.provider\"\n"]}
|
|
@@ -26,3 +26,4 @@ export declare const getTemperatureStateTopics: (portalId: PortalId, temperature
|
|
|
26
26
|
export declare function useTemperature(temperatureId: TemperatureInstanceId): TemperatureState;
|
|
27
27
|
export declare function useHumidity(temperatureId: TemperatureInstanceId): TemperatureState;
|
|
28
28
|
export declare function usePressure(temperatureId: TemperatureInstanceId): TemperatureState;
|
|
29
|
+
//# sourceMappingURL=Temperature.provider.d.ts.map
|
|
@@ -0,0 +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,aAAc,QAAQ,iBAAiB,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Temperature.provider.js","sourceRoot":"","sources":["
|
|
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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Temperatures.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperatures.provider.ts"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,qDAkC9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Temperatures.provider.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"Temperatures.provider.js","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperatures.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAY,OAAO,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAA2C,MAAM,wBAAwB,CAAC;AAC5G,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,UAAU,eAAe;IAC7B,IAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IACjD,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,IAAM,SAAS,GAAG,UAAC,QAAkB,IAAK,OAAA,CAAC;QACzC,oBAAoB,EAAE,YAAK,QAAQ,kCAA+B;KACnE,CAAC,EAFwC,CAExC,CAAC;IAEH,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAxB,CAAwB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExE,IAAM,YAAY,GAAG,iBAAiB,CAAC,YAAY,CAAC;IAEpD,IAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEtE,SAAS,CAAC;QACR,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,6CAA6C;QAC/C,CAAC;aAAM,CAAC;YACN,IAAM,iBAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAA4B,CAAC;YAC3E,IAAM,SAAO,GAAG,OAAO,CAAC;gBACtB,IAAM,eAAe,GAAG,iBAAiB,CAAC,YAAY,CAAA;gBACtD,IAAM,eAAe,GAAG,iBAAe,CAAC,GAAG,CAAC,UAAC,qBAAqB,IAAK,OAAA,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,EAAtF,CAAsF,CAAkC,CAAA;gBAC/L,iEAAiE;gBACjE,uDAAuD;gBACvD,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAC,EAAE,IAAK,OAAA,iBAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAArC,CAAqC,CAAC,EAAE,CAAC;oBAClJ,MAAM,CAAC,GAAG,CAAC,sCAA+B,IAAI,CAAC,SAAS,CAAC,iBAAe,CAAC,CAAE,CAAC,CAAC;oBAC7E,iBAAiB,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;gBACrD,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,OAAO,iBAAiB,CAAA;AAC1B,CAAC","sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { PortalId, useMqtt } from \"../Mqtt\";\nimport { useTemperaturesStore } from \"./Temperatures.store\";\nimport Logger from \"../../utils/logger\";\nimport { getTemperatureStateTopics, TemperatureInstanceId, TemperatureState } from \"./Temperature.provider\";\nimport { autorun } from \"mobx\";\n\nexport function useTemperatures() {\n const temperaturesStore = useTemperaturesStore();\n const mqtt = useMqtt();\n\n const getTopics = (portalId: PortalId) => ({\n temperatureInstances: `N/${portalId}/temperature/+/DeviceInstance`,\n });\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);\n\n const temperatures = temperaturesStore.temperatures;\n\n const messages = mqtt.messagesByWildcard(topics.temperatureInstances);\n\n useEffect(() => {\n if (!messages || Object.entries(messages).length === 0) {\n // Logger.log(\"Waiting for temperatures...\");\n } else {\n const deviceInstances = Object.values(messages) as TemperatureInstanceId[];\n const dispose = autorun(() => {\n const oldTemperatures = temperaturesStore.temperatures\n const newTemperatures = deviceInstances.map((temperatureInstanceId) => mqtt.messagesByTopics(getTemperatureStateTopics(mqtt.portalId, temperatureInstanceId))) as unknown as TemperatureState[]\n // TODO: check unordered structural identify of old and new state\n // TODO: to avoid unnecessary re-rendering: O(n^2 baby)\n if (!oldTemperatures || oldTemperatures.length != newTemperatures.length || !oldTemperatures.every((id) => deviceInstances.includes(id.instance))) {\n Logger.log(`New temperatures instances: ${JSON.stringify(deviceInstances)}`);\n temperaturesStore.setTemperatures(newTemperatures);\n }\n })\n return () => dispose()\n }\n }, [messages])\n\n return temperaturesStore\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Temperatures.store.d.ts","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperatures.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAIzD,qBAAa,iBAAiB;IAC5B,YAAY,EAAE,gBAAgB,EAAE,CAAK;;IAMrC,eAAe,iBAAkB,gBAAgB,EAAE,wBAAqC;CACzF;AAYD,wBAAgB,oBAAoB,sBAEnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Temperatures.store.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"Temperatures.store.js","sourceRoot":"/","sources":["src/Modules/Temperatures/Temperatures.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,KAAwB,CAAA;AAE5B;IAGE;QAAA,iBAEC;QAJD;;;;mBAAmC,EAAE;WAAA;QAMrC;;;;mBAAkB,UAAC,YAAgC,IAAK,OAAA,KAAI,CAAC,YAAY,GAAG,YAAY,EAAhC,CAAgC;WAAA;QAHtF,kBAAkB,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAA;IACvD,CAAC;IAGH,wBAAC;AAAD,CAAC,AARD,IAQC;;AAED,SAAS,eAAe;IACtB,IAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,iBAAiB,EAAE,CAAA;IAC/C,4CAA4C;IAC5C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAA;IAChD,sCAAsC;IACtC,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,MAAM,CAAA;IAE1B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,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 { TemperatureState } from \"./Temperature.provider\"\n\nlet store: TemperaturesStore\n\nexport class TemperaturesStore {\n temperatures: TemperatureState[] = []\n\n constructor() {\n makeAutoObservable(this, { setTemperatures: action })\n }\n\n setTemperatures = (temperatures: TemperatureState[]) => this.temperatures = temperatures\n}\n\nfunction initializeStore() {\n const _store = store ?? new TemperaturesStore()\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 useTemperaturesStore() {\n return useMemo(() => initializeStore(), [])\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["src/Modules/Temperatures/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/Modules/Temperatures/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA","sourcesContent":["export * from './Temperatures.provider'\nexport * from './Temperature.provider'\nexport * from './Temperatures.store'"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Theme.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Theme/Theme.provider.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;CAKpB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Theme.provider.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"Theme.provider.js","sourceRoot":"/","sources":["src/Modules/Theme/Theme.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,CAAC,IAAM,QAAQ,GAAG;IACtB,IAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,IAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAEpC,OAAO,EAAE,QAAQ,UAAA,EAAE,UAAU,YAAA,EAAE,CAAA;AACjC,CAAC,CAAA","sourcesContent":["import { useThemeStore } from \"./Theme.store\"\n\nexport const useTheme = () => {\n const themeStore = useThemeStore()\n const darkMode = themeStore.darkMode\n\n return { darkMode, themeStore }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Theme.store.d.ts","sourceRoot":"/","sources":["src/Modules/Theme/Theme.store.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,UAAU;IACrB,QAAQ,EAAE,OAAO,CAAO;;IAWxB,WAAW,aAAc,OAAO,aAA6B;CAC9D;AAYD,wBAAgB,aAAa,eAE5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Theme.store.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"Theme.store.js","sourceRoot":"/","sources":["src/Modules/Theme/Theme.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,IAAI,KAAiB,CAAA;AAMrB;IAGE;QAAA,iBAOC;QATD;;;;mBAAoB,IAAI;WAAA;QAWxB;;;;mBAAc,UAAC,QAAiB,IAAK,OAAA,KAAI,CAAC,QAAQ,GAAG,QAAQ,EAAxB,CAAwB;WAAA;QAR3D,kBAAkB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QACjD,eAAe,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,CAAC,UAAU,CAAC;YACxB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;IACJ,CAAC;IAGH,iBAAC;AAAD,CAAC,AAbD,IAaC;;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 } from \"mobx\"\nimport { makePersistable } from \"mobx-persist-store\"\nimport { useMemo } from \"react\"\nimport { Storage } from \"../../utils/storage\"\n\nlet store: ThemeStore\n\nexport interface ThemeState {\n darkMode: boolean\n}\n\nexport class ThemeStore {\n darkMode: boolean = true\n\n constructor() {\n makeAutoObservable(this, { setDarkMode: action })\n makePersistable(this, {\n name: \"ThemeStore\",\n properties: [\"darkMode\"],\n storage: Storage,\n })\n }\n\n setDarkMode = (darkMode: boolean) => this.darkMode = darkMode\n}\n\nfunction initializeStore() {\n const _store = store ?? new ThemeStore()\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 useThemeStore() {\n return useMemo(() => initializeStore(), [])\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["src/Modules/Theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/Modules/Theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA","sourcesContent":["export * from \"./Theme.provider\"\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vebus.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Vebus/Vebus.provider.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,UAAU,EACX,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,QAAQ,QAAO,UAuE3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vebus.provider.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"Vebus.provider.js","sourceRoot":"/","sources":["src/Modules/Vebus/Vebus.provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { runInAction, toJS, when } from \"mobx\";\nimport { isEqual } from \"lodash-es\";\nimport Logger from \"../../utils/logger\";\nimport {\n PortalId,\n useMqtt,\n useTopicsState\n} from \"../Mqtt\";\nimport {\n PossibleInvertersPathsType,\n useVebusStore,\n VebusState,\n} from \"./Vebus.store\";\n\nexport const useVebus = (): VebusState => {\n const mqtt = useMqtt();\n const vebusStore = useVebusStore();\n const portalId = mqtt.portalId;\n\n const getTopics = (portalId: PortalId) => ({\n deviceInstances: `N/${portalId}/vebus/+/DeviceInstance`,\n });\n\n const topics = useMemo(() => getTopics(portalId), [portalId]);\n const messages = mqtt.messagesByWildcard(topics.deviceInstances);\n\n // Checks for old inverter paths, if not equal, set new path.\n useEffect(() => {\n const deviceInstances = Object.values(messages);\n const possibleInvertersPaths = deviceInstances.reduce(\n (acc: { [key: string]: string }, id) => {\n acc[id as string] = `N/${portalId}/vebus/${id}/Ac/NumberOfAcInputs`;\n return acc;\n },\n {}\n );\n\n const oldInvertersPaths = toJS(vebusStore.possibleInvertersPaths);\n\n if (!isEqual(possibleInvertersPaths, oldInvertersPaths)) {\n Logger.log(\"Saving vebus inverters paths\");\n vebusStore.setPossibleInvertersPaths(possibleInvertersPaths)\n }\n }, [messages])\n\n const subsMessages = useTopicsState<PossibleInvertersPathsType>(\n vebusStore.possibleInvertersPaths\n );\n\n // set vebus instanceId (system with multiple inputs)\n useEffect(() => {\n // Logger.log(\"Setting vebus device instance\");\n // Sometimes \"ghost\" instances of devices linger in MQTT, so we need to select the highest (i.e. latest) instance ID\n const multiInstances = Object.entries(subsMessages)\n // Take only \"Multi\" devices -> must have more than one AcInput\n .filter(([_, nAcInputs]) => nAcInputs && parseInt(nAcInputs) !== 0)\n .map((instance) => parseInt(instance[0]))\n .sort((a, b) => b - a);\n\n const newInstanceId =\n multiInstances && multiInstances.length && multiInstances[0];\n\n if (newInstanceId && newInstanceId !== vebusStore.instanceId) {\n Logger.log(`New VE.Bus instance ID: ${newInstanceId}`);\n vebusStore.setInstanceId(newInstanceId);\n }\n }, [subsMessages]);\n\n // set vebus inverters\n useEffect(() => {\n // Logger.log(\"Setting vebus device inverters\");\n\n const vebusInverters = Object.entries(subsMessages)\n .filter(([_, nAcInputs]) => parseInt(nAcInputs) === 0)\n .map(([instance]) => parseInt(instance));\n\n const oldInverters = toJS(vebusStore.vebusInverters);\n\n if (!isEqual(vebusInverters, oldInverters)) {\n Logger.log(`New VE.Bus device inverters: ${JSON.stringify(vebusInverters)}`);\n vebusStore.setVebusInverters(vebusInverters);\n }\n }, [subsMessages]);\n\n return vebusStore;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vebus.store.d.ts","sourceRoot":"/","sources":["src/Modules/Vebus/Vebus.store.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAClD,MAAM,MAAM,0BAA0B,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,CAAA;AACjE,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;AAC1C,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,qBAAa,UAAU;IACrB,UAAU,EAAE,UAAU,CAAA;IACtB,sBAAsB,EAAE,0BAA0B,CAAA;IAClD,cAAc,EAAE,cAAc,CAAA;;IAY9B,yBAAyB,2BAA4B,0BAA0B,gCAA0D;IAEzI,iBAAiB,mBAAoB,cAAc,oBAA0C;IAE7F,aAAa,eAAgB,UAAU,gBAAiC;CACzE;AAYD,wBAAgB,aAAa,eAE5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vebus.store.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"Vebus.store.js","sourceRoot":"/","sources":["src/Modules/Vebus/Vebus.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAe,MAAM,MAAM,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,IAAI,KAAiB,CAAA;AAUrB;IAKE;QAAA,iBAQC;QAZD;;;;;WAAsB;QACtB;;;;;WAAkD;QAClD;;;;;WAA8B;QAY9B;;;;mBAA4B,UAAC,sBAAkD,IAAK,OAAA,KAAI,CAAC,sBAAsB,GAAG,sBAAsB,EAApD,CAAoD;WAAC;QAEzI;;;;mBAAoB,UAAC,cAA8B,IAAK,OAAA,KAAI,CAAC,cAAc,GAAG,cAAc,EAApC,CAAoC;WAAC;QAE7F;;;;mBAAgB,UAAC,UAAsB,IAAK,OAAA,KAAI,CAAC,UAAU,GAAG,UAAU,EAA5B,CAA4B;WAAA;QAbtE,kBAAkB,CAAC,IAAI,EAAE;YACvB,yBAAyB,EAAE,MAAM;YACjC,iBAAiB,EAAE,MAAM;YACzB,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAA;QAChC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;IAC1B,CAAC;IAOH,iBAAC;AAAD,CAAC,AApBD,IAoBC;;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\"\n\nlet store: VebusStore\n\nexport type InstanceId = number | null | undefined\nexport type PossibleInvertersPathsType = { [key: string]: string}\nexport type VebusInverters = Array<number>\nexport interface VebusState {\n instanceId: InstanceId\n vebusInverters: VebusInverters\n}\n\nexport class VebusStore {\n instanceId: InstanceId\n possibleInvertersPaths: PossibleInvertersPathsType\n vebusInverters: VebusInverters\n\n constructor() {\n makeAutoObservable(this, {\n setPossibleInvertersPaths: action,\n setVebusInverters: action,\n setInstanceId: action\n })\n this.possibleInvertersPaths = {}\n this.vebusInverters = []\n }\n\n setPossibleInvertersPaths = (possibleInvertersPaths: PossibleInvertersPathsType) => this.possibleInvertersPaths = possibleInvertersPaths;\n\n setVebusInverters = (vebusInverters: VebusInverters) => this.vebusInverters = vebusInverters;\n\n setInstanceId = (instanceId: InstanceId) => this.instanceId = instanceId\n}\n\nfunction initializeStore() {\n const _store = store ?? new VebusStore()\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 useVebusStore() {\n return useMemo(() => initializeStore(), [])\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["src/Modules/Vebus/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/Modules/Vebus/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA","sourcesContent":["export * from \"./Vebus.provider\"\nexport * from \"./Vebus.store\"\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vrm.store.d.ts","sourceRoot":"/","sources":["src/Modules/Vrm/Vrm.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyB,aAAa,EAAE,MAAM,aAAa,CAAA;AAIhF,OAAO,EAAE,QAAQ,EAAe,MAAM,QAAQ,CAAA;AAM9C,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,WAAW,EAAE,MAAM,GAAG,YAAY,CAAA;CACnC;AAED,qBAAa,QAAQ;IACnB,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,YAAY,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;gBAEvD,QAAQ,EAAE,QAAQ;IAY9B,IAAI,QAAQ,uBAEX;IAED,KAAK,aAAoB,MAAM,YAAY,MAAM,4CAAyC,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC,CA8BxH;IAED,MAAM,aAcL;IAED,qBAAqB,QAAa,OAAO,CAAC,IAAI,CAAC,CAoC9C;IAED,qBAAqB,WAAY,MAAM,UAiBtC;CAEF;AAYD,wBAAgB,WAAW,aAG1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vrm.store.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"Vrm.store.js","sourceRoot":"/","sources":["src/Modules/Vrm/Vrm.store.ts"],"names":[],"mappings":"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","sourcesContent":["import { Installation, InstallationsResponse, LoginResponse } from \"./Vrm.types\"\nimport { makeAutoObservable, runInAction } from \"mobx\"\nimport { useMemo } from \"react\"\nimport axios, { AxiosError } from \"axios\"\nimport { AppStore, useAppStore } from \"../App\"\nimport { makePersistable } from \"mobx-persist-store\"\nimport { Storage } from \"../../utils/storage\"\n\nlet store: VrmStore\n\nexport interface VrmState {\n userId?: number\n sentVerification?: boolean\n verificationMode?: string\n username?: string\n token?: string\n mqttHost?: string\n portalId?: string\n siteId?: number\n webhost?: string\n installations?: Installation[]\n environment: \"live\" | \"acceptance\"\n}\n\nexport class VrmStore {\n appStore: AppStore\n userId?: number\n username?: string\n token?: string\n mqttHost?: string\n portalId?: string\n siteId?: number\n webhost?: string\n sentVerification?: boolean\n verificationMode?: string\n installations?: Installation[]\n siteName?: string\n environment: \"live\" | \"acceptance\" = \"live\"\n private readonly apiBaseUrl = \"https://vrmapi.victronenergy.com/v2\"\n\n constructor(appStore: AppStore) {\n this.appStore = appStore\n makeAutoObservable(this, { appStore: false })\n makePersistable(this, {\n name: \"VrmStore\",\n properties: [\"userId\", \"username\", \"token\", \"mqttHost\", \"portalId\", \"siteId\", \"siteName\", \"webhost\"],\n storage: Storage,\n expireIn: 1000 * 60 * 60 * 24 * 90, // 90 days (ms)\n removeOnExpiration: true,\n }).then()\n }\n\n get loggedIn() {\n return this.username && this.token && this.webhost && this.portalId\n }\n\n login = async (username: string, password: string, rememberMe = true, verificationToken?: string): Promise<LoginResponse> => {\n try {\n const response = await axios.post(`${this.apiBaseUrl}/auth/login`, {\n username,\n password,\n remember_me: rememberMe,\n sms_token: verificationToken\n })\n\n const data: LoginResponse = response.data\n\n runInAction(() => {\n this.token = data.token\n this.userId = data.idUser\n this.username = username\n this.sentVerification = data.verification_sent\n this.verificationMode = data.verification_mode\n })\n\n return data\n } catch (e) {\n runInAction(() => {\n this.sentVerification = undefined\n this.verificationMode = undefined\n })\n\n const response = (e as AxiosError)?.response\n\n throw new Error(`Login failed with status code: ${response?.status} (${response?.statusText})`)\n }\n }\n\n logout = () => {\n this.appStore.setRemote(false)\n\n this.userId = undefined\n this.username = undefined\n this.token = undefined\n this.mqttHost = undefined\n this.portalId = undefined\n this.siteId = undefined\n this.siteName = undefined\n this.webhost = undefined\n this.installations = undefined\n this.sentVerification = undefined\n this.verificationMode = undefined\n }\n\n updateInstanceDetails = async (): Promise<void> => {\n const userId = this.userId\n const token = this.token\n\n if (!userId || !token) {\n throw new Error(\"Not logged in\")\n }\n\n const response = await axios.get(`${this.apiBaseUrl}/users/${userId}/installations?extended=1`, {\n headers: {\n \"x-authorization\": `Bearer ${token}`,\n },\n })\n\n if (response.status !== 200) {\n throw new Error(response.data)\n }\n\n const data: InstallationsResponse = response.data\n\n if (data.records.length === 0) {\n throw new Error(\"This account has no installations!\")\n }\n\n runInAction(() => {\n this.installations = data.records.map((v) => ({\n idSite: v.idSite,\n identifier: v.identifier,\n mqtt_webhost: v.mqtt_webhost,\n name: v.name,\n }))\n })\n\n if (data.records.length === 1) {\n runInAction(() => this.setActiveInstallation(data.records[0].idSite))\n }\n }\n\n setActiveInstallation = (siteId: number) => {\n const installations = this.installations\n\n if (!installations) {\n throw new Error(\"No installations, try logging in again!\")\n }\n\n const site = installations.find((v) => v.idSite === siteId)\n\n if (!site) {\n throw new Error(\"Incorrect data - site with specified ID not found!\")\n }\n\n this.siteName = site.name\n this.portalId = site.identifier\n this.webhost = site.mqtt_webhost\n this.siteId = siteId\n }\n\n}\n\nfunction initializeStore(appStore: AppStore) {\n const _store = store ?? new VrmStore(appStore)\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 useVrmStore() {\n const appStore = useAppStore()\n return useMemo(() => initializeStore(appStore), [])\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vrm.types.d.ts","sourceRoot":"/","sources":["src/Modules/Vrm/Vrm.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vrm.types.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"Vrm.types.js","sourceRoot":"/","sources":["src/Modules/Vrm/Vrm.types.ts"],"names":[],"mappings":"","sourcesContent":["export interface LoginResponse {\n token: string\n idUser: number\n verification_mode: string\n verification_sent: boolean\n}\n\nexport interface InstallationsResponse {\n success: boolean\n records: Installation[]\n}\n\nexport interface Installation {\n idSite: number\n identifier: string\n mqtt_webhost: string\n name: string\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["src/Modules/Vrm/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/Modules/Vrm/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA","sourcesContent":["export * from \"./Vrm.store\"\nexport * from \"./Vrm.types\"\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WindGenerator.provider.d.ts","sourceRoot":"/","sources":["src/Modules/WindGenerators/WindGenerator.provider.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB,CAW5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindGenerator.provider.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"WindGenerator.provider.js","sourceRoot":"/","sources":["src/Modules/WindGenerators/WindGenerator.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAQ/B,MAAM,UAAU,gBAAgB,CAAC,eAAuB;IACtD,IAAM,SAAS,GAAG,UAAC,QAAkB,IAAK,OAAA,CAAC;QACzC,OAAO,EAAE,YAAK,QAAQ,uBAAa,eAAe,kBAAe;QACjE,OAAO,EAAE,YAAK,QAAQ,uBAAa,eAAe,kBAAe;QACjE,WAAW,EAAE,YAAK,QAAQ,uBAAa,eAAe,sBAAmB;KAC1E,CAAC,EAJwC,CAIxC,CAAA;IACF,IAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAxB,CAAwB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvE,OAAO,cAAc,CAAqB,MAAM,CAAC,CAAA;AACnD,CAAC","sourcesContent":["import { PortalId, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport interface WindGeneratorState {\n current: number\n voltage: number\n temperature: number\n}\n\nexport function useWindGenerator(windGeneratorId: number): WindGeneratorState {\n const getTopics = (portalId: PortalId) => ({\n voltage: `N/${portalId}/dcsource/${windGeneratorId}/Dc/0/Voltage`,\n current: `N/${portalId}/dcsource/${windGeneratorId}/Dc/0/Current`,\n temperature: `N/${portalId}/dcsource/${windGeneratorId}/Dc/0/Temperature`,\n })\n const mqtt = useMqtt()\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n return useTopicsState<WindGeneratorState>(topics)\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WindGenerators.provider.d.ts","sourceRoot":"/","sources":["src/Modules/WindGenerators/WindGenerators.provider.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,uDAmC7B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindGenerators.provider.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"WindGenerators.provider.js","sourceRoot":"/","sources":["src/Modules/WindGenerators/WindGenerators.provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAY,OAAO,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAmB,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,CAAC,IAAM,iBAAiB,GAAG;IAC/B,IAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAA;IACpD,IAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,IAAM,SAAS,GAAG,UAAC,QAAkB,IAAK,OAAA,CAAC;QACzC,oBAAoB,EAAE,YAAK,QAAQ,qCAAkC;KACtE,CAAC,EAFwC,CAExC,CAAA;IAEF,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,oBAAoB,CAAC,CAAA;IAErE,SAAS,CAAC;QACR,IAAI,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,IAAM,gBAAc,GAAG,mBAAmB,CAAC,cAAc,CAAA;YACzD,IAAM,iBAAe,GAAsB,EAAE,CAAA;YAE7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI;;gBAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,sBAAsB,CAAC,cAAc,EAAE,CAAC;oBAC7D,IAAM,UAAU,GAAG,IAAI,MAAM,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACvE,IAAM,QAAQ,GAAG,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAE,QAAQ,mCAAI,EAAE,CAAA;oBACnD,IAAI,QAAQ,KAAK,EAAE;wBAAE,iBAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;gBACtD,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,iEAAiE;YACjE,uDAAuD;YACvD,IAAI,CAAC,gBAAc,IAAI,gBAAc,CAAC,MAAM,IAAI,iBAAe,CAAC,MAAM,IAAI,CAAC,iBAAe,CAAC,KAAK,CAAC,UAAC,EAAE,IAAK,OAAA,gBAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAA3B,CAA2B,CAAC,EAAE,CAAC;gBACtI,MAAM,CAAC,GAAG,CAAC,yCAAkC,IAAI,CAAC,SAAS,CAAC,iBAAe,CAAC,CAAE,CAAC,CAAC;gBAChF,mBAAmB,CAAC,iBAAiB,CAAC,iBAAe,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,OAAO,mBAAmB,CAAA;AAC5B,CAAC,CAAA","sourcesContent":["import Logger from \"../../utils/logger\";\nimport { useEffect, useMemo } from \"react\"\nimport { PortalId, useMqtt } from \"../Mqtt\"\nimport { WindGeneratorId, useWindGeneratorsStore } from \"./WindGenerators.store\"\nimport { DC_SOURCE_MONITOR_MODE } from \"../../utils/constants\";\n\nexport const useWindGenerators = () => {\n const windGeneratorsStore = useWindGeneratorsStore()\n const mqtt = useMqtt()\n\n const getTopics = (portalId: PortalId) => ({\n dcSourceMonitorModes: `N/${portalId}/dcsource/+/Settings/MonitorMode`,\n })\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n const messages = mqtt.messagesByWildcard(topics.dcSourceMonitorModes)\n\n useEffect(() => {\n if (messages && Object.entries(messages).length !== 0) {\n const windGenerators = windGeneratorsStore.windGenerators\n const deviceInstances: WindGeneratorId[] = []\n\n Object.keys(messages).forEach(path => {\n if (messages[path] === DC_SOURCE_MONITOR_MODE.WIND_GENERATOR) {\n const regExpExec = new RegExp('dcsource\\/(?<instance>\\\\d*)').exec(path)\n const instance = regExpExec?.groups?.instance ?? \"\"\n if (instance !== \"\") deviceInstances.push(+instance)\n }\n })\n\n // TODO: check unordered structural identify of old and new state\n // TODO: to avoid unnecessary re-rendering: O(n^2 baby)\n if (!windGenerators || windGenerators.length != deviceInstances.length || !deviceInstances.every((id) => windGenerators.includes(id))) {\n Logger.log(`New wind generators instances: ${JSON.stringify(deviceInstances)}`);\n windGeneratorsStore.setWindGenerators(deviceInstances)\n }\n }\n }, [messages])\n\n return windGeneratorsStore\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WindGenerators.store.d.ts","sourceRoot":"/","sources":["src/Modules/WindGenerators/WindGenerators.store.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEvD,qBAAa,cAAc;IACzB,cAAc,EAAE,eAAe,EAAE,CAAK;;IAMtC,iBAAiB,mBAAoB,eAAe,EAAE,uBAAyC;CAChG;AAYD,wBAAgB,sBAAsB,mBAErC"}
|