@wandelbots/wandelbots-js-react-components 5.5.0 → 5.5.1-pr.fix-standardize-output.591.1380385

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 (874) hide show
  1. package/dist/3d.cjs +1 -2
  2. package/dist/3d.d.ts +0 -1
  3. package/dist/3d.js +0 -1
  4. package/dist/Setup.d.ts +0 -1
  5. package/dist/chunks/JoggingPanel-CQH_oXTB.js +586 -0
  6. package/dist/chunks/JoggingPanel-DZN2Y39k.cjs +2 -0
  7. package/dist/chunks/controller-type-virtual-BuJWQOvV.cjs +1 -0
  8. package/dist/{components/safetyBar/icons/controller-type-physical.svg.js → chunks/controller-type-virtual-CWOoMRfl.js} +10 -6
  9. package/dist/chunks/externalizeComponent-DOwkaDcw.cjs +2 -0
  10. package/dist/chunks/externalizeComponent-eiCc5DIh.js +209 -0
  11. package/dist/chunks/jog-plus-CAUurv4S.js +15 -0
  12. package/dist/chunks/jog-plus-Dy1r7-r5.cjs +1 -0
  13. package/dist/chunks/operation-mode-manual-Di4Z1KM1.js +20 -0
  14. package/dist/chunks/operation-mode-manual-eHwVILeI.cjs +1 -0
  15. package/dist/chunks/robot-CrNbCELh.cjs +1 -0
  16. package/dist/{icons/robot.svg.js → chunks/robot-D97QEl_l.js} +2 -3
  17. package/dist/chunks/rotation-CIOAnn9q.cjs +1 -0
  18. package/dist/chunks/rotation-Dm5YL3NM.js +25 -0
  19. package/dist/chunks/safety-state-stop-Bg0VUsM4.js +30 -0
  20. package/dist/chunks/safety-state-stop-CNxVYiap.cjs +1 -0
  21. package/dist/chunks/theming-Chx_tewl.cjs +3 -0
  22. package/dist/chunks/theming-Cw6qwBM7.js +600 -0
  23. package/dist/chunks/wbLogo-CObCmqTw.js +30 -0
  24. package/dist/chunks/wbLogo-G_IfZ03l.cjs +1 -0
  25. package/dist/components/3d-viewport/CoordinateSystemTransform.cjs +1 -0
  26. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +0 -1
  27. package/dist/components/3d-viewport/CoordinateSystemTransform.js +37 -0
  28. package/dist/components/3d-viewport/PresetEnvironment.cjs +0 -1
  29. package/dist/components/3d-viewport/PresetEnvironment.d.ts +0 -1
  30. package/dist/components/3d-viewport/PresetEnvironment.js +0 -1
  31. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +1 -2
  32. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +0 -1
  33. package/dist/components/3d-viewport/SafetyZonesRenderer.js +0 -1
  34. package/dist/components/3d-viewport/TrajectoryRenderer.cjs +0 -1
  35. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +0 -1
  36. package/dist/components/3d-viewport/TrajectoryRenderer.js +0 -1
  37. package/dist/components/3d-viewport/collider/ColliderCollection.cjs +1 -2
  38. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +0 -1
  39. package/dist/components/3d-viewport/collider/ColliderCollection.js +0 -1
  40. package/dist/components/3d-viewport/collider/ColliderElement.cjs +1 -2
  41. package/dist/components/3d-viewport/collider/ColliderElement.d.ts +0 -1
  42. package/dist/components/3d-viewport/collider/ColliderElement.js +0 -1
  43. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +1 -2
  44. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +0 -1
  45. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +0 -1
  46. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +0 -1
  47. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +0 -1
  48. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +0 -1
  49. package/dist/components/AppHeader.cjs +1 -2
  50. package/dist/components/AppHeader.d.ts +0 -1
  51. package/dist/components/AppHeader.js +40 -34
  52. package/dist/components/ConsoleFilter.cjs +0 -1
  53. package/dist/components/ConsoleFilter.d.ts +0 -1
  54. package/dist/components/ConsoleFilter.js +0 -1
  55. package/dist/components/CopyableText.cjs +0 -1
  56. package/dist/components/CopyableText.d.ts +0 -1
  57. package/dist/components/CopyableText.js +0 -1
  58. package/dist/components/CycleTimer/CycleTimer.cjs +1 -0
  59. package/dist/components/CycleTimer/CycleTimer.d.ts +0 -1
  60. package/dist/components/CycleTimer/CycleTimer.js +5 -0
  61. package/dist/components/CycleTimer/DefaultVariant.cjs +1 -2
  62. package/dist/components/CycleTimer/DefaultVariant.d.ts +0 -1
  63. package/dist/components/CycleTimer/DefaultVariant.js +0 -1
  64. package/dist/components/CycleTimer/SmallVariant.cjs +0 -1
  65. package/dist/components/CycleTimer/SmallVariant.d.ts +0 -1
  66. package/dist/components/CycleTimer/SmallVariant.js +0 -1
  67. package/dist/components/CycleTimer/index.cjs +1 -2
  68. package/dist/components/CycleTimer/index.d.ts +0 -1
  69. package/dist/components/CycleTimer/index.js +1 -2
  70. package/dist/components/CycleTimer/types.cjs +1 -0
  71. package/dist/components/CycleTimer/types.d.ts +0 -1
  72. package/dist/components/CycleTimer/types.js +1 -0
  73. package/dist/components/CycleTimer/useAnimations.cjs +0 -1
  74. package/dist/components/CycleTimer/useAnimations.d.ts +0 -1
  75. package/dist/components/CycleTimer/useAnimations.js +9 -2
  76. package/dist/components/CycleTimer/useTimerLogic.cjs +1 -2
  77. package/dist/components/CycleTimer/useTimerLogic.d.ts +0 -1
  78. package/dist/components/CycleTimer/useTimerLogic.js +0 -1
  79. package/dist/components/CycleTimer/utils.cjs +1 -2
  80. package/dist/components/CycleTimer/utils.d.ts +0 -1
  81. package/dist/components/CycleTimer/utils.js +19 -11
  82. package/dist/components/CycleTimer.cjs +0 -1
  83. package/dist/components/CycleTimer.d.ts +0 -1
  84. package/dist/components/CycleTimer.js +0 -1
  85. package/dist/components/DataGrid.cjs +1 -2
  86. package/dist/components/DataGrid.d.ts +0 -1
  87. package/dist/components/DataGrid.js +1 -2
  88. package/dist/components/LoadingCover.cjs +1 -2
  89. package/dist/components/LoadingCover.d.ts +0 -1
  90. package/dist/components/LoadingCover.js +0 -1
  91. package/dist/components/LogPanel.cjs +1 -2
  92. package/dist/components/LogPanel.d.ts +0 -1
  93. package/dist/components/LogPanel.js +1 -2
  94. package/dist/components/LogStore.cjs +0 -1
  95. package/dist/components/LogStore.d.ts +0 -1
  96. package/dist/components/LogStore.js +0 -1
  97. package/dist/components/LogViewer.cjs +1 -2
  98. package/dist/components/LogViewer.d.ts +0 -1
  99. package/dist/components/LogViewer.js +1 -2
  100. package/dist/components/ProgramControl.cjs +1 -2
  101. package/dist/components/ProgramControl.d.ts +0 -1
  102. package/dist/components/ProgramControl.js +6 -7
  103. package/dist/components/ProgramStateIndicator.cjs +1 -2
  104. package/dist/components/ProgramStateIndicator.d.ts +0 -1
  105. package/dist/components/ProgramStateIndicator.js +28 -29
  106. package/dist/components/RobotCard.cjs +1 -2
  107. package/dist/components/RobotCard.d.ts +0 -1
  108. package/dist/components/RobotCard.js +1 -2
  109. package/dist/components/RobotListItem.cjs +1 -2
  110. package/dist/components/RobotListItem.d.ts +0 -1
  111. package/dist/components/RobotListItem.js +25 -26
  112. package/dist/components/RobotSetupReadinessIndicator.cjs +1 -2
  113. package/dist/components/RobotSetupReadinessIndicator.d.ts +0 -1
  114. package/dist/components/RobotSetupReadinessIndicator.js +1 -2
  115. package/dist/components/SelectableFab.cjs +0 -1
  116. package/dist/components/SelectableFab.d.ts +0 -1
  117. package/dist/components/SelectableFab.js +0 -1
  118. package/dist/components/TabBar.cjs +1 -2
  119. package/dist/components/TabBar.d.ts +0 -1
  120. package/dist/components/TabBar.js +1 -2
  121. package/dist/components/ThemeSelect.cjs +1 -0
  122. package/dist/components/ThemeSelect.d.ts +0 -1
  123. package/dist/components/ThemeSelect.js +38 -0
  124. package/dist/components/Timer/Timer.cjs +1 -0
  125. package/dist/components/Timer/Timer.d.ts +0 -1
  126. package/dist/components/Timer/Timer.js +5 -0
  127. package/dist/components/Timer/TimerDefaultVariant.cjs +0 -1
  128. package/dist/components/Timer/TimerDefaultVariant.d.ts +0 -1
  129. package/dist/components/Timer/TimerDefaultVariant.js +0 -1
  130. package/dist/components/Timer/TimerSmallVariant.cjs +0 -1
  131. package/dist/components/Timer/TimerSmallVariant.d.ts +0 -1
  132. package/dist/components/Timer/TimerSmallVariant.js +0 -1
  133. package/dist/components/Timer/index.cjs +1 -2
  134. package/dist/components/Timer/index.d.ts +0 -1
  135. package/dist/components/Timer/index.js +11 -12
  136. package/dist/components/Timer/types.cjs +1 -0
  137. package/dist/components/Timer/types.d.ts +0 -1
  138. package/dist/components/Timer/types.js +1 -0
  139. package/dist/components/Timer/useTimerAnimations.cjs +0 -1
  140. package/dist/components/Timer/useTimerAnimations.d.ts +0 -1
  141. package/dist/components/Timer/useTimerAnimations.js +5 -2
  142. package/dist/components/Timer/useTimerLogic.cjs +0 -1
  143. package/dist/components/Timer/useTimerLogic.d.ts +0 -1
  144. package/dist/components/Timer/useTimerLogic.js +0 -1
  145. package/dist/components/Timer/utils.cjs +1 -2
  146. package/dist/components/Timer/utils.d.ts +0 -1
  147. package/dist/components/Timer/utils.js +10 -10
  148. package/dist/components/Timer.cjs +0 -1
  149. package/dist/components/Timer.d.ts +0 -1
  150. package/dist/components/Timer.js +0 -1
  151. package/dist/components/TransparentOverlay.cjs +1 -0
  152. package/dist/components/TransparentOverlay.d.ts +0 -1
  153. package/dist/components/TransparentOverlay.js +26 -0
  154. package/dist/components/VelocitySlider.cjs +1 -2
  155. package/dist/components/VelocitySlider.d.ts +0 -1
  156. package/dist/components/VelocitySlider.js +8 -9
  157. package/dist/components/experimental/utils/AdornedSelect.cjs +0 -1
  158. package/dist/components/experimental/utils/AdornedSelect.d.ts +0 -1
  159. package/dist/components/experimental/utils/AdornedSelect.js +0 -1
  160. package/dist/components/jogging/JoggingBlocked.cjs +0 -1
  161. package/dist/components/jogging/JoggingBlocked.d.ts +0 -1
  162. package/dist/components/jogging/JoggingBlocked.js +0 -1
  163. package/dist/components/jogging/JoggingCartesianAxisControl.cjs +1 -2
  164. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +0 -1
  165. package/dist/components/jogging/JoggingCartesianAxisControl.js +18 -20
  166. package/dist/components/jogging/JoggingCartesianTab.cjs +1 -2
  167. package/dist/components/jogging/JoggingCartesianTab.d.ts +0 -1
  168. package/dist/components/jogging/JoggingCartesianTab.js +37 -41
  169. package/dist/components/jogging/JoggingFreedriveTab.cjs +1 -0
  170. package/dist/components/jogging/JoggingFreedriveTab.d.ts +0 -1
  171. package/dist/components/jogging/JoggingFreedriveTab.js +6 -0
  172. package/dist/components/jogging/JoggingJointLimitDetector.cjs +1 -2
  173. package/dist/components/jogging/JoggingJointLimitDetector.d.ts +0 -1
  174. package/dist/components/jogging/JoggingJointLimitDetector.js +4 -5
  175. package/dist/components/jogging/JoggingJointTab.cjs +1 -2
  176. package/dist/components/jogging/JoggingJointTab.d.ts +0 -1
  177. package/dist/components/jogging/JoggingJointTab.js +0 -1
  178. package/dist/components/jogging/JoggingJointValueControl.cjs +1 -2
  179. package/dist/components/jogging/JoggingJointValueControl.d.ts +0 -1
  180. package/dist/components/jogging/JoggingJointValueControl.js +7 -8
  181. package/dist/components/jogging/JoggingOptions.cjs +1 -2
  182. package/dist/components/jogging/JoggingOptions.d.ts +0 -1
  183. package/dist/components/jogging/JoggingOptions.js +0 -1
  184. package/dist/components/jogging/JoggingPanel.cjs +1 -2
  185. package/dist/components/jogging/JoggingPanel.d.ts +0 -1
  186. package/dist/components/jogging/JoggingPanel.js +21 -119
  187. package/dist/components/jogging/JoggingStore.cjs +1 -2
  188. package/dist/components/jogging/JoggingStore.d.ts +0 -1
  189. package/dist/components/jogging/JoggingStore.js +2 -3
  190. package/dist/components/jogging/JoggingToggleButtonGroup.cjs +0 -1
  191. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +0 -1
  192. package/dist/components/jogging/JoggingToggleButtonGroup.js +0 -1
  193. package/dist/components/jogging/JoggingVelocitySlider.cjs +0 -1
  194. package/dist/components/jogging/JoggingVelocitySlider.d.ts +0 -1
  195. package/dist/components/jogging/JoggingVelocitySlider.js +0 -1
  196. package/dist/components/jogging/PoseCartesianValues.cjs +1 -2
  197. package/dist/components/jogging/PoseCartesianValues.d.ts +0 -1
  198. package/dist/components/jogging/PoseCartesianValues.js +4 -5
  199. package/dist/components/jogging/PoseJointValues.cjs +1 -2
  200. package/dist/components/jogging/PoseJointValues.d.ts +0 -1
  201. package/dist/components/jogging/PoseJointValues.js +1 -2
  202. package/dist/components/modal/NoMotionGroupModal.cjs +0 -1
  203. package/dist/components/modal/NoMotionGroupModal.d.ts +0 -1
  204. package/dist/components/modal/NoMotionGroupModal.js +0 -1
  205. package/dist/components/robots/AxisConfig.cjs +0 -1
  206. package/dist/components/robots/AxisConfig.d.ts +0 -1
  207. package/dist/components/robots/AxisConfig.js +0 -1
  208. package/dist/components/robots/DHLinearAxis.cjs +1 -2
  209. package/dist/components/robots/DHLinearAxis.d.ts +0 -1
  210. package/dist/components/robots/DHLinearAxis.js +0 -1
  211. package/dist/components/robots/DHRobot.cjs +1 -2
  212. package/dist/components/robots/DHRobot.d.ts +0 -1
  213. package/dist/components/robots/DHRobot.js +0 -1
  214. package/dist/components/robots/GenericRobot.cjs +0 -1
  215. package/dist/components/robots/GenericRobot.d.ts +0 -1
  216. package/dist/components/robots/GenericRobot.js +0 -1
  217. package/dist/components/robots/LinearAxis.cjs +1 -2
  218. package/dist/components/robots/LinearAxis.d.ts +0 -1
  219. package/dist/components/robots/LinearAxis.js +0 -1
  220. package/dist/components/robots/LinearAxisAnimator.cjs +1 -2
  221. package/dist/components/robots/LinearAxisAnimator.d.ts +0 -1
  222. package/dist/components/robots/LinearAxisAnimator.js +0 -1
  223. package/dist/components/robots/MotionGroupVisualizer.cjs +1 -2
  224. package/dist/components/robots/MotionGroupVisualizer.d.ts +0 -1
  225. package/dist/components/robots/MotionGroupVisualizer.js +4 -5
  226. package/dist/components/robots/Robot.cjs +1 -2
  227. package/dist/components/robots/Robot.d.ts +0 -1
  228. package/dist/components/robots/Robot.js +0 -1
  229. package/dist/components/robots/RobotAnimator.cjs +1 -2
  230. package/dist/components/robots/RobotAnimator.d.ts +0 -1
  231. package/dist/components/robots/RobotAnimator.js +0 -1
  232. package/dist/components/robots/SupportedLinearAxis.cjs +1 -2
  233. package/dist/components/robots/SupportedLinearAxis.d.ts +0 -1
  234. package/dist/components/robots/SupportedLinearAxis.js +7 -8
  235. package/dist/components/robots/SupportedRobot.cjs +1 -2
  236. package/dist/components/robots/SupportedRobot.d.ts +0 -1
  237. package/dist/components/robots/SupportedRobot.js +6 -7
  238. package/dist/components/robots/ghostStyle.cjs +0 -1
  239. package/dist/components/robots/ghostStyle.d.ts +0 -1
  240. package/dist/components/robots/ghostStyle.js +0 -1
  241. package/dist/components/robots/manufacturerHomePositions.cjs +0 -1
  242. package/dist/components/robots/manufacturerHomePositions.d.ts +0 -1
  243. package/dist/components/robots/manufacturerHomePositions.js +0 -1
  244. package/dist/components/robots/robotModelLogic.cjs +1 -2
  245. package/dist/components/robots/robotModelLogic.d.ts +0 -1
  246. package/dist/components/robots/robotModelLogic.js +58 -34
  247. package/dist/components/safetyBar/ControllerTypeIndicator.cjs +1 -2
  248. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +0 -1
  249. package/dist/components/safetyBar/ControllerTypeIndicator.js +10 -12
  250. package/dist/components/safetyBar/IndicatorWithExplanation.cjs +0 -1
  251. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +0 -1
  252. package/dist/components/safetyBar/IndicatorWithExplanation.js +0 -1
  253. package/dist/components/safetyBar/OperationModeIndicator.cjs +1 -2
  254. package/dist/components/safetyBar/OperationModeIndicator.d.ts +0 -1
  255. package/dist/components/safetyBar/OperationModeIndicator.js +21 -24
  256. package/dist/components/safetyBar/SafetyBar.cjs +1 -2
  257. package/dist/components/safetyBar/SafetyBar.d.ts +0 -1
  258. package/dist/components/safetyBar/SafetyBar.js +15 -16
  259. package/dist/components/safetyBar/SafetyStateIndicator.cjs +1 -2
  260. package/dist/components/safetyBar/SafetyStateIndicator.d.ts +0 -1
  261. package/dist/components/safetyBar/SafetyStateIndicator.js +25 -30
  262. package/dist/components/safetyBar/icons/index.cjs +1 -0
  263. package/dist/components/safetyBar/icons/index.d.ts +0 -1
  264. package/dist/components/safetyBar/icons/index.js +15 -0
  265. package/dist/components/utils/converters.cjs +1 -2
  266. package/dist/components/utils/converters.d.ts +0 -1
  267. package/dist/components/utils/converters.js +26 -11
  268. package/dist/components/utils/errorHandling.cjs +1 -2
  269. package/dist/components/utils/errorHandling.d.ts +0 -1
  270. package/dist/components/utils/errorHandling.js +17 -9
  271. package/dist/components/utils/hooks.cjs +0 -1
  272. package/dist/components/utils/hooks.d.ts +0 -1
  273. package/dist/components/utils/hooks.js +3 -4
  274. package/dist/components/utils/interpolation.cjs +0 -1
  275. package/dist/components/utils/interpolation.d.ts +0 -1
  276. package/dist/components/utils/interpolation.js +0 -1
  277. package/dist/core.cjs +1 -2
  278. package/dist/core.d.ts +0 -1
  279. package/dist/core.js +70 -75
  280. package/dist/externalizeComponent.d.ts +0 -1
  281. package/dist/i18n/config.d.ts +0 -1
  282. package/dist/icons/DropdownArrowIcon.d.ts +0 -1
  283. package/dist/icons/index.d.ts +0 -1
  284. package/dist/index.cjs +1 -2
  285. package/dist/index.d.ts +0 -1
  286. package/dist/index.js +120 -140
  287. package/dist/lib/ConnectedMotionGroup.d.ts +0 -1
  288. package/dist/lib/JoggerConnection.d.ts +0 -1
  289. package/dist/lib/MotionStreamConnection.d.ts +0 -1
  290. package/dist/lib/motionStateUpdate.d.ts +0 -1
  291. package/dist/themes/createDarkTheme.d.ts +0 -1
  292. package/dist/themes/createLightTheme.d.ts +0 -1
  293. package/dist/themes/themeTypes.d.ts +0 -1
  294. package/dist/themes/theming.d.ts +0 -1
  295. package/dist/wb-icons.cjs +1 -2
  296. package/dist/wb-icons.d.ts +0 -1
  297. package/dist/wb-icons.js +28 -44
  298. package/package.json +5 -6
  299. package/dist/3d.cjs.map +0 -1
  300. package/dist/3d.d.ts.map +0 -1
  301. package/dist/3d.js.map +0 -1
  302. package/dist/Setup.d.ts.map +0 -1
  303. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +0 -1
  304. package/dist/components/3d-viewport/PresetEnvironment.cjs.map +0 -1
  305. package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +0 -1
  306. package/dist/components/3d-viewport/PresetEnvironment.js.map +0 -1
  307. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +0 -1
  308. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +0 -1
  309. package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +0 -1
  310. package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +0 -1
  311. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +0 -1
  312. package/dist/components/3d-viewport/TrajectoryRenderer.js.map +0 -1
  313. package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +0 -1
  314. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +0 -1
  315. package/dist/components/3d-viewport/collider/ColliderCollection.js.map +0 -1
  316. package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +0 -1
  317. package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +0 -1
  318. package/dist/components/3d-viewport/collider/ColliderElement.js.map +0 -1
  319. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +0 -1
  320. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +0 -1
  321. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +0 -1
  322. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +0 -1
  323. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +0 -1
  324. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +0 -1
  325. package/dist/components/AppHeader.cjs.map +0 -1
  326. package/dist/components/AppHeader.d.ts.map +0 -1
  327. package/dist/components/AppHeader.js.map +0 -1
  328. package/dist/components/ConsoleFilter.cjs.map +0 -1
  329. package/dist/components/ConsoleFilter.d.ts.map +0 -1
  330. package/dist/components/ConsoleFilter.js.map +0 -1
  331. package/dist/components/CopyableText.cjs.map +0 -1
  332. package/dist/components/CopyableText.d.ts.map +0 -1
  333. package/dist/components/CopyableText.js.map +0 -1
  334. package/dist/components/CycleTimer/CycleTimer.d.ts.map +0 -1
  335. package/dist/components/CycleTimer/DefaultVariant.cjs.map +0 -1
  336. package/dist/components/CycleTimer/DefaultVariant.d.ts.map +0 -1
  337. package/dist/components/CycleTimer/DefaultVariant.js.map +0 -1
  338. package/dist/components/CycleTimer/SmallVariant.cjs.map +0 -1
  339. package/dist/components/CycleTimer/SmallVariant.d.ts.map +0 -1
  340. package/dist/components/CycleTimer/SmallVariant.js.map +0 -1
  341. package/dist/components/CycleTimer/index.cjs.map +0 -1
  342. package/dist/components/CycleTimer/index.d.ts.map +0 -1
  343. package/dist/components/CycleTimer/index.js.map +0 -1
  344. package/dist/components/CycleTimer/types.d.ts.map +0 -1
  345. package/dist/components/CycleTimer/useAnimations.cjs.map +0 -1
  346. package/dist/components/CycleTimer/useAnimations.d.ts.map +0 -1
  347. package/dist/components/CycleTimer/useAnimations.js.map +0 -1
  348. package/dist/components/CycleTimer/useTimerLogic.cjs.map +0 -1
  349. package/dist/components/CycleTimer/useTimerLogic.d.ts.map +0 -1
  350. package/dist/components/CycleTimer/useTimerLogic.js.map +0 -1
  351. package/dist/components/CycleTimer/utils.cjs.map +0 -1
  352. package/dist/components/CycleTimer/utils.d.ts.map +0 -1
  353. package/dist/components/CycleTimer/utils.js.map +0 -1
  354. package/dist/components/CycleTimer.cjs.map +0 -1
  355. package/dist/components/CycleTimer.d.ts.map +0 -1
  356. package/dist/components/CycleTimer.js.map +0 -1
  357. package/dist/components/DataGrid.cjs.map +0 -1
  358. package/dist/components/DataGrid.d.ts.map +0 -1
  359. package/dist/components/DataGrid.js.map +0 -1
  360. package/dist/components/LoadingCover.cjs.map +0 -1
  361. package/dist/components/LoadingCover.d.ts.map +0 -1
  362. package/dist/components/LoadingCover.js.map +0 -1
  363. package/dist/components/LogPanel.cjs.map +0 -1
  364. package/dist/components/LogPanel.d.ts.map +0 -1
  365. package/dist/components/LogPanel.js.map +0 -1
  366. package/dist/components/LogStore.cjs.map +0 -1
  367. package/dist/components/LogStore.d.ts.map +0 -1
  368. package/dist/components/LogStore.js.map +0 -1
  369. package/dist/components/LogViewer.cjs.map +0 -1
  370. package/dist/components/LogViewer.d.ts.map +0 -1
  371. package/dist/components/LogViewer.js.map +0 -1
  372. package/dist/components/ProgramControl.cjs.map +0 -1
  373. package/dist/components/ProgramControl.d.ts.map +0 -1
  374. package/dist/components/ProgramControl.js.map +0 -1
  375. package/dist/components/ProgramStateIndicator.cjs.map +0 -1
  376. package/dist/components/ProgramStateIndicator.d.ts.map +0 -1
  377. package/dist/components/ProgramStateIndicator.js.map +0 -1
  378. package/dist/components/RobotCard.cjs.map +0 -1
  379. package/dist/components/RobotCard.d.ts.map +0 -1
  380. package/dist/components/RobotCard.js.map +0 -1
  381. package/dist/components/RobotListItem.cjs.map +0 -1
  382. package/dist/components/RobotListItem.d.ts.map +0 -1
  383. package/dist/components/RobotListItem.js.map +0 -1
  384. package/dist/components/RobotSetupReadinessIndicator.cjs.map +0 -1
  385. package/dist/components/RobotSetupReadinessIndicator.d.ts.map +0 -1
  386. package/dist/components/RobotSetupReadinessIndicator.js.map +0 -1
  387. package/dist/components/RobotSetupReadinessIndicator.test.d.ts +0 -2
  388. package/dist/components/RobotSetupReadinessIndicator.test.d.ts.map +0 -1
  389. package/dist/components/SelectableFab.cjs.map +0 -1
  390. package/dist/components/SelectableFab.d.ts.map +0 -1
  391. package/dist/components/SelectableFab.js.map +0 -1
  392. package/dist/components/TabBar.cjs.map +0 -1
  393. package/dist/components/TabBar.d.ts.map +0 -1
  394. package/dist/components/TabBar.js.map +0 -1
  395. package/dist/components/ThemeSelect.d.ts.map +0 -1
  396. package/dist/components/Timer/Timer.d.ts.map +0 -1
  397. package/dist/components/Timer/TimerDefaultVariant.cjs.map +0 -1
  398. package/dist/components/Timer/TimerDefaultVariant.d.ts.map +0 -1
  399. package/dist/components/Timer/TimerDefaultVariant.js.map +0 -1
  400. package/dist/components/Timer/TimerSmallVariant.cjs.map +0 -1
  401. package/dist/components/Timer/TimerSmallVariant.d.ts.map +0 -1
  402. package/dist/components/Timer/TimerSmallVariant.js.map +0 -1
  403. package/dist/components/Timer/index.cjs.map +0 -1
  404. package/dist/components/Timer/index.d.ts.map +0 -1
  405. package/dist/components/Timer/index.js.map +0 -1
  406. package/dist/components/Timer/types.d.ts.map +0 -1
  407. package/dist/components/Timer/useTimerAnimations.cjs.map +0 -1
  408. package/dist/components/Timer/useTimerAnimations.d.ts.map +0 -1
  409. package/dist/components/Timer/useTimerAnimations.js.map +0 -1
  410. package/dist/components/Timer/useTimerLogic.cjs.map +0 -1
  411. package/dist/components/Timer/useTimerLogic.d.ts.map +0 -1
  412. package/dist/components/Timer/useTimerLogic.js.map +0 -1
  413. package/dist/components/Timer/utils.cjs.map +0 -1
  414. package/dist/components/Timer/utils.d.ts.map +0 -1
  415. package/dist/components/Timer/utils.js.map +0 -1
  416. package/dist/components/Timer.cjs.map +0 -1
  417. package/dist/components/Timer.d.ts.map +0 -1
  418. package/dist/components/Timer.js.map +0 -1
  419. package/dist/components/TransparentOverlay.d.ts.map +0 -1
  420. package/dist/components/VelocitySlider.cjs.map +0 -1
  421. package/dist/components/VelocitySlider.d.ts.map +0 -1
  422. package/dist/components/VelocitySlider.js.map +0 -1
  423. package/dist/components/experimental/utils/AdornedSelect.cjs.map +0 -1
  424. package/dist/components/experimental/utils/AdornedSelect.d.ts.map +0 -1
  425. package/dist/components/experimental/utils/AdornedSelect.js.map +0 -1
  426. package/dist/components/jogging/JoggingBlocked.cjs.map +0 -1
  427. package/dist/components/jogging/JoggingBlocked.d.ts.map +0 -1
  428. package/dist/components/jogging/JoggingBlocked.js.map +0 -1
  429. package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +0 -1
  430. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +0 -1
  431. package/dist/components/jogging/JoggingCartesianAxisControl.js.map +0 -1
  432. package/dist/components/jogging/JoggingCartesianTab.cjs.map +0 -1
  433. package/dist/components/jogging/JoggingCartesianTab.d.ts.map +0 -1
  434. package/dist/components/jogging/JoggingCartesianTab.js.map +0 -1
  435. package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +0 -1
  436. package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +0 -1
  437. package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +0 -1
  438. package/dist/components/jogging/JoggingJointLimitDetector.js.map +0 -1
  439. package/dist/components/jogging/JoggingJointTab.cjs.map +0 -1
  440. package/dist/components/jogging/JoggingJointTab.d.ts.map +0 -1
  441. package/dist/components/jogging/JoggingJointTab.js.map +0 -1
  442. package/dist/components/jogging/JoggingJointValueControl.cjs.map +0 -1
  443. package/dist/components/jogging/JoggingJointValueControl.d.ts.map +0 -1
  444. package/dist/components/jogging/JoggingJointValueControl.js.map +0 -1
  445. package/dist/components/jogging/JoggingOptions.cjs.map +0 -1
  446. package/dist/components/jogging/JoggingOptions.d.ts.map +0 -1
  447. package/dist/components/jogging/JoggingOptions.js.map +0 -1
  448. package/dist/components/jogging/JoggingPanel.cjs.map +0 -1
  449. package/dist/components/jogging/JoggingPanel.d.ts.map +0 -1
  450. package/dist/components/jogging/JoggingPanel.js.map +0 -1
  451. package/dist/components/jogging/JoggingPanel.test.d.ts +0 -2
  452. package/dist/components/jogging/JoggingPanel.test.d.ts.map +0 -1
  453. package/dist/components/jogging/JoggingStore.cjs.map +0 -1
  454. package/dist/components/jogging/JoggingStore.d.ts.map +0 -1
  455. package/dist/components/jogging/JoggingStore.js.map +0 -1
  456. package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +0 -1
  457. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +0 -1
  458. package/dist/components/jogging/JoggingToggleButtonGroup.js.map +0 -1
  459. package/dist/components/jogging/JoggingVelocitySlider.cjs.map +0 -1
  460. package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +0 -1
  461. package/dist/components/jogging/JoggingVelocitySlider.js.map +0 -1
  462. package/dist/components/jogging/PoseCartesianValues.cjs.map +0 -1
  463. package/dist/components/jogging/PoseCartesianValues.d.ts.map +0 -1
  464. package/dist/components/jogging/PoseCartesianValues.js.map +0 -1
  465. package/dist/components/jogging/PoseJointValues.cjs.map +0 -1
  466. package/dist/components/jogging/PoseJointValues.d.ts.map +0 -1
  467. package/dist/components/jogging/PoseJointValues.js.map +0 -1
  468. package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts +0 -11
  469. package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts.map +0 -1
  470. package/dist/components/modal/NoMotionGroupModal.cjs.map +0 -1
  471. package/dist/components/modal/NoMotionGroupModal.d.ts.map +0 -1
  472. package/dist/components/modal/NoMotionGroupModal.js.map +0 -1
  473. package/dist/components/robots/AxisConfig.cjs.map +0 -1
  474. package/dist/components/robots/AxisConfig.d.ts.map +0 -1
  475. package/dist/components/robots/AxisConfig.js.map +0 -1
  476. package/dist/components/robots/DHLinearAxis.cjs.map +0 -1
  477. package/dist/components/robots/DHLinearAxis.d.ts.map +0 -1
  478. package/dist/components/robots/DHLinearAxis.js.map +0 -1
  479. package/dist/components/robots/DHRobot.cjs.map +0 -1
  480. package/dist/components/robots/DHRobot.d.ts.map +0 -1
  481. package/dist/components/robots/DHRobot.js.map +0 -1
  482. package/dist/components/robots/GenericRobot.cjs.map +0 -1
  483. package/dist/components/robots/GenericRobot.d.ts.map +0 -1
  484. package/dist/components/robots/GenericRobot.js.map +0 -1
  485. package/dist/components/robots/LinearAxis.cjs.map +0 -1
  486. package/dist/components/robots/LinearAxis.d.ts.map +0 -1
  487. package/dist/components/robots/LinearAxis.js.map +0 -1
  488. package/dist/components/robots/LinearAxisAnimator.cjs.map +0 -1
  489. package/dist/components/robots/LinearAxisAnimator.d.ts.map +0 -1
  490. package/dist/components/robots/LinearAxisAnimator.js.map +0 -1
  491. package/dist/components/robots/MotionGroupVisualizer.cjs.map +0 -1
  492. package/dist/components/robots/MotionGroupVisualizer.d.ts.map +0 -1
  493. package/dist/components/robots/MotionGroupVisualizer.js.map +0 -1
  494. package/dist/components/robots/Robot.cjs.map +0 -1
  495. package/dist/components/robots/Robot.d.ts.map +0 -1
  496. package/dist/components/robots/Robot.js.map +0 -1
  497. package/dist/components/robots/RobotAnimator.cjs.map +0 -1
  498. package/dist/components/robots/RobotAnimator.d.ts.map +0 -1
  499. package/dist/components/robots/RobotAnimator.js.map +0 -1
  500. package/dist/components/robots/RobotAnimator.test.d.ts +0 -2
  501. package/dist/components/robots/RobotAnimator.test.d.ts.map +0 -1
  502. package/dist/components/robots/SupportedLinearAxis.cjs.map +0 -1
  503. package/dist/components/robots/SupportedLinearAxis.d.ts.map +0 -1
  504. package/dist/components/robots/SupportedLinearAxis.js.map +0 -1
  505. package/dist/components/robots/SupportedRobot.cjs.map +0 -1
  506. package/dist/components/robots/SupportedRobot.d.ts.map +0 -1
  507. package/dist/components/robots/SupportedRobot.js.map +0 -1
  508. package/dist/components/robots/ghostStyle.cjs.map +0 -1
  509. package/dist/components/robots/ghostStyle.d.ts.map +0 -1
  510. package/dist/components/robots/ghostStyle.js.map +0 -1
  511. package/dist/components/robots/manufacturerHomePositions.cjs.map +0 -1
  512. package/dist/components/robots/manufacturerHomePositions.d.ts.map +0 -1
  513. package/dist/components/robots/manufacturerHomePositions.js.map +0 -1
  514. package/dist/components/robots/robotModelLogic.cjs.map +0 -1
  515. package/dist/components/robots/robotModelLogic.d.ts.map +0 -1
  516. package/dist/components/robots/robotModelLogic.js.map +0 -1
  517. package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +0 -1
  518. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +0 -1
  519. package/dist/components/safetyBar/ControllerTypeIndicator.js.map +0 -1
  520. package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +0 -1
  521. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +0 -1
  522. package/dist/components/safetyBar/IndicatorWithExplanation.js.map +0 -1
  523. package/dist/components/safetyBar/OperationModeIndicator.cjs.map +0 -1
  524. package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +0 -1
  525. package/dist/components/safetyBar/OperationModeIndicator.js.map +0 -1
  526. package/dist/components/safetyBar/SafetyBar.cjs.map +0 -1
  527. package/dist/components/safetyBar/SafetyBar.d.ts.map +0 -1
  528. package/dist/components/safetyBar/SafetyBar.js.map +0 -1
  529. package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +0 -1
  530. package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +0 -1
  531. package/dist/components/safetyBar/SafetyStateIndicator.js.map +0 -1
  532. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +0 -2
  533. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +0 -1
  534. package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +0 -3
  535. package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +0 -1
  536. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +0 -2
  537. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +0 -1
  538. package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +0 -3
  539. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +0 -11
  540. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +0 -1
  541. package/dist/components/safetyBar/icons/index.d.ts.map +0 -1
  542. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +0 -2
  543. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +0 -1
  544. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +0 -3
  545. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +0 -11
  546. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +0 -1
  547. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +0 -2
  548. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +0 -1
  549. package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +0 -3
  550. package/dist/components/safetyBar/icons/operation-mode-error.svg.js +0 -11
  551. package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +0 -1
  552. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +0 -2
  553. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +0 -1
  554. package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +0 -3
  555. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +0 -11
  556. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +0 -1
  557. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +0 -2
  558. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +0 -1
  559. package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +0 -3
  560. package/dist/components/safetyBar/icons/safety-state-error.svg.js +0 -11
  561. package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +0 -1
  562. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +0 -2
  563. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +0 -1
  564. package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +0 -3
  565. package/dist/components/safetyBar/icons/safety-state-estop.svg.js +0 -11
  566. package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +0 -1
  567. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +0 -2
  568. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +0 -1
  569. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +0 -3
  570. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +0 -11
  571. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +0 -1
  572. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +0 -2
  573. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +0 -1
  574. package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +0 -3
  575. package/dist/components/safetyBar/icons/safety-state-normal.svg.js +0 -11
  576. package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +0 -1
  577. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +0 -2
  578. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +0 -1
  579. package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +0 -3
  580. package/dist/components/safetyBar/icons/safety-state-stop.svg.js +0 -11
  581. package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +0 -1
  582. package/dist/components/utils/converters.cjs.map +0 -1
  583. package/dist/components/utils/converters.d.ts.map +0 -1
  584. package/dist/components/utils/converters.js.map +0 -1
  585. package/dist/components/utils/errorHandling.cjs.map +0 -1
  586. package/dist/components/utils/errorHandling.d.ts.map +0 -1
  587. package/dist/components/utils/errorHandling.js.map +0 -1
  588. package/dist/components/utils/errorHandling.test.d.ts +0 -2
  589. package/dist/components/utils/errorHandling.test.d.ts.map +0 -1
  590. package/dist/components/utils/hooks.cjs.map +0 -1
  591. package/dist/components/utils/hooks.d.ts.map +0 -1
  592. package/dist/components/utils/hooks.js.map +0 -1
  593. package/dist/components/utils/interpolation.cjs.map +0 -1
  594. package/dist/components/utils/interpolation.d.ts.map +0 -1
  595. package/dist/components/utils/interpolation.js.map +0 -1
  596. package/dist/components/utils/interpolation.test.d.ts +0 -2
  597. package/dist/components/utils/interpolation.test.d.ts.map +0 -1
  598. package/dist/core.cjs.map +0 -1
  599. package/dist/core.d.ts.map +0 -1
  600. package/dist/core.js.map +0 -1
  601. package/dist/externalizeComponent.cjs +0 -2
  602. package/dist/externalizeComponent.cjs.map +0 -1
  603. package/dist/externalizeComponent.d.ts.map +0 -1
  604. package/dist/externalizeComponent.js +0 -13
  605. package/dist/externalizeComponent.js.map +0 -1
  606. package/dist/i18n/config.cjs +0 -2
  607. package/dist/i18n/config.cjs.map +0 -1
  608. package/dist/i18n/config.d.ts.map +0 -1
  609. package/dist/i18n/config.js +0 -25
  610. package/dist/i18n/config.js.map +0 -1
  611. package/dist/i18n/locales/de/translations.json.cjs +0 -3
  612. package/dist/i18n/locales/de/translations.json.cjs.map +0 -1
  613. package/dist/i18n/locales/de/translations.json.js +0 -94
  614. package/dist/i18n/locales/de/translations.json.js.map +0 -1
  615. package/dist/i18n/locales/en/translations.json.cjs +0 -2
  616. package/dist/i18n/locales/en/translations.json.cjs.map +0 -1
  617. package/dist/i18n/locales/en/translations.json.js +0 -94
  618. package/dist/i18n/locales/en/translations.json.js.map +0 -1
  619. package/dist/icons/DropdownArrowIcon.cjs +0 -2
  620. package/dist/icons/DropdownArrowIcon.cjs.map +0 -1
  621. package/dist/icons/DropdownArrowIcon.d.ts.map +0 -1
  622. package/dist/icons/DropdownArrowIcon.js +0 -14
  623. package/dist/icons/DropdownArrowIcon.js.map +0 -1
  624. package/dist/icons/axis-x.svg.cjs +0 -2
  625. package/dist/icons/axis-x.svg.cjs.map +0 -1
  626. package/dist/icons/axis-x.svg.d.ts +0 -3
  627. package/dist/icons/axis-x.svg.js +0 -11
  628. package/dist/icons/axis-x.svg.js.map +0 -1
  629. package/dist/icons/axis-y.svg.cjs +0 -2
  630. package/dist/icons/axis-y.svg.cjs.map +0 -1
  631. package/dist/icons/axis-y.svg.d.ts +0 -3
  632. package/dist/icons/axis-y.svg.js +0 -11
  633. package/dist/icons/axis-y.svg.js.map +0 -1
  634. package/dist/icons/axis-z.svg.cjs +0 -2
  635. package/dist/icons/axis-z.svg.cjs.map +0 -1
  636. package/dist/icons/axis-z.svg.d.ts +0 -3
  637. package/dist/icons/axis-z.svg.js +0 -11
  638. package/dist/icons/axis-z.svg.js.map +0 -1
  639. package/dist/icons/home.svg.cjs +0 -2
  640. package/dist/icons/home.svg.cjs.map +0 -1
  641. package/dist/icons/home.svg.d.ts +0 -3
  642. package/dist/icons/home.svg.js +0 -11
  643. package/dist/icons/home.svg.js.map +0 -1
  644. package/dist/icons/index.d.ts.map +0 -1
  645. package/dist/icons/jog-minus.svg.cjs +0 -2
  646. package/dist/icons/jog-minus.svg.cjs.map +0 -1
  647. package/dist/icons/jog-minus.svg.d.ts +0 -3
  648. package/dist/icons/jog-minus.svg.js +0 -11
  649. package/dist/icons/jog-minus.svg.js.map +0 -1
  650. package/dist/icons/jog-plus.svg.cjs +0 -2
  651. package/dist/icons/jog-plus.svg.cjs.map +0 -1
  652. package/dist/icons/jog-plus.svg.d.ts +0 -3
  653. package/dist/icons/jog-plus.svg.js +0 -11
  654. package/dist/icons/jog-plus.svg.js.map +0 -1
  655. package/dist/icons/jogging.svg.cjs +0 -2
  656. package/dist/icons/jogging.svg.cjs.map +0 -1
  657. package/dist/icons/jogging.svg.d.ts +0 -3
  658. package/dist/icons/jogging.svg.js +0 -11
  659. package/dist/icons/jogging.svg.js.map +0 -1
  660. package/dist/icons/orientation-coord-system.svg.cjs +0 -2
  661. package/dist/icons/orientation-coord-system.svg.cjs.map +0 -1
  662. package/dist/icons/orientation-coord-system.svg.d.ts +0 -3
  663. package/dist/icons/orientation-coord-system.svg.js +0 -11
  664. package/dist/icons/orientation-coord-system.svg.js.map +0 -1
  665. package/dist/icons/orientation-tool.svg.cjs +0 -2
  666. package/dist/icons/orientation-tool.svg.cjs.map +0 -1
  667. package/dist/icons/orientation-tool.svg.d.ts +0 -3
  668. package/dist/icons/orientation-tool.svg.js +0 -11
  669. package/dist/icons/orientation-tool.svg.js.map +0 -1
  670. package/dist/icons/robot.svg.cjs +0 -2
  671. package/dist/icons/robot.svg.cjs.map +0 -1
  672. package/dist/icons/robot.svg.d.ts +0 -3
  673. package/dist/icons/robot.svg.js.map +0 -1
  674. package/dist/icons/rotation.svg.cjs +0 -2
  675. package/dist/icons/rotation.svg.cjs.map +0 -1
  676. package/dist/icons/rotation.svg.d.ts +0 -3
  677. package/dist/icons/rotation.svg.js +0 -11
  678. package/dist/icons/rotation.svg.js.map +0 -1
  679. package/dist/icons/wbLogo.svg.cjs +0 -2
  680. package/dist/icons/wbLogo.svg.cjs.map +0 -1
  681. package/dist/icons/wbLogo.svg.d.ts +0 -3
  682. package/dist/icons/wbLogo.svg.js +0 -11
  683. package/dist/icons/wbLogo.svg.js.map +0 -1
  684. package/dist/index.cjs.map +0 -1
  685. package/dist/index.d.ts.map +0 -1
  686. package/dist/index.js.map +0 -1
  687. package/dist/lib/ConnectedMotionGroup.cjs +0 -4
  688. package/dist/lib/ConnectedMotionGroup.cjs.map +0 -1
  689. package/dist/lib/ConnectedMotionGroup.d.ts.map +0 -1
  690. package/dist/lib/ConnectedMotionGroup.js +0 -250
  691. package/dist/lib/ConnectedMotionGroup.js.map +0 -1
  692. package/dist/lib/JoggerConnection.cjs +0 -2
  693. package/dist/lib/JoggerConnection.cjs.map +0 -1
  694. package/dist/lib/JoggerConnection.d.ts.map +0 -1
  695. package/dist/lib/JoggerConnection.js +0 -342
  696. package/dist/lib/JoggerConnection.js.map +0 -1
  697. package/dist/lib/JoggerConnection.test.d.ts +0 -2
  698. package/dist/lib/JoggerConnection.test.d.ts.map +0 -1
  699. package/dist/lib/MotionStreamConnection.cjs +0 -3
  700. package/dist/lib/MotionStreamConnection.cjs.map +0 -1
  701. package/dist/lib/MotionStreamConnection.d.ts.map +0 -1
  702. package/dist/lib/MotionStreamConnection.js +0 -94
  703. package/dist/lib/MotionStreamConnection.js.map +0 -1
  704. package/dist/lib/MotionStreamConnection.test.d.ts +0 -2
  705. package/dist/lib/MotionStreamConnection.test.d.ts.map +0 -1
  706. package/dist/lib/motionStateUpdate.cjs +0 -2
  707. package/dist/lib/motionStateUpdate.cjs.map +0 -1
  708. package/dist/lib/motionStateUpdate.d.ts.map +0 -1
  709. package/dist/lib/motionStateUpdate.js +0 -49
  710. package/dist/lib/motionStateUpdate.js.map +0 -1
  711. package/dist/lib/motionStateUpdate.test.d.ts +0 -2
  712. package/dist/lib/motionStateUpdate.test.d.ts.map +0 -1
  713. package/dist/test/consumer.test.d.ts +0 -2
  714. package/dist/test/consumer.test.d.ts.map +0 -1
  715. package/dist/test/setup.d.ts +0 -2
  716. package/dist/test/setup.d.ts.map +0 -1
  717. package/dist/themes/createDarkTheme.cjs +0 -2
  718. package/dist/themes/createDarkTheme.cjs.map +0 -1
  719. package/dist/themes/createDarkTheme.d.ts.map +0 -1
  720. package/dist/themes/createDarkTheme.js +0 -344
  721. package/dist/themes/createDarkTheme.js.map +0 -1
  722. package/dist/themes/createLightTheme.cjs +0 -2
  723. package/dist/themes/createLightTheme.cjs.map +0 -1
  724. package/dist/themes/createLightTheme.d.ts.map +0 -1
  725. package/dist/themes/createLightTheme.js +0 -9
  726. package/dist/themes/createLightTheme.js.map +0 -1
  727. package/dist/themes/themeTypes.d.ts.map +0 -1
  728. package/dist/themes/theming.cjs +0 -2
  729. package/dist/themes/theming.cjs.map +0 -1
  730. package/dist/themes/theming.d.ts.map +0 -1
  731. package/dist/themes/theming.js +0 -14
  732. package/dist/themes/theming.js.map +0 -1
  733. package/dist/wb-icons.cjs.map +0 -1
  734. package/dist/wb-icons.d.ts.map +0 -1
  735. package/dist/wb-icons.js.map +0 -1
  736. package/src/3d.ts +0 -18
  737. package/src/Setup.tsx +0 -33
  738. package/src/components/3d-viewport/CoordinateSystemTransform.tsx +0 -57
  739. package/src/components/3d-viewport/PresetEnvironment.tsx +0 -81
  740. package/src/components/3d-viewport/SafetyZonesRenderer.tsx +0 -198
  741. package/src/components/3d-viewport/TrajectoryRenderer.tsx +0 -41
  742. package/src/components/3d-viewport/collider/ColliderCollection.tsx +0 -35
  743. package/src/components/3d-viewport/collider/ColliderElement.tsx +0 -36
  744. package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +0 -26
  745. package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +0 -48
  746. package/src/components/AppHeader.md +0 -84
  747. package/src/components/AppHeader.tsx +0 -197
  748. package/src/components/ConsoleFilter.tsx +0 -24
  749. package/src/components/CopyableText.tsx +0 -89
  750. package/src/components/CycleTimer/CycleTimer.ts +0 -8
  751. package/src/components/CycleTimer/DefaultVariant.tsx +0 -326
  752. package/src/components/CycleTimer/SmallVariant.tsx +0 -229
  753. package/src/components/CycleTimer/index.tsx +0 -158
  754. package/src/components/CycleTimer/types.ts +0 -58
  755. package/src/components/CycleTimer/useAnimations.ts +0 -202
  756. package/src/components/CycleTimer/useTimerLogic.ts +0 -330
  757. package/src/components/CycleTimer/utils.ts +0 -122
  758. package/src/components/CycleTimer.tsx +0 -8
  759. package/src/components/DataGrid.tsx +0 -664
  760. package/src/components/LoadingCover.tsx +0 -91
  761. package/src/components/LogPanel.tsx +0 -71
  762. package/src/components/LogStore.ts +0 -46
  763. package/src/components/LogViewer.tsx +0 -368
  764. package/src/components/ProgramControl.tsx +0 -267
  765. package/src/components/ProgramStateIndicator.tsx +0 -195
  766. package/src/components/RobotCard.tsx +0 -495
  767. package/src/components/RobotListItem.tsx +0 -155
  768. package/src/components/RobotSetupReadinessIndicator.test.tsx +0 -60
  769. package/src/components/RobotSetupReadinessIndicator.tsx +0 -161
  770. package/src/components/SelectableFab.tsx +0 -52
  771. package/src/components/TabBar.tsx +0 -325
  772. package/src/components/ThemeSelect.tsx +0 -51
  773. package/src/components/Timer/Timer.ts +0 -4
  774. package/src/components/Timer/TimerDefaultVariant.tsx +0 -143
  775. package/src/components/Timer/TimerSmallVariant.tsx +0 -141
  776. package/src/components/Timer/index.tsx +0 -103
  777. package/src/components/Timer/types.ts +0 -38
  778. package/src/components/Timer/useTimerAnimations.ts +0 -94
  779. package/src/components/Timer/useTimerLogic.ts +0 -214
  780. package/src/components/Timer/utils.ts +0 -87
  781. package/src/components/Timer.ts +0 -4
  782. package/src/components/TransparentOverlay.tsx +0 -28
  783. package/src/components/VelocitySlider.tsx +0 -117
  784. package/src/components/experimental/utils/AdornedSelect.tsx +0 -38
  785. package/src/components/jogging/JoggingBlocked.tsx +0 -43
  786. package/src/components/jogging/JoggingCartesianAxisControl.tsx +0 -237
  787. package/src/components/jogging/JoggingCartesianTab.tsx +0 -349
  788. package/src/components/jogging/JoggingFreedriveTab.tsx +0 -8
  789. package/src/components/jogging/JoggingJointLimitDetector.tsx +0 -57
  790. package/src/components/jogging/JoggingJointTab.tsx +0 -126
  791. package/src/components/jogging/JoggingJointValueControl.tsx +0 -293
  792. package/src/components/jogging/JoggingOptions.tsx +0 -163
  793. package/src/components/jogging/JoggingPanel.test.tsx +0 -645
  794. package/src/components/jogging/JoggingPanel.tsx +0 -204
  795. package/src/components/jogging/JoggingStore.ts +0 -485
  796. package/src/components/jogging/JoggingToggleButtonGroup.tsx +0 -25
  797. package/src/components/jogging/JoggingVelocitySlider.tsx +0 -39
  798. package/src/components/jogging/PoseCartesianValues.tsx +0 -55
  799. package/src/components/jogging/PoseJointValues.tsx +0 -54
  800. package/src/components/jogging/__fixtures__/motionStreamMockData.ts +0 -136
  801. package/src/components/modal/NoMotionGroupModal.tsx +0 -91
  802. package/src/components/robots/AxisConfig.ts +0 -3
  803. package/src/components/robots/DHLinearAxis.tsx +0 -147
  804. package/src/components/robots/DHRobot.tsx +0 -152
  805. package/src/components/robots/GenericRobot.tsx +0 -137
  806. package/src/components/robots/LinearAxis.tsx +0 -74
  807. package/src/components/robots/LinearAxisAnimator.tsx +0 -118
  808. package/src/components/robots/MotionGroupVisualizer.tsx +0 -73
  809. package/src/components/robots/Robot.tsx +0 -57
  810. package/src/components/robots/RobotAnimator.test.tsx +0 -98
  811. package/src/components/robots/RobotAnimator.tsx +0 -116
  812. package/src/components/robots/SupportedLinearAxis.tsx +0 -110
  813. package/src/components/robots/SupportedRobot.tsx +0 -111
  814. package/src/components/robots/ghostStyle.ts +0 -71
  815. package/src/components/robots/manufacturerHomePositions.ts +0 -76
  816. package/src/components/robots/robotModelLogic.ts +0 -158
  817. package/src/components/safetyBar/ControllerTypeIndicator.tsx +0 -79
  818. package/src/components/safetyBar/IndicatorWithExplanation.tsx +0 -137
  819. package/src/components/safetyBar/OperationModeIndicator.tsx +0 -98
  820. package/src/components/safetyBar/SafetyBar.tsx +0 -72
  821. package/src/components/safetyBar/SafetyStateIndicator.tsx +0 -163
  822. package/src/components/safetyBar/icons/controller-type-physical.svg +0 -1
  823. package/src/components/safetyBar/icons/controller-type-virtual.svg +0 -1
  824. package/src/components/safetyBar/icons/index.ts +0 -10
  825. package/src/components/safetyBar/icons/operation-mode-automatic.svg +0 -1
  826. package/src/components/safetyBar/icons/operation-mode-error.svg +0 -1
  827. package/src/components/safetyBar/icons/operation-mode-manual.svg +0 -1
  828. package/src/components/safetyBar/icons/safety-state-error.svg +0 -1
  829. package/src/components/safetyBar/icons/safety-state-estop.svg +0 -1
  830. package/src/components/safetyBar/icons/safety-state-manual-action-required.svg +0 -1
  831. package/src/components/safetyBar/icons/safety-state-normal.svg +0 -1
  832. package/src/components/safetyBar/icons/safety-state-stop.svg +0 -1
  833. package/src/components/utils/converters.ts +0 -90
  834. package/src/components/utils/errorHandling.test.ts +0 -41
  835. package/src/components/utils/errorHandling.ts +0 -38
  836. package/src/components/utils/hooks.tsx +0 -55
  837. package/src/components/utils/interpolation.test.ts +0 -1138
  838. package/src/components/utils/interpolation.ts +0 -380
  839. package/src/core.ts +0 -33
  840. package/src/declarations.d.ts +0 -10
  841. package/src/env.d.ts +0 -3
  842. package/src/externalizeComponent.tsx +0 -28
  843. package/src/i18n/config.ts +0 -26
  844. package/src/i18n/locales/de/translations.json +0 -89
  845. package/src/i18n/locales/en/translations.json +0 -90
  846. package/src/icons/DropdownArrowIcon.tsx +0 -12
  847. package/src/icons/axis-x.svg +0 -1
  848. package/src/icons/axis-y.svg +0 -1
  849. package/src/icons/axis-z.svg +0 -1
  850. package/src/icons/home.svg +0 -1
  851. package/src/icons/index.ts +0 -12
  852. package/src/icons/jog-minus.svg +0 -5
  853. package/src/icons/jog-plus.svg +0 -9
  854. package/src/icons/jogging.svg +0 -1
  855. package/src/icons/orientation-coord-system.svg +0 -1
  856. package/src/icons/orientation-tool.svg +0 -1
  857. package/src/icons/robot.svg +0 -1
  858. package/src/icons/rotation.svg +0 -3
  859. package/src/icons/wbLogo.svg +0 -1
  860. package/src/index.ts +0 -4
  861. package/src/lib/ConnectedMotionGroup.ts +0 -441
  862. package/src/lib/JoggerConnection.test.ts +0 -122
  863. package/src/lib/JoggerConnection.ts +0 -694
  864. package/src/lib/MotionStreamConnection.test.ts +0 -23
  865. package/src/lib/MotionStreamConnection.ts +0 -186
  866. package/src/lib/motionStateUpdate.test.ts +0 -28
  867. package/src/lib/motionStateUpdate.ts +0 -117
  868. package/src/test/consumer.test.ts +0 -230
  869. package/src/test/setup.ts +0 -111
  870. package/src/themes/createDarkTheme.ts +0 -343
  871. package/src/themes/createLightTheme.ts +0 -8
  872. package/src/themes/themeTypes.ts +0 -96
  873. package/src/themes/theming.ts +0 -29
  874. package/src/wb-icons.ts +0 -3
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingJointValueControl.cjs","sources":["../../../src/components/jogging/JoggingJointValueControl.tsx"],"sourcesContent":["import ChevronLeft from \"@mui/icons-material/ChevronLeft\"\nimport ChevronRight from \"@mui/icons-material/ChevronRight\"\nimport { useTheme } from \"@mui/material/styles\"\nimport IconButton from \"@mui/material/IconButton\"\nimport Slider from \"@mui/material/Slider\"\nimport Typography from \"@mui/material/Typography\"\nimport Stack from \"@mui/material/Stack\"\nimport { radiansToDegrees } from \"@wandelbots/nova-js\"\nimport throttle from \"lodash-es/throttle\"\nimport { observer, useLocalObservable } from \"mobx-react-lite\"\nimport { useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { useAnimationFrame } from \"../utils/hooks\"\n\ntype JoggingJointValueControlProps = {\n startJogging: (direction: \"-\" | \"+\") => void\n stopJogging: () => void\n lowerLimit?: number\n upperLimit?: number\n useDegree: boolean\n getValue: () => number | undefined\n disabled?: boolean\n} & React.ComponentProps<typeof Stack>\n\n/** A input widget to control an individual joint */\nexport const JoggingJointValueControl = externalizeComponent(\n observer(\n ({\n startJogging,\n stopJogging,\n lowerLimit,\n upperLimit,\n useDegree,\n getValue,\n disabled,\n ...rest\n }: JoggingJointValueControlProps) => {\n const { t } = useTranslation()\n const [currentValue, setCurrentValue] = useState<number | undefined>()\n const theme = useTheme()\n\n const pressedButtonStyle = {\n background: theme.palette.backgroundPaperElevation?.[4],\n color: theme.palette.backgroundPaperElevation?.[11],\n }\n\n const state = useLocalObservable(() => ({\n activeJoggingDir: null as \"-\" | \"+\" | null,\n\n startJogging(dir: \"-\" | \"+\") {\n this.activeJoggingDir = dir\n startJogging(dir)\n },\n\n stopJogging() {\n this.activeJoggingDir = null\n stopJogging()\n },\n }))\n\n const updateValue = throttle(() => {\n const newValue = useDegree ? convertToDegree(getValue()) : getValue()\n if (\n newValue === undefined ||\n currentValue === undefined ||\n Math.abs(currentValue - newValue) > 1e-9\n ) {\n setCurrentValue(newValue)\n }\n }, 50)\n\n useAnimationFrame(updateValue)\n\n function convertToDegree(value: number | undefined) {\n if (value === undefined) {\n return undefined\n }\n return radiansToDegrees(value)\n }\n\n function onPointerDownMinus(ev: React.PointerEvent) {\n // Stop right click from triggering jog\n if (ev.button === 0) state.startJogging(\"-\")\n }\n\n function onPointerDownPlus(ev: React.PointerEvent) {\n if (ev.button === 0) state.startJogging(\"+\")\n }\n\n function onPointerUp(ev: React.PointerEvent) {\n state.stopJogging()\n }\n\n function onPointerOut(ev: React.PointerEvent) {\n state.stopJogging()\n }\n\n function formatDegrees(value: number | undefined, precision = 1) {\n if (value === undefined || Number.isNaN(value)) return \"\"\n\n const output = t(\"General.degree.variable\", {\n amount: value.toFixed(precision),\n })\n\n if (value > 0 && precision === 0) {\n return `+${output}`\n } else {\n return output\n }\n }\n function formatMm(value: number | undefined, precision = 1) {\n if (value === undefined || Number.isNaN(value)) return \"\"\n\n const output = t(\"General.mm.variable\", {\n amount: value.toFixed(precision),\n })\n\n if (value > 0 && precision === 0) {\n return `+${output}`\n } else {\n return output\n }\n }\n\n return (\n <Stack\n height=\"64px\"\n width=\"100%\"\n maxWidth=\"260px\"\n direction=\"row\"\n {...rest}\n sx={{\n \"& .MuiIconButton-root\": {\n width: \"52px\",\n color: theme.palette.text.primary,\n alignContent: \"center\",\n backgroundColor: theme.palette.backgroundPaperElevation?.[11],\n \"& svg\": {\n width: \"42px\",\n height: \"42px\",\n },\n\n \"&.Mui-disabled\": {\n backgroundColor: theme.palette.backgroundPaperElevation?.[11],\n color: theme.palette.action.disabled,\n opacity: 1,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.backgroundPaperElevation?.[9],\n },\n \"&:active\": {\n ...pressedButtonStyle,\n },\n },\n }}\n >\n <IconButton\n onPointerDown={onPointerDownMinus}\n onPointerUp={onPointerUp}\n onPointerOut={onPointerOut}\n disabled={disabled}\n disableRipple\n sx={{\n borderRadius: \"16px 0px 0px 16px\",\n ...(state.activeJoggingDir === \"-\" ? pressedButtonStyle : {}),\n }}\n >\n <ChevronLeft\n sx={{\n pointerEvents: \"none\",\n color:\n theme.componentsExt?.JoggingPanel?.JoggingJoint?.Joint\n ?.arrowColor,\n }}\n />\n </IconButton>\n\n <Stack\n flexGrow={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n sx={{\n borderStyle: \"solid\",\n borderLeftWidth: 0,\n borderRightWidth: 0,\n border: \"none\",\n backgroundColor: theme.palette.backgroundPaperElevation?.[11],\n paddingLeft: \"20px\",\n paddingRight: \"20px\",\n zIndex: 1,\n }}\n >\n <Typography\n sx={{\n fontSize: \"15px\",\n fontWeight: 700,\n position: \"relative\",\n top: \"5px\",\n fontVariantNumeric: \"tabular-nums\",\n minWidth: \"80px\",\n textAlign: \"center\",\n\n color: disabled\n ? theme.palette.action.disabled\n : theme.palette.text.primary,\n }}\n >\n {useDegree ? formatDegrees(currentValue) : formatMm(currentValue)}\n </Typography>\n\n <Slider\n disabled\n aria-label=\"Joint position\"\n min={useDegree ? convertToDegree(lowerLimit) : lowerLimit}\n max={useDegree ? convertToDegree(upperLimit) : upperLimit}\n value={currentValue || 0}\n track={false}\n sx={{\n \"& .MuiSlider-mark\": {\n display: \"none\",\n },\n \"& .MuiSlider-thumb\": {\n width: \"5px\",\n height: \"12px\",\n borderRadius: \"2px\",\n color: disabled\n ? theme.palette.action.disabled\n : theme.palette.text.primary,\n },\n \"& .MuiSlider-markLabel\": {\n top: \"20px\",\n fontSize: \"12px\",\n color: disabled\n ? theme.palette.action.disabled\n : theme.palette.text.secondary,\n },\n \"& .MuiSlider-rail\": {\n backgroundColor: theme.palette.backgroundPaperElevation?.[5],\n opacity: 1,\n },\n }}\n marks={\n lowerLimit !== undefined &&\n upperLimit !== undefined && [\n {\n value: (useDegree\n ? convertToDegree(lowerLimit)\n : lowerLimit) as number,\n label: useDegree\n ? formatDegrees(convertToDegree(lowerLimit), 0)\n : formatMm(lowerLimit),\n },\n {\n value: (useDegree\n ? convertToDegree(upperLimit)\n : upperLimit) as number,\n label: useDegree\n ? formatDegrees(convertToDegree(upperLimit), 0)\n : formatMm(upperLimit),\n },\n ]\n }\n />\n </Stack>\n\n <IconButton\n onPointerDown={onPointerDownPlus}\n onPointerUp={onPointerUp}\n onPointerOut={onPointerOut}\n disabled={disabled}\n disableRipple\n sx={{\n borderRadius: \"0px 16px 16px 0px\",\n ...(state.activeJoggingDir === \"+\" ? pressedButtonStyle : {}),\n }}\n >\n <ChevronRight\n sx={{\n pointerEvents: \"none\",\n color:\n theme.componentsExt?.JoggingPanel?.JoggingJoint?.Joint\n ?.arrowColor,\n }}\n />\n </IconButton>\n </Stack>\n )\n },\n ),\n)\n\nexport default JoggingJointValueControl\n"],"names":["JoggingJointValueControl","externalizeComponent","observer","startJogging","stopJogging","lowerLimit","upperLimit","useDegree","getValue","disabled","rest","t","useTranslation","currentValue","setCurrentValue","useState","theme","useTheme","pressedButtonStyle","_a","_b","state","useLocalObservable","dir","updateValue","throttle","newValue","convertToDegree","useAnimationFrame","value","radiansToDegrees","onPointerDownMinus","ev","onPointerDownPlus","onPointerUp","onPointerOut","formatDegrees","precision","output","formatMm","jsxs","Stack","_c","_d","_e","jsx","IconButton","ChevronLeft","_i","_h","_g","_f","_j","Typography","Slider","_k","ChevronRight","_o","_n","_m","_l"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingJointValueControl.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingJointValueControl.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,qBAAqB,CAAA;AASvC,KAAK,6BAA6B,GAAG;IACnC,YAAY,EAAE,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,KAAK,IAAI,CAAA;IAC5C,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,CAAA;AAEtC,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,mGAW9B,6BAA6B;;CA6PnC,CAAA;AAED,eAAe,wBAAwB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingJointValueControl.js","sources":["../../../src/components/jogging/JoggingJointValueControl.tsx"],"sourcesContent":["import ChevronLeft from \"@mui/icons-material/ChevronLeft\"\nimport ChevronRight from \"@mui/icons-material/ChevronRight\"\nimport { useTheme } from \"@mui/material/styles\"\nimport IconButton from \"@mui/material/IconButton\"\nimport Slider from \"@mui/material/Slider\"\nimport Typography from \"@mui/material/Typography\"\nimport Stack from \"@mui/material/Stack\"\nimport { radiansToDegrees } from \"@wandelbots/nova-js\"\nimport throttle from \"lodash-es/throttle\"\nimport { observer, useLocalObservable } from \"mobx-react-lite\"\nimport { useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { useAnimationFrame } from \"../utils/hooks\"\n\ntype JoggingJointValueControlProps = {\n startJogging: (direction: \"-\" | \"+\") => void\n stopJogging: () => void\n lowerLimit?: number\n upperLimit?: number\n useDegree: boolean\n getValue: () => number | undefined\n disabled?: boolean\n} & React.ComponentProps<typeof Stack>\n\n/** A input widget to control an individual joint */\nexport const JoggingJointValueControl = externalizeComponent(\n observer(\n ({\n startJogging,\n stopJogging,\n lowerLimit,\n upperLimit,\n useDegree,\n getValue,\n disabled,\n ...rest\n }: JoggingJointValueControlProps) => {\n const { t } = useTranslation()\n const [currentValue, setCurrentValue] = useState<number | undefined>()\n const theme = useTheme()\n\n const pressedButtonStyle = {\n background: theme.palette.backgroundPaperElevation?.[4],\n color: theme.palette.backgroundPaperElevation?.[11],\n }\n\n const state = useLocalObservable(() => ({\n activeJoggingDir: null as \"-\" | \"+\" | null,\n\n startJogging(dir: \"-\" | \"+\") {\n this.activeJoggingDir = dir\n startJogging(dir)\n },\n\n stopJogging() {\n this.activeJoggingDir = null\n stopJogging()\n },\n }))\n\n const updateValue = throttle(() => {\n const newValue = useDegree ? convertToDegree(getValue()) : getValue()\n if (\n newValue === undefined ||\n currentValue === undefined ||\n Math.abs(currentValue - newValue) > 1e-9\n ) {\n setCurrentValue(newValue)\n }\n }, 50)\n\n useAnimationFrame(updateValue)\n\n function convertToDegree(value: number | undefined) {\n if (value === undefined) {\n return undefined\n }\n return radiansToDegrees(value)\n }\n\n function onPointerDownMinus(ev: React.PointerEvent) {\n // Stop right click from triggering jog\n if (ev.button === 0) state.startJogging(\"-\")\n }\n\n function onPointerDownPlus(ev: React.PointerEvent) {\n if (ev.button === 0) state.startJogging(\"+\")\n }\n\n function onPointerUp(ev: React.PointerEvent) {\n state.stopJogging()\n }\n\n function onPointerOut(ev: React.PointerEvent) {\n state.stopJogging()\n }\n\n function formatDegrees(value: number | undefined, precision = 1) {\n if (value === undefined || Number.isNaN(value)) return \"\"\n\n const output = t(\"General.degree.variable\", {\n amount: value.toFixed(precision),\n })\n\n if (value > 0 && precision === 0) {\n return `+${output}`\n } else {\n return output\n }\n }\n function formatMm(value: number | undefined, precision = 1) {\n if (value === undefined || Number.isNaN(value)) return \"\"\n\n const output = t(\"General.mm.variable\", {\n amount: value.toFixed(precision),\n })\n\n if (value > 0 && precision === 0) {\n return `+${output}`\n } else {\n return output\n }\n }\n\n return (\n <Stack\n height=\"64px\"\n width=\"100%\"\n maxWidth=\"260px\"\n direction=\"row\"\n {...rest}\n sx={{\n \"& .MuiIconButton-root\": {\n width: \"52px\",\n color: theme.palette.text.primary,\n alignContent: \"center\",\n backgroundColor: theme.palette.backgroundPaperElevation?.[11],\n \"& svg\": {\n width: \"42px\",\n height: \"42px\",\n },\n\n \"&.Mui-disabled\": {\n backgroundColor: theme.palette.backgroundPaperElevation?.[11],\n color: theme.palette.action.disabled,\n opacity: 1,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.backgroundPaperElevation?.[9],\n },\n \"&:active\": {\n ...pressedButtonStyle,\n },\n },\n }}\n >\n <IconButton\n onPointerDown={onPointerDownMinus}\n onPointerUp={onPointerUp}\n onPointerOut={onPointerOut}\n disabled={disabled}\n disableRipple\n sx={{\n borderRadius: \"16px 0px 0px 16px\",\n ...(state.activeJoggingDir === \"-\" ? pressedButtonStyle : {}),\n }}\n >\n <ChevronLeft\n sx={{\n pointerEvents: \"none\",\n color:\n theme.componentsExt?.JoggingPanel?.JoggingJoint?.Joint\n ?.arrowColor,\n }}\n />\n </IconButton>\n\n <Stack\n flexGrow={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n sx={{\n borderStyle: \"solid\",\n borderLeftWidth: 0,\n borderRightWidth: 0,\n border: \"none\",\n backgroundColor: theme.palette.backgroundPaperElevation?.[11],\n paddingLeft: \"20px\",\n paddingRight: \"20px\",\n zIndex: 1,\n }}\n >\n <Typography\n sx={{\n fontSize: \"15px\",\n fontWeight: 700,\n position: \"relative\",\n top: \"5px\",\n fontVariantNumeric: \"tabular-nums\",\n minWidth: \"80px\",\n textAlign: \"center\",\n\n color: disabled\n ? theme.palette.action.disabled\n : theme.palette.text.primary,\n }}\n >\n {useDegree ? formatDegrees(currentValue) : formatMm(currentValue)}\n </Typography>\n\n <Slider\n disabled\n aria-label=\"Joint position\"\n min={useDegree ? convertToDegree(lowerLimit) : lowerLimit}\n max={useDegree ? convertToDegree(upperLimit) : upperLimit}\n value={currentValue || 0}\n track={false}\n sx={{\n \"& .MuiSlider-mark\": {\n display: \"none\",\n },\n \"& .MuiSlider-thumb\": {\n width: \"5px\",\n height: \"12px\",\n borderRadius: \"2px\",\n color: disabled\n ? theme.palette.action.disabled\n : theme.palette.text.primary,\n },\n \"& .MuiSlider-markLabel\": {\n top: \"20px\",\n fontSize: \"12px\",\n color: disabled\n ? theme.palette.action.disabled\n : theme.palette.text.secondary,\n },\n \"& .MuiSlider-rail\": {\n backgroundColor: theme.palette.backgroundPaperElevation?.[5],\n opacity: 1,\n },\n }}\n marks={\n lowerLimit !== undefined &&\n upperLimit !== undefined && [\n {\n value: (useDegree\n ? convertToDegree(lowerLimit)\n : lowerLimit) as number,\n label: useDegree\n ? formatDegrees(convertToDegree(lowerLimit), 0)\n : formatMm(lowerLimit),\n },\n {\n value: (useDegree\n ? convertToDegree(upperLimit)\n : upperLimit) as number,\n label: useDegree\n ? formatDegrees(convertToDegree(upperLimit), 0)\n : formatMm(upperLimit),\n },\n ]\n }\n />\n </Stack>\n\n <IconButton\n onPointerDown={onPointerDownPlus}\n onPointerUp={onPointerUp}\n onPointerOut={onPointerOut}\n disabled={disabled}\n disableRipple\n sx={{\n borderRadius: \"0px 16px 16px 0px\",\n ...(state.activeJoggingDir === \"+\" ? pressedButtonStyle : {}),\n }}\n >\n <ChevronRight\n sx={{\n pointerEvents: \"none\",\n color:\n theme.componentsExt?.JoggingPanel?.JoggingJoint?.Joint\n ?.arrowColor,\n }}\n />\n </IconButton>\n </Stack>\n )\n },\n ),\n)\n\nexport default JoggingJointValueControl\n"],"names":["JoggingJointValueControl","externalizeComponent","observer","startJogging","stopJogging","lowerLimit","upperLimit","useDegree","getValue","disabled","rest","t","useTranslation","currentValue","setCurrentValue","useState","theme","useTheme","pressedButtonStyle","_a","_b","state","useLocalObservable","dir","updateValue","throttle","newValue","convertToDegree","useAnimationFrame","value","radiansToDegrees","onPointerDownMinus","ev","onPointerDownPlus","onPointerUp","onPointerOut","formatDegrees","precision","output","formatMm","jsxs","Stack","_c","_d","_e","jsx","IconButton","ChevronLeft","_i","_h","_g","_f","_j","Typography","Slider","_k","ChevronRight","_o","_n","_m","_l"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingOptions.cjs","sources":["../../../src/components/jogging/JoggingOptions.tsx"],"sourcesContent":["import Box from \"@mui/material/Box\"\nimport MenuItem from \"@mui/material/MenuItem\"\nimport { observer } from \"mobx-react-lite\"\nimport { useId } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport AdornedSelect from \"../experimental/utils/AdornedSelect\"\nimport {\n ORIENTATION_IDS,\n type IncrementOptionId,\n type JoggingStore,\n type OrientationId,\n} from \"./JoggingStore\"\n\nexport const JoggingOptions = observer(\n ({ store, useDegree }: { store: JoggingStore; useDegree: boolean }) => {\n const { t } = useTranslation()\n const componentId = useId()\n const joggingOptions: React.ReactElement[] = []\n\n function translateOrientation(orientation: OrientationId): string {\n switch (orientation) {\n case \"coordsys\":\n return t(\"Jogging.Orientation.coordsys\")\n case \"tool\":\n return t(\"Jogging.Orientation.tool\")\n default:\n return orientation\n }\n }\n\n if (store.showCoordSystemSelect) {\n joggingOptions.push(\n <AdornedSelect\n key=\"coord\"\n labelId={`jogging-coord-select-${componentId}`}\n labelValue={t(\"Jogging.CoordinateSystem.hlb\")}\n value={store.selectedCoordSystemId}\n size=\"small\"\n variant=\"filled\"\n displayEmpty={true}\n onChange={(event) =>\n store.setSelectedCoordSystemId(event.target.value as string)\n }\n disabled={store.isLocked}\n >\n {store.coordSystems.map((cs) => (\n <MenuItem key={cs.coordinate_system} value={cs.coordinate_system}>\n {cs.name && store.coordSystemCountByName[cs.name] > 1\n ? `${cs.name} / ${cs.coordinate_system}`\n : cs.name || cs.coordinate_system}\n </MenuItem>\n ))}\n </AdornedSelect>,\n )\n }\n\n if (store.showTcpSelect) {\n joggingOptions.push(\n <AdornedSelect\n key=\"tcp\"\n labelId={`jogging-tcp-select-${componentId}`}\n labelValue=\"TCP\"\n value={store.selectedTcpId}\n size=\"small\"\n variant=\"filled\"\n onChange={(event) =>\n store.setSelectedTcpId(event.target.value as string)\n }\n disabled={store.isLocked}\n >\n {store.tcps.map((tcp) => (\n <MenuItem key={tcp.id} value={tcp.id}>\n {tcp.id}\n </MenuItem>\n ))}\n </AdornedSelect>,\n )\n }\n\n if (store.showOrientationSelect) {\n joggingOptions.push(\n <AdornedSelect\n key=\"orientation\"\n labelValue={t(\"Jogging.Cartesian.Orientation.lb\")}\n labelId={`orientation-select-${componentId}`}\n value={store.selectedOrientation}\n onChange={(event) =>\n store.setSelectedOrientation(event.target.value as OrientationId)\n }\n disabled={store.isLocked}\n >\n {ORIENTATION_IDS.map((orientationId) => (\n <MenuItem key={orientationId} value={orientationId}>\n {translateOrientation(orientationId)}\n </MenuItem>\n ))}\n </AdornedSelect>,\n )\n }\n\n if (store.showIncrementSelect) {\n joggingOptions.push(\n <AdornedSelect\n key=\"increment\"\n labelValue={t(\"Jogging.Increment.hlb\")}\n labelId={`jogging-increment-select-${componentId}`}\n size=\"small\"\n variant=\"filled\"\n value={store.activeDiscreteIncrement?.id || \"continuous\"}\n onChange={(event) =>\n store.setSelectedIncrementId(\n event.target.value as IncrementOptionId,\n )\n }\n disabled={store.isLocked}\n >\n <MenuItem key=\"continuous\" value=\"continuous\">\n {t(\"Jogging.Increment.Continuous.dd\")}\n </MenuItem>\n\n {store.selectedOrientation === \"tool\"\n ? null\n : store.discreteIncrementOptions.map((inc) => (\n <MenuItem key={inc.id} value={inc.id}>\n {useDegree ? `${inc.degrees}°` : `${inc.mm}mm`}\n </MenuItem>\n ))}\n </AdornedSelect>,\n )\n }\n\n return (\n <Box\n component=\"div\"\n data-testid=\"jogging-options\"\n aria-label=\"jogging-options\"\n sx={{\n display: \"grid\",\n gap: \"16px\",\n gridTemplateColumns: \"1fr 1fr\",\n gridAutoRows: \"min-content\",\n \"& label\": { opacity: 0.7, fontSize: \"12px\", marginBottom: \"4px\" },\n }}\n >\n {joggingOptions.map((select, idx) => (\n <Box\n // biome-ignore lint/suspicious/noArrayIndexKey: pre-biome code\n key={idx}\n sx={{\n gridColumn:\n joggingOptions.length % 2 === 1 &&\n idx === joggingOptions.length - 1\n ? \"span 2\"\n : \"auto\",\n }}\n >\n {select}\n </Box>\n ))}\n </Box>\n )\n },\n)\n"],"names":["JoggingOptions","observer","store","useDegree","t","useTranslation","componentId","useId","joggingOptions","translateOrientation","orientation","jsx","AdornedSelect","event","cs","MenuItem","tcp","ORIENTATION_IDS","orientationId","jsxs","_a","inc","Box","select","idx"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingOptions.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingOptions.tsx"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,gBAAgB,CAAA;AAEvB,eAAO,MAAM,cAAc,0BACF;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE;;CAoJnE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingOptions.js","sources":["../../../src/components/jogging/JoggingOptions.tsx"],"sourcesContent":["import Box from \"@mui/material/Box\"\nimport MenuItem from \"@mui/material/MenuItem\"\nimport { observer } from \"mobx-react-lite\"\nimport { useId } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport AdornedSelect from \"../experimental/utils/AdornedSelect\"\nimport {\n ORIENTATION_IDS,\n type IncrementOptionId,\n type JoggingStore,\n type OrientationId,\n} from \"./JoggingStore\"\n\nexport const JoggingOptions = observer(\n ({ store, useDegree }: { store: JoggingStore; useDegree: boolean }) => {\n const { t } = useTranslation()\n const componentId = useId()\n const joggingOptions: React.ReactElement[] = []\n\n function translateOrientation(orientation: OrientationId): string {\n switch (orientation) {\n case \"coordsys\":\n return t(\"Jogging.Orientation.coordsys\")\n case \"tool\":\n return t(\"Jogging.Orientation.tool\")\n default:\n return orientation\n }\n }\n\n if (store.showCoordSystemSelect) {\n joggingOptions.push(\n <AdornedSelect\n key=\"coord\"\n labelId={`jogging-coord-select-${componentId}`}\n labelValue={t(\"Jogging.CoordinateSystem.hlb\")}\n value={store.selectedCoordSystemId}\n size=\"small\"\n variant=\"filled\"\n displayEmpty={true}\n onChange={(event) =>\n store.setSelectedCoordSystemId(event.target.value as string)\n }\n disabled={store.isLocked}\n >\n {store.coordSystems.map((cs) => (\n <MenuItem key={cs.coordinate_system} value={cs.coordinate_system}>\n {cs.name && store.coordSystemCountByName[cs.name] > 1\n ? `${cs.name} / ${cs.coordinate_system}`\n : cs.name || cs.coordinate_system}\n </MenuItem>\n ))}\n </AdornedSelect>,\n )\n }\n\n if (store.showTcpSelect) {\n joggingOptions.push(\n <AdornedSelect\n key=\"tcp\"\n labelId={`jogging-tcp-select-${componentId}`}\n labelValue=\"TCP\"\n value={store.selectedTcpId}\n size=\"small\"\n variant=\"filled\"\n onChange={(event) =>\n store.setSelectedTcpId(event.target.value as string)\n }\n disabled={store.isLocked}\n >\n {store.tcps.map((tcp) => (\n <MenuItem key={tcp.id} value={tcp.id}>\n {tcp.id}\n </MenuItem>\n ))}\n </AdornedSelect>,\n )\n }\n\n if (store.showOrientationSelect) {\n joggingOptions.push(\n <AdornedSelect\n key=\"orientation\"\n labelValue={t(\"Jogging.Cartesian.Orientation.lb\")}\n labelId={`orientation-select-${componentId}`}\n value={store.selectedOrientation}\n onChange={(event) =>\n store.setSelectedOrientation(event.target.value as OrientationId)\n }\n disabled={store.isLocked}\n >\n {ORIENTATION_IDS.map((orientationId) => (\n <MenuItem key={orientationId} value={orientationId}>\n {translateOrientation(orientationId)}\n </MenuItem>\n ))}\n </AdornedSelect>,\n )\n }\n\n if (store.showIncrementSelect) {\n joggingOptions.push(\n <AdornedSelect\n key=\"increment\"\n labelValue={t(\"Jogging.Increment.hlb\")}\n labelId={`jogging-increment-select-${componentId}`}\n size=\"small\"\n variant=\"filled\"\n value={store.activeDiscreteIncrement?.id || \"continuous\"}\n onChange={(event) =>\n store.setSelectedIncrementId(\n event.target.value as IncrementOptionId,\n )\n }\n disabled={store.isLocked}\n >\n <MenuItem key=\"continuous\" value=\"continuous\">\n {t(\"Jogging.Increment.Continuous.dd\")}\n </MenuItem>\n\n {store.selectedOrientation === \"tool\"\n ? null\n : store.discreteIncrementOptions.map((inc) => (\n <MenuItem key={inc.id} value={inc.id}>\n {useDegree ? `${inc.degrees}°` : `${inc.mm}mm`}\n </MenuItem>\n ))}\n </AdornedSelect>,\n )\n }\n\n return (\n <Box\n component=\"div\"\n data-testid=\"jogging-options\"\n aria-label=\"jogging-options\"\n sx={{\n display: \"grid\",\n gap: \"16px\",\n gridTemplateColumns: \"1fr 1fr\",\n gridAutoRows: \"min-content\",\n \"& label\": { opacity: 0.7, fontSize: \"12px\", marginBottom: \"4px\" },\n }}\n >\n {joggingOptions.map((select, idx) => (\n <Box\n // biome-ignore lint/suspicious/noArrayIndexKey: pre-biome code\n key={idx}\n sx={{\n gridColumn:\n joggingOptions.length % 2 === 1 &&\n idx === joggingOptions.length - 1\n ? \"span 2\"\n : \"auto\",\n }}\n >\n {select}\n </Box>\n ))}\n </Box>\n )\n },\n)\n"],"names":["JoggingOptions","observer","store","useDegree","t","useTranslation","componentId","useId","joggingOptions","translateOrientation","orientation","jsx","AdornedSelect","event","cs","MenuItem","tcp","ORIENTATION_IDS","orientationId","jsxs","_a","inc","Box","select","idx"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingPanel.cjs","sources":["../../../src/components/jogging/JoggingPanel.tsx"],"sourcesContent":["import MoveIcon from \"@mui/icons-material/OpenWith\"\nimport ShareIcon from \"@mui/icons-material/Share\"\nimport type { SxProps } from \"@mui/material/styles\"\nimport Stack from \"@mui/material/Stack\"\nimport Tab from \"@mui/material/Tab\"\nimport Tabs from \"@mui/material/Tabs\"\nimport { NovaClient } from \"@wandelbots/nova-js/v2\"\nimport { isString } from \"lodash-es\"\nimport { runInAction } from \"mobx\"\nimport { observer, useLocalObservable } from \"mobx-react-lite\"\nimport { useEffect } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { JoggerConnection } from \"../../lib/JoggerConnection\"\nimport { LoadingCover } from \"../LoadingCover\"\nimport { JoggingBlocked } from \"./JoggingBlocked\"\nimport { JoggingCartesianTab } from \"./JoggingCartesianTab\"\nimport { JoggingJointTab } from \"./JoggingJointTab\"\nimport { JoggingStore } from \"./JoggingStore\"\n\nexport type JoggingPanelTabId = \"cartesian\" | \"joint\"\n\nexport type JoggingPanelProps = {\n /** Either an existing NovaClient or the base url of a deployed Nova instance */\n nova: NovaClient | string\n /** Id of the motion group to move e.g. 0@ur5e */\n motionGroupId: string\n /** Callback with the jogging panel's state store for further customization/config */\n onSetup?: (store: JoggingStore) => void\n /** Any children will go at the bottom of the panel under the default contents */\n children?: React.ReactNode\n /** Set this to true to disable jogging UI temporarily e.g. when a program is executing */\n locked?: boolean\n sx?: SxProps\n\n /**\n * To preserve state while the jogging panel is hidden, you can create and pass a\n * JoggingStore here and it will be used instead of creating a new one.\n */\n store?: JoggingStore\n}\n\n/**\n * A high-level, opinionated UI panel for jogging a robot using the Wandelbots Platform API\n */\nexport const JoggingPanel = externalizeComponent(\n observer((props: JoggingPanelProps) => {\n const nova = isString(props.nova)\n ? new NovaClient({ instanceUrl: props.nova })\n : props.nova\n\n const state = useLocalObservable(() => ({\n joggingStore: null as JoggingStore | null,\n loadingError: null as unknown | null,\n }))\n\n async function init() {\n runInAction(() => {\n state.loadingError = null\n state.joggingStore = null\n })\n\n try {\n let joggingStore = props.store\n if (!joggingStore) {\n const jogger = await JoggerConnection.open(nova, props.motionGroupId)\n joggingStore = await JoggingStore.loadFor(jogger)\n }\n runInAction(() => {\n state.joggingStore = joggingStore\n })\n if (props.onSetup) {\n props.onSetup(joggingStore)\n }\n } catch (err) {\n state.loadingError = err\n }\n }\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n init()\n return props.store\n ? () => null\n : () => {\n state.joggingStore?.dispose()\n }\n }, [props.store, props.nova, props.motionGroupId])\n\n useEffect(() => {\n const store = state.joggingStore\n if (!store) return\n\n if (props.locked) {\n store.lock(\"external\")\n } else {\n store.unlock(\"external\")\n }\n }, [state.joggingStore, props.locked])\n\n return (\n <Stack\n data-testid=\"jogging-panel\"\n aria-label=\"jogging-panel\"\n sx={{\n maxWidth: \"460px\",\n minWidth: \"320px\",\n position: \"relative\",\n ...props.sx,\n }}\n >\n {state.joggingStore ? (\n <JoggingPanelInner store={state.joggingStore}>\n {props.children}\n </JoggingPanelInner>\n ) : (\n <LoadingCover message=\"Loading jogging\" error={state.loadingError} />\n )}\n </Stack>\n )\n }),\n)\n\nconst JoggingPanelInner = observer(\n ({\n store,\n children,\n }: {\n store: JoggingStore\n children?: React.ReactNode\n childrenJoint?: React.ReactNode\n }) => {\n const { t } = useTranslation()\n\n function renderTabContent() {\n if (store.currentTab.id === \"cartesian\") {\n return (\n <JoggingCartesianTab store={store}>{children}</JoggingCartesianTab>\n )\n } else if (store.currentTab.id === \"joint\") {\n return <JoggingJointTab store={store}>{children}</JoggingJointTab>\n }\n }\n\n return (\n <Stack flexGrow={1} sx={{ overflow: \"hidden\" }}>\n {/* Tab selection */}\n <Tabs\n data-testid=\"jogging-tabs\"\n aria-label=\"jogging-tabs\"\n value={store.tabIndex}\n onChange={store.onTabChange}\n variant=\"fullWidth\"\n >\n {store.tabs.map((tab) => {\n const label =\n tab.label === \"Cartesian\"\n ? t(\"Jogging.Cartesian.bt\")\n : t(\"Jogging.Joints.bt\")\n\n const icon =\n tab.label === \"cartesian\" ? (\n <MoveIcon fontSize=\"small\" sx={{ mr: 1 }} />\n ) : (\n <ShareIcon fontSize=\"small\" sx={{ mr: 1 }} />\n )\n\n return (\n <Tab\n key={tab.id}\n data-testid={`jogging-tab-${tab.id}`}\n aria-label={`jogging-tab-${tab.id}`}\n label={\n store.showTabIcons ? (\n <Stack direction=\"row\" alignItems=\"center\">\n {icon}\n {label}\n </Stack>\n ) : (\n label\n )\n }\n id={`jogging-tab-${tab.id}`}\n aria-controls={`jogging-tab-${tab.id}`}\n />\n )\n })}\n </Tabs>\n {/* Current tab content */}\n <Stack\n flexGrow={1}\n position=\"relative\"\n sx={{ overflowY: \"auto\", overflowX: \"hidden\" }}\n >\n {renderTabContent()}\n </Stack>\n {/* Overlay when jogging connection is blocked */}\n {store.blocked && <JoggingBlocked store={store} />}\n </Stack>\n )\n },\n)\n\nexport default JoggingPanel\n"],"names":["JoggingPanel","externalizeComponent","observer","props","nova","isString","NovaClient","state","useLocalObservable","init","runInAction","joggingStore","jogger","JoggerConnection","JoggingStore","err","useEffect","_a","store","jsx","Stack","JoggingPanelInner","LoadingCover","children","t","useTranslation","renderTabContent","JoggingCartesianTab","JoggingJointTab","jsxs","Tabs","tab","label","icon","MoveIcon","ShareIcon","Tab","JoggingBlocked"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingPanel.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAInD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAYnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,OAAO,CAAA;AAErD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gFAAgF;IAChF,IAAI,EAAE,UAAU,GAAG,MAAM,CAAA;IACzB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,0FAA0F;IAC1F,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,EAAE,CAAC,EAAE,OAAO,CAAA;IAEZ;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,WACN,iBAAiB;;CA2EnC,CAAA;AAkFD,eAAe,YAAY,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingPanel.js","sources":["../../../src/components/jogging/JoggingPanel.tsx"],"sourcesContent":["import MoveIcon from \"@mui/icons-material/OpenWith\"\nimport ShareIcon from \"@mui/icons-material/Share\"\nimport type { SxProps } from \"@mui/material/styles\"\nimport Stack from \"@mui/material/Stack\"\nimport Tab from \"@mui/material/Tab\"\nimport Tabs from \"@mui/material/Tabs\"\nimport { NovaClient } from \"@wandelbots/nova-js/v2\"\nimport { isString } from \"lodash-es\"\nimport { runInAction } from \"mobx\"\nimport { observer, useLocalObservable } from \"mobx-react-lite\"\nimport { useEffect } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { JoggerConnection } from \"../../lib/JoggerConnection\"\nimport { LoadingCover } from \"../LoadingCover\"\nimport { JoggingBlocked } from \"./JoggingBlocked\"\nimport { JoggingCartesianTab } from \"./JoggingCartesianTab\"\nimport { JoggingJointTab } from \"./JoggingJointTab\"\nimport { JoggingStore } from \"./JoggingStore\"\n\nexport type JoggingPanelTabId = \"cartesian\" | \"joint\"\n\nexport type JoggingPanelProps = {\n /** Either an existing NovaClient or the base url of a deployed Nova instance */\n nova: NovaClient | string\n /** Id of the motion group to move e.g. 0@ur5e */\n motionGroupId: string\n /** Callback with the jogging panel's state store for further customization/config */\n onSetup?: (store: JoggingStore) => void\n /** Any children will go at the bottom of the panel under the default contents */\n children?: React.ReactNode\n /** Set this to true to disable jogging UI temporarily e.g. when a program is executing */\n locked?: boolean\n sx?: SxProps\n\n /**\n * To preserve state while the jogging panel is hidden, you can create and pass a\n * JoggingStore here and it will be used instead of creating a new one.\n */\n store?: JoggingStore\n}\n\n/**\n * A high-level, opinionated UI panel for jogging a robot using the Wandelbots Platform API\n */\nexport const JoggingPanel = externalizeComponent(\n observer((props: JoggingPanelProps) => {\n const nova = isString(props.nova)\n ? new NovaClient({ instanceUrl: props.nova })\n : props.nova\n\n const state = useLocalObservable(() => ({\n joggingStore: null as JoggingStore | null,\n loadingError: null as unknown | null,\n }))\n\n async function init() {\n runInAction(() => {\n state.loadingError = null\n state.joggingStore = null\n })\n\n try {\n let joggingStore = props.store\n if (!joggingStore) {\n const jogger = await JoggerConnection.open(nova, props.motionGroupId)\n joggingStore = await JoggingStore.loadFor(jogger)\n }\n runInAction(() => {\n state.joggingStore = joggingStore\n })\n if (props.onSetup) {\n props.onSetup(joggingStore)\n }\n } catch (err) {\n state.loadingError = err\n }\n }\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n init()\n return props.store\n ? () => null\n : () => {\n state.joggingStore?.dispose()\n }\n }, [props.store, props.nova, props.motionGroupId])\n\n useEffect(() => {\n const store = state.joggingStore\n if (!store) return\n\n if (props.locked) {\n store.lock(\"external\")\n } else {\n store.unlock(\"external\")\n }\n }, [state.joggingStore, props.locked])\n\n return (\n <Stack\n data-testid=\"jogging-panel\"\n aria-label=\"jogging-panel\"\n sx={{\n maxWidth: \"460px\",\n minWidth: \"320px\",\n position: \"relative\",\n ...props.sx,\n }}\n >\n {state.joggingStore ? (\n <JoggingPanelInner store={state.joggingStore}>\n {props.children}\n </JoggingPanelInner>\n ) : (\n <LoadingCover message=\"Loading jogging\" error={state.loadingError} />\n )}\n </Stack>\n )\n }),\n)\n\nconst JoggingPanelInner = observer(\n ({\n store,\n children,\n }: {\n store: JoggingStore\n children?: React.ReactNode\n childrenJoint?: React.ReactNode\n }) => {\n const { t } = useTranslation()\n\n function renderTabContent() {\n if (store.currentTab.id === \"cartesian\") {\n return (\n <JoggingCartesianTab store={store}>{children}</JoggingCartesianTab>\n )\n } else if (store.currentTab.id === \"joint\") {\n return <JoggingJointTab store={store}>{children}</JoggingJointTab>\n }\n }\n\n return (\n <Stack flexGrow={1} sx={{ overflow: \"hidden\" }}>\n {/* Tab selection */}\n <Tabs\n data-testid=\"jogging-tabs\"\n aria-label=\"jogging-tabs\"\n value={store.tabIndex}\n onChange={store.onTabChange}\n variant=\"fullWidth\"\n >\n {store.tabs.map((tab) => {\n const label =\n tab.label === \"Cartesian\"\n ? t(\"Jogging.Cartesian.bt\")\n : t(\"Jogging.Joints.bt\")\n\n const icon =\n tab.label === \"cartesian\" ? (\n <MoveIcon fontSize=\"small\" sx={{ mr: 1 }} />\n ) : (\n <ShareIcon fontSize=\"small\" sx={{ mr: 1 }} />\n )\n\n return (\n <Tab\n key={tab.id}\n data-testid={`jogging-tab-${tab.id}`}\n aria-label={`jogging-tab-${tab.id}`}\n label={\n store.showTabIcons ? (\n <Stack direction=\"row\" alignItems=\"center\">\n {icon}\n {label}\n </Stack>\n ) : (\n label\n )\n }\n id={`jogging-tab-${tab.id}`}\n aria-controls={`jogging-tab-${tab.id}`}\n />\n )\n })}\n </Tabs>\n {/* Current tab content */}\n <Stack\n flexGrow={1}\n position=\"relative\"\n sx={{ overflowY: \"auto\", overflowX: \"hidden\" }}\n >\n {renderTabContent()}\n </Stack>\n {/* Overlay when jogging connection is blocked */}\n {store.blocked && <JoggingBlocked store={store} />}\n </Stack>\n )\n },\n)\n\nexport default JoggingPanel\n"],"names":["JoggingPanel","externalizeComponent","observer","props","nova","isString","NovaClient","state","useLocalObservable","init","runInAction","joggingStore","jogger","JoggerConnection","JoggingStore","err","useEffect","_a","store","jsx","Stack","JoggingPanelInner","LoadingCover","children","t","useTranslation","renderTabContent","JoggingCartesianTab","JoggingJointTab","jsxs","Tabs","tab","label","icon","MoveIcon","ShareIcon","Tab","JoggingBlocked"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=JoggingPanel.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingPanel.test.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingPanel.test.tsx"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingStore.cjs","sources":["../../../src/components/jogging/JoggingStore.ts"],"sourcesContent":["import { tryParseJson } from \"@wandelbots/nova-js\"\nimport {\n JointTypeEnum,\n type CoordinateSystem,\n type KinematicModel,\n type MotionGroupDescription,\n type RobotTcp,\n} from \"@wandelbots/nova-js/v2\"\nimport { countBy } from \"lodash-es\"\nimport keyBy from \"lodash-es/keyBy\"\nimport uniqueId from \"lodash-es/uniqueId\"\nimport { autorun, makeAutoObservable, type IReactionDisposer } from \"mobx\"\nimport type {\n JoggerConnection,\n JoggerOrientation,\n Vector3Simple,\n} from \"../../lib/JoggerConnection\"\n\nconst discreteIncrementOptions = [\n { id: \"0.1\", mm: 0.1, degrees: 0.05 },\n { id: \"1\", mm: 1, degrees: 0.5 },\n { id: \"5\", mm: 5, degrees: 2.5 },\n { id: \"10\", mm: 10, degrees: 5 },\n]\n\nconst incrementOptions = [\n { id: \"continuous\" },\n ...discreteIncrementOptions,\n] as const\n\nexport type JoggingAxis = \"x\" | \"y\" | \"z\"\nexport type JoggingDirection = \"+\" | \"-\"\nexport type DiscreteIncrementOption = (typeof discreteIncrementOptions)[number]\nexport type IncrementOption = (typeof incrementOptions)[number]\nexport type IncrementOptionId = IncrementOption[\"id\"]\n\nexport const ORIENTATION_IDS = [\"coordsys\", \"tool\"]\nexport type OrientationId = (typeof ORIENTATION_IDS)[number]\n\nexport type IncrementJogInProgress = {\n direction: JoggingDirection\n axis: JoggingAxis\n}\n\ntype TabType = \"cartesian\" | \"joint\" | \"debug\"\nexport type CartesianMotionType = \"translate\" | \"rotate\"\n\nexport class JoggingStore {\n selectedTabId: TabType = \"cartesian\"\n\n /** Locks to prevent UI interactions during certain operations */\n locks = new Set<string>()\n\n /** Block jogging UI interactions when connection is taken by another jogger */\n blocked: boolean = false\n\n /**\n * Id of selected coordinate system from among those defined on the API side\n */\n selectedCoordSystemId: string = \"world\"\n\n /** Id of selected tool center point from among the options available on the robot */\n selectedTcpId: string = \"\"\n\n /**\n * Whether the user is jogging in the coordinate system or tool orientation.\n * When in tool orientation, the robot moves in a direction relative to the\n * attached tool rotation.\n */\n selectedOrientation: OrientationId = \"coordsys\"\n\n /**\n * Id of selected increment amount for jogging. Options are defined by robot pad.\n * When non-continuous, jogging moves the robot by a fixed number of mm or degrees\n * each time the button is pressed, for extra precision\n */\n selectedIncrementId: IncrementOptionId = \"continuous\"\n\n /**\n * When on the cartesian tab, jogging can be either translating or rotating\n * around the TCP.\n */\n selectedCartesianMotionType: CartesianMotionType = \"translate\"\n\n /**\n * If the jogger is busy running an incremental jog, this will be set\n * with the information about the motion\n */\n incrementJogInProgress: IncrementJogInProgress | null = null\n\n /** How fast the robot goes when doing cartesian translate jogging in mm/s */\n translationVelocityMmPerSec: number = 10\n /** How fast the robot goes when doing cartesian or joint rotation jogging in °/s */\n rotationVelocityDegPerSec: number = 1\n\n /** Minimum translation velocity user can choose on the velocity slider in °/s */\n minTranslationVelocityMmPerSec: number = 5\n /** Maximum translation velocity user can choose on the velocity slider in °/s */\n maxTranslationVelocityMmPerSec: number = 250\n\n /** Minimum rotation velocity user can choose on the velocity slider in °/s */\n minRotationVelocityDegPerSec: number = 1\n /** Maximum rotation velocity user can choose on the velocity slider in °/s */\n maxRotationVelocityDegPerSec: number = 60\n\n /** Whether to show the coordinate system select dropdown in the UI */\n showCoordSystemSelect: boolean = false\n\n /** Whether to show the TCP select dropdown in the UI */\n showTcpSelect: boolean = true\n\n /** Whether to show the orientation select dropdown in the UI */\n showOrientationSelect: boolean = true\n\n /** Whether to show the increment select dropdown in the UI */\n showIncrementSelect: boolean = true\n\n /** Whether to show icons in the jogging tabs */\n showTabIcons: boolean = false\n\n /** Whether to show the label to the right of the velocity slider */\n showVelocitySliderLabel: boolean = true\n\n /** Whether to show the legend before the slider */\n showVelocityLegend: boolean = false\n\n /** Whether to show the legend before the joints */\n showJointsLegend: boolean = false\n\n disposers: IReactionDisposer[] = []\n\n /**\n * Inverse solver from the kinematic model of the motion group to determine, which tabs should be rendered\n */\n inverseSolver: string | null | undefined = undefined\n\n /**\n * Joint type to determine, whether the active robot should be displayed as Robot or Linear Axis and what tabs\n * should be rendered by the JoggingPanel component.\n */\n jointType: JointTypeEnum = JointTypeEnum.RevoluteJoint\n\n /**\n * Load a jogging store with the relevant data it needs\n * from the backend\n */\n static async loadFor(jogger: JoggerConnection) {\n const { nova } = jogger\n\n // Find out what TCPs this motion group has (we need it for jogging)\n const [coordinatesystems, description] = await Promise.all([\n // Fetch coord systems so user can select between them\n nova.api.controller.listCoordinateSystems(\n jogger.motionStream.controllerId,\n \"ROTATION_VECTOR\",\n ),\n\n // Same for TCPs and other info from description\n nova.api.motionGroup.getMotionGroupDescription(\n jogger.motionStream.controllerId,\n jogger.motionGroupId,\n ),\n ])\n\n const kinematicModel: KinematicModel =\n await nova.api.motionGroupModels.getMotionGroupKinematicModel(\n description.motion_group_model,\n )\n\n const tcps = Object.entries(description.tcps || {}).map(([id, tcp]) => ({\n id,\n readable_name: tcp.name,\n position: tcp.pose.position as Vector3Simple,\n orientation: tcp.pose.orientation as Vector3Simple,\n }))\n\n return new JoggingStore(\n jogger,\n coordinatesystems || [],\n description,\n tcps,\n kinematicModel.inverse_solver,\n )\n }\n\n constructor(\n readonly jogger: JoggerConnection,\n readonly coordSystems: CoordinateSystem[],\n readonly motionGroupDescription: MotionGroupDescription,\n readonly tcps: RobotTcp[],\n readonly inverseSolverValue: string | null | undefined,\n ) {\n // TODO workaround for default coord system on backend having a canonical id\n // of empty string. Can remove when fixed on API side\n for (const cs of coordSystems) {\n if (cs.coordinate_system === \"\") {\n cs.coordinate_system = \"world\"\n break\n }\n }\n this.selectedCoordSystemId = coordSystems[0]?.coordinate_system || \"world\"\n this.selectedTcpId = tcps[0]?.id || \"\"\n this.inverseSolver = inverseSolverValue\n this.jointType =\n motionGroupDescription?.dh_parameters?.[0]?.type ??\n JointTypeEnum.RevoluteJoint\n\n // Make all properties observable and actions auto-bound\n makeAutoObservable(this, {}, { autoBind: true })\n\n // Register blocked watching\n this.jogger.onBlocked = () => {\n this.block()\n }\n\n // Load user settings from local storage if available\n this.loadFromLocalStorage()\n\n // Automatically save user settings to local storage when save changes\n this.disposers.push(autorun(() => this.saveToLocalStorage()))\n\n // Assign joggingStore to window\n // biome-ignore lint/suspicious/noExplicitAny: pre-biome code\n ;(window as any).joggingStore = this\n }\n\n dispose() {\n for (const dispose of this.disposers) {\n dispose()\n }\n this.jogger.dispose()\n }\n\n get coordSystemCountByName() {\n return countBy(this.coordSystems, (cs) => cs.name)\n }\n\n async deactivate() {\n if (this.jogger.mode === \"jogging\") {\n return this.jogger.stop()\n }\n }\n\n /** Activate the jogger with current settings */\n async activate() {\n if (this.currentTab.id === \"cartesian\") {\n if (\n this.jogger.tcp !== this.selectedTcpId ||\n this.jogger.orientation !== this.selectedOrientation\n ) {\n this.jogger.setOptions({\n tcp: this.selectedTcpId,\n orientation: this.selectedOrientation as JoggerOrientation,\n })\n }\n\n if (this.activeDiscreteIncrement) {\n this.jogger.setJoggingMode(\"trajectory\")\n } else {\n this.jogger.setJoggingMode(\"jogging\")\n }\n } else {\n this.jogger.setJoggingMode(\"jogging\")\n }\n\n return this.jogger\n }\n\n loadFromLocalStorage() {\n const save = tryParseJson(localStorage.getItem(\"joggingToolStore\"))\n if (!save) return\n\n if (this.tabsById[save.selectedTabId]) {\n this.selectedTabId = save.selectedTabId\n }\n\n if (this.coordSystemsById[save.selectedCoordSystemId]) {\n this.selectedCoordSystemId = save.selectedCoordSystemId\n }\n\n if (this.tcpsById[save.selectedTcpId]) {\n this.selectedTcpId = save.selectedTcpId\n }\n\n if (this.incrementOptionsById[save.selectedIncrementId]) {\n this.selectedIncrementId = save.selectedIncrementId\n }\n\n if ([\"translate\", \"rotate\"].includes(save.selectedCartesianMotionType)) {\n this.selectedCartesianMotionType = save.selectedCartesianMotionType\n }\n\n if ([\"coordsys\", \"tool\"].includes(save.selectedOrientation)) {\n this.selectedOrientation = save.selectedOrientation\n }\n }\n\n saveToLocalStorage() {\n localStorage.setItem(\n \"joggingToolStore\",\n JSON.stringify(this.localStorageSave),\n )\n }\n\n get isLocked() {\n return this.locks.size > 0\n }\n\n get localStorageSave() {\n return {\n selectedTabId: this.selectedTabId,\n selectedCoordSystemId: this.selectedCoordSystemId,\n selectedTcpId: this.selectedTcpId,\n selectedOrientation: this.selectedOrientation,\n selectedIncrementId: this.selectedIncrementId,\n selectedCartesianMotionType: this.selectedCartesianMotionType,\n }\n }\n\n get tabs() {\n const tempTabs: { id: TabType; label: string }[] = [\n {\n id: \"joint\",\n label: \"Joints\",\n },\n ]\n // show the cartesian tab only : 1. when there is a solver or 2. when no solver could be loaded ( as a default )\n // do not show the cartesian tab when the solver is null this means, it cannot get jogged cartesian\n if (this.inverseSolver !== null) {\n tempTabs.unshift({\n id: \"cartesian\",\n label: \"Cartesian\",\n })\n }\n\n return tempTabs\n }\n\n get incrementOptions() {\n return incrementOptions\n }\n\n get discreteIncrementOptions() {\n return discreteIncrementOptions\n }\n\n get incrementOptionsById() {\n return keyBy(this.incrementOptions, (o) => o.id)\n }\n\n get tabsById() {\n return keyBy(this.tabs, (t) => t.id)\n }\n\n get currentTab() {\n // biome-ignore lint/style/noNonNullAssertion: pre-biome code\n return this.tabsById[this.selectedTabId] || this.tabs[0]!\n }\n\n get tabIndex() {\n return this.tabs.indexOf(this.currentTab)\n }\n\n get coordSystemsById() {\n return keyBy(this.coordSystems, (cs) => cs.coordinate_system)\n }\n\n /**\n * The id of the coordinate system to use for jogging.\n * If in tool orientation, this is set to \"tool\", not the\n * selected coordinate system.\n */\n get activeCoordSystemId() {\n return this.selectedOrientation === \"tool\"\n ? \"tool\"\n : this.selectedCoordSystemId\n }\n\n get tcpsById() {\n return keyBy(this.tcps, (tcp) => tcp.id)\n }\n\n get activeDiscreteIncrement() {\n return this.selectedOrientation === \"tool\"\n ? undefined\n : discreteIncrementOptions.find((d) => d.id === this.selectedIncrementId)\n }\n\n /** The selected rotation velocity converted to radians per second */\n get rotationVelocityRadsPerSec() {\n return (this.rotationVelocityDegPerSec * Math.PI) / 180\n }\n\n /** Selected velocity in mm/sec or deg/sec */\n velocityInDisplayUnits(useDegree: boolean) {\n return useDegree\n ? this.rotationVelocityDegPerSec\n : this.translationVelocityMmPerSec\n }\n\n /** Minimum selectable velocity in mm/sec or deg/sec */\n minVelocityInDisplayUnits(useDegree: boolean) {\n return useDegree\n ? this.minRotationVelocityDegPerSec\n : this.minTranslationVelocityMmPerSec\n }\n\n /** Maximum selectable velocity in mm/sec or deg/sec */\n maxVelocityInDisplayUnits(useDegree: boolean) {\n return useDegree\n ? this.maxRotationVelocityDegPerSec\n : this.maxTranslationVelocityMmPerSec\n }\n\n onTabChange(_event: React.SyntheticEvent, newValue: number) {\n // biome-ignore lint/style/noNonNullAssertion: pre-biome code\n const tab = this.tabs[newValue] || this.tabs[0]!\n this.selectedTabId = tab.id\n }\n\n setSelectedCoordSystemId(id: string) {\n this.selectedCoordSystemId = id\n }\n\n setSelectedTcpId(id: string) {\n this.selectedTcpId = id\n }\n\n setSelectedOrientation(orientation: OrientationId) {\n this.selectedOrientation = orientation\n }\n\n setSelectedIncrementId(id: IncrementOptionId) {\n this.selectedIncrementId = id\n }\n\n setCurrentIncrementJog(incrementJog: IncrementJogInProgress | null) {\n this.incrementJogInProgress = incrementJog\n }\n\n setVelocityFromSlider(velocity: number, useDegree: boolean) {\n if (useDegree) {\n this.rotationVelocityDegPerSec = velocity\n } else {\n this.translationVelocityMmPerSec = velocity\n }\n }\n\n setSelectedCartesianMotionType(type: CartesianMotionType) {\n this.selectedCartesianMotionType = type\n }\n\n lock(id: string) {\n this.locks.add(id)\n }\n\n unlock(id: string) {\n this.locks.delete(id)\n }\n\n block() {\n this.blocked = true\n }\n\n unblock() {\n this.blocked = false\n if (this.jogger.mode === \"jogging\") {\n this.jogger.initializeJoggingWebsocket()\n }\n }\n\n /** Lock the UI until the given async callback resolves */\n async withMotionLock(fn: () => Promise<void>) {\n const lockId = uniqueId()\n this.lock(lockId)\n\n try {\n return await fn()\n } finally {\n this.unlock(lockId)\n }\n }\n}\n\nexport default JoggingStore\n"],"names":["discreteIncrementOptions","incrementOptions","ORIENTATION_IDS","JoggingStore","jogger","coordSystems","motionGroupDescription","tcps","inverseSolverValue","JointTypeEnum","cs","_a","_b","_d","_c","makeAutoObservable","autorun","nova","coordinatesystems","description","kinematicModel","id","tcp","dispose","countBy","save","tryParseJson","tempTabs","keyBy","o","t","d","useDegree","_event","newValue","tab","orientation","incrementJog","velocity","type","fn","lockId","uniqueId"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingStore.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingStore.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingStore.js","sources":["../../../src/components/jogging/JoggingStore.ts"],"sourcesContent":["import { tryParseJson } from \"@wandelbots/nova-js\"\nimport {\n JointTypeEnum,\n type CoordinateSystem,\n type KinematicModel,\n type MotionGroupDescription,\n type RobotTcp,\n} from \"@wandelbots/nova-js/v2\"\nimport { countBy } from \"lodash-es\"\nimport keyBy from \"lodash-es/keyBy\"\nimport uniqueId from \"lodash-es/uniqueId\"\nimport { autorun, makeAutoObservable, type IReactionDisposer } from \"mobx\"\nimport type {\n JoggerConnection,\n JoggerOrientation,\n Vector3Simple,\n} from \"../../lib/JoggerConnection\"\n\nconst discreteIncrementOptions = [\n { id: \"0.1\", mm: 0.1, degrees: 0.05 },\n { id: \"1\", mm: 1, degrees: 0.5 },\n { id: \"5\", mm: 5, degrees: 2.5 },\n { id: \"10\", mm: 10, degrees: 5 },\n]\n\nconst incrementOptions = [\n { id: \"continuous\" },\n ...discreteIncrementOptions,\n] as const\n\nexport type JoggingAxis = \"x\" | \"y\" | \"z\"\nexport type JoggingDirection = \"+\" | \"-\"\nexport type DiscreteIncrementOption = (typeof discreteIncrementOptions)[number]\nexport type IncrementOption = (typeof incrementOptions)[number]\nexport type IncrementOptionId = IncrementOption[\"id\"]\n\nexport const ORIENTATION_IDS = [\"coordsys\", \"tool\"]\nexport type OrientationId = (typeof ORIENTATION_IDS)[number]\n\nexport type IncrementJogInProgress = {\n direction: JoggingDirection\n axis: JoggingAxis\n}\n\ntype TabType = \"cartesian\" | \"joint\" | \"debug\"\nexport type CartesianMotionType = \"translate\" | \"rotate\"\n\nexport class JoggingStore {\n selectedTabId: TabType = \"cartesian\"\n\n /** Locks to prevent UI interactions during certain operations */\n locks = new Set<string>()\n\n /** Block jogging UI interactions when connection is taken by another jogger */\n blocked: boolean = false\n\n /**\n * Id of selected coordinate system from among those defined on the API side\n */\n selectedCoordSystemId: string = \"world\"\n\n /** Id of selected tool center point from among the options available on the robot */\n selectedTcpId: string = \"\"\n\n /**\n * Whether the user is jogging in the coordinate system or tool orientation.\n * When in tool orientation, the robot moves in a direction relative to the\n * attached tool rotation.\n */\n selectedOrientation: OrientationId = \"coordsys\"\n\n /**\n * Id of selected increment amount for jogging. Options are defined by robot pad.\n * When non-continuous, jogging moves the robot by a fixed number of mm or degrees\n * each time the button is pressed, for extra precision\n */\n selectedIncrementId: IncrementOptionId = \"continuous\"\n\n /**\n * When on the cartesian tab, jogging can be either translating or rotating\n * around the TCP.\n */\n selectedCartesianMotionType: CartesianMotionType = \"translate\"\n\n /**\n * If the jogger is busy running an incremental jog, this will be set\n * with the information about the motion\n */\n incrementJogInProgress: IncrementJogInProgress | null = null\n\n /** How fast the robot goes when doing cartesian translate jogging in mm/s */\n translationVelocityMmPerSec: number = 10\n /** How fast the robot goes when doing cartesian or joint rotation jogging in °/s */\n rotationVelocityDegPerSec: number = 1\n\n /** Minimum translation velocity user can choose on the velocity slider in °/s */\n minTranslationVelocityMmPerSec: number = 5\n /** Maximum translation velocity user can choose on the velocity slider in °/s */\n maxTranslationVelocityMmPerSec: number = 250\n\n /** Minimum rotation velocity user can choose on the velocity slider in °/s */\n minRotationVelocityDegPerSec: number = 1\n /** Maximum rotation velocity user can choose on the velocity slider in °/s */\n maxRotationVelocityDegPerSec: number = 60\n\n /** Whether to show the coordinate system select dropdown in the UI */\n showCoordSystemSelect: boolean = false\n\n /** Whether to show the TCP select dropdown in the UI */\n showTcpSelect: boolean = true\n\n /** Whether to show the orientation select dropdown in the UI */\n showOrientationSelect: boolean = true\n\n /** Whether to show the increment select dropdown in the UI */\n showIncrementSelect: boolean = true\n\n /** Whether to show icons in the jogging tabs */\n showTabIcons: boolean = false\n\n /** Whether to show the label to the right of the velocity slider */\n showVelocitySliderLabel: boolean = true\n\n /** Whether to show the legend before the slider */\n showVelocityLegend: boolean = false\n\n /** Whether to show the legend before the joints */\n showJointsLegend: boolean = false\n\n disposers: IReactionDisposer[] = []\n\n /**\n * Inverse solver from the kinematic model of the motion group to determine, which tabs should be rendered\n */\n inverseSolver: string | null | undefined = undefined\n\n /**\n * Joint type to determine, whether the active robot should be displayed as Robot or Linear Axis and what tabs\n * should be rendered by the JoggingPanel component.\n */\n jointType: JointTypeEnum = JointTypeEnum.RevoluteJoint\n\n /**\n * Load a jogging store with the relevant data it needs\n * from the backend\n */\n static async loadFor(jogger: JoggerConnection) {\n const { nova } = jogger\n\n // Find out what TCPs this motion group has (we need it for jogging)\n const [coordinatesystems, description] = await Promise.all([\n // Fetch coord systems so user can select between them\n nova.api.controller.listCoordinateSystems(\n jogger.motionStream.controllerId,\n \"ROTATION_VECTOR\",\n ),\n\n // Same for TCPs and other info from description\n nova.api.motionGroup.getMotionGroupDescription(\n jogger.motionStream.controllerId,\n jogger.motionGroupId,\n ),\n ])\n\n const kinematicModel: KinematicModel =\n await nova.api.motionGroupModels.getMotionGroupKinematicModel(\n description.motion_group_model,\n )\n\n const tcps = Object.entries(description.tcps || {}).map(([id, tcp]) => ({\n id,\n readable_name: tcp.name,\n position: tcp.pose.position as Vector3Simple,\n orientation: tcp.pose.orientation as Vector3Simple,\n }))\n\n return new JoggingStore(\n jogger,\n coordinatesystems || [],\n description,\n tcps,\n kinematicModel.inverse_solver,\n )\n }\n\n constructor(\n readonly jogger: JoggerConnection,\n readonly coordSystems: CoordinateSystem[],\n readonly motionGroupDescription: MotionGroupDescription,\n readonly tcps: RobotTcp[],\n readonly inverseSolverValue: string | null | undefined,\n ) {\n // TODO workaround for default coord system on backend having a canonical id\n // of empty string. Can remove when fixed on API side\n for (const cs of coordSystems) {\n if (cs.coordinate_system === \"\") {\n cs.coordinate_system = \"world\"\n break\n }\n }\n this.selectedCoordSystemId = coordSystems[0]?.coordinate_system || \"world\"\n this.selectedTcpId = tcps[0]?.id || \"\"\n this.inverseSolver = inverseSolverValue\n this.jointType =\n motionGroupDescription?.dh_parameters?.[0]?.type ??\n JointTypeEnum.RevoluteJoint\n\n // Make all properties observable and actions auto-bound\n makeAutoObservable(this, {}, { autoBind: true })\n\n // Register blocked watching\n this.jogger.onBlocked = () => {\n this.block()\n }\n\n // Load user settings from local storage if available\n this.loadFromLocalStorage()\n\n // Automatically save user settings to local storage when save changes\n this.disposers.push(autorun(() => this.saveToLocalStorage()))\n\n // Assign joggingStore to window\n // biome-ignore lint/suspicious/noExplicitAny: pre-biome code\n ;(window as any).joggingStore = this\n }\n\n dispose() {\n for (const dispose of this.disposers) {\n dispose()\n }\n this.jogger.dispose()\n }\n\n get coordSystemCountByName() {\n return countBy(this.coordSystems, (cs) => cs.name)\n }\n\n async deactivate() {\n if (this.jogger.mode === \"jogging\") {\n return this.jogger.stop()\n }\n }\n\n /** Activate the jogger with current settings */\n async activate() {\n if (this.currentTab.id === \"cartesian\") {\n if (\n this.jogger.tcp !== this.selectedTcpId ||\n this.jogger.orientation !== this.selectedOrientation\n ) {\n this.jogger.setOptions({\n tcp: this.selectedTcpId,\n orientation: this.selectedOrientation as JoggerOrientation,\n })\n }\n\n if (this.activeDiscreteIncrement) {\n this.jogger.setJoggingMode(\"trajectory\")\n } else {\n this.jogger.setJoggingMode(\"jogging\")\n }\n } else {\n this.jogger.setJoggingMode(\"jogging\")\n }\n\n return this.jogger\n }\n\n loadFromLocalStorage() {\n const save = tryParseJson(localStorage.getItem(\"joggingToolStore\"))\n if (!save) return\n\n if (this.tabsById[save.selectedTabId]) {\n this.selectedTabId = save.selectedTabId\n }\n\n if (this.coordSystemsById[save.selectedCoordSystemId]) {\n this.selectedCoordSystemId = save.selectedCoordSystemId\n }\n\n if (this.tcpsById[save.selectedTcpId]) {\n this.selectedTcpId = save.selectedTcpId\n }\n\n if (this.incrementOptionsById[save.selectedIncrementId]) {\n this.selectedIncrementId = save.selectedIncrementId\n }\n\n if ([\"translate\", \"rotate\"].includes(save.selectedCartesianMotionType)) {\n this.selectedCartesianMotionType = save.selectedCartesianMotionType\n }\n\n if ([\"coordsys\", \"tool\"].includes(save.selectedOrientation)) {\n this.selectedOrientation = save.selectedOrientation\n }\n }\n\n saveToLocalStorage() {\n localStorage.setItem(\n \"joggingToolStore\",\n JSON.stringify(this.localStorageSave),\n )\n }\n\n get isLocked() {\n return this.locks.size > 0\n }\n\n get localStorageSave() {\n return {\n selectedTabId: this.selectedTabId,\n selectedCoordSystemId: this.selectedCoordSystemId,\n selectedTcpId: this.selectedTcpId,\n selectedOrientation: this.selectedOrientation,\n selectedIncrementId: this.selectedIncrementId,\n selectedCartesianMotionType: this.selectedCartesianMotionType,\n }\n }\n\n get tabs() {\n const tempTabs: { id: TabType; label: string }[] = [\n {\n id: \"joint\",\n label: \"Joints\",\n },\n ]\n // show the cartesian tab only : 1. when there is a solver or 2. when no solver could be loaded ( as a default )\n // do not show the cartesian tab when the solver is null this means, it cannot get jogged cartesian\n if (this.inverseSolver !== null) {\n tempTabs.unshift({\n id: \"cartesian\",\n label: \"Cartesian\",\n })\n }\n\n return tempTabs\n }\n\n get incrementOptions() {\n return incrementOptions\n }\n\n get discreteIncrementOptions() {\n return discreteIncrementOptions\n }\n\n get incrementOptionsById() {\n return keyBy(this.incrementOptions, (o) => o.id)\n }\n\n get tabsById() {\n return keyBy(this.tabs, (t) => t.id)\n }\n\n get currentTab() {\n // biome-ignore lint/style/noNonNullAssertion: pre-biome code\n return this.tabsById[this.selectedTabId] || this.tabs[0]!\n }\n\n get tabIndex() {\n return this.tabs.indexOf(this.currentTab)\n }\n\n get coordSystemsById() {\n return keyBy(this.coordSystems, (cs) => cs.coordinate_system)\n }\n\n /**\n * The id of the coordinate system to use for jogging.\n * If in tool orientation, this is set to \"tool\", not the\n * selected coordinate system.\n */\n get activeCoordSystemId() {\n return this.selectedOrientation === \"tool\"\n ? \"tool\"\n : this.selectedCoordSystemId\n }\n\n get tcpsById() {\n return keyBy(this.tcps, (tcp) => tcp.id)\n }\n\n get activeDiscreteIncrement() {\n return this.selectedOrientation === \"tool\"\n ? undefined\n : discreteIncrementOptions.find((d) => d.id === this.selectedIncrementId)\n }\n\n /** The selected rotation velocity converted to radians per second */\n get rotationVelocityRadsPerSec() {\n return (this.rotationVelocityDegPerSec * Math.PI) / 180\n }\n\n /** Selected velocity in mm/sec or deg/sec */\n velocityInDisplayUnits(useDegree: boolean) {\n return useDegree\n ? this.rotationVelocityDegPerSec\n : this.translationVelocityMmPerSec\n }\n\n /** Minimum selectable velocity in mm/sec or deg/sec */\n minVelocityInDisplayUnits(useDegree: boolean) {\n return useDegree\n ? this.minRotationVelocityDegPerSec\n : this.minTranslationVelocityMmPerSec\n }\n\n /** Maximum selectable velocity in mm/sec or deg/sec */\n maxVelocityInDisplayUnits(useDegree: boolean) {\n return useDegree\n ? this.maxRotationVelocityDegPerSec\n : this.maxTranslationVelocityMmPerSec\n }\n\n onTabChange(_event: React.SyntheticEvent, newValue: number) {\n // biome-ignore lint/style/noNonNullAssertion: pre-biome code\n const tab = this.tabs[newValue] || this.tabs[0]!\n this.selectedTabId = tab.id\n }\n\n setSelectedCoordSystemId(id: string) {\n this.selectedCoordSystemId = id\n }\n\n setSelectedTcpId(id: string) {\n this.selectedTcpId = id\n }\n\n setSelectedOrientation(orientation: OrientationId) {\n this.selectedOrientation = orientation\n }\n\n setSelectedIncrementId(id: IncrementOptionId) {\n this.selectedIncrementId = id\n }\n\n setCurrentIncrementJog(incrementJog: IncrementJogInProgress | null) {\n this.incrementJogInProgress = incrementJog\n }\n\n setVelocityFromSlider(velocity: number, useDegree: boolean) {\n if (useDegree) {\n this.rotationVelocityDegPerSec = velocity\n } else {\n this.translationVelocityMmPerSec = velocity\n }\n }\n\n setSelectedCartesianMotionType(type: CartesianMotionType) {\n this.selectedCartesianMotionType = type\n }\n\n lock(id: string) {\n this.locks.add(id)\n }\n\n unlock(id: string) {\n this.locks.delete(id)\n }\n\n block() {\n this.blocked = true\n }\n\n unblock() {\n this.blocked = false\n if (this.jogger.mode === \"jogging\") {\n this.jogger.initializeJoggingWebsocket()\n }\n }\n\n /** Lock the UI until the given async callback resolves */\n async withMotionLock(fn: () => Promise<void>) {\n const lockId = uniqueId()\n this.lock(lockId)\n\n try {\n return await fn()\n } finally {\n this.unlock(lockId)\n }\n }\n}\n\nexport default JoggingStore\n"],"names":["discreteIncrementOptions","incrementOptions","ORIENTATION_IDS","JoggingStore","jogger","coordSystems","motionGroupDescription","tcps","inverseSolverValue","JointTypeEnum","cs","_a","_b","_d","_c","makeAutoObservable","autorun","nova","coordinatesystems","description","kinematicModel","id","tcp","dispose","countBy","save","tryParseJson","tempTabs","keyBy","o","t","d","useDegree","_event","newValue","tab","orientation","incrementJog","velocity","type","fn","lockId","uniqueId"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingToggleButtonGroup.cjs","sources":["../../../src/components/jogging/JoggingToggleButtonGroup.tsx"],"sourcesContent":["import type { ToggleButtonGroupProps } from \"@mui/material/ToggleButtonGroup\"\nimport { styled } from \"@mui/material/styles\"\nimport ToggleButtonGroup from \"@mui/material/ToggleButtonGroup\"\nexport const JoggingToggleButtonGroup: React.ComponentType<ToggleButtonGroupProps> =\n styled(ToggleButtonGroup)(({ theme }) => ({\n \"&.MuiToggleButtonGroup-root\": {\n background: theme.palette.backgroundPaperElevation?.[8],\n borderRadius: \"8px\",\n padding: \"4px\",\n gap: \"4px\",\n button: {\n border: \"none\",\n borderRadius: \"4px\",\n flex: \"1 1 0px\",\n minWidth: 0,\n \"&.MuiToggleButtonGroup-firstButton\": {\n borderRadius: \"8px 4px 4px 8px\",\n },\n\n \"&.MuiToggleButtonGroup-lastButton\": {\n borderRadius: \"4px 8px 8px 4px\",\n },\n },\n },\n }))\n"],"names":["JoggingToggleButtonGroup","styled","ToggleButtonGroup","theme","_a"],"mappings":"qKAGaA,EACXC,EAAAA,OAAOC,CAAiB,EAAE,CAAC,CAAE,MAAAC,KAAM,OAAO,OACxC,8BAA+B,CAC7B,YAAYC,EAAAD,EAAM,QAAQ,2BAAd,YAAAC,EAAyC,GACrD,aAAc,MACd,QAAS,MACT,IAAK,MACL,OAAQ,CACN,OAAQ,OACR,aAAc,MACd,KAAM,UACN,SAAU,EACV,qCAAsC,CACpC,aAAc,iBAAA,EAGhB,oCAAqC,CACnC,aAAc,iBAAA,CAChB,CACF,CAEJ,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingToggleButtonGroup.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingToggleButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAG7E,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAqB5E,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingToggleButtonGroup.js","sources":["../../../src/components/jogging/JoggingToggleButtonGroup.tsx"],"sourcesContent":["import type { ToggleButtonGroupProps } from \"@mui/material/ToggleButtonGroup\"\nimport { styled } from \"@mui/material/styles\"\nimport ToggleButtonGroup from \"@mui/material/ToggleButtonGroup\"\nexport const JoggingToggleButtonGroup: React.ComponentType<ToggleButtonGroupProps> =\n styled(ToggleButtonGroup)(({ theme }) => ({\n \"&.MuiToggleButtonGroup-root\": {\n background: theme.palette.backgroundPaperElevation?.[8],\n borderRadius: \"8px\",\n padding: \"4px\",\n gap: \"4px\",\n button: {\n border: \"none\",\n borderRadius: \"4px\",\n flex: \"1 1 0px\",\n minWidth: 0,\n \"&.MuiToggleButtonGroup-firstButton\": {\n borderRadius: \"8px 4px 4px 8px\",\n },\n\n \"&.MuiToggleButtonGroup-lastButton\": {\n borderRadius: \"4px 8px 8px 4px\",\n },\n },\n },\n }))\n"],"names":["JoggingToggleButtonGroup","styled","ToggleButtonGroup","theme","_a"],"mappings":";;AAGO,MAAMA,IACXC,EAAOC,CAAiB,EAAE,CAAC,EAAE,OAAAC,QAAM;;AAAO;AAAA,IACxC,+BAA+B;AAAA,MAC7B,aAAYC,IAAAD,EAAM,QAAQ,6BAAd,gBAAAC,EAAyC;AAAA,MACrD,cAAc;AAAA,MACd,SAAS;AAAA,MACT,KAAK;AAAA,MACL,QAAQ;AAAA,QACN,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,MAAM;AAAA,QACN,UAAU;AAAA,QACV,sCAAsC;AAAA,UACpC,cAAc;AAAA,QAAA;AAAA,QAGhB,qCAAqC;AAAA,UACnC,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,EAEJ;AAAA,CAAE;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingVelocitySlider.cjs","sources":["../../../src/components/jogging/JoggingVelocitySlider.tsx"],"sourcesContent":["import { observer } from \"mobx-react-lite\"\nimport { useTranslation } from \"react-i18next\"\nimport { VelocitySlider, VelocitySliderLabel } from \"../VelocitySlider\"\nimport type { JoggingStore } from \"./JoggingStore\"\n\nexport const JoggingVelocitySlider = observer(\n ({ store, useDegree }: { store: JoggingStore; useDegree: boolean }) => {\n const { t } = useTranslation()\n\n function valueLabelFormat(value: number, useDegree: boolean): string {\n return useDegree\n ? `ω = ${t(\"Jogging.Cartesian.Rotation.velocityDegPerSec.lb\", { amount: value })}`\n : `v = ${t(\"Jogging.Cartesian.Translation.velocityMmPerSec.lb\", { amount: value })}`\n }\n\n return (\n <VelocitySlider\n store={store}\n velocity={store.velocityInDisplayUnits(useDegree)}\n min={store.minVelocityInDisplayUnits(useDegree)}\n max={store.maxVelocityInDisplayUnits(useDegree)}\n onVelocityChange={store.setVelocityFromSlider}\n useDegree={useDegree}\n disabled={store.isLocked}\n renderValue={(value) => (\n <VelocitySliderLabel\n value={valueLabelFormat(value, useDegree)}\n sx={{\n minWidth: \"111px\",\n span: {\n transform: \"translateY(-1.5px)\",\n },\n }}\n />\n )}\n />\n )\n },\n)\n"],"names":["JoggingVelocitySlider","observer","store","useDegree","t","useTranslation","valueLabelFormat","value","jsx","VelocitySlider","VelocitySliderLabel"],"mappings":"gNAKaA,EAAwBC,EAAAA,SACnC,CAAC,CAAE,MAAAC,EAAO,UAAAC,KAA6D,CACrE,KAAM,CAAE,EAAAC,CAAA,EAAMC,iBAAA,EAEd,SAASC,EAAiBC,EAAeJ,EAA4B,CACnE,OAAOA,EACH,OAAOC,EAAE,kDAAmD,CAAE,OAAQG,CAAA,CAAO,CAAC,GAC9E,OAAOH,EAAE,oDAAqD,CAAE,OAAQG,CAAA,CAAO,CAAC,EACtF,CAEA,OACEC,EAAAA,IAACC,EAAAA,eAAA,CACC,MAAAP,EACA,SAAUA,EAAM,uBAAuBC,CAAS,EAChD,IAAKD,EAAM,0BAA0BC,CAAS,EAC9C,IAAKD,EAAM,0BAA0BC,CAAS,EAC9C,iBAAkBD,EAAM,sBACxB,UAAAC,EACA,SAAUD,EAAM,SAChB,YAAcK,GACZC,EAAAA,IAACE,EAAAA,oBAAA,CACC,MAAOJ,EAAiBC,EAAOJ,CAAS,EACxC,GAAI,CACF,SAAU,QACV,KAAM,CACJ,UAAW,oBAAA,CACb,CACF,CAAA,CACF,CAAA,CAIR,CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingVelocitySlider.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingVelocitySlider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,eAAO,MAAM,qBAAqB,0BACT;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE;;CAgCnE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JoggingVelocitySlider.js","sources":["../../../src/components/jogging/JoggingVelocitySlider.tsx"],"sourcesContent":["import { observer } from \"mobx-react-lite\"\nimport { useTranslation } from \"react-i18next\"\nimport { VelocitySlider, VelocitySliderLabel } from \"../VelocitySlider\"\nimport type { JoggingStore } from \"./JoggingStore\"\n\nexport const JoggingVelocitySlider = observer(\n ({ store, useDegree }: { store: JoggingStore; useDegree: boolean }) => {\n const { t } = useTranslation()\n\n function valueLabelFormat(value: number, useDegree: boolean): string {\n return useDegree\n ? `ω = ${t(\"Jogging.Cartesian.Rotation.velocityDegPerSec.lb\", { amount: value })}`\n : `v = ${t(\"Jogging.Cartesian.Translation.velocityMmPerSec.lb\", { amount: value })}`\n }\n\n return (\n <VelocitySlider\n store={store}\n velocity={store.velocityInDisplayUnits(useDegree)}\n min={store.minVelocityInDisplayUnits(useDegree)}\n max={store.maxVelocityInDisplayUnits(useDegree)}\n onVelocityChange={store.setVelocityFromSlider}\n useDegree={useDegree}\n disabled={store.isLocked}\n renderValue={(value) => (\n <VelocitySliderLabel\n value={valueLabelFormat(value, useDegree)}\n sx={{\n minWidth: \"111px\",\n span: {\n transform: \"translateY(-1.5px)\",\n },\n }}\n />\n )}\n />\n )\n },\n)\n"],"names":["JoggingVelocitySlider","observer","store","useDegree","t","useTranslation","valueLabelFormat","value","jsx","VelocitySlider","VelocitySliderLabel"],"mappings":";;;;AAKO,MAAMA,IAAwBC;AAAA,EACnC,CAAC,EAAE,OAAAC,GAAO,WAAAC,QAA6D;AACrE,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,aAASC,EAAiBC,GAAeJ,GAA4B;AACnE,aAAOA,IACH,OAAOC,EAAE,mDAAmD,EAAE,QAAQG,EAAA,CAAO,CAAC,KAC9E,OAAOH,EAAE,qDAAqD,EAAE,QAAQG,EAAA,CAAO,CAAC;AAAA,IACtF;AAEA,WACE,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAAP;AAAA,QACA,UAAUA,EAAM,uBAAuBC,CAAS;AAAA,QAChD,KAAKD,EAAM,0BAA0BC,CAAS;AAAA,QAC9C,KAAKD,EAAM,0BAA0BC,CAAS;AAAA,QAC9C,kBAAkBD,EAAM;AAAA,QACxB,WAAAC;AAAA,QACA,UAAUD,EAAM;AAAA,QAChB,aAAa,CAACK,MACZ,gBAAAC;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,OAAOJ,EAAiBC,GAAOJ,CAAS;AAAA,YACxC,IAAI;AAAA,cACF,UAAU;AAAA,cACV,MAAM;AAAA,gBACJ,WAAW;AAAA,cAAA;AAAA,YACb;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAIR;AACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoseCartesianValues.cjs","sources":["../../../src/components/jogging/PoseCartesianValues.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Stack from \"@mui/material/Stack\"\nimport { poseToWandelscriptString, type Pose } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useState } from \"react\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { CopyableText } from \"../CopyableText\"\n\nexport type PoseCartesianValuesProps = {\n tcpPose: Pose\n showCopyButton?: boolean\n}\n\nexport const PoseCartesianValues = externalizeComponent(\n observer(({ tcpPose, showCopyButton = false }: PoseCartesianValuesProps) => {\n const [copyMessage, setCopyMessage] = useState<string | null>(null)\n const poseString = poseToWandelscriptString(tcpPose)\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(poseString)\n setCopyMessage(\"Copied!\")\n setTimeout(() => setCopyMessage(null), 2000)\n } catch {\n setCopyMessage(\"Copy failed\")\n setTimeout(() => setCopyMessage(null), 2000)\n }\n }\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n spacing={1}\n sx={{ flexGrow: 1, minWidth: 0, overflow: \"hidden\" }}\n data-testid=\"pose-cartesian-values\"\n >\n <CopyableText value={poseString} />\n {showCopyButton && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={handleCopy}\n sx={{ flexShrink: 0 }}\n >\n {copyMessage ? copyMessage : \"Copy\"}\n </Button>\n )}\n </Stack>\n )\n }),\n)\n\nexport default PoseCartesianValues\n"],"names":["PoseCartesianValues","externalizeComponent","observer","tcpPose","showCopyButton","copyMessage","setCopyMessage","useState","poseString","poseToWandelscriptString","handleCopy","jsxs","Stack","jsx","CopyableText","Button"],"mappings":"qXAaaA,EAAsBC,EAAAA,qBACjCC,EAAAA,SAAS,CAAC,CAAE,QAAAC,EAAS,eAAAC,EAAiB,MAAsC,CAC1E,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAAwB,IAAI,EAC5DC,EAAaC,EAAAA,yBAAyBN,CAAO,EAE7CO,EAAa,SAAY,CAC7B,GAAI,CACF,MAAM,UAAU,UAAU,UAAUF,CAAU,EAC9CF,EAAe,SAAS,EACxB,WAAW,IAAMA,EAAe,IAAI,EAAG,GAAI,CAC7C,MAAQ,CACNA,EAAe,aAAa,EAC5B,WAAW,IAAMA,EAAe,IAAI,EAAG,GAAI,CAC7C,CACF,EAEA,OACEK,EAAAA,KAACC,EAAA,CACC,UAAU,MACV,WAAW,SACX,QAAS,EACT,GAAI,CAAE,SAAU,EAAG,SAAU,EAAG,SAAU,QAAA,EAC1C,cAAY,wBAEZ,SAAA,CAAAC,EAAAA,IAACC,EAAAA,aAAA,CAAa,MAAON,CAAA,CAAY,EAChCJ,GACCS,EAAAA,IAACE,EAAA,CACC,QAAQ,YACR,MAAM,YACN,KAAK,QACL,QAASL,EACT,GAAI,CAAE,WAAY,CAAA,EAEjB,YAA4B,MAAA,CAAA,CAC/B,CAAA,CAAA,CAIR,CAAC,CACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoseCartesianValues.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/PoseCartesianValues.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAM5E,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,IAAI,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,mBAAmB,iCACiB,wBAAwB;;CAsCxE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoseCartesianValues.js","sources":["../../../src/components/jogging/PoseCartesianValues.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Stack from \"@mui/material/Stack\"\nimport { poseToWandelscriptString, type Pose } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useState } from \"react\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { CopyableText } from \"../CopyableText\"\n\nexport type PoseCartesianValuesProps = {\n tcpPose: Pose\n showCopyButton?: boolean\n}\n\nexport const PoseCartesianValues = externalizeComponent(\n observer(({ tcpPose, showCopyButton = false }: PoseCartesianValuesProps) => {\n const [copyMessage, setCopyMessage] = useState<string | null>(null)\n const poseString = poseToWandelscriptString(tcpPose)\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(poseString)\n setCopyMessage(\"Copied!\")\n setTimeout(() => setCopyMessage(null), 2000)\n } catch {\n setCopyMessage(\"Copy failed\")\n setTimeout(() => setCopyMessage(null), 2000)\n }\n }\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n spacing={1}\n sx={{ flexGrow: 1, minWidth: 0, overflow: \"hidden\" }}\n data-testid=\"pose-cartesian-values\"\n >\n <CopyableText value={poseString} />\n {showCopyButton && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={handleCopy}\n sx={{ flexShrink: 0 }}\n >\n {copyMessage ? copyMessage : \"Copy\"}\n </Button>\n )}\n </Stack>\n )\n }),\n)\n\nexport default PoseCartesianValues\n"],"names":["PoseCartesianValues","externalizeComponent","observer","tcpPose","showCopyButton","copyMessage","setCopyMessage","useState","poseString","poseToWandelscriptString","jsxs","Stack","jsx","CopyableText","Button"],"mappings":";;;;;;;;AAaO,MAAMA,IAAsBC;AAAA,EACjCC,EAAS,CAAC,EAAE,SAAAC,GAAS,gBAAAC,IAAiB,SAAsC;AAC1E,UAAM,CAACC,GAAaC,CAAc,IAAIC,EAAwB,IAAI,GAC5DC,IAAaC,EAAyBN,CAAO;AAanD,WACE,gBAAAO;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,YAAW;AAAA,QACX,SAAS;AAAA,QACT,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,SAAA;AAAA,QAC1C,eAAY;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAC,EAACC,GAAA,EAAa,OAAOL,EAAA,CAAY;AAAA,UAChCJ,KACC,gBAAAQ;AAAA,YAACE;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,MAAK;AAAA,cACL,SAzBW,YAAY;AAC7B,oBAAI;AACF,wBAAM,UAAU,UAAU,UAAUN,CAAU,GAC9CF,EAAe,SAAS,GACxB,WAAW,MAAMA,EAAe,IAAI,GAAG,GAAI;AAAA,gBAC7C,QAAQ;AACN,kBAAAA,EAAe,aAAa,GAC5B,WAAW,MAAMA,EAAe,IAAI,GAAG,GAAI;AAAA,gBAC7C;AAAA,cACF;AAAA,cAiBQ,IAAI,EAAE,YAAY,EAAA;AAAA,cAEjB,eAA4B;AAAA,YAAA;AAAA,UAAA;AAAA,QAC/B;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR,CAAC;AACH;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoseJointValues.cjs","sources":["../../../src/components/jogging/PoseJointValues.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Stack from \"@mui/material/Stack\"\nimport { observer } from \"mobx-react-lite\"\nimport { useState } from \"react\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { CopyableText } from \"../CopyableText\"\n\nexport type PoseJointValuesProps = {\n joints: Array<number>\n showCopyButton?: boolean\n}\n\nexport const PoseJointValues = externalizeComponent(\n observer(({ joints, showCopyButton = false }: PoseJointValuesProps) => {\n const [copyMessage, setCopyMessage] = useState<string | null>(null)\n const poseString = `[${joints.map((j: number) => parseFloat(j.toFixed(4))).join(\", \")}]`\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(poseString)\n setCopyMessage(\"Copied!\")\n setTimeout(() => setCopyMessage(null), 2000)\n } catch {\n setCopyMessage(\"Copy failed\")\n setTimeout(() => setCopyMessage(null), 2000)\n }\n }\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n spacing={1}\n sx={{ flexGrow: 1, minWidth: 0, overflow: \"hidden\" }}\n data-testid=\"pose-joint-values\"\n >\n <CopyableText value={poseString} />\n {showCopyButton && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={handleCopy}\n sx={{ flexShrink: 0 }}\n >\n {copyMessage ? copyMessage : \"Copy\"}\n </Button>\n )}\n </Stack>\n )\n }),\n)\n\nexport default PoseJointValues\n"],"names":["PoseJointValues","externalizeComponent","observer","joints","showCopyButton","copyMessage","setCopyMessage","useState","poseString","j","handleCopy","jsxs","Stack","jsx","CopyableText","Button"],"mappings":"iVAYaA,EAAkBC,EAAAA,qBAC7BC,EAAAA,SAAS,CAAC,CAAE,OAAAC,EAAQ,eAAAC,EAAiB,MAAkC,CACrE,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAAwB,IAAI,EAC5DC,EAAa,IAAIL,EAAO,IAAKM,GAAc,WAAWA,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAE/EC,EAAa,SAAY,CAC7B,GAAI,CACF,MAAM,UAAU,UAAU,UAAUF,CAAU,EAC9CF,EAAe,SAAS,EACxB,WAAW,IAAMA,EAAe,IAAI,EAAG,GAAI,CAC7C,MAAQ,CACNA,EAAe,aAAa,EAC5B,WAAW,IAAMA,EAAe,IAAI,EAAG,GAAI,CAC7C,CACF,EAEA,OACEK,EAAAA,KAACC,EAAA,CACC,UAAU,MACV,WAAW,SACX,QAAS,EACT,GAAI,CAAE,SAAU,EAAG,SAAU,EAAG,SAAU,QAAA,EAC1C,cAAY,oBAEZ,SAAA,CAAAC,EAAAA,IAACC,EAAAA,aAAA,CAAa,MAAON,CAAA,CAAY,EAChCJ,GACCS,EAAAA,IAACE,EAAA,CACC,QAAQ,YACR,MAAM,YACN,KAAK,QACL,QAASL,EACT,GAAI,CAAE,WAAY,CAAA,EAEjB,YAA4B,MAAA,CAAA,CAC/B,CAAA,CAAA,CAIR,CAAC,CACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoseJointValues.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/PoseJointValues.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,eAAe,gCACoB,oBAAoB;;CAsCnE,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoseJointValues.js","sources":["../../../src/components/jogging/PoseJointValues.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Stack from \"@mui/material/Stack\"\nimport { observer } from \"mobx-react-lite\"\nimport { useState } from \"react\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { CopyableText } from \"../CopyableText\"\n\nexport type PoseJointValuesProps = {\n joints: Array<number>\n showCopyButton?: boolean\n}\n\nexport const PoseJointValues = externalizeComponent(\n observer(({ joints, showCopyButton = false }: PoseJointValuesProps) => {\n const [copyMessage, setCopyMessage] = useState<string | null>(null)\n const poseString = `[${joints.map((j: number) => parseFloat(j.toFixed(4))).join(\", \")}]`\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(poseString)\n setCopyMessage(\"Copied!\")\n setTimeout(() => setCopyMessage(null), 2000)\n } catch {\n setCopyMessage(\"Copy failed\")\n setTimeout(() => setCopyMessage(null), 2000)\n }\n }\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n spacing={1}\n sx={{ flexGrow: 1, minWidth: 0, overflow: \"hidden\" }}\n data-testid=\"pose-joint-values\"\n >\n <CopyableText value={poseString} />\n {showCopyButton && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={handleCopy}\n sx={{ flexShrink: 0 }}\n >\n {copyMessage ? copyMessage : \"Copy\"}\n </Button>\n )}\n </Stack>\n )\n }),\n)\n\nexport default PoseJointValues\n"],"names":["PoseJointValues","externalizeComponent","observer","joints","showCopyButton","copyMessage","setCopyMessage","useState","poseString","j","jsxs","Stack","jsx","CopyableText","Button"],"mappings":";;;;;;;AAYO,MAAMA,IAAkBC;AAAA,EAC7BC,EAAS,CAAC,EAAE,QAAAC,GAAQ,gBAAAC,IAAiB,SAAkC;AACrE,UAAM,CAACC,GAAaC,CAAc,IAAIC,EAAwB,IAAI,GAC5DC,IAAa,IAAIL,EAAO,IAAI,CAACM,MAAc,WAAWA,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;AAarF,WACE,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,YAAW;AAAA,QACX,SAAS;AAAA,QACT,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,SAAA;AAAA,QAC1C,eAAY;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAC,EAACC,GAAA,EAAa,OAAOL,EAAA,CAAY;AAAA,UAChCJ,KACC,gBAAAQ;AAAA,YAACE;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,MAAK;AAAA,cACL,SAzBW,YAAY;AAC7B,oBAAI;AACF,wBAAM,UAAU,UAAU,UAAUN,CAAU,GAC9CF,EAAe,SAAS,GACxB,WAAW,MAAMA,EAAe,IAAI,GAAG,GAAI;AAAA,gBAC7C,QAAQ;AACN,kBAAAA,EAAe,aAAa,GAC5B,WAAW,MAAMA,EAAe,IAAI,GAAG,GAAI;AAAA,gBAC7C;AAAA,cACF;AAAA,cAiBQ,IAAI,EAAE,YAAY,EAAA;AAAA,cAEjB,eAA4B;AAAA,YAAA;AAAA,UAAA;AAAA,QAC/B;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR,CAAC;AACH;"}
@@ -1,11 +0,0 @@
1
- import type { MotionGroupState, MotionGroupDescription, DHParameter } from "@wandelbots/nova-js/v2";
2
- export declare const ur5eMotionGroupState: MotionGroupState;
3
- export declare const ur5eDhParameters: DHParameter[];
4
- export declare const ur5eDescription: MotionGroupDescription;
5
- export declare const turnMockMotionGroupState: MotionGroupState;
6
- export declare const turnMockDhParameters: DHParameter[];
7
- export declare const turnMockDescription: MotionGroupDescription;
8
- export declare const linearAxisMotionGroupState: MotionGroupState;
9
- export declare const linearAxisDhParameters: DHParameter[];
10
- export declare const linearAxisDescription: MotionGroupDescription;
11
- //# sourceMappingURL=motionStreamMockData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"motionStreamMockData.d.ts","sourceRoot":"","sources":["../../../../src/components/jogging/__fixtures__/motionStreamMockData.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACZ,MAAM,wBAAwB,CAAA;AAM/B,eAAO,MAAM,oBAAoB,EAAE,gBA4BlC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAAW,EAGzC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,sBAMQ,CAAA;AAMtC,eAAO,MAAM,wBAAwB,EAAE,gBAqBtC,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,WAAW,EAG7C,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,sBAMI,CAAA;AAMtC,eAAO,MAAM,0BAA0B,EAAE,gBAqBxC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,WAAW,EAE/C,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,sBAME,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoMotionGroupModal.cjs","sources":["../../../src/components/modal/NoMotionGroupModal.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Dialog from \"@mui/material/Dialog\"\nimport DialogActions from \"@mui/material/DialogActions\"\nimport DialogContent from \"@mui/material/DialogContent\"\nimport DialogTitle from \"@mui/material/DialogTitle\"\nimport Stack from \"@mui/material/Stack\"\nimport Typography from \"@mui/material/Typography\"\nfunction getBaseUrl(): string {\n const currentUrl = window.location.href\n return currentUrl.substring(\n 0,\n currentUrl.indexOf(\"/\", currentUrl.indexOf(\"//\") + 2),\n )\n}\n\nexport type NoMotionGroupModalProps = {\n baseUrl: string\n}\n\nexport function NoMotionGroupModal({\n baseUrl = getBaseUrl(),\n ...props\n}: NoMotionGroupModalProps) {\n return (\n <Dialog\n aria-labelledby=\"no-motion-group-modal-title\"\n open={true}\n fullWidth\n sx={{\n \"& .MuiModal-backdrop\": {\n backdropFilter: \"blur(10px)\",\n },\n \"& .MuiDialog-paper\": {\n \"::before\": {\n content: '\"\"',\n height: \"8px\",\n width: \"100%\",\n background: \"linear-gradient(90deg, #FF0E65 0%, #47D3FF 100%)\",\n },\n background: \"#101629\",\n },\n }}\n >\n <DialogTitle id=\"no-motion-group-modal-title\">\n No motion group found\n </DialogTitle>\n\n <DialogContent\n sx={{\n marginTop: \"3rem\",\n marginBottom: \"1.5rem\",\n textAlign: \"center\",\n }}\n >\n <Typography color=\"#fff\">Found no devices to connect to.</Typography>\n <Typography color=\"#fff\">\n Please ensure a motion group has been created.\n </Typography>\n </DialogContent>\n\n <DialogActions>\n <Stack width=\"100%\" maxWidth=\"300px\" margin=\"auto\" marginBottom=\"2rem\">\n <Button\n href={`${baseUrl}/settings`}\n variant=\"contained\"\n sx={{\n borderRadius: \"8px\",\n width: \"100%\",\n }}\n >\n Go to settings app\n </Button>\n <Button\n href={`${baseUrl}`}\n variant=\"text\"\n sx={{\n marginTop: \"1rem\",\n color: \"#fff\",\n textDecoration: \"underline\",\n fontSize: \"0.75rem\",\n }}\n >\n Back to Homescreen\n </Button>\n </Stack>\n </DialogActions>\n </Dialog>\n )\n}\n\nexport default NoMotionGroupModal\n"],"names":["getBaseUrl","currentUrl","NoMotionGroupModal","baseUrl","props","jsxs","Dialog","jsx","DialogTitle","DialogContent","Typography","DialogActions","Stack","Button"],"mappings":"qZAOA,SAASA,GAAqB,CAC5B,MAAMC,EAAa,OAAO,SAAS,KACnC,OAAOA,EAAW,UAChB,EACAA,EAAW,QAAQ,IAAKA,EAAW,QAAQ,IAAI,EAAI,CAAC,CAAA,CAExD,CAMO,SAASC,EAAmB,CACjC,QAAAC,EAAUH,EAAA,EACV,GAAGI,CACL,EAA4B,CAC1B,OACEC,EAAAA,KAACC,EAAA,CACC,kBAAgB,8BAChB,KAAM,GACN,UAAS,GACT,GAAI,CACF,uBAAwB,CACtB,eAAgB,YAAA,EAElB,qBAAsB,CACpB,WAAY,CACV,QAAS,KACT,OAAQ,MACR,MAAO,OACP,WAAY,kDAAA,EAEd,WAAY,SAAA,CACd,EAGF,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAY,GAAG,8BAA8B,SAAA,wBAE9C,EAEAH,EAAAA,KAACI,EAAA,CACC,GAAI,CACF,UAAW,OACX,aAAc,SACd,UAAW,QAAA,EAGb,SAAA,CAAAF,EAAAA,IAACG,EAAA,CAAW,MAAM,OAAO,SAAA,kCAA+B,EACxDH,EAAAA,IAACG,EAAA,CAAW,MAAM,OAAO,SAAA,gDAAA,CAEzB,CAAA,CAAA,CAAA,EAGFH,EAAAA,IAACI,EAAA,CACC,SAAAN,EAAAA,KAACO,EAAA,CAAM,MAAM,OAAO,SAAS,QAAQ,OAAO,OAAO,aAAa,OAC9D,SAAA,CAAAL,EAAAA,IAACM,EAAA,CACC,KAAM,GAAGV,CAAO,YAChB,QAAQ,YACR,GAAI,CACF,aAAc,MACd,MAAO,MAAA,EAEV,SAAA,oBAAA,CAAA,EAGDI,EAAAA,IAACM,EAAA,CACC,KAAM,GAAGV,CAAO,GAChB,QAAQ,OACR,GAAI,CACF,UAAW,OACX,MAAO,OACP,eAAgB,YAChB,SAAU,SAAA,EAEb,SAAA,oBAAA,CAAA,CAED,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAAA,CAGN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoMotionGroupModal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/NoMotionGroupModal.tsx"],"names":[],"mappings":"AAeA,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAsB,EACtB,GAAG,KAAK,EACT,EAAE,uBAAuB,2CAkEzB;AAED,eAAe,kBAAkB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoMotionGroupModal.js","sources":["../../../src/components/modal/NoMotionGroupModal.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Dialog from \"@mui/material/Dialog\"\nimport DialogActions from \"@mui/material/DialogActions\"\nimport DialogContent from \"@mui/material/DialogContent\"\nimport DialogTitle from \"@mui/material/DialogTitle\"\nimport Stack from \"@mui/material/Stack\"\nimport Typography from \"@mui/material/Typography\"\nfunction getBaseUrl(): string {\n const currentUrl = window.location.href\n return currentUrl.substring(\n 0,\n currentUrl.indexOf(\"/\", currentUrl.indexOf(\"//\") + 2),\n )\n}\n\nexport type NoMotionGroupModalProps = {\n baseUrl: string\n}\n\nexport function NoMotionGroupModal({\n baseUrl = getBaseUrl(),\n ...props\n}: NoMotionGroupModalProps) {\n return (\n <Dialog\n aria-labelledby=\"no-motion-group-modal-title\"\n open={true}\n fullWidth\n sx={{\n \"& .MuiModal-backdrop\": {\n backdropFilter: \"blur(10px)\",\n },\n \"& .MuiDialog-paper\": {\n \"::before\": {\n content: '\"\"',\n height: \"8px\",\n width: \"100%\",\n background: \"linear-gradient(90deg, #FF0E65 0%, #47D3FF 100%)\",\n },\n background: \"#101629\",\n },\n }}\n >\n <DialogTitle id=\"no-motion-group-modal-title\">\n No motion group found\n </DialogTitle>\n\n <DialogContent\n sx={{\n marginTop: \"3rem\",\n marginBottom: \"1.5rem\",\n textAlign: \"center\",\n }}\n >\n <Typography color=\"#fff\">Found no devices to connect to.</Typography>\n <Typography color=\"#fff\">\n Please ensure a motion group has been created.\n </Typography>\n </DialogContent>\n\n <DialogActions>\n <Stack width=\"100%\" maxWidth=\"300px\" margin=\"auto\" marginBottom=\"2rem\">\n <Button\n href={`${baseUrl}/settings`}\n variant=\"contained\"\n sx={{\n borderRadius: \"8px\",\n width: \"100%\",\n }}\n >\n Go to settings app\n </Button>\n <Button\n href={`${baseUrl}`}\n variant=\"text\"\n sx={{\n marginTop: \"1rem\",\n color: \"#fff\",\n textDecoration: \"underline\",\n fontSize: \"0.75rem\",\n }}\n >\n Back to Homescreen\n </Button>\n </Stack>\n </DialogActions>\n </Dialog>\n )\n}\n\nexport default NoMotionGroupModal\n"],"names":["getBaseUrl","currentUrl","NoMotionGroupModal","baseUrl","props","jsxs","Dialog","jsx","DialogTitle","DialogContent","Typography","DialogActions","Stack","Button"],"mappings":";;;;;;;;AAOA,SAASA,IAAqB;AAC5B,QAAMC,IAAa,OAAO,SAAS;AACnC,SAAOA,EAAW;AAAA,IAChB;AAAA,IACAA,EAAW,QAAQ,KAAKA,EAAW,QAAQ,IAAI,IAAI,CAAC;AAAA,EAAA;AAExD;AAMO,SAASC,EAAmB;AAAA,EACjC,SAAAC,IAAUH,EAAA;AAAA,EACV,GAAGI;AACL,GAA4B;AAC1B,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,mBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,WAAS;AAAA,MACT,IAAI;AAAA,QACF,wBAAwB;AAAA,UACtB,gBAAgB;AAAA,QAAA;AAAA,QAElB,sBAAsB;AAAA,UACpB,YAAY;AAAA,YACV,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,UAEd,YAAY;AAAA,QAAA;AAAA,MACd;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAC,EAACC,GAAA,EAAY,IAAG,+BAA8B,UAAA,yBAE9C;AAAA,QAEA,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,WAAW;AAAA,cACX,cAAc;AAAA,cACd,WAAW;AAAA,YAAA;AAAA,YAGb,UAAA;AAAA,cAAA,gBAAAF,EAACG,GAAA,EAAW,OAAM,QAAO,UAAA,mCAA+B;AAAA,cACxD,gBAAAH,EAACG,GAAA,EAAW,OAAM,QAAO,UAAA,iDAAA,CAEzB;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,gBAAAH,EAACI,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,EAAM,OAAM,QAAO,UAAS,SAAQ,QAAO,QAAO,cAAa,QAC9D,UAAA;AAAA,UAAA,gBAAAL;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,MAAM,GAAGV,CAAO;AAAA,cAChB,SAAQ;AAAA,cACR,IAAI;AAAA,gBACF,cAAc;AAAA,gBACd,OAAO;AAAA,cAAA;AAAA,cAEV,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAGD,gBAAAI;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,MAAM,GAAGV,CAAO;AAAA,cAChB,SAAQ;AAAA,cACR,IAAI;AAAA,gBACF,WAAW;AAAA,gBACX,OAAO;AAAA,gBACP,gBAAgB;AAAA,gBAChB,UAAU;AAAA,cAAA;AAAA,cAEb,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,EAAA,CACF,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AxisConfig.cjs","sources":["../../../src/components/robots/AxisConfig.ts"],"sourcesContent":["export type AxisConfig = number[]\n\nexport const defaultAxisConfig: AxisConfig = Array(6).fill(2 * Math.PI)\n"],"names":["defaultAxisConfig"],"mappings":"gFAEO,MAAMA,EAAgC,MAAM,CAAC,EAAE,KAAK,EAAI,KAAK,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AxisConfig.d.ts","sourceRoot":"","sources":["../../../src/components/robots/AxisConfig.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,EAAE,CAAA;AAEjC,eAAO,MAAM,iBAAiB,EAAE,UAAuC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AxisConfig.js","sources":["../../../src/components/robots/AxisConfig.ts"],"sourcesContent":["export type AxisConfig = number[]\n\nexport const defaultAxisConfig: AxisConfig = Array(6).fill(2 * Math.PI)\n"],"names":["defaultAxisConfig"],"mappings":"AAEO,MAAMA,IAAgC,MAAM,CAAC,EAAE,KAAK,IAAI,KAAK,EAAE;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DHLinearAxis.cjs","sources":["../../../src/components/robots/DHLinearAxis.tsx"],"sourcesContent":["/* biome-ignore-all lint/style/noNonNullAssertion: pre-biome code */\n/* biome-ignore-all lint/suspicious/noExplicitAny: pre-biome code */\n\nimport { Line } from \"@react-three/drei\"\nimport { useRef } from \"react\"\nimport type * as THREE from \"three\"\nimport { Matrix4, Quaternion, Vector3 } from \"three\"\nimport LinearAxisAnimator from \"./LinearAxisAnimator\"\nimport type { DHLinearAxisProps } from \"./SupportedLinearAxis\"\n\nexport function DHLinearAxis({\n rapidlyChangingMotionState,\n dhParameters,\n ...props\n}: DHLinearAxisProps) {\n // reused in every update\n const accumulatedMatrix = new Matrix4()\n\n const tcpMeshRef = useRef<THREE.Mesh | null>(null)\n const tcpLineRef = useRef<any>(null)\n\n // Calculate initial TCP position\n function calculateTcpPosition(jointValues: number[]): Vector3 {\n const tempMatrix = new Matrix4()\n\n for (let i = 0; i < dhParameters.length; i++) {\n const param = dhParameters[i]\n const jointValue = jointValues[i] ?? 0\n\n const matrix = new Matrix4()\n .makeRotationY(param.theta!) // Base rotation (if any)\n .multiply(\n new Matrix4().makeTranslation(\n param.a! / 1000,\n (param.d! +\n jointValue * (param.reverse_rotation_direction ? -1 : 1)) /\n 1000,\n 0,\n ),\n ) // Translate along X by a, and Y by d + joint_position\n .multiply(new Matrix4().makeRotationX(param.alpha!)) // Rotate around X\n\n tempMatrix.multiply(matrix)\n }\n\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n tempMatrix.decompose(position, quaternion, scale)\n return position\n }\n\n // Calculate initial TCP position for rendering\n const initialTcpPosition = calculateTcpPosition(\n rapidlyChangingMotionState.joint_position,\n )\n\n function setTranslation(joints: THREE.Object3D[], jointValues: number[]) {\n accumulatedMatrix.identity()\n\n let tcpPosition = new Vector3()\n\n // Process all joints based on dhParameters length, not joints array\n // Since we're using DHLinearAxis directly without a model, we don't have joint objects\n for (let jointIndex = 0; jointIndex < dhParameters.length; jointIndex++) {\n const jointValue = jointValues[jointIndex] ?? 0\n const param = dhParameters[jointIndex]\n\n // Calculate and accumulate transformation\n const matrix = new Matrix4()\n .makeRotationY(param.theta!) // Base rotation (if any)\n .multiply(\n new Matrix4().makeTranslation(\n param.a! / 1000,\n (param.d! +\n jointValue * (param.reverse_rotation_direction ? -1 : 1)) /\n 1000,\n 0,\n ),\n )\n .multiply(new Matrix4().makeRotationX(param.alpha!))\n\n accumulatedMatrix.multiply(matrix)\n }\n\n // Get final TCP position from accumulated matrix\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n accumulatedMatrix.decompose(position, quaternion, scale)\n tcpPosition = position\n\n // Update TCP marker\n if (tcpMeshRef.current) {\n tcpMeshRef.current.position.set(\n tcpPosition.x,\n tcpPosition.y,\n tcpPosition.z,\n )\n }\n\n // Update TCP line\n if (tcpLineRef.current) {\n const lineGeometry = tcpLineRef.current.geometry\n if (lineGeometry?.setPositions) {\n lineGeometry.setPositions([\n 0,\n 0,\n 0,\n tcpPosition.x,\n tcpPosition.y,\n tcpPosition.z,\n ])\n }\n }\n }\n\n return (\n <LinearAxisAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n onTranslationChanged={setTranslation}\n >\n <group {...props} name=\"Scene\">\n {/* Base (origin) - Green sphere representing initial previous position */}\n <mesh name=\"Base\" position={[0, 0, 0]}>\n <sphereGeometry args={[0.02, 32, 32]} />\n <meshStandardMaterial color={\"green\"} depthTest={true} />\n </mesh>\n {/* Line from Base to TCP */}\n <Line\n ref={tcpLineRef}\n points={[new Vector3(0, 0, 0), initialTcpPosition]}\n color={\"White\"}\n lineWidth={5}\n />\n {/* TCP (Tool Center Point) - Red sphere that shows final position */}\n <mesh ref={tcpMeshRef} name=\"TCP\" position={initialTcpPosition}>\n <sphereGeometry args={[0.025, 32, 32]} />\n <meshStandardMaterial color={\"red\"} depthTest={true} />\n </mesh>\n </group>\n </LinearAxisAnimator>\n )\n}\n\nexport default DHLinearAxis\n"],"names":["DHLinearAxis","rapidlyChangingMotionState","dhParameters","props","accumulatedMatrix","Matrix4","tcpMeshRef","useRef","tcpLineRef","calculateTcpPosition","jointValues","tempMatrix","i","param","jointValue","matrix","position","Vector3","quaternion","Quaternion","scale","initialTcpPosition","setTranslation","joints","tcpPosition","jointIndex","lineGeometry","jsx","LinearAxisAnimator","jsxs","Line"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DHLinearAxis.d.ts","sourceRoot":"","sources":["../../../src/components/robots/DHLinearAxis.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,wBAAgB,YAAY,CAAC,EAC3B,0BAA0B,EAC1B,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAkInB;AAED,eAAe,YAAY,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DHLinearAxis.js","sources":["../../../src/components/robots/DHLinearAxis.tsx"],"sourcesContent":["/* biome-ignore-all lint/style/noNonNullAssertion: pre-biome code */\n/* biome-ignore-all lint/suspicious/noExplicitAny: pre-biome code */\n\nimport { Line } from \"@react-three/drei\"\nimport { useRef } from \"react\"\nimport type * as THREE from \"three\"\nimport { Matrix4, Quaternion, Vector3 } from \"three\"\nimport LinearAxisAnimator from \"./LinearAxisAnimator\"\nimport type { DHLinearAxisProps } from \"./SupportedLinearAxis\"\n\nexport function DHLinearAxis({\n rapidlyChangingMotionState,\n dhParameters,\n ...props\n}: DHLinearAxisProps) {\n // reused in every update\n const accumulatedMatrix = new Matrix4()\n\n const tcpMeshRef = useRef<THREE.Mesh | null>(null)\n const tcpLineRef = useRef<any>(null)\n\n // Calculate initial TCP position\n function calculateTcpPosition(jointValues: number[]): Vector3 {\n const tempMatrix = new Matrix4()\n\n for (let i = 0; i < dhParameters.length; i++) {\n const param = dhParameters[i]\n const jointValue = jointValues[i] ?? 0\n\n const matrix = new Matrix4()\n .makeRotationY(param.theta!) // Base rotation (if any)\n .multiply(\n new Matrix4().makeTranslation(\n param.a! / 1000,\n (param.d! +\n jointValue * (param.reverse_rotation_direction ? -1 : 1)) /\n 1000,\n 0,\n ),\n ) // Translate along X by a, and Y by d + joint_position\n .multiply(new Matrix4().makeRotationX(param.alpha!)) // Rotate around X\n\n tempMatrix.multiply(matrix)\n }\n\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n tempMatrix.decompose(position, quaternion, scale)\n return position\n }\n\n // Calculate initial TCP position for rendering\n const initialTcpPosition = calculateTcpPosition(\n rapidlyChangingMotionState.joint_position,\n )\n\n function setTranslation(joints: THREE.Object3D[], jointValues: number[]) {\n accumulatedMatrix.identity()\n\n let tcpPosition = new Vector3()\n\n // Process all joints based on dhParameters length, not joints array\n // Since we're using DHLinearAxis directly without a model, we don't have joint objects\n for (let jointIndex = 0; jointIndex < dhParameters.length; jointIndex++) {\n const jointValue = jointValues[jointIndex] ?? 0\n const param = dhParameters[jointIndex]\n\n // Calculate and accumulate transformation\n const matrix = new Matrix4()\n .makeRotationY(param.theta!) // Base rotation (if any)\n .multiply(\n new Matrix4().makeTranslation(\n param.a! / 1000,\n (param.d! +\n jointValue * (param.reverse_rotation_direction ? -1 : 1)) /\n 1000,\n 0,\n ),\n )\n .multiply(new Matrix4().makeRotationX(param.alpha!))\n\n accumulatedMatrix.multiply(matrix)\n }\n\n // Get final TCP position from accumulated matrix\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n accumulatedMatrix.decompose(position, quaternion, scale)\n tcpPosition = position\n\n // Update TCP marker\n if (tcpMeshRef.current) {\n tcpMeshRef.current.position.set(\n tcpPosition.x,\n tcpPosition.y,\n tcpPosition.z,\n )\n }\n\n // Update TCP line\n if (tcpLineRef.current) {\n const lineGeometry = tcpLineRef.current.geometry\n if (lineGeometry?.setPositions) {\n lineGeometry.setPositions([\n 0,\n 0,\n 0,\n tcpPosition.x,\n tcpPosition.y,\n tcpPosition.z,\n ])\n }\n }\n }\n\n return (\n <LinearAxisAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n onTranslationChanged={setTranslation}\n >\n <group {...props} name=\"Scene\">\n {/* Base (origin) - Green sphere representing initial previous position */}\n <mesh name=\"Base\" position={[0, 0, 0]}>\n <sphereGeometry args={[0.02, 32, 32]} />\n <meshStandardMaterial color={\"green\"} depthTest={true} />\n </mesh>\n {/* Line from Base to TCP */}\n <Line\n ref={tcpLineRef}\n points={[new Vector3(0, 0, 0), initialTcpPosition]}\n color={\"White\"}\n lineWidth={5}\n />\n {/* TCP (Tool Center Point) - Red sphere that shows final position */}\n <mesh ref={tcpMeshRef} name=\"TCP\" position={initialTcpPosition}>\n <sphereGeometry args={[0.025, 32, 32]} />\n <meshStandardMaterial color={\"red\"} depthTest={true} />\n </mesh>\n </group>\n </LinearAxisAnimator>\n )\n}\n\nexport default DHLinearAxis\n"],"names":["DHLinearAxis","rapidlyChangingMotionState","dhParameters","props","accumulatedMatrix","Matrix4","tcpMeshRef","useRef","tcpLineRef","calculateTcpPosition","jointValues","tempMatrix","param","jointValue","matrix","position","Vector3","quaternion","Quaternion","scale","initialTcpPosition","setTranslation","joints","tcpPosition","jointIndex","lineGeometry","jsx","LinearAxisAnimator","jsxs","Line"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DHRobot.cjs","sources":["../../../src/components/robots/DHRobot.tsx"],"sourcesContent":["/* biome-ignore-all lint/style/noNonNullAssertion: pre-biome code */\n/* biome-ignore-all lint/suspicious/noExplicitAny: pre-biome code */\n\nimport { Line } from \"@react-three/drei\"\nimport type { DHParameter } from \"@wandelbots/nova-js/v2\"\nimport React, { useRef } from \"react\"\nimport type * as THREE from \"three\"\nimport { Matrix4, Quaternion, Vector3 } from \"three\"\nimport type { LineGeometry } from \"three/examples/jsm/lines/LineGeometry.js\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport type { DHRobotProps } from \"./SupportedRobot\"\n\nconst CHILD_LINE = \"line\"\nconst CHILD_MESH = \"mesh\"\n\nexport function DHRobot({\n rapidlyChangingMotionState,\n dhParameters,\n ...props\n}: DHRobotProps) {\n // reused in every update\n const accumulatedMatrix = new Matrix4()\n\n // Store direct references to avoid searching by name\n const lineRefs = useRef<any[]>([])\n const meshRefs = useRef<(THREE.Mesh | null)[]>([])\n\n // Initialize refs array when dhParameters change\n React.useEffect(() => {\n lineRefs.current = new Array(dhParameters.length).fill(null)\n meshRefs.current = new Array(dhParameters.length).fill(null)\n }, [dhParameters.length])\n\n // Updates accumulatedMatrix with every execution\n // Reset the matrix to identity if you start a new position update\n function getLinePoints(\n dhParameter: DHParameter,\n jointRotation: number,\n ): {\n a: THREE.Vector3\n b: THREE.Vector3\n } {\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n accumulatedMatrix.decompose(position, quaternion, scale)\n const prevPosition = position.clone() // Update the previous position\n\n const matrix = new Matrix4()\n .makeRotationY(\n dhParameter.theta! +\n jointRotation * (dhParameter.reverse_rotation_direction ? -1 : 1),\n ) // Rotate around Z\n .multiply(new Matrix4().makeTranslation(0, dhParameter.d! / 1000, 0)) // Translate along Z\n .multiply(new Matrix4().makeTranslation(dhParameter.a! / 1000, 0, 0)) // Translate along X\n .multiply(new Matrix4().makeRotationX(dhParameter.alpha!)) // Rotate around X\n\n // Accumulate transformations\n accumulatedMatrix.multiply(matrix)\n accumulatedMatrix.decompose(position, quaternion, scale)\n return { a: prevPosition, b: position }\n }\n\n function setJointLineRotation(\n jointIndex: number,\n line: any, // Use any for drei Line component\n mesh: THREE.Mesh,\n jointValue: number,\n ) {\n if (!dhParameters) {\n return\n }\n\n const dh_parameter = dhParameters[jointIndex]\n if (!dh_parameter) {\n return\n }\n\n const { a, b } = getLinePoints(dh_parameter, jointValue)\n const lineGeometry = line.geometry as LineGeometry\n lineGeometry.setPositions([a.toArray(), b.toArray()].flat())\n\n mesh.position.set(b.x, b.y, b.z)\n }\n\n function setRotation(joints: THREE.Object3D[], jointValues: number[]) {\n accumulatedMatrix.identity()\n\n // Use direct refs instead of searching by name\n for (\n let jointIndex = 0;\n jointIndex < Math.min(joints.length, jointValues.length);\n jointIndex++\n ) {\n const line = lineRefs.current[jointIndex]\n const mesh = meshRefs.current[jointIndex]\n\n if (line && mesh) {\n setJointLineRotation(jointIndex, line, mesh, jointValues[jointIndex]!)\n }\n }\n }\n\n return (\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n onRotationChanged={setRotation}\n >\n <group {...props} name=\"Scene\">\n <mesh>\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n {dhParameters?.map((param, index) => {\n const { a, b } = getLinePoints(\n param,\n rapidlyChangingMotionState.joint_position[index] ?? 0,\n )\n const jointName = `dhrobot_J0${index}`\n return (\n <group name={jointName} key={jointName}>\n <Line\n ref={(ref) => {\n lineRefs.current[index] = ref\n }}\n name={CHILD_LINE}\n points={[a, b]}\n color={\"white\"}\n lineWidth={5}\n />\n <mesh\n ref={(ref) => {\n meshRefs.current[index] = ref\n }}\n name={CHILD_MESH}\n // biome-ignore lint/suspicious/noArrayIndexKey: pre-biome code\n key={`mesh_${index}`}\n position={b}\n >\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n </group>\n )\n })}\n </group>\n </RobotAnimator>\n )\n}\n\nexport default DHRobot\n"],"names":["CHILD_LINE","CHILD_MESH","DHRobot","rapidlyChangingMotionState","dhParameters","props","accumulatedMatrix","Matrix4","lineRefs","useRef","meshRefs","React","getLinePoints","dhParameter","jointRotation","position","Vector3","quaternion","Quaternion","scale","prevPosition","matrix","setJointLineRotation","jointIndex","line","mesh","jointValue","dh_parameter","a","b","setRotation","joints","jointValues","jsx","RobotAnimator","jsxs","param","index","jointName","Line","ref"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DHRobot.d.ts","sourceRoot":"","sources":["../../../src/components/robots/DHRobot.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAKpD,wBAAgB,OAAO,CAAC,EACtB,0BAA0B,EAC1B,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,YAAY,2CAkId;AAED,eAAe,OAAO,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DHRobot.js","sources":["../../../src/components/robots/DHRobot.tsx"],"sourcesContent":["/* biome-ignore-all lint/style/noNonNullAssertion: pre-biome code */\n/* biome-ignore-all lint/suspicious/noExplicitAny: pre-biome code */\n\nimport { Line } from \"@react-three/drei\"\nimport type { DHParameter } from \"@wandelbots/nova-js/v2\"\nimport React, { useRef } from \"react\"\nimport type * as THREE from \"three\"\nimport { Matrix4, Quaternion, Vector3 } from \"three\"\nimport type { LineGeometry } from \"three/examples/jsm/lines/LineGeometry.js\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport type { DHRobotProps } from \"./SupportedRobot\"\n\nconst CHILD_LINE = \"line\"\nconst CHILD_MESH = \"mesh\"\n\nexport function DHRobot({\n rapidlyChangingMotionState,\n dhParameters,\n ...props\n}: DHRobotProps) {\n // reused in every update\n const accumulatedMatrix = new Matrix4()\n\n // Store direct references to avoid searching by name\n const lineRefs = useRef<any[]>([])\n const meshRefs = useRef<(THREE.Mesh | null)[]>([])\n\n // Initialize refs array when dhParameters change\n React.useEffect(() => {\n lineRefs.current = new Array(dhParameters.length).fill(null)\n meshRefs.current = new Array(dhParameters.length).fill(null)\n }, [dhParameters.length])\n\n // Updates accumulatedMatrix with every execution\n // Reset the matrix to identity if you start a new position update\n function getLinePoints(\n dhParameter: DHParameter,\n jointRotation: number,\n ): {\n a: THREE.Vector3\n b: THREE.Vector3\n } {\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n accumulatedMatrix.decompose(position, quaternion, scale)\n const prevPosition = position.clone() // Update the previous position\n\n const matrix = new Matrix4()\n .makeRotationY(\n dhParameter.theta! +\n jointRotation * (dhParameter.reverse_rotation_direction ? -1 : 1),\n ) // Rotate around Z\n .multiply(new Matrix4().makeTranslation(0, dhParameter.d! / 1000, 0)) // Translate along Z\n .multiply(new Matrix4().makeTranslation(dhParameter.a! / 1000, 0, 0)) // Translate along X\n .multiply(new Matrix4().makeRotationX(dhParameter.alpha!)) // Rotate around X\n\n // Accumulate transformations\n accumulatedMatrix.multiply(matrix)\n accumulatedMatrix.decompose(position, quaternion, scale)\n return { a: prevPosition, b: position }\n }\n\n function setJointLineRotation(\n jointIndex: number,\n line: any, // Use any for drei Line component\n mesh: THREE.Mesh,\n jointValue: number,\n ) {\n if (!dhParameters) {\n return\n }\n\n const dh_parameter = dhParameters[jointIndex]\n if (!dh_parameter) {\n return\n }\n\n const { a, b } = getLinePoints(dh_parameter, jointValue)\n const lineGeometry = line.geometry as LineGeometry\n lineGeometry.setPositions([a.toArray(), b.toArray()].flat())\n\n mesh.position.set(b.x, b.y, b.z)\n }\n\n function setRotation(joints: THREE.Object3D[], jointValues: number[]) {\n accumulatedMatrix.identity()\n\n // Use direct refs instead of searching by name\n for (\n let jointIndex = 0;\n jointIndex < Math.min(joints.length, jointValues.length);\n jointIndex++\n ) {\n const line = lineRefs.current[jointIndex]\n const mesh = meshRefs.current[jointIndex]\n\n if (line && mesh) {\n setJointLineRotation(jointIndex, line, mesh, jointValues[jointIndex]!)\n }\n }\n }\n\n return (\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n onRotationChanged={setRotation}\n >\n <group {...props} name=\"Scene\">\n <mesh>\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n {dhParameters?.map((param, index) => {\n const { a, b } = getLinePoints(\n param,\n rapidlyChangingMotionState.joint_position[index] ?? 0,\n )\n const jointName = `dhrobot_J0${index}`\n return (\n <group name={jointName} key={jointName}>\n <Line\n ref={(ref) => {\n lineRefs.current[index] = ref\n }}\n name={CHILD_LINE}\n points={[a, b]}\n color={\"white\"}\n lineWidth={5}\n />\n <mesh\n ref={(ref) => {\n meshRefs.current[index] = ref\n }}\n name={CHILD_MESH}\n // biome-ignore lint/suspicious/noArrayIndexKey: pre-biome code\n key={`mesh_${index}`}\n position={b}\n >\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n </group>\n )\n })}\n </group>\n </RobotAnimator>\n )\n}\n\nexport default DHRobot\n"],"names":["CHILD_LINE","CHILD_MESH","DHRobot","rapidlyChangingMotionState","dhParameters","props","accumulatedMatrix","Matrix4","lineRefs","useRef","meshRefs","React","getLinePoints","dhParameter","jointRotation","position","Vector3","quaternion","Quaternion","scale","prevPosition","matrix","setJointLineRotation","jointIndex","line","mesh","jointValue","dh_parameter","a","b","setRotation","joints","jointValues","jsx","RobotAnimator","jsxs","param","index","jointName","Line","ref"],"mappings":"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"}