visualizer-components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +90 -0
  3. package/dist/assets/RudderIcon.d.ts +23 -0
  4. package/dist/assets/RudderIcon.d.ts.map +1 -0
  5. package/dist/assets/RudderIcon.js +23 -0
  6. package/dist/assets/RudderIcon.js.map +1 -0
  7. package/dist/assets/svgSources.d.ts +18 -0
  8. package/dist/assets/svgSources.d.ts.map +1 -0
  9. package/dist/assets/svgSources.js +18 -0
  10. package/dist/assets/svgSources.js.map +1 -0
  11. package/dist/components/Joystick.d.ts +23 -0
  12. package/dist/components/Joystick.d.ts.map +1 -0
  13. package/dist/components/Joystick.js +114 -0
  14. package/dist/components/Joystick.js.map +1 -0
  15. package/dist/components/TelemetryDashboard.d.ts +31 -0
  16. package/dist/components/TelemetryDashboard.d.ts.map +1 -0
  17. package/dist/components/TelemetryDashboard.js +127 -0
  18. package/dist/components/TelemetryDashboard.js.map +1 -0
  19. package/dist/components/controls/ControlOverlay.d.ts +64 -0
  20. package/dist/components/controls/ControlOverlay.d.ts.map +1 -0
  21. package/dist/components/controls/ControlOverlay.js +88 -0
  22. package/dist/components/controls/ControlOverlay.js.map +1 -0
  23. package/dist/components/controls/ControlsDrawer.d.ts +37 -0
  24. package/dist/components/controls/ControlsDrawer.d.ts.map +1 -0
  25. package/dist/components/controls/ControlsDrawer.js +93 -0
  26. package/dist/components/controls/ControlsDrawer.js.map +1 -0
  27. package/dist/components/controls/ForceVectorsPanel.d.ts +37 -0
  28. package/dist/components/controls/ForceVectorsPanel.d.ts.map +1 -0
  29. package/dist/components/controls/ForceVectorsPanel.js +76 -0
  30. package/dist/components/controls/ForceVectorsPanel.js.map +1 -0
  31. package/dist/components/controls/InfoPopover.d.ts +34 -0
  32. package/dist/components/controls/InfoPopover.d.ts.map +1 -0
  33. package/dist/components/controls/InfoPopover.js +41 -0
  34. package/dist/components/controls/InfoPopover.js.map +1 -0
  35. package/dist/components/controls/Legend.d.ts +29 -0
  36. package/dist/components/controls/Legend.d.ts.map +1 -0
  37. package/dist/components/controls/Legend.js +74 -0
  38. package/dist/components/controls/Legend.js.map +1 -0
  39. package/dist/components/controls/MobileBottomNav.d.ts +17 -0
  40. package/dist/components/controls/MobileBottomNav.d.ts.map +1 -0
  41. package/dist/components/controls/MobileBottomNav.js +46 -0
  42. package/dist/components/controls/MobileBottomNav.js.map +1 -0
  43. package/dist/components/hud/SceneHUD.d.ts +100 -0
  44. package/dist/components/hud/SceneHUD.d.ts.map +1 -0
  45. package/dist/components/hud/SceneHUD.js +216 -0
  46. package/dist/components/hud/SceneHUD.js.map +1 -0
  47. package/dist/components/hud/telemetry/Batteries.d.ts +40 -0
  48. package/dist/components/hud/telemetry/Batteries.d.ts.map +1 -0
  49. package/dist/components/hud/telemetry/Batteries.js +137 -0
  50. package/dist/components/hud/telemetry/Batteries.js.map +1 -0
  51. package/dist/components/hud/telemetry/Compass.d.ts +2 -0
  52. package/dist/components/hud/telemetry/Compass.d.ts.map +1 -0
  53. package/dist/components/hud/telemetry/Compass.js +147 -0
  54. package/dist/components/hud/telemetry/Compass.js.map +1 -0
  55. package/dist/components/hud/telemetry/Log.d.ts +2 -0
  56. package/dist/components/hud/telemetry/Log.d.ts.map +1 -0
  57. package/dist/components/hud/telemetry/Log.js +65 -0
  58. package/dist/components/hud/telemetry/Log.js.map +1 -0
  59. package/dist/components/hud/telemetry/Map.d.ts +4 -0
  60. package/dist/components/hud/telemetry/Map.d.ts.map +1 -0
  61. package/dist/components/hud/telemetry/Map.js +293 -0
  62. package/dist/components/hud/telemetry/Map.js.map +1 -0
  63. package/dist/components/hud/telemetry/PowerRudderPanel.d.ts +2 -0
  64. package/dist/components/hud/telemetry/PowerRudderPanel.d.ts.map +1 -0
  65. package/dist/components/hud/telemetry/PowerRudderPanel.js +115 -0
  66. package/dist/components/hud/telemetry/PowerRudderPanel.js.map +1 -0
  67. package/dist/components/hud/telemetry/RadiusVisualizer.d.ts +63 -0
  68. package/dist/components/hud/telemetry/RadiusVisualizer.d.ts.map +1 -0
  69. package/dist/components/hud/telemetry/RadiusVisualizer.js +139 -0
  70. package/dist/components/hud/telemetry/RadiusVisualizer.js.map +1 -0
  71. package/dist/components/hud/telemetry/RadiusVisualizerPanel.d.ts +31 -0
  72. package/dist/components/hud/telemetry/RadiusVisualizerPanel.d.ts.map +1 -0
  73. package/dist/components/hud/telemetry/RadiusVisualizerPanel.js +37 -0
  74. package/dist/components/hud/telemetry/RadiusVisualizerPanel.js.map +1 -0
  75. package/dist/components/hud/telemetry/ShipRudderVisualizer.d.ts +43 -0
  76. package/dist/components/hud/telemetry/ShipRudderVisualizer.d.ts.map +1 -0
  77. package/dist/components/hud/telemetry/ShipRudderVisualizer.js +121 -0
  78. package/dist/components/hud/telemetry/ShipRudderVisualizer.js.map +1 -0
  79. package/dist/components/hud/telemetry/ShipRudderVisualizerPanel.d.ts +26 -0
  80. package/dist/components/hud/telemetry/ShipRudderVisualizerPanel.d.ts.map +1 -0
  81. package/dist/components/hud/telemetry/ShipRudderVisualizerPanel.js +29 -0
  82. package/dist/components/hud/telemetry/ShipRudderVisualizerPanel.js.map +1 -0
  83. package/dist/components/hud/telemetry/SignalLog.d.ts +7 -0
  84. package/dist/components/hud/telemetry/SignalLog.d.ts.map +1 -0
  85. package/dist/components/hud/telemetry/SignalLog.js +28 -0
  86. package/dist/components/hud/telemetry/SignalLog.js.map +1 -0
  87. package/dist/components/hud/telemetry/SignalStrength.d.ts +9 -0
  88. package/dist/components/hud/telemetry/SignalStrength.d.ts.map +1 -0
  89. package/dist/components/hud/telemetry/SignalStrength.js +53 -0
  90. package/dist/components/hud/telemetry/SignalStrength.js.map +1 -0
  91. package/dist/components/hud/telemetry/Speedometer.d.ts +2 -0
  92. package/dist/components/hud/telemetry/Speedometer.d.ts.map +1 -0
  93. package/dist/components/hud/telemetry/Speedometer.js +70 -0
  94. package/dist/components/hud/telemetry/Speedometer.js.map +1 -0
  95. package/dist/components/hud/telemetry/Task.d.ts +2 -0
  96. package/dist/components/hud/telemetry/Task.d.ts.map +1 -0
  97. package/dist/components/hud/telemetry/Task.js +61 -0
  98. package/dist/components/hud/telemetry/Task.js.map +1 -0
  99. package/dist/components/hud/telemetry/TaskData.d.ts +2 -0
  100. package/dist/components/hud/telemetry/TaskData.d.ts.map +1 -0
  101. package/dist/components/hud/telemetry/TaskData.js +62 -0
  102. package/dist/components/hud/telemetry/TaskData.js.map +1 -0
  103. package/dist/components/hud/telemetry/index.d.ts +40 -0
  104. package/dist/components/hud/telemetry/index.d.ts.map +1 -0
  105. package/dist/components/hud/telemetry/index.js +40 -0
  106. package/dist/components/hud/telemetry/index.js.map +1 -0
  107. package/dist/components/hud/telemetry/powerColor.d.ts +16 -0
  108. package/dist/components/hud/telemetry/powerColor.d.ts.map +1 -0
  109. package/dist/components/hud/telemetry/powerColor.js +15 -0
  110. package/dist/components/hud/telemetry/powerColor.js.map +1 -0
  111. package/dist/components/scenes/MappingScene.d.ts +19 -0
  112. package/dist/components/scenes/MappingScene.d.ts.map +1 -0
  113. package/dist/components/scenes/MappingScene.js +353 -0
  114. package/dist/components/scenes/MappingScene.js.map +1 -0
  115. package/dist/components/scenes/SceneCanvas.d.ts +96 -0
  116. package/dist/components/scenes/SceneCanvas.d.ts.map +1 -0
  117. package/dist/components/scenes/SceneCanvas.js +151 -0
  118. package/dist/components/scenes/SceneCanvas.js.map +1 -0
  119. package/dist/components/scenes/SceneRenderer.d.ts +16 -0
  120. package/dist/components/scenes/SceneRenderer.d.ts.map +1 -0
  121. package/dist/components/scenes/SceneRenderer.js +60 -0
  122. package/dist/components/scenes/SceneRenderer.js.map +1 -0
  123. package/dist/components/scenes/TelemetryScene.d.ts +6 -0
  124. package/dist/components/scenes/TelemetryScene.d.ts.map +1 -0
  125. package/dist/components/scenes/TelemetryScene.js +6 -0
  126. package/dist/components/scenes/TelemetryScene.js.map +1 -0
  127. package/dist/components/svg/CompassRose.d.ts +129 -0
  128. package/dist/components/svg/CompassRose.d.ts.map +1 -0
  129. package/dist/components/svg/CompassRose.js +221 -0
  130. package/dist/components/svg/CompassRose.js.map +1 -0
  131. package/dist/connection/config.d.ts +41 -0
  132. package/dist/connection/config.d.ts.map +1 -0
  133. package/dist/connection/config.js +44 -0
  134. package/dist/connection/config.js.map +1 -0
  135. package/dist/contexts/SceneContext.d.ts +35 -0
  136. package/dist/contexts/SceneContext.d.ts.map +1 -0
  137. package/dist/contexts/SceneContext.js +24 -0
  138. package/dist/contexts/SceneContext.js.map +1 -0
  139. package/dist/hooks/useAutoPathAnimation.d.ts +22 -0
  140. package/dist/hooks/useAutoPathAnimation.d.ts.map +1 -0
  141. package/dist/hooks/useAutoPathAnimation.js +102 -0
  142. package/dist/hooks/useAutoPathAnimation.js.map +1 -0
  143. package/dist/hooks/useLayoutConfig.d.ts +29 -0
  144. package/dist/hooks/useLayoutConfig.d.ts.map +1 -0
  145. package/dist/hooks/useLayoutConfig.js +30 -0
  146. package/dist/hooks/useLayoutConfig.js.map +1 -0
  147. package/dist/hooks/useSceneContext.d.ts +64 -0
  148. package/dist/hooks/useSceneContext.d.ts.map +1 -0
  149. package/dist/hooks/useSceneContext.js +37 -0
  150. package/dist/hooks/useSceneContext.js.map +1 -0
  151. package/dist/index.d.ts +44 -0
  152. package/dist/index.d.ts.map +1 -0
  153. package/dist/index.js +57 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/providers/TelemetryProvider.d.ts +27 -0
  156. package/dist/providers/TelemetryProvider.d.ts.map +1 -0
  157. package/dist/providers/TelemetryProvider.js +50 -0
  158. package/dist/providers/TelemetryProvider.js.map +1 -0
  159. package/dist/providers/TelemetryThemeProvider.d.ts +25 -0
  160. package/dist/providers/TelemetryThemeProvider.d.ts.map +1 -0
  161. package/dist/providers/TelemetryThemeProvider.js +54 -0
  162. package/dist/providers/TelemetryThemeProvider.js.map +1 -0
  163. package/dist/store/actions/connectionActions.d.ts +39 -0
  164. package/dist/store/actions/connectionActions.d.ts.map +1 -0
  165. package/dist/store/actions/connectionActions.js +162 -0
  166. package/dist/store/actions/connectionActions.js.map +1 -0
  167. package/dist/store/actions/fetchTelemetry.d.ts +51 -0
  168. package/dist/store/actions/fetchTelemetry.d.ts.map +1 -0
  169. package/dist/store/actions/fetchTelemetry.js +135 -0
  170. package/dist/store/actions/fetchTelemetry.js.map +1 -0
  171. package/dist/store/index.d.ts +23 -0
  172. package/dist/store/index.d.ts.map +1 -0
  173. package/dist/store/index.js +22 -0
  174. package/dist/store/index.js.map +1 -0
  175. package/dist/store/slices/connectionSlice.d.ts +15 -0
  176. package/dist/store/slices/connectionSlice.d.ts.map +1 -0
  177. package/dist/store/slices/connectionSlice.js +39 -0
  178. package/dist/store/slices/connectionSlice.js.map +1 -0
  179. package/dist/store/slices/discoveredGridSlice.d.ts +168 -0
  180. package/dist/store/slices/discoveredGridSlice.d.ts.map +1 -0
  181. package/dist/store/slices/discoveredGridSlice.js +146 -0
  182. package/dist/store/slices/discoveredGridSlice.js.map +1 -0
  183. package/dist/store/slices/sceneSlice.d.ts +185 -0
  184. package/dist/store/slices/sceneSlice.d.ts.map +1 -0
  185. package/dist/store/slices/sceneSlice.js +95 -0
  186. package/dist/store/slices/sceneSlice.js.map +1 -0
  187. package/dist/store/slices/simulationSlice.d.ts +87 -0
  188. package/dist/store/slices/simulationSlice.d.ts.map +1 -0
  189. package/dist/store/slices/simulationSlice.js +55 -0
  190. package/dist/store/slices/simulationSlice.js.map +1 -0
  191. package/dist/store/slices/telemetrySlice.d.ts +10 -0
  192. package/dist/store/slices/telemetrySlice.d.ts.map +1 -0
  193. package/dist/store/slices/telemetrySlice.js +88 -0
  194. package/dist/store/slices/telemetrySlice.js.map +1 -0
  195. package/dist/store/slices/videoSlice.d.ts +12 -0
  196. package/dist/store/slices/videoSlice.d.ts.map +1 -0
  197. package/dist/store/slices/videoSlice.js +27 -0
  198. package/dist/store/slices/videoSlice.js.map +1 -0
  199. package/dist/store/slices/visualizationSlice.d.ts +152 -0
  200. package/dist/store/slices/visualizationSlice.d.ts.map +1 -0
  201. package/dist/store/slices/visualizationSlice.js +58 -0
  202. package/dist/store/slices/visualizationSlice.js.map +1 -0
  203. package/dist/store/store.d.ts +61 -0
  204. package/dist/store/store.d.ts.map +1 -0
  205. package/dist/store/store.js +78 -0
  206. package/dist/store/store.js.map +1 -0
  207. package/dist/theme/index.d.ts +14 -0
  208. package/dist/theme/index.d.ts.map +1 -0
  209. package/dist/theme/index.js +14 -0
  210. package/dist/theme/index.js.map +1 -0
  211. package/dist/theme/lightTheme.d.ts +151 -0
  212. package/dist/theme/lightTheme.d.ts.map +1 -0
  213. package/dist/theme/lightTheme.js +194 -0
  214. package/dist/theme/lightTheme.js.map +1 -0
  215. package/dist/theme/telemetryTheme.d.ts +90 -0
  216. package/dist/theme/telemetryTheme.d.ts.map +1 -0
  217. package/dist/theme/telemetryTheme.js +157 -0
  218. package/dist/theme/telemetryTheme.js.map +1 -0
  219. package/dist/types/detectedObjectsTypes.d.ts +18 -0
  220. package/dist/types/detectedObjectsTypes.d.ts.map +1 -0
  221. package/dist/types/detectedObjectsTypes.js +8 -0
  222. package/dist/types/detectedObjectsTypes.js.map +1 -0
  223. package/dist/types/index.d.ts +16 -0
  224. package/dist/types/index.d.ts.map +1 -0
  225. package/dist/types/index.js +16 -0
  226. package/dist/types/index.js.map +1 -0
  227. package/dist/types/ros.d.ts +87 -0
  228. package/dist/types/ros.d.ts.map +1 -0
  229. package/dist/types/ros.js +17 -0
  230. package/dist/types/ros.js.map +1 -0
  231. package/dist/types/statusTypes.d.ts +81 -0
  232. package/dist/types/statusTypes.d.ts.map +1 -0
  233. package/dist/types/statusTypes.js +52 -0
  234. package/dist/types/statusTypes.js.map +1 -0
  235. package/dist/types/taskTypes.d.ts +65 -0
  236. package/dist/types/taskTypes.d.ts.map +1 -0
  237. package/dist/types/taskTypes.js +18 -0
  238. package/dist/types/taskTypes.js.map +1 -0
  239. package/dist/types/telemetryInterfaces.d.ts +81 -0
  240. package/dist/types/telemetryInterfaces.d.ts.map +1 -0
  241. package/dist/types/telemetryInterfaces.js +30 -0
  242. package/dist/types/telemetryInterfaces.js.map +1 -0
  243. package/dist/utils/basestation.d.ts +7 -0
  244. package/dist/utils/basestation.d.ts.map +1 -0
  245. package/dist/utils/basestation.js +49 -0
  246. package/dist/utils/basestation.js.map +1 -0
  247. package/dist/utils/batteryUtil.d.ts +8 -0
  248. package/dist/utils/batteryUtil.d.ts.map +1 -0
  249. package/dist/utils/batteryUtil.js +32 -0
  250. package/dist/utils/batteryUtil.js.map +1 -0
  251. package/dist/utils/telemetry/index.d.ts +13 -0
  252. package/dist/utils/telemetry/index.d.ts.map +1 -0
  253. package/dist/utils/telemetry/index.js +13 -0
  254. package/dist/utils/telemetry/index.js.map +1 -0
  255. package/dist/utils/telemetry/telemetryFactory.d.ts +48 -0
  256. package/dist/utils/telemetry/telemetryFactory.d.ts.map +1 -0
  257. package/dist/utils/telemetry/telemetryFactory.js +390 -0
  258. package/dist/utils/telemetry/telemetryFactory.js.map +1 -0
  259. package/package.json +91 -0
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @file simulationSlice.ts
3
+ * @description Redux slice for simulation-specific state: the fine obstacle grid,
4
+ * vessel heading/speed, and current simulation mode. Extracted from visualizerSlice.
5
+ *
6
+ * @author Carson Fujita
7
+ * @license MIT
8
+ */
9
+ import { type PayloadAction } from '@reduxjs/toolkit';
10
+ import type { Grid } from '../../types';
11
+ /**
12
+ * @interface SimulationState
13
+ * @description Represents the state of the simulation in the Redux store.
14
+ * @property {Grid} fineGrid - The fine obstacle grid used for simulation, represented as a 2D array of cell states.
15
+ * @property {number} currentHeading - The current heading of the vessel in degrees (0 = north, 90 = east).
16
+ * @property {number} currentSpeed - The current speed of the vessel in cells per second.
17
+ * @property {'automatic' | 'manual'} simMode - The current simulation mode, either 'automatic' or 'manual'.
18
+ * @remarks
19
+ * The simulation state is used to manage the fine obstacle grid and vessel dynamics during simulation.
20
+ * It allows for switching between automatic and manual modes, adjusting heading and speed, and updating the fine grid based on sensor data or user input.
21
+ */
22
+ export interface SimulationState {
23
+ fineGrid: Grid;
24
+ currentHeading: number;
25
+ currentSpeed: number;
26
+ simMode: 'automatic' | 'manual';
27
+ }
28
+ /**
29
+ * @constant simulationSlice
30
+ * @description Redux slice for managing simulation-specific state.
31
+ * @see {@link SimulationState} for the structure of the state.
32
+ * @remarks
33
+ * This slice provides actions and reducers to manage the fine obstacle grid, vessel heading, speed, and simulation mode.
34
+ * It includes actions to set the fine grid, update heading and speed, switch simulation modes, and reset the simulation state.
35
+ * The slice also includes selectors to access the current simulation state from the Redux store.
36
+ */
37
+ export declare const simulationSlice: import("@reduxjs/toolkit").Slice<SimulationState, {
38
+ setFineGrid: (state: {
39
+ fineGrid: {
40
+ type?: import("react-isometric-engine").CellType | undefined;
41
+ x: number;
42
+ y: number;
43
+ z?: number | undefined;
44
+ }[][];
45
+ currentHeading: number;
46
+ currentSpeed: number;
47
+ simMode: "automatic" | "manual";
48
+ }, action: PayloadAction<Grid>) => void;
49
+ setCurrentHeading: (state: {
50
+ fineGrid: {
51
+ type?: import("react-isometric-engine").CellType | undefined;
52
+ x: number;
53
+ y: number;
54
+ z?: number | undefined;
55
+ }[][];
56
+ currentHeading: number;
57
+ currentSpeed: number;
58
+ simMode: "automatic" | "manual";
59
+ }, action: PayloadAction<number>) => void;
60
+ setCurrentSpeed: (state: {
61
+ fineGrid: {
62
+ type?: import("react-isometric-engine").CellType | undefined;
63
+ x: number;
64
+ y: number;
65
+ z?: number | undefined;
66
+ }[][];
67
+ currentHeading: number;
68
+ currentSpeed: number;
69
+ simMode: "automatic" | "manual";
70
+ }, action: PayloadAction<number>) => void;
71
+ setSimMode: (state: {
72
+ fineGrid: {
73
+ type?: import("react-isometric-engine").CellType | undefined;
74
+ x: number;
75
+ y: number;
76
+ z?: number | undefined;
77
+ }[][];
78
+ currentHeading: number;
79
+ currentSpeed: number;
80
+ simMode: "automatic" | "manual";
81
+ }, action: PayloadAction<"automatic" | "manual">) => void;
82
+ resetSimulation: () => SimulationState;
83
+ }, "simulation", "simulation", import("@reduxjs/toolkit").SliceSelectors<SimulationState>>;
84
+ export declare const setFineGrid: import("@reduxjs/toolkit").ActionCreatorWithPayload<Grid, "simulation/setFineGrid">, setCurrentHeading: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "simulation/setCurrentHeading">, setCurrentSpeed: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "simulation/setCurrentSpeed">, setSimMode: import("@reduxjs/toolkit").ActionCreatorWithPayload<"automatic" | "manual", "simulation/setSimMode">, resetSimulation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"simulation/resetSimulation">;
85
+ declare const _default: import("redux").Reducer<SimulationState>;
86
+ export default _default;
87
+ //# sourceMappingURL=simulationSlice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulationSlice.d.ts","sourceRoot":"","sources":["../../../src/store/slices/simulationSlice.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,IAAI,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAC;CACnC;AAkBD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;;;;;wBA9BR,MAAM;sBACR,MAAM;iBACX,WAAW,GAAG,QAAQ;eAgCE,aAAa,CAAC,IAAI,CAAC;;;;;;;;wBAlCpC,MAAM;sBACR,MAAM;iBACX,WAAW,GAAG,QAAQ;eAmCQ,aAAa,CAAC,MAAM,CAAC;;;;;;;;wBArC5C,MAAM;sBACR,MAAM;iBACX,WAAW,GAAG,QAAQ;eAsCM,aAAa,CAAC,MAAM,CAAC;;;;;;;;wBAxC1C,MAAM;sBACR,MAAM;iBACX,WAAW,GAAG,QAAQ;eAyCC,aAAa,CAAC,WAAW,GAAG,QAAQ,CAAC;;0FAKvE,CAAC;AAEH,eAAO,MAAQ,WAAW,uFAAE,iBAAiB,+FAAE,eAAe,6FAAE,UAAU,wGAAE,eAAe,sFAA4B,CAAC;;AAExH,wBAAuC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @file simulationSlice.ts
3
+ * @description Redux slice for simulation-specific state: the fine obstacle grid,
4
+ * vessel heading/speed, and current simulation mode. Extracted from visualizerSlice.
5
+ *
6
+ * @author Carson Fujita
7
+ * @license MIT
8
+ */
9
+ import { createSlice } from '@reduxjs/toolkit';
10
+ /**
11
+ * @constant initialState
12
+ * @description Initial state of the simulation slice.
13
+ * @type {SimulationState}
14
+ * @remarks
15
+ * The initial state sets the fine grid to an empty array, the current heading to 0 degrees,
16
+ * the current speed to 2.5 cells per second, and the simulation mode to 'automatic'.
17
+ * This state is used when the application first loads or when the simulation state is reset.
18
+ */
19
+ const initialState = {
20
+ fineGrid: [],
21
+ currentHeading: 0,
22
+ currentSpeed: 2.5,
23
+ simMode: 'automatic',
24
+ };
25
+ /**
26
+ * @constant simulationSlice
27
+ * @description Redux slice for managing simulation-specific state.
28
+ * @see {@link SimulationState} for the structure of the state.
29
+ * @remarks
30
+ * This slice provides actions and reducers to manage the fine obstacle grid, vessel heading, speed, and simulation mode.
31
+ * It includes actions to set the fine grid, update heading and speed, switch simulation modes, and reset the simulation state.
32
+ * The slice also includes selectors to access the current simulation state from the Redux store.
33
+ */
34
+ export const simulationSlice = createSlice({
35
+ name: 'simulation',
36
+ initialState,
37
+ reducers: {
38
+ setFineGrid: (state, action) => {
39
+ state.fineGrid = action.payload;
40
+ },
41
+ setCurrentHeading: (state, action) => {
42
+ state.currentHeading = action.payload;
43
+ },
44
+ setCurrentSpeed: (state, action) => {
45
+ state.currentSpeed = action.payload;
46
+ },
47
+ setSimMode: (state, action) => {
48
+ state.simMode = action.payload;
49
+ },
50
+ resetSimulation: () => initialState,
51
+ },
52
+ });
53
+ export const { setFineGrid, setCurrentHeading, setCurrentSpeed, setSimMode, resetSimulation } = simulationSlice.actions;
54
+ export default simulationSlice.reducer;
55
+ //# sourceMappingURL=simulationSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulationSlice.js","sourceRoot":"","sources":["../../../src/store/slices/simulationSlice.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAqBnE;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAoB;IAClC,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,GAAG;IACjB,OAAO,EAAE,WAAW;CACvB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;IACvC,IAAI,EAAE,YAAY;IAClB,YAAY;IACZ,QAAQ,EAAE;QACN,WAAW,EAAE,CAAC,KAAK,EAAE,MAA2B,EAAE,EAAE;YAChD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAA6B,EAAE,EAAE;YACxD,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;QAC1C,CAAC;QACD,eAAe,EAAE,CAAC,KAAK,EAAE,MAA6B,EAAE,EAAE;YACtD,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;QACxC,CAAC;QACD,UAAU,EAAE,CAAC,KAAK,EAAE,MAA6C,EAAE,EAAE;YACjE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACnC,CAAC;QACD,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;KACtC;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;AAExH,eAAe,eAAe,CAAC,OAAO,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Status, Path, Grid, TaskLocation, TaskData, CourseTrailPoint, ZedPosition, ZedOrientation } from '../../types';
2
+ import type { DetectedObject } from '../../types';
3
+ export declare const SET_STATUS: import("@reduxjs/toolkit").ActionCreatorWithPayload<Partial<Status>, "status/SET_STATUS">, setMapOccupancyGrid: import("@reduxjs/toolkit").ActionCreatorWithPayload<Grid, "status/setMapOccupancyGrid">, setMapNavigationGrid: import("@reduxjs/toolkit").ActionCreatorWithPayload<Grid, "status/setMapNavigationGrid">, setPlanningStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "status/setPlanningStatus">, setPlanningCourse: import("@reduxjs/toolkit").ActionCreatorWithPayload<Path, "status/setPlanningCourse">, setPlanningPlan: import("@reduxjs/toolkit").ActionCreatorWithPayload<Path, "status/setPlanningPlan">, setTaskLog: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "status/setTaskLog">, setTaskLocation: import("@reduxjs/toolkit").ActionCreatorWithPayload<TaskLocation, "status/setTaskLocation">, setTaskData: import("@reduxjs/toolkit").ActionCreatorWithPayload<TaskData, "status/setTaskData">, setLeftPower: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setLeftPower">, setRightPower: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setRightPower">, setRudderAngle: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setRudderAngle">, setASVSpeed: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setASVSpeed">, setPowerMotors: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setPowerMotors">, setPowerPrimary: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setPowerPrimary">, setASVHeading: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setASVHeading">, setASVLongitude: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setASVLongitude">, setASVLatitude: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setASVLatitude">, setSignalStrength: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "status/setSignalStrength">, appendCourseTrailPoint: import("@reduxjs/toolkit").ActionCreatorWithPayload<CourseTrailPoint, "status/appendCourseTrailPoint">, clearCourseTrail: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"status/clearCourseTrail">, setZedOdomPosition: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZedPosition, "status/setZedOdomPosition">, setZedOdomOrientation: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZedOrientation, "status/setZedOdomOrientation">, setZedObjects: import("@reduxjs/toolkit").ActionCreatorWithPayload<DetectedObject[], "status/setZedObjects">, setZedCameraActive: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "status/setZedCameraActive">, setZedCameraInfo: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
4
+ width: number;
5
+ height: number;
6
+ encoding: string;
7
+ }, "status/setZedCameraInfo">;
8
+ declare const _default: import("redux").Reducer<Status>;
9
+ export default _default;
10
+ //# sourceMappingURL=telemetrySlice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetrySlice.d.ts","sourceRoot":"","sources":["../../../src/store/slices/telemetrySlice.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAwElD,eAAO,MACH,UAAU,6FACV,mBAAmB,2FACnB,oBAAoB,4FACpB,iBAAiB,2FACjB,iBAAiB,yFACjB,eAAe,uFACf,UAAU,sFACV,eAAe,+FACf,WAAW,uFACX,YAAY,sFACZ,aAAa,uFACb,cAAc,wFACd,WAAW,qFACX,cAAc,wFACd,eAAe,yFACf,aAAa,uFACb,eAAe,yFACf,cAAc,wFACd,iBAAiB,2FACjB,sBAAsB,0GACtB,gBAAgB,qFAChB,kBAAkB,iGAClB,qBAAqB,uGACrB,aAAa,iGACb,kBAAkB,6FAClB,gBAAgB;WArD6C,MAAM;YAAU,MAAM;cAAY,MAAM;6BAsD/E,CAAC;;AAE3B,wBAAsC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @file telemetrySlice.ts
3
+ * @description Redux slice for all ASV telemetry data received from the basestation.
4
+ * Renamed from statusSlice.ts; slice name kept as 'status' to preserve DevTools history.
5
+ *
6
+ * @author Carson Fujita
7
+ * @license MIT
8
+ */
9
+ import { createSlice } from '@reduxjs/toolkit';
10
+ import { InitialStatus } from '../../types';
11
+ import { FETCH_TELEMETRY_SUCCESS } from '../../types/telemetryInterfaces';
12
+ /**
13
+ * @constant telemetrySlice
14
+ * @description Redux slice for managing ASV telemetry data.
15
+ * @see {@link Status} for the structure of the state.
16
+ * @remarks
17
+ * This slice provides actions and reducers to manage various telemetry data points, including map grids, planning status, task information, rudder angle, power levels, ASV speed and heading, signal strength, and ZED camera data.
18
+ * It includes actions to update individual telemetry fields and an extra reducer to handle telemetry data fetched from the basestation.
19
+ * The slice also includes selectors to access the current telemetry state from the Redux store.
20
+ */
21
+ const telemetrySlice = createSlice({
22
+ name: 'status',
23
+ initialState: InitialStatus,
24
+ reducers: {
25
+ SET_STATUS: (state, action) => {
26
+ const { map: incomingMap, ...rest } = action.payload;
27
+ Object.assign(state, rest);
28
+ if (incomingMap) {
29
+ if ('occupancyGrid' in incomingMap)
30
+ state.map.occupancyGrid = incomingMap.occupancyGrid;
31
+ if ('navigationGrid' in incomingMap)
32
+ state.map.navigationGrid = incomingMap.navigationGrid;
33
+ }
34
+ },
35
+ setMapOccupancyGrid: (state, action) => { state.map.occupancyGrid = action.payload; },
36
+ setMapNavigationGrid: (state, action) => { state.map.navigationGrid = action.payload; },
37
+ setPlanningStatus: (state, action) => { state.planning.status = action.payload; },
38
+ setPlanningCourse: (state, action) => { state.planning.course = action.payload; },
39
+ setPlanningPlan: (state, action) => { state.planning.plan = action.payload; },
40
+ setTaskLog: (state, action) => { state.task.log = action.payload; },
41
+ setTaskLocation: (state, action) => { state.task.location = action.payload; },
42
+ setTaskData: (state, action) => { state.task.data = action.payload; },
43
+ setRudderAngle: (state, action) => { state.rudder.angle = action.payload; },
44
+ setPowerMotors: (state, action) => { state.battery.motors = action.payload; },
45
+ setPowerPrimary: (state, action) => { state.battery.primary = action.payload; },
46
+ setASVSpeed: (state, action) => { state.asv.speed = action.payload; },
47
+ setLeftPower: (state, action) => { state.motors.left = action.payload; },
48
+ setRightPower: (state, action) => { state.motors.right = action.payload; },
49
+ setASVHeading: (state, action) => { state.asv.heading = action.payload; },
50
+ setASVLongitude: (state, action) => { state.asv.longitude = action.payload; },
51
+ setASVLatitude: (state, action) => { state.asv.latitude = action.payload; },
52
+ setSignalStrength: (state, action) => { state.signal.strength = action.payload; },
53
+ setZedOdomPosition: (state, action) => { state.zed.odom.position = action.payload; },
54
+ setZedOdomOrientation: (state, action) => { state.zed.odom.orientation = action.payload; },
55
+ setZedObjects: (state, action) => { state.zed.objects = action.payload; },
56
+ setZedCameraActive: (state, action) => { state.zed.camera.active = action.payload; },
57
+ setZedCameraInfo: (state, action) => {
58
+ state.zed.camera.width = action.payload.width;
59
+ state.zed.camera.height = action.payload.height;
60
+ state.zed.camera.encoding = action.payload.encoding;
61
+ },
62
+ appendCourseTrailPoint: (state, action) => {
63
+ if (state.map.courseTrail.length >= 500) {
64
+ state.map.courseTrail.shift();
65
+ }
66
+ state.map.courseTrail.push(action.payload);
67
+ },
68
+ clearCourseTrail: (state) => { state.map.courseTrail = []; },
69
+ },
70
+ extraReducers: (builder) => {
71
+ builder.addCase(FETCH_TELEMETRY_SUCCESS, (state, action) => {
72
+ const payload = action.payload;
73
+ const { map: incomingMap, ...rest } = payload;
74
+ Object.assign(state, rest);
75
+ if (incomingMap) {
76
+ if ('occupancyGrid' in incomingMap)
77
+ state.map.occupancyGrid = incomingMap.occupancyGrid;
78
+ if ('navigationGrid' in incomingMap)
79
+ state.map.navigationGrid = incomingMap.navigationGrid;
80
+ }
81
+ if (!state.map.courseTrail)
82
+ state.map.courseTrail = [];
83
+ });
84
+ },
85
+ });
86
+ export const { SET_STATUS, setMapOccupancyGrid, setMapNavigationGrid, setPlanningStatus, setPlanningCourse, setPlanningPlan, setTaskLog, setTaskLocation, setTaskData, setLeftPower, setRightPower, setRudderAngle, setASVSpeed, setPowerMotors, setPowerPrimary, setASVHeading, setASVLongitude, setASVLatitude, setSignalStrength, appendCourseTrailPoint, clearCourseTrail, setZedOdomPosition, setZedOdomOrientation, setZedObjects, setZedCameraActive, setZedCameraInfo, } = telemetrySlice.actions;
87
+ export default telemetrySlice.reducer;
88
+ //# sourceMappingURL=telemetrySlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetrySlice.js","sourceRoot":"","sources":["../../../src/store/slices/telemetrySlice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @interface VideoState
3
+ * @description Represents the state of the video stream in the Redux store.
4
+ * @property {string} streamUrl - The URL of the video stream for the ASV telemetry.
5
+ */
6
+ export interface VideoState {
7
+ streamUrl: string;
8
+ }
9
+ export declare const setVideoStreamUrl: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "video/setVideoStreamUrl">;
10
+ declare const _default: import("redux").Reducer<VideoState>;
11
+ export default _default;
12
+ //# sourceMappingURL=videoSlice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"videoSlice.d.ts","sourceRoot":"","sources":["../../../src/store/slices/videoSlice.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;CACrB;AAqBD,eAAO,MAAQ,iBAAiB,wFAAuB,CAAC;;AACxD,wBAAkC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @file videoSlice.ts
3
+ * @description Redux slice for managing the video stream URL for the ASV telemetry.
4
+ * @author Carson Fujita
5
+ * @license MIT
6
+ */
7
+ import { createSlice } from '@reduxjs/toolkit';
8
+ /**
9
+ * @constant initialState
10
+ * @description Initial state of the video slice.
11
+ * @type {VideoState}
12
+ */
13
+ const initialState = {
14
+ streamUrl: '',
15
+ };
16
+ const videoSlice = createSlice({
17
+ name: 'video',
18
+ initialState,
19
+ reducers: {
20
+ setVideoStreamUrl: (state, action) => {
21
+ state.streamUrl = action.payload;
22
+ },
23
+ },
24
+ });
25
+ export const { setVideoStreamUrl } = videoSlice.actions;
26
+ export default videoSlice.reducer;
27
+ //# sourceMappingURL=videoSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"videoSlice.js","sourceRoot":"","sources":["../../../src/store/slices/videoSlice.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAWnE;;;;GAIG;AACH,MAAM,YAAY,GAAe;IAC7B,SAAS,EAAE,EAAE;CAChB,CAAC;AAEF,MAAM,UAAU,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,OAAO;IACb,YAAY;IACZ,QAAQ,EAAE;QACN,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAA6B,EAAE,EAAE;YACxD,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QACrC,CAAC;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;AACxD,eAAe,UAAU,CAAC,OAAO,CAAC"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * @file visualizationSlice.ts
3
+ * @description Redux slice for visual rendering preferences: show/hide toggles for
4
+ * grid layers, axes, legend, compass, and fog of war. Renamed from visualizerSlice;
5
+ * simulation fields (fineGrid, heading, speed, simMode) live in simulationSlice.
6
+ *
7
+ * @author Carson Fujita
8
+ * @license MIT
9
+ */
10
+ import { type PayloadAction } from '@reduxjs/toolkit';
11
+ /**
12
+ * @interface VisualizationState
13
+ * @description Represents the state of visual rendering preferences in the Redux store.
14
+ * @property {boolean} showGlobalGrid - Whether to show the global grid layer.
15
+ * @property {boolean} showGlobalAxes - Whether to show the global axes.
16
+ * @property {boolean} showLegend - Whether to show the legend.
17
+ * @property {boolean} showCompass - Whether to show the compass.
18
+ * @property {boolean} showControls - Whether to show the controls.
19
+ * @property {boolean} showLocalAxes - Whether to show the local axes.
20
+ * @property {boolean} showLocalGrid - Whether to show the local grid layer.
21
+ * @property {boolean} showCourseTrail - Whether to show the course trail.
22
+ * @property {boolean} showFogOfWar - Whether to show the fog of war effect.
23
+ * @remarks
24
+ * The visualization state is used to manage user preferences for visual rendering in the application.
25
+ * It allows toggling various visual elements on or off, providing a customizable viewing experience for the user.
26
+ */
27
+ export interface VisualizationState {
28
+ showGlobalGrid: boolean;
29
+ showGlobalAxes: boolean;
30
+ showLegend: boolean;
31
+ showCompass: boolean;
32
+ showControls: boolean;
33
+ showLocalAxes: boolean;
34
+ showLocalGrid: boolean;
35
+ showCourseTrail: boolean;
36
+ showFogOfWar: boolean;
37
+ }
38
+ /**
39
+ * @constant visualizationSlice
40
+ * @description Redux slice for managing visual rendering preferences.
41
+ * @see {@link VisualizationState} for the structure of the state.
42
+ * @remarks
43
+ * This slice provides actions and reducers to manage user preferences for visual rendering in the application.
44
+ * It includes actions to toggle the visibility of various visual elements and to reset the visualization state to its initial values.
45
+ * The slice also includes selectors to access the current visualization state from the Redux store.
46
+ */
47
+ export declare const visualizationSlice: import("@reduxjs/toolkit").Slice<VisualizationState, {
48
+ setShowGlobalGrid: (state: {
49
+ showGlobalGrid: boolean;
50
+ showGlobalAxes: boolean;
51
+ showLegend: boolean;
52
+ showCompass: boolean;
53
+ showControls: boolean;
54
+ showLocalAxes: boolean;
55
+ showLocalGrid: boolean;
56
+ showCourseTrail: boolean;
57
+ showFogOfWar: boolean;
58
+ }, action: PayloadAction<boolean>) => void;
59
+ setShowGlobalAxes: (state: {
60
+ showGlobalGrid: boolean;
61
+ showGlobalAxes: boolean;
62
+ showLegend: boolean;
63
+ showCompass: boolean;
64
+ showControls: boolean;
65
+ showLocalAxes: boolean;
66
+ showLocalGrid: boolean;
67
+ showCourseTrail: boolean;
68
+ showFogOfWar: boolean;
69
+ }, action: PayloadAction<boolean>) => void;
70
+ setShowLegend: (state: {
71
+ showGlobalGrid: boolean;
72
+ showGlobalAxes: boolean;
73
+ showLegend: boolean;
74
+ showCompass: boolean;
75
+ showControls: boolean;
76
+ showLocalAxes: boolean;
77
+ showLocalGrid: boolean;
78
+ showCourseTrail: boolean;
79
+ showFogOfWar: boolean;
80
+ }, action: PayloadAction<boolean>) => void;
81
+ setShowCompass: (state: {
82
+ showGlobalGrid: boolean;
83
+ showGlobalAxes: boolean;
84
+ showLegend: boolean;
85
+ showCompass: boolean;
86
+ showControls: boolean;
87
+ showLocalAxes: boolean;
88
+ showLocalGrid: boolean;
89
+ showCourseTrail: boolean;
90
+ showFogOfWar: boolean;
91
+ }, action: PayloadAction<boolean>) => void;
92
+ setShowControls: (state: {
93
+ showGlobalGrid: boolean;
94
+ showGlobalAxes: boolean;
95
+ showLegend: boolean;
96
+ showCompass: boolean;
97
+ showControls: boolean;
98
+ showLocalAxes: boolean;
99
+ showLocalGrid: boolean;
100
+ showCourseTrail: boolean;
101
+ showFogOfWar: boolean;
102
+ }, action: PayloadAction<boolean>) => void;
103
+ setShowLocalAxes: (state: {
104
+ showGlobalGrid: boolean;
105
+ showGlobalAxes: boolean;
106
+ showLegend: boolean;
107
+ showCompass: boolean;
108
+ showControls: boolean;
109
+ showLocalAxes: boolean;
110
+ showLocalGrid: boolean;
111
+ showCourseTrail: boolean;
112
+ showFogOfWar: boolean;
113
+ }, action: PayloadAction<boolean>) => void;
114
+ setShowLocalGrid: (state: {
115
+ showGlobalGrid: boolean;
116
+ showGlobalAxes: boolean;
117
+ showLegend: boolean;
118
+ showCompass: boolean;
119
+ showControls: boolean;
120
+ showLocalAxes: boolean;
121
+ showLocalGrid: boolean;
122
+ showCourseTrail: boolean;
123
+ showFogOfWar: boolean;
124
+ }, action: PayloadAction<boolean>) => void;
125
+ setShowCourseTrail: (state: {
126
+ showGlobalGrid: boolean;
127
+ showGlobalAxes: boolean;
128
+ showLegend: boolean;
129
+ showCompass: boolean;
130
+ showControls: boolean;
131
+ showLocalAxes: boolean;
132
+ showLocalGrid: boolean;
133
+ showCourseTrail: boolean;
134
+ showFogOfWar: boolean;
135
+ }, action: PayloadAction<boolean>) => void;
136
+ setShowFogOfWar: (state: {
137
+ showGlobalGrid: boolean;
138
+ showGlobalAxes: boolean;
139
+ showLegend: boolean;
140
+ showCompass: boolean;
141
+ showControls: boolean;
142
+ showLocalAxes: boolean;
143
+ showLocalGrid: boolean;
144
+ showCourseTrail: boolean;
145
+ showFogOfWar: boolean;
146
+ }, action: PayloadAction<boolean>) => void;
147
+ resetVisualization: () => VisualizationState;
148
+ }, "visualization", "visualization", import("@reduxjs/toolkit").SliceSelectors<VisualizationState>>;
149
+ export declare const setShowGlobalGrid: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "visualization/setShowGlobalGrid">, setShowGlobalAxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "visualization/setShowGlobalAxes">, setShowLegend: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "visualization/setShowLegend">, setShowCompass: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "visualization/setShowCompass">, setShowControls: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "visualization/setShowControls">, setShowLocalAxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "visualization/setShowLocalAxes">, setShowLocalGrid: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "visualization/setShowLocalGrid">, setShowCourseTrail: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "visualization/setShowCourseTrail">, setShowFogOfWar: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "visualization/setShowFogOfWar">, resetVisualization: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"visualization/resetVisualization">;
150
+ declare const _default: import("redux").Reducer<VisualizationState>;
151
+ export default _default;
152
+ //# sourceMappingURL=visualizationSlice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualizationSlice.d.ts","sourceRoot":"","sources":["../../../src/store/slices/visualizationSlice.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACzB;AAuBD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB;;wBAzCX,OAAO;wBACP,OAAO;oBACX,OAAO;qBACN,OAAO;sBACN,OAAO;uBACN,OAAO;uBACP,OAAO;yBACL,OAAO;sBACV,OAAO;eAqCmB,aAAa,CAAC,OAAO,CAAC;;wBA7C9C,OAAO;wBACP,OAAO;oBACX,OAAO;qBACN,OAAO;sBACN,OAAO;uBACN,OAAO;uBACP,OAAO;yBACL,OAAO;sBACV,OAAO;eAsCmB,aAAa,CAAC,OAAO,CAAC;;wBA9C9C,OAAO;wBACP,OAAO;oBACX,OAAO;qBACN,OAAO;sBACN,OAAO;uBACN,OAAO;uBACP,OAAO;yBACL,OAAO;sBACV,OAAO;eAuCmB,aAAa,CAAC,OAAO,CAAC;;wBA/C9C,OAAO;wBACP,OAAO;oBACX,OAAO;qBACN,OAAO;sBACN,OAAO;uBACN,OAAO;uBACP,OAAO;yBACL,OAAO;sBACV,OAAO;eAwCmB,aAAa,CAAC,OAAO,CAAC;;wBAhD9C,OAAO;wBACP,OAAO;oBACX,OAAO;qBACN,OAAO;sBACN,OAAO;uBACN,OAAO;uBACP,OAAO;yBACL,OAAO;sBACV,OAAO;eAyCmB,aAAa,CAAC,OAAO,CAAC;;wBAjD9C,OAAO;wBACP,OAAO;oBACX,OAAO;qBACN,OAAO;sBACN,OAAO;uBACN,OAAO;uBACP,OAAO;yBACL,OAAO;sBACV,OAAO;eA0CmB,aAAa,CAAC,OAAO,CAAC;;wBAlD9C,OAAO;wBACP,OAAO;oBACX,OAAO;qBACN,OAAO;sBACN,OAAO;uBACN,OAAO;uBACP,OAAO;yBACL,OAAO;sBACV,OAAO;eA2CmB,aAAa,CAAC,OAAO,CAAC;;wBAnD9C,OAAO;wBACP,OAAO;oBACX,OAAO;qBACN,OAAO;sBACN,OAAO;uBACN,OAAO;uBACP,OAAO;yBACL,OAAO;sBACV,OAAO;eA4CmB,aAAa,CAAC,OAAO,CAAC;;wBApD9C,OAAO;wBACP,OAAO;oBACX,OAAO;qBACN,OAAO;sBACN,OAAO;uBACN,OAAO;uBACP,OAAO;yBACL,OAAO;sBACV,OAAO;eA6CmB,aAAa,CAAC,OAAO,CAAC;;mGAGhE,CAAC;AAEH,eAAO,MACH,iBAAiB,mGAAE,iBAAiB,mGAAE,aAAa,+FACnD,cAAc,gGAAE,eAAe,iGAAE,gBAAgB,kGACjD,gBAAgB,kGAAE,kBAAkB,oGAAE,eAAe,iGACrD,kBAAkB,4FACQ,CAAC;;AAE/B,wBAA0C"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @file visualizationSlice.ts
3
+ * @description Redux slice for visual rendering preferences: show/hide toggles for
4
+ * grid layers, axes, legend, compass, and fog of war. Renamed from visualizerSlice;
5
+ * simulation fields (fineGrid, heading, speed, simMode) live in simulationSlice.
6
+ *
7
+ * @author Carson Fujita
8
+ * @license MIT
9
+ */
10
+ import { createSlice } from '@reduxjs/toolkit';
11
+ /**
12
+ * @constant initialState
13
+ * @description Initial state of the visualization slice.
14
+ * @type {VisualizationState}
15
+ * @remarks
16
+ * The initial state sets all visual rendering preferences to true, enabling all visual elements by default.
17
+ * This state is used when the application first loads or when the visualization state is reset.
18
+ * @see {@link VisualizationState} for the structure of the state.
19
+ */
20
+ const initialState = {
21
+ showGlobalGrid: true,
22
+ showGlobalAxes: true,
23
+ showLegend: true,
24
+ showCompass: true,
25
+ showControls: true,
26
+ showLocalAxes: true,
27
+ showLocalGrid: true,
28
+ showCourseTrail: true,
29
+ showFogOfWar: true,
30
+ };
31
+ /**
32
+ * @constant visualizationSlice
33
+ * @description Redux slice for managing visual rendering preferences.
34
+ * @see {@link VisualizationState} for the structure of the state.
35
+ * @remarks
36
+ * This slice provides actions and reducers to manage user preferences for visual rendering in the application.
37
+ * It includes actions to toggle the visibility of various visual elements and to reset the visualization state to its initial values.
38
+ * The slice also includes selectors to access the current visualization state from the Redux store.
39
+ */
40
+ export const visualizationSlice = createSlice({
41
+ name: 'visualization',
42
+ initialState,
43
+ reducers: {
44
+ setShowGlobalGrid: (state, action) => { state.showGlobalGrid = action.payload; },
45
+ setShowGlobalAxes: (state, action) => { state.showGlobalAxes = action.payload; },
46
+ setShowLegend: (state, action) => { state.showLegend = action.payload; },
47
+ setShowCompass: (state, action) => { state.showCompass = action.payload; },
48
+ setShowControls: (state, action) => { state.showControls = action.payload; },
49
+ setShowLocalAxes: (state, action) => { state.showLocalAxes = action.payload; },
50
+ setShowLocalGrid: (state, action) => { state.showLocalGrid = action.payload; },
51
+ setShowCourseTrail: (state, action) => { state.showCourseTrail = action.payload; },
52
+ setShowFogOfWar: (state, action) => { state.showFogOfWar = action.payload; },
53
+ resetVisualization: () => initialState,
54
+ },
55
+ });
56
+ export const { setShowGlobalGrid, setShowGlobalAxes, setShowLegend, setShowCompass, setShowControls, setShowLocalAxes, setShowLocalGrid, setShowCourseTrail, setShowFogOfWar, resetVisualization, } = visualizationSlice.actions;
57
+ export default visualizationSlice.reducer;
58
+ //# sourceMappingURL=visualizationSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualizationSlice.js","sourceRoot":"","sources":["../../../src/store/slices/visualizationSlice.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AA8BnE;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAuB;IACrC,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;CACrB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;IAC1C,IAAI,EAAE,eAAe;IACrB,YAAY;IACZ,QAAQ,EAAE;QACN,iBAAiB,EAAG,CAAC,KAAK,EAAE,MAA8B,EAAE,EAAE,GAAG,KAAK,CAAC,cAAc,GAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,iBAAiB,EAAG,CAAC,KAAK,EAAE,MAA8B,EAAE,EAAE,GAAG,KAAK,CAAC,cAAc,GAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,aAAa,EAAO,CAAC,KAAK,EAAE,MAA8B,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,GAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,cAAc,EAAM,CAAC,KAAK,EAAE,MAA8B,EAAE,EAAE,GAAG,KAAK,CAAC,WAAW,GAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3G,eAAe,EAAK,CAAC,KAAK,EAAE,MAA8B,EAAE,EAAE,GAAG,KAAK,CAAC,YAAY,GAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,gBAAgB,EAAI,CAAC,KAAK,EAAE,MAA8B,EAAE,EAAE,GAAG,KAAK,CAAC,aAAa,GAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,gBAAgB,EAAI,CAAC,KAAK,EAAE,MAA8B,EAAE,EAAE,GAAG,KAAK,CAAC,aAAa,GAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAA8B,EAAE,EAAE,GAAG,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,eAAe,EAAK,CAAC,KAAK,EAAE,MAA8B,EAAE,EAAE,GAAG,KAAK,CAAC,YAAY,GAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,kBAAkB,EAAE,GAAG,EAAE,CAAC,YAAY;KACzC;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EACT,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EACnD,cAAc,EAAE,eAAe,EAAE,gBAAgB,EACjD,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EACrD,kBAAkB,GACrB,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAE/B,eAAe,kBAAkB,CAAC,OAAO,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @file src/utils/store/index.ts\
3
+ * @description
4
+ * This file sets up the Redux store for the ASV telemetry application.
5
+ *
6
+ *
7
+ * @author Carson Fujita
8
+ * @license MIT
9
+ *
10
+ * @remarks
11
+ * - It configures the store with the state reducer and exports the necessary types for use throughout the application.
12
+ */
13
+ import { type TypedUseSelectorHook } from 'react-redux';
14
+ /**
15
+ * Configures the Redux store for the ASV telemetry application.
16
+ * @remarks
17
+ * - The store is configured with the state reducer,
18
+ * which manages the state related to telemetry data.
19
+ * - Middleware is set up to disable serializable checks,
20
+ * allowing for more flexible action payloads if needed.
21
+ * - The store is exported for use in the application,
22
+ * along with types for RootState and AppDispatch to ensure type safety
23
+ * when using the store in components and actions.
24
+ *
25
+ * @see {@link statusSlice} for the reducer managing the telemetry state.
26
+ */
27
+ declare const store: import("@reduxjs/toolkit").EnhancedStore<{
28
+ telemetry: import("..").Status;
29
+ visualization: import(".").VisualizationState;
30
+ simulation: import(".").SimulationState;
31
+ discoveredGrid: import(".").DiscoveredGridState;
32
+ scene: import(".").SceneState;
33
+ connection: import(".").ConnectionState;
34
+ video: import(".").VideoState;
35
+ }, import("redux").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
36
+ dispatch: import("redux-thunk").ThunkDispatch<{
37
+ telemetry: import("..").Status;
38
+ visualization: import(".").VisualizationState;
39
+ simulation: import(".").SimulationState;
40
+ discoveredGrid: import(".").DiscoveredGridState;
41
+ scene: import(".").SceneState;
42
+ connection: import(".").ConnectionState;
43
+ video: import(".").VideoState;
44
+ }, undefined, import("redux").UnknownAction>;
45
+ }>, import("redux").StoreEnhancer]>>;
46
+ type RootState = ReturnType<typeof store.getState>;
47
+ type AppDispatch = typeof store.dispatch;
48
+ declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<{
49
+ telemetry: import("..").Status;
50
+ visualization: import(".").VisualizationState;
51
+ simulation: import(".").SimulationState;
52
+ discoveredGrid: import(".").DiscoveredGridState;
53
+ scene: import(".").SceneState;
54
+ connection: import(".").ConnectionState;
55
+ video: import(".").VideoState;
56
+ }, undefined, import("redux").UnknownAction> & import("redux").Dispatch<import("redux").UnknownAction>;
57
+ declare const useAppSelector: TypedUseSelectorHook<RootState>;
58
+ export { useAppDispatch, useAppSelector };
59
+ export default store;
60
+ export type { RootState, AppDispatch };
61
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyBH,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AASlF;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;oCAaT,CAAC;AAIH,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;AACnD,KAAK,WAAW,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAC;AAGzC,QAAA,MAAM,cAAc;;;;;;;;sGAAmC,CAAC;AACxD,QAAA,MAAM,cAAc,EAAE,oBAAoB,CAAC,SAAS,CAAe,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAC1C,eAAe,KAAK,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC"}