@wandelbots/wandelbots-js-react-components 5.5.1-pr.fix-standardize-output.591.60112ee → 5.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (874) hide show
  1. package/dist/3d.cjs +2 -1
  2. package/dist/3d.cjs.map +1 -0
  3. package/dist/3d.d.ts +1 -0
  4. package/dist/3d.d.ts.map +1 -0
  5. package/dist/3d.js +1 -0
  6. package/dist/3d.js.map +1 -0
  7. package/dist/Setup.d.ts +1 -0
  8. package/dist/Setup.d.ts.map +1 -0
  9. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
  10. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -0
  11. package/dist/components/3d-viewport/PresetEnvironment.cjs +1 -0
  12. package/dist/components/3d-viewport/PresetEnvironment.cjs.map +1 -0
  13. package/dist/components/3d-viewport/PresetEnvironment.d.ts +1 -0
  14. package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -0
  15. package/dist/components/3d-viewport/PresetEnvironment.js +1 -0
  16. package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
  17. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -1
  18. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +1 -0
  19. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -0
  20. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -0
  21. package/dist/components/3d-viewport/SafetyZonesRenderer.js +1 -0
  22. package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
  23. package/dist/components/3d-viewport/TrajectoryRenderer.cjs +1 -0
  24. package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +1 -0
  25. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +1 -0
  26. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +1 -0
  27. package/dist/components/3d-viewport/TrajectoryRenderer.js +1 -0
  28. package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
  29. package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -1
  30. package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
  31. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +1 -0
  32. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -0
  33. package/dist/components/3d-viewport/collider/ColliderCollection.js +1 -0
  34. package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
  35. package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -1
  36. package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
  37. package/dist/components/3d-viewport/collider/ColliderElement.d.ts +1 -0
  38. package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +1 -0
  39. package/dist/components/3d-viewport/collider/ColliderElement.js +1 -0
  40. package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
  41. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -1
  42. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
  43. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +1 -0
  44. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +1 -0
  45. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +1 -0
  46. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
  47. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +1 -0
  48. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
  49. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +1 -0
  50. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +1 -0
  51. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +1 -0
  52. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
  53. package/dist/components/AppHeader.cjs +2 -1
  54. package/dist/components/AppHeader.cjs.map +1 -0
  55. package/dist/components/AppHeader.d.ts +1 -0
  56. package/dist/components/AppHeader.d.ts.map +1 -0
  57. package/dist/components/AppHeader.js +34 -40
  58. package/dist/components/AppHeader.js.map +1 -0
  59. package/dist/components/ConsoleFilter.cjs +1 -0
  60. package/dist/components/ConsoleFilter.cjs.map +1 -0
  61. package/dist/components/ConsoleFilter.d.ts +1 -0
  62. package/dist/components/ConsoleFilter.d.ts.map +1 -0
  63. package/dist/components/ConsoleFilter.js +1 -0
  64. package/dist/components/ConsoleFilter.js.map +1 -0
  65. package/dist/components/CopyableText.cjs +1 -0
  66. package/dist/components/CopyableText.cjs.map +1 -0
  67. package/dist/components/CopyableText.d.ts +1 -0
  68. package/dist/components/CopyableText.d.ts.map +1 -0
  69. package/dist/components/CopyableText.js +1 -0
  70. package/dist/components/CopyableText.js.map +1 -0
  71. package/dist/components/CycleTimer/CycleTimer.d.ts +1 -0
  72. package/dist/components/CycleTimer/CycleTimer.d.ts.map +1 -0
  73. package/dist/components/CycleTimer/DefaultVariant.cjs +2 -1
  74. package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
  75. package/dist/components/CycleTimer/DefaultVariant.d.ts +1 -0
  76. package/dist/components/CycleTimer/DefaultVariant.d.ts.map +1 -0
  77. package/dist/components/CycleTimer/DefaultVariant.js +1 -0
  78. package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
  79. package/dist/components/CycleTimer/SmallVariant.cjs +1 -0
  80. package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
  81. package/dist/components/CycleTimer/SmallVariant.d.ts +1 -0
  82. package/dist/components/CycleTimer/SmallVariant.d.ts.map +1 -0
  83. package/dist/components/CycleTimer/SmallVariant.js +1 -0
  84. package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
  85. package/dist/components/CycleTimer/index.cjs +2 -1
  86. package/dist/components/CycleTimer/index.cjs.map +1 -0
  87. package/dist/components/CycleTimer/index.d.ts +1 -0
  88. package/dist/components/CycleTimer/index.d.ts.map +1 -0
  89. package/dist/components/CycleTimer/index.js +2 -1
  90. package/dist/components/CycleTimer/index.js.map +1 -0
  91. package/dist/components/CycleTimer/types.d.ts +1 -0
  92. package/dist/components/CycleTimer/types.d.ts.map +1 -0
  93. package/dist/components/CycleTimer/useAnimations.cjs +1 -0
  94. package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
  95. package/dist/components/CycleTimer/useAnimations.d.ts +1 -0
  96. package/dist/components/CycleTimer/useAnimations.d.ts.map +1 -0
  97. package/dist/components/CycleTimer/useAnimations.js +2 -9
  98. package/dist/components/CycleTimer/useAnimations.js.map +1 -0
  99. package/dist/components/CycleTimer/useTimerLogic.cjs +2 -1
  100. package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
  101. package/dist/components/CycleTimer/useTimerLogic.d.ts +1 -0
  102. package/dist/components/CycleTimer/useTimerLogic.d.ts.map +1 -0
  103. package/dist/components/CycleTimer/useTimerLogic.js +1 -0
  104. package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
  105. package/dist/components/CycleTimer/utils.cjs +2 -1
  106. package/dist/components/CycleTimer/utils.cjs.map +1 -0
  107. package/dist/components/CycleTimer/utils.d.ts +1 -0
  108. package/dist/components/CycleTimer/utils.d.ts.map +1 -0
  109. package/dist/components/CycleTimer/utils.js +11 -19
  110. package/dist/components/CycleTimer/utils.js.map +1 -0
  111. package/dist/components/CycleTimer.cjs +1 -0
  112. package/dist/components/CycleTimer.cjs.map +1 -0
  113. package/dist/components/CycleTimer.d.ts +1 -0
  114. package/dist/components/CycleTimer.d.ts.map +1 -0
  115. package/dist/components/CycleTimer.js +1 -0
  116. package/dist/components/CycleTimer.js.map +1 -0
  117. package/dist/components/DataGrid.cjs +2 -1
  118. package/dist/components/DataGrid.cjs.map +1 -0
  119. package/dist/components/DataGrid.d.ts +1 -0
  120. package/dist/components/DataGrid.d.ts.map +1 -0
  121. package/dist/components/DataGrid.js +2 -1
  122. package/dist/components/DataGrid.js.map +1 -0
  123. package/dist/components/LoadingCover.cjs +2 -1
  124. package/dist/components/LoadingCover.cjs.map +1 -0
  125. package/dist/components/LoadingCover.d.ts +1 -0
  126. package/dist/components/LoadingCover.d.ts.map +1 -0
  127. package/dist/components/LoadingCover.js +1 -0
  128. package/dist/components/LoadingCover.js.map +1 -0
  129. package/dist/components/LogPanel.cjs +2 -1
  130. package/dist/components/LogPanel.cjs.map +1 -0
  131. package/dist/components/LogPanel.d.ts +1 -0
  132. package/dist/components/LogPanel.d.ts.map +1 -0
  133. package/dist/components/LogPanel.js +2 -1
  134. package/dist/components/LogPanel.js.map +1 -0
  135. package/dist/components/LogStore.cjs +1 -0
  136. package/dist/components/LogStore.cjs.map +1 -0
  137. package/dist/components/LogStore.d.ts +1 -0
  138. package/dist/components/LogStore.d.ts.map +1 -0
  139. package/dist/components/LogStore.js +1 -0
  140. package/dist/components/LogStore.js.map +1 -0
  141. package/dist/components/LogViewer.cjs +2 -1
  142. package/dist/components/LogViewer.cjs.map +1 -0
  143. package/dist/components/LogViewer.d.ts +1 -0
  144. package/dist/components/LogViewer.d.ts.map +1 -0
  145. package/dist/components/LogViewer.js +2 -1
  146. package/dist/components/LogViewer.js.map +1 -0
  147. package/dist/components/ProgramControl.cjs +2 -1
  148. package/dist/components/ProgramControl.cjs.map +1 -0
  149. package/dist/components/ProgramControl.d.ts +1 -0
  150. package/dist/components/ProgramControl.d.ts.map +1 -0
  151. package/dist/components/ProgramControl.js +7 -6
  152. package/dist/components/ProgramControl.js.map +1 -0
  153. package/dist/components/ProgramStateIndicator.cjs +2 -1
  154. package/dist/components/ProgramStateIndicator.cjs.map +1 -0
  155. package/dist/components/ProgramStateIndicator.d.ts +1 -0
  156. package/dist/components/ProgramStateIndicator.d.ts.map +1 -0
  157. package/dist/components/ProgramStateIndicator.js +29 -28
  158. package/dist/components/ProgramStateIndicator.js.map +1 -0
  159. package/dist/components/RobotCard.cjs +2 -1
  160. package/dist/components/RobotCard.cjs.map +1 -0
  161. package/dist/components/RobotCard.d.ts +1 -0
  162. package/dist/components/RobotCard.d.ts.map +1 -0
  163. package/dist/components/RobotCard.js +2 -1
  164. package/dist/components/RobotCard.js.map +1 -0
  165. package/dist/components/RobotListItem.cjs +2 -1
  166. package/dist/components/RobotListItem.cjs.map +1 -0
  167. package/dist/components/RobotListItem.d.ts +1 -0
  168. package/dist/components/RobotListItem.d.ts.map +1 -0
  169. package/dist/components/RobotListItem.js +26 -25
  170. package/dist/components/RobotListItem.js.map +1 -0
  171. package/dist/components/RobotSetupReadinessIndicator.cjs +2 -1
  172. package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
  173. package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
  174. package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -0
  175. package/dist/components/RobotSetupReadinessIndicator.js +2 -1
  176. package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
  177. package/dist/components/RobotSetupReadinessIndicator.test.d.ts +2 -0
  178. package/dist/components/RobotSetupReadinessIndicator.test.d.ts.map +1 -0
  179. package/dist/components/SelectableFab.cjs +1 -0
  180. package/dist/components/SelectableFab.cjs.map +1 -0
  181. package/dist/components/SelectableFab.d.ts +1 -0
  182. package/dist/components/SelectableFab.d.ts.map +1 -0
  183. package/dist/components/SelectableFab.js +1 -0
  184. package/dist/components/SelectableFab.js.map +1 -0
  185. package/dist/components/TabBar.cjs +2 -1
  186. package/dist/components/TabBar.cjs.map +1 -0
  187. package/dist/components/TabBar.d.ts +1 -0
  188. package/dist/components/TabBar.d.ts.map +1 -0
  189. package/dist/components/TabBar.js +2 -1
  190. package/dist/components/TabBar.js.map +1 -0
  191. package/dist/components/ThemeSelect.d.ts +1 -0
  192. package/dist/components/ThemeSelect.d.ts.map +1 -0
  193. package/dist/components/Timer/Timer.d.ts +1 -0
  194. package/dist/components/Timer/Timer.d.ts.map +1 -0
  195. package/dist/components/Timer/TimerDefaultVariant.cjs +1 -0
  196. package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
  197. package/dist/components/Timer/TimerDefaultVariant.d.ts +1 -0
  198. package/dist/components/Timer/TimerDefaultVariant.d.ts.map +1 -0
  199. package/dist/components/Timer/TimerDefaultVariant.js +1 -0
  200. package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
  201. package/dist/components/Timer/TimerSmallVariant.cjs +1 -0
  202. package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
  203. package/dist/components/Timer/TimerSmallVariant.d.ts +1 -0
  204. package/dist/components/Timer/TimerSmallVariant.d.ts.map +1 -0
  205. package/dist/components/Timer/TimerSmallVariant.js +1 -0
  206. package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
  207. package/dist/components/Timer/index.cjs +2 -1
  208. package/dist/components/Timer/index.cjs.map +1 -0
  209. package/dist/components/Timer/index.d.ts +1 -0
  210. package/dist/components/Timer/index.d.ts.map +1 -0
  211. package/dist/components/Timer/index.js +12 -11
  212. package/dist/components/Timer/index.js.map +1 -0
  213. package/dist/components/Timer/types.d.ts +1 -0
  214. package/dist/components/Timer/types.d.ts.map +1 -0
  215. package/dist/components/Timer/useTimerAnimations.cjs +1 -0
  216. package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
  217. package/dist/components/Timer/useTimerAnimations.d.ts +1 -0
  218. package/dist/components/Timer/useTimerAnimations.d.ts.map +1 -0
  219. package/dist/components/Timer/useTimerAnimations.js +2 -5
  220. package/dist/components/Timer/useTimerAnimations.js.map +1 -0
  221. package/dist/components/Timer/useTimerLogic.cjs +1 -0
  222. package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
  223. package/dist/components/Timer/useTimerLogic.d.ts +1 -0
  224. package/dist/components/Timer/useTimerLogic.d.ts.map +1 -0
  225. package/dist/components/Timer/useTimerLogic.js +1 -0
  226. package/dist/components/Timer/useTimerLogic.js.map +1 -0
  227. package/dist/components/Timer/utils.cjs +2 -1
  228. package/dist/components/Timer/utils.cjs.map +1 -0
  229. package/dist/components/Timer/utils.d.ts +1 -0
  230. package/dist/components/Timer/utils.d.ts.map +1 -0
  231. package/dist/components/Timer/utils.js +10 -10
  232. package/dist/components/Timer/utils.js.map +1 -0
  233. package/dist/components/Timer.cjs +1 -0
  234. package/dist/components/Timer.cjs.map +1 -0
  235. package/dist/components/Timer.d.ts +1 -0
  236. package/dist/components/Timer.d.ts.map +1 -0
  237. package/dist/components/Timer.js +1 -0
  238. package/dist/components/Timer.js.map +1 -0
  239. package/dist/components/TransparentOverlay.d.ts +1 -0
  240. package/dist/components/TransparentOverlay.d.ts.map +1 -0
  241. package/dist/components/VelocitySlider.cjs +1 -0
  242. package/dist/components/VelocitySlider.cjs.map +1 -0
  243. package/dist/components/VelocitySlider.d.ts +1 -0
  244. package/dist/components/VelocitySlider.d.ts.map +1 -0
  245. package/dist/components/VelocitySlider.js +1 -0
  246. package/dist/components/VelocitySlider.js.map +1 -0
  247. package/dist/components/experimental/utils/AdornedSelect.cjs +1 -0
  248. package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
  249. package/dist/components/experimental/utils/AdornedSelect.d.ts +1 -0
  250. package/dist/components/experimental/utils/AdornedSelect.d.ts.map +1 -0
  251. package/dist/components/experimental/utils/AdornedSelect.js +1 -0
  252. package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
  253. package/dist/components/jogging/JoggingBlocked.cjs +1 -0
  254. package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
  255. package/dist/components/jogging/JoggingBlocked.d.ts +1 -0
  256. package/dist/components/jogging/JoggingBlocked.d.ts.map +1 -0
  257. package/dist/components/jogging/JoggingBlocked.js +1 -0
  258. package/dist/components/jogging/JoggingBlocked.js.map +1 -0
  259. package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -1
  260. package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
  261. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -0
  262. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -0
  263. package/dist/components/jogging/JoggingCartesianAxisControl.js +20 -18
  264. package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
  265. package/dist/components/jogging/JoggingCartesianTab.cjs +2 -1
  266. package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
  267. package/dist/components/jogging/JoggingCartesianTab.d.ts +1 -0
  268. package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -0
  269. package/dist/components/jogging/JoggingCartesianTab.js +41 -37
  270. package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
  271. package/dist/components/jogging/JoggingFreedriveTab.d.ts +1 -0
  272. package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +1 -0
  273. package/dist/components/jogging/JoggingJointLimitDetector.cjs +1 -0
  274. package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
  275. package/dist/components/jogging/JoggingJointLimitDetector.d.ts +1 -0
  276. package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -0
  277. package/dist/components/jogging/JoggingJointLimitDetector.js +1 -0
  278. package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
  279. package/dist/components/jogging/JoggingJointTab.cjs +2 -1
  280. package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
  281. package/dist/components/jogging/JoggingJointTab.d.ts +1 -0
  282. package/dist/components/jogging/JoggingJointTab.d.ts.map +1 -0
  283. package/dist/components/jogging/JoggingJointTab.js +1 -0
  284. package/dist/components/jogging/JoggingJointTab.js.map +1 -0
  285. package/dist/components/jogging/JoggingJointValueControl.cjs +2 -1
  286. package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
  287. package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -0
  288. package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -0
  289. package/dist/components/jogging/JoggingJointValueControl.js +2 -1
  290. package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
  291. package/dist/components/jogging/JoggingOptions.cjs +2 -1
  292. package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
  293. package/dist/components/jogging/JoggingOptions.d.ts +1 -0
  294. package/dist/components/jogging/JoggingOptions.d.ts.map +1 -0
  295. package/dist/components/jogging/JoggingOptions.js +1 -0
  296. package/dist/components/jogging/JoggingOptions.js.map +1 -0
  297. package/dist/components/jogging/JoggingPanel.cjs +2 -1
  298. package/dist/components/jogging/JoggingPanel.cjs.map +1 -0
  299. package/dist/components/jogging/JoggingPanel.d.ts +1 -0
  300. package/dist/components/jogging/JoggingPanel.d.ts.map +1 -0
  301. package/dist/components/jogging/JoggingPanel.js +119 -21
  302. package/dist/components/jogging/JoggingPanel.js.map +1 -0
  303. package/dist/components/jogging/JoggingPanel.test.d.ts +2 -0
  304. package/dist/components/jogging/JoggingPanel.test.d.ts.map +1 -0
  305. package/dist/components/jogging/JoggingStore.cjs +1 -0
  306. package/dist/components/jogging/JoggingStore.cjs.map +1 -0
  307. package/dist/components/jogging/JoggingStore.d.ts +1 -0
  308. package/dist/components/jogging/JoggingStore.d.ts.map +1 -0
  309. package/dist/components/jogging/JoggingStore.js +1 -0
  310. package/dist/components/jogging/JoggingStore.js.map +1 -0
  311. package/dist/components/jogging/JoggingToggleButtonGroup.cjs +1 -0
  312. package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
  313. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +1 -0
  314. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +1 -0
  315. package/dist/components/jogging/JoggingToggleButtonGroup.js +1 -0
  316. package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
  317. package/dist/components/jogging/JoggingVelocitySlider.cjs +1 -0
  318. package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
  319. package/dist/components/jogging/JoggingVelocitySlider.d.ts +1 -0
  320. package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +1 -0
  321. package/dist/components/jogging/JoggingVelocitySlider.js +1 -0
  322. package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
  323. package/dist/components/jogging/PoseCartesianValues.cjs +2 -1
  324. package/dist/components/jogging/PoseCartesianValues.cjs.map +1 -0
  325. package/dist/components/jogging/PoseCartesianValues.d.ts +1 -0
  326. package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -0
  327. package/dist/components/jogging/PoseCartesianValues.js +5 -4
  328. package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
  329. package/dist/components/jogging/PoseJointValues.cjs +2 -1
  330. package/dist/components/jogging/PoseJointValues.cjs.map +1 -0
  331. package/dist/components/jogging/PoseJointValues.d.ts +1 -0
  332. package/dist/components/jogging/PoseJointValues.d.ts.map +1 -0
  333. package/dist/components/jogging/PoseJointValues.js +2 -1
  334. package/dist/components/jogging/PoseJointValues.js.map +1 -0
  335. package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts +11 -0
  336. package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts.map +1 -0
  337. package/dist/components/modal/NoMotionGroupModal.cjs +1 -0
  338. package/dist/components/modal/NoMotionGroupModal.cjs.map +1 -0
  339. package/dist/components/modal/NoMotionGroupModal.d.ts +1 -0
  340. package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -0
  341. package/dist/components/modal/NoMotionGroupModal.js +1 -0
  342. package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
  343. package/dist/components/robots/AxisConfig.cjs +1 -0
  344. package/dist/components/robots/AxisConfig.cjs.map +1 -0
  345. package/dist/components/robots/AxisConfig.d.ts +1 -0
  346. package/dist/components/robots/AxisConfig.d.ts.map +1 -0
  347. package/dist/components/robots/AxisConfig.js +1 -0
  348. package/dist/components/robots/AxisConfig.js.map +1 -0
  349. package/dist/components/robots/DHLinearAxis.cjs +2 -1
  350. package/dist/components/robots/DHLinearAxis.cjs.map +1 -0
  351. package/dist/components/robots/DHLinearAxis.d.ts +1 -0
  352. package/dist/components/robots/DHLinearAxis.d.ts.map +1 -0
  353. package/dist/components/robots/DHLinearAxis.js +1 -0
  354. package/dist/components/robots/DHLinearAxis.js.map +1 -0
  355. package/dist/components/robots/DHRobot.cjs +2 -1
  356. package/dist/components/robots/DHRobot.cjs.map +1 -0
  357. package/dist/components/robots/DHRobot.d.ts +1 -0
  358. package/dist/components/robots/DHRobot.d.ts.map +1 -0
  359. package/dist/components/robots/DHRobot.js +1 -0
  360. package/dist/components/robots/DHRobot.js.map +1 -0
  361. package/dist/components/robots/GenericRobot.cjs +1 -0
  362. package/dist/components/robots/GenericRobot.cjs.map +1 -0
  363. package/dist/components/robots/GenericRobot.d.ts +1 -0
  364. package/dist/components/robots/GenericRobot.d.ts.map +1 -0
  365. package/dist/components/robots/GenericRobot.js +1 -0
  366. package/dist/components/robots/GenericRobot.js.map +1 -0
  367. package/dist/components/robots/LinearAxis.cjs +2 -1
  368. package/dist/components/robots/LinearAxis.cjs.map +1 -0
  369. package/dist/components/robots/LinearAxis.d.ts +1 -0
  370. package/dist/components/robots/LinearAxis.d.ts.map +1 -0
  371. package/dist/components/robots/LinearAxis.js +1 -0
  372. package/dist/components/robots/LinearAxis.js.map +1 -0
  373. package/dist/components/robots/LinearAxisAnimator.cjs +2 -1
  374. package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
  375. package/dist/components/robots/LinearAxisAnimator.d.ts +1 -0
  376. package/dist/components/robots/LinearAxisAnimator.d.ts.map +1 -0
  377. package/dist/components/robots/LinearAxisAnimator.js +1 -0
  378. package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
  379. package/dist/components/robots/MotionGroupVisualizer.cjs +2 -1
  380. package/dist/components/robots/MotionGroupVisualizer.cjs.map +1 -0
  381. package/dist/components/robots/MotionGroupVisualizer.d.ts +1 -0
  382. package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -0
  383. package/dist/components/robots/MotionGroupVisualizer.js +5 -4
  384. package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
  385. package/dist/components/robots/Robot.cjs +2 -1
  386. package/dist/components/robots/Robot.cjs.map +1 -0
  387. package/dist/components/robots/Robot.d.ts +1 -0
  388. package/dist/components/robots/Robot.d.ts.map +1 -0
  389. package/dist/components/robots/Robot.js +1 -0
  390. package/dist/components/robots/Robot.js.map +1 -0
  391. package/dist/components/robots/RobotAnimator.cjs +2 -1
  392. package/dist/components/robots/RobotAnimator.cjs.map +1 -0
  393. package/dist/components/robots/RobotAnimator.d.ts +1 -0
  394. package/dist/components/robots/RobotAnimator.d.ts.map +1 -0
  395. package/dist/components/robots/RobotAnimator.js +1 -0
  396. package/dist/components/robots/RobotAnimator.js.map +1 -0
  397. package/dist/components/robots/RobotAnimator.test.d.ts +2 -0
  398. package/dist/components/robots/RobotAnimator.test.d.ts.map +1 -0
  399. package/dist/components/robots/SupportedLinearAxis.cjs +2 -1
  400. package/dist/components/robots/SupportedLinearAxis.cjs.map +1 -0
  401. package/dist/components/robots/SupportedLinearAxis.d.ts +1 -0
  402. package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -0
  403. package/dist/components/robots/SupportedLinearAxis.js +8 -7
  404. package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
  405. package/dist/components/robots/SupportedRobot.cjs +2 -1
  406. package/dist/components/robots/SupportedRobot.cjs.map +1 -0
  407. package/dist/components/robots/SupportedRobot.d.ts +1 -0
  408. package/dist/components/robots/SupportedRobot.d.ts.map +1 -0
  409. package/dist/components/robots/SupportedRobot.js +7 -6
  410. package/dist/components/robots/SupportedRobot.js.map +1 -0
  411. package/dist/components/robots/ghostStyle.cjs +1 -0
  412. package/dist/components/robots/ghostStyle.cjs.map +1 -0
  413. package/dist/components/robots/ghostStyle.d.ts +1 -0
  414. package/dist/components/robots/ghostStyle.d.ts.map +1 -0
  415. package/dist/components/robots/ghostStyle.js +1 -0
  416. package/dist/components/robots/ghostStyle.js.map +1 -0
  417. package/dist/components/robots/manufacturerHomePositions.cjs +1 -0
  418. package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
  419. package/dist/components/robots/manufacturerHomePositions.d.ts +1 -0
  420. package/dist/components/robots/manufacturerHomePositions.d.ts.map +1 -0
  421. package/dist/components/robots/manufacturerHomePositions.js +1 -0
  422. package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
  423. package/dist/components/robots/robotModelLogic.cjs +2 -1
  424. package/dist/components/robots/robotModelLogic.cjs.map +1 -0
  425. package/dist/components/robots/robotModelLogic.d.ts +1 -0
  426. package/dist/components/robots/robotModelLogic.d.ts.map +1 -0
  427. package/dist/components/robots/robotModelLogic.js +34 -58
  428. package/dist/components/robots/robotModelLogic.js.map +1 -0
  429. package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -1
  430. package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
  431. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -0
  432. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -0
  433. package/dist/components/safetyBar/ControllerTypeIndicator.js +12 -10
  434. package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
  435. package/dist/components/safetyBar/IndicatorWithExplanation.cjs +1 -0
  436. package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +1 -0
  437. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +1 -0
  438. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -0
  439. package/dist/components/safetyBar/IndicatorWithExplanation.js +1 -0
  440. package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
  441. package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -1
  442. package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
  443. package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -0
  444. package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -0
  445. package/dist/components/safetyBar/OperationModeIndicator.js +24 -21
  446. package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
  447. package/dist/components/safetyBar/SafetyBar.cjs +2 -1
  448. package/dist/components/safetyBar/SafetyBar.cjs.map +1 -0
  449. package/dist/components/safetyBar/SafetyBar.d.ts +1 -0
  450. package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -0
  451. package/dist/components/safetyBar/SafetyBar.js +16 -15
  452. package/dist/components/safetyBar/SafetyBar.js.map +1 -0
  453. package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -1
  454. package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
  455. package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -0
  456. package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -0
  457. package/dist/components/safetyBar/SafetyStateIndicator.js +30 -25
  458. package/dist/components/safetyBar/SafetyStateIndicator.js.map +1 -0
  459. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +2 -0
  460. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +1 -0
  461. package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +3 -0
  462. package/dist/{chunks/controller-type-virtual-CWOoMRfl.js → components/safetyBar/icons/controller-type-physical.svg.js} +6 -10
  463. package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +1 -0
  464. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +2 -0
  465. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +1 -0
  466. package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +3 -0
  467. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +11 -0
  468. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +1 -0
  469. package/dist/components/safetyBar/icons/index.d.ts +1 -0
  470. package/dist/components/safetyBar/icons/index.d.ts.map +1 -0
  471. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +2 -0
  472. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +1 -0
  473. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +3 -0
  474. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +11 -0
  475. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +1 -0
  476. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +2 -0
  477. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +1 -0
  478. package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +3 -0
  479. package/dist/components/safetyBar/icons/operation-mode-error.svg.js +11 -0
  480. package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +1 -0
  481. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +2 -0
  482. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +1 -0
  483. package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +3 -0
  484. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +11 -0
  485. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +1 -0
  486. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +2 -0
  487. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +1 -0
  488. package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +3 -0
  489. package/dist/components/safetyBar/icons/safety-state-error.svg.js +11 -0
  490. package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +1 -0
  491. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +2 -0
  492. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +1 -0
  493. package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +3 -0
  494. package/dist/components/safetyBar/icons/safety-state-estop.svg.js +11 -0
  495. package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +1 -0
  496. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +2 -0
  497. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +1 -0
  498. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +3 -0
  499. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +11 -0
  500. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +1 -0
  501. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +2 -0
  502. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +1 -0
  503. package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +3 -0
  504. package/dist/components/safetyBar/icons/safety-state-normal.svg.js +11 -0
  505. package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +1 -0
  506. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +2 -0
  507. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +1 -0
  508. package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +3 -0
  509. package/dist/components/safetyBar/icons/safety-state-stop.svg.js +11 -0
  510. package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +1 -0
  511. package/dist/components/utils/converters.cjs +2 -1
  512. package/dist/components/utils/converters.cjs.map +1 -0
  513. package/dist/components/utils/converters.d.ts +1 -0
  514. package/dist/components/utils/converters.d.ts.map +1 -0
  515. package/dist/components/utils/converters.js +11 -26
  516. package/dist/components/utils/converters.js.map +1 -0
  517. package/dist/components/utils/errorHandling.cjs +2 -1
  518. package/dist/components/utils/errorHandling.cjs.map +1 -0
  519. package/dist/components/utils/errorHandling.d.ts +1 -0
  520. package/dist/components/utils/errorHandling.d.ts.map +1 -0
  521. package/dist/components/utils/errorHandling.js +9 -17
  522. package/dist/components/utils/errorHandling.js.map +1 -0
  523. package/dist/components/utils/errorHandling.test.d.ts +2 -0
  524. package/dist/components/utils/errorHandling.test.d.ts.map +1 -0
  525. package/dist/components/utils/hooks.cjs +1 -0
  526. package/dist/components/utils/hooks.cjs.map +1 -0
  527. package/dist/components/utils/hooks.d.ts +1 -0
  528. package/dist/components/utils/hooks.d.ts.map +1 -0
  529. package/dist/components/utils/hooks.js +4 -3
  530. package/dist/components/utils/hooks.js.map +1 -0
  531. package/dist/components/utils/interpolation.cjs +1 -0
  532. package/dist/components/utils/interpolation.cjs.map +1 -0
  533. package/dist/components/utils/interpolation.d.ts +1 -0
  534. package/dist/components/utils/interpolation.d.ts.map +1 -0
  535. package/dist/components/utils/interpolation.js +1 -0
  536. package/dist/components/utils/interpolation.js.map +1 -0
  537. package/dist/components/utils/interpolation.test.d.ts +2 -0
  538. package/dist/components/utils/interpolation.test.d.ts.map +1 -0
  539. package/dist/core.cjs +2 -1
  540. package/dist/core.cjs.map +1 -0
  541. package/dist/core.d.ts +1 -0
  542. package/dist/core.d.ts.map +1 -0
  543. package/dist/core.js +75 -70
  544. package/dist/core.js.map +1 -0
  545. package/dist/externalizeComponent.cjs +2 -0
  546. package/dist/externalizeComponent.cjs.map +1 -0
  547. package/dist/externalizeComponent.d.ts +1 -0
  548. package/dist/externalizeComponent.d.ts.map +1 -0
  549. package/dist/externalizeComponent.js +13 -0
  550. package/dist/externalizeComponent.js.map +1 -0
  551. package/dist/i18n/config.cjs +2 -0
  552. package/dist/i18n/config.cjs.map +1 -0
  553. package/dist/i18n/config.d.ts +1 -0
  554. package/dist/i18n/config.d.ts.map +1 -0
  555. package/dist/i18n/config.js +25 -0
  556. package/dist/i18n/config.js.map +1 -0
  557. package/dist/i18n/locales/de/translations.json.cjs +3 -0
  558. package/dist/i18n/locales/de/translations.json.cjs.map +1 -0
  559. package/dist/i18n/locales/de/translations.json.js +94 -0
  560. package/dist/i18n/locales/de/translations.json.js.map +1 -0
  561. package/dist/i18n/locales/en/translations.json.cjs +2 -0
  562. package/dist/i18n/locales/en/translations.json.cjs.map +1 -0
  563. package/dist/i18n/locales/en/translations.json.js +94 -0
  564. package/dist/i18n/locales/en/translations.json.js.map +1 -0
  565. package/dist/icons/DropdownArrowIcon.cjs +2 -0
  566. package/dist/icons/DropdownArrowIcon.cjs.map +1 -0
  567. package/dist/icons/DropdownArrowIcon.d.ts +1 -0
  568. package/dist/icons/DropdownArrowIcon.d.ts.map +1 -0
  569. package/dist/icons/DropdownArrowIcon.js +14 -0
  570. package/dist/icons/DropdownArrowIcon.js.map +1 -0
  571. package/dist/icons/axis-x.svg.cjs +2 -0
  572. package/dist/icons/axis-x.svg.cjs.map +1 -0
  573. package/dist/icons/axis-x.svg.d.ts +3 -0
  574. package/dist/icons/axis-x.svg.js +11 -0
  575. package/dist/icons/axis-x.svg.js.map +1 -0
  576. package/dist/icons/axis-y.svg.cjs +2 -0
  577. package/dist/icons/axis-y.svg.cjs.map +1 -0
  578. package/dist/icons/axis-y.svg.d.ts +3 -0
  579. package/dist/icons/axis-y.svg.js +11 -0
  580. package/dist/icons/axis-y.svg.js.map +1 -0
  581. package/dist/icons/axis-z.svg.cjs +2 -0
  582. package/dist/icons/axis-z.svg.cjs.map +1 -0
  583. package/dist/icons/axis-z.svg.d.ts +3 -0
  584. package/dist/icons/axis-z.svg.js +11 -0
  585. package/dist/icons/axis-z.svg.js.map +1 -0
  586. package/dist/icons/home.svg.cjs +2 -0
  587. package/dist/icons/home.svg.cjs.map +1 -0
  588. package/dist/icons/home.svg.d.ts +3 -0
  589. package/dist/icons/home.svg.js +11 -0
  590. package/dist/icons/home.svg.js.map +1 -0
  591. package/dist/icons/index.d.ts +1 -0
  592. package/dist/icons/index.d.ts.map +1 -0
  593. package/dist/icons/jog-minus.svg.cjs +2 -0
  594. package/dist/icons/jog-minus.svg.cjs.map +1 -0
  595. package/dist/icons/jog-minus.svg.d.ts +3 -0
  596. package/dist/icons/jog-minus.svg.js +11 -0
  597. package/dist/icons/jog-minus.svg.js.map +1 -0
  598. package/dist/icons/jog-plus.svg.cjs +2 -0
  599. package/dist/icons/jog-plus.svg.cjs.map +1 -0
  600. package/dist/icons/jog-plus.svg.d.ts +3 -0
  601. package/dist/icons/jog-plus.svg.js +11 -0
  602. package/dist/icons/jog-plus.svg.js.map +1 -0
  603. package/dist/icons/jogging.svg.cjs +2 -0
  604. package/dist/icons/jogging.svg.cjs.map +1 -0
  605. package/dist/icons/jogging.svg.d.ts +3 -0
  606. package/dist/icons/jogging.svg.js +11 -0
  607. package/dist/icons/jogging.svg.js.map +1 -0
  608. package/dist/icons/orientation-coord-system.svg.cjs +2 -0
  609. package/dist/icons/orientation-coord-system.svg.cjs.map +1 -0
  610. package/dist/icons/orientation-coord-system.svg.d.ts +3 -0
  611. package/dist/icons/orientation-coord-system.svg.js +11 -0
  612. package/dist/icons/orientation-coord-system.svg.js.map +1 -0
  613. package/dist/icons/orientation-tool.svg.cjs +2 -0
  614. package/dist/icons/orientation-tool.svg.cjs.map +1 -0
  615. package/dist/icons/orientation-tool.svg.d.ts +3 -0
  616. package/dist/icons/orientation-tool.svg.js +11 -0
  617. package/dist/icons/orientation-tool.svg.js.map +1 -0
  618. package/dist/icons/robot.svg.cjs +2 -0
  619. package/dist/icons/robot.svg.cjs.map +1 -0
  620. package/dist/icons/robot.svg.d.ts +3 -0
  621. package/dist/{chunks/robot-D97QEl_l.js → icons/robot.svg.js} +3 -2
  622. package/dist/icons/robot.svg.js.map +1 -0
  623. package/dist/icons/rotation.svg.cjs +2 -0
  624. package/dist/icons/rotation.svg.cjs.map +1 -0
  625. package/dist/icons/rotation.svg.d.ts +3 -0
  626. package/dist/icons/rotation.svg.js +11 -0
  627. package/dist/icons/rotation.svg.js.map +1 -0
  628. package/dist/icons/wbLogo.svg.cjs +2 -0
  629. package/dist/icons/wbLogo.svg.cjs.map +1 -0
  630. package/dist/icons/wbLogo.svg.d.ts +3 -0
  631. package/dist/icons/wbLogo.svg.js +11 -0
  632. package/dist/icons/wbLogo.svg.js.map +1 -0
  633. package/dist/index.cjs +2 -1
  634. package/dist/index.cjs.map +1 -0
  635. package/dist/index.d.ts +1 -0
  636. package/dist/index.d.ts.map +1 -0
  637. package/dist/index.js +140 -120
  638. package/dist/index.js.map +1 -0
  639. package/dist/lib/ConnectedMotionGroup.cjs +4 -0
  640. package/dist/lib/ConnectedMotionGroup.cjs.map +1 -0
  641. package/dist/lib/ConnectedMotionGroup.d.ts +1 -0
  642. package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -0
  643. package/dist/lib/ConnectedMotionGroup.js +250 -0
  644. package/dist/lib/ConnectedMotionGroup.js.map +1 -0
  645. package/dist/lib/JoggerConnection.cjs +2 -0
  646. package/dist/lib/JoggerConnection.cjs.map +1 -0
  647. package/dist/lib/JoggerConnection.d.ts +1 -0
  648. package/dist/lib/JoggerConnection.d.ts.map +1 -0
  649. package/dist/lib/JoggerConnection.js +342 -0
  650. package/dist/lib/JoggerConnection.js.map +1 -0
  651. package/dist/lib/JoggerConnection.test.d.ts +2 -0
  652. package/dist/lib/JoggerConnection.test.d.ts.map +1 -0
  653. package/dist/lib/MotionStreamConnection.cjs +3 -0
  654. package/dist/lib/MotionStreamConnection.cjs.map +1 -0
  655. package/dist/lib/MotionStreamConnection.d.ts +1 -0
  656. package/dist/lib/MotionStreamConnection.d.ts.map +1 -0
  657. package/dist/lib/MotionStreamConnection.js +94 -0
  658. package/dist/lib/MotionStreamConnection.js.map +1 -0
  659. package/dist/lib/MotionStreamConnection.test.d.ts +2 -0
  660. package/dist/lib/MotionStreamConnection.test.d.ts.map +1 -0
  661. package/dist/lib/motionStateUpdate.cjs +2 -0
  662. package/dist/lib/motionStateUpdate.cjs.map +1 -0
  663. package/dist/lib/motionStateUpdate.d.ts +1 -0
  664. package/dist/lib/motionStateUpdate.d.ts.map +1 -0
  665. package/dist/lib/motionStateUpdate.js +49 -0
  666. package/dist/lib/motionStateUpdate.js.map +1 -0
  667. package/dist/lib/motionStateUpdate.test.d.ts +2 -0
  668. package/dist/lib/motionStateUpdate.test.d.ts.map +1 -0
  669. package/dist/test/consumer.test.d.ts +2 -0
  670. package/dist/test/consumer.test.d.ts.map +1 -0
  671. package/dist/test/setup.d.ts +2 -0
  672. package/dist/test/setup.d.ts.map +1 -0
  673. package/dist/themes/createDarkTheme.cjs +2 -0
  674. package/dist/themes/createDarkTheme.cjs.map +1 -0
  675. package/dist/themes/createDarkTheme.d.ts +1 -0
  676. package/dist/themes/createDarkTheme.d.ts.map +1 -0
  677. package/dist/themes/createDarkTheme.js +344 -0
  678. package/dist/themes/createDarkTheme.js.map +1 -0
  679. package/dist/themes/createLightTheme.cjs +2 -0
  680. package/dist/themes/createLightTheme.cjs.map +1 -0
  681. package/dist/themes/createLightTheme.d.ts +1 -0
  682. package/dist/themes/createLightTheme.d.ts.map +1 -0
  683. package/dist/themes/createLightTheme.js +9 -0
  684. package/dist/themes/createLightTheme.js.map +1 -0
  685. package/dist/themes/themeTypes.d.ts +1 -0
  686. package/dist/themes/themeTypes.d.ts.map +1 -0
  687. package/dist/themes/theming.cjs +2 -0
  688. package/dist/themes/theming.cjs.map +1 -0
  689. package/dist/themes/theming.d.ts +1 -0
  690. package/dist/themes/theming.d.ts.map +1 -0
  691. package/dist/themes/theming.js +14 -0
  692. package/dist/themes/theming.js.map +1 -0
  693. package/dist/wb-icons.cjs +2 -1
  694. package/dist/wb-icons.cjs.map +1 -0
  695. package/dist/wb-icons.d.ts +1 -0
  696. package/dist/wb-icons.d.ts.map +1 -0
  697. package/dist/wb-icons.js +44 -28
  698. package/dist/wb-icons.js.map +1 -0
  699. package/package.json +6 -5
  700. package/src/3d.ts +18 -0
  701. package/src/Setup.tsx +33 -0
  702. package/src/components/3d-viewport/CoordinateSystemTransform.tsx +57 -0
  703. package/src/components/3d-viewport/PresetEnvironment.tsx +81 -0
  704. package/src/components/3d-viewport/SafetyZonesRenderer.tsx +198 -0
  705. package/src/components/3d-viewport/TrajectoryRenderer.tsx +41 -0
  706. package/src/components/3d-viewport/collider/ColliderCollection.tsx +35 -0
  707. package/src/components/3d-viewport/collider/ColliderElement.tsx +36 -0
  708. package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +26 -0
  709. package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +48 -0
  710. package/src/components/AppHeader.md +84 -0
  711. package/src/components/AppHeader.tsx +197 -0
  712. package/src/components/ConsoleFilter.tsx +24 -0
  713. package/src/components/CopyableText.tsx +89 -0
  714. package/src/components/CycleTimer/CycleTimer.ts +8 -0
  715. package/src/components/CycleTimer/DefaultVariant.tsx +326 -0
  716. package/src/components/CycleTimer/SmallVariant.tsx +229 -0
  717. package/src/components/CycleTimer/index.tsx +158 -0
  718. package/src/components/CycleTimer/types.ts +58 -0
  719. package/src/components/CycleTimer/useAnimations.ts +202 -0
  720. package/src/components/CycleTimer/useTimerLogic.ts +330 -0
  721. package/src/components/CycleTimer/utils.ts +122 -0
  722. package/src/components/CycleTimer.tsx +8 -0
  723. package/src/components/DataGrid.tsx +664 -0
  724. package/src/components/LoadingCover.tsx +91 -0
  725. package/src/components/LogPanel.tsx +71 -0
  726. package/src/components/LogStore.ts +46 -0
  727. package/src/components/LogViewer.tsx +368 -0
  728. package/src/components/ProgramControl.tsx +267 -0
  729. package/src/components/ProgramStateIndicator.tsx +195 -0
  730. package/src/components/RobotCard.tsx +495 -0
  731. package/src/components/RobotListItem.tsx +155 -0
  732. package/src/components/RobotSetupReadinessIndicator.test.tsx +60 -0
  733. package/src/components/RobotSetupReadinessIndicator.tsx +161 -0
  734. package/src/components/SelectableFab.tsx +52 -0
  735. package/src/components/TabBar.tsx +325 -0
  736. package/src/components/ThemeSelect.tsx +51 -0
  737. package/src/components/Timer/Timer.ts +4 -0
  738. package/src/components/Timer/TimerDefaultVariant.tsx +143 -0
  739. package/src/components/Timer/TimerSmallVariant.tsx +141 -0
  740. package/src/components/Timer/index.tsx +103 -0
  741. package/src/components/Timer/types.ts +38 -0
  742. package/src/components/Timer/useTimerAnimations.ts +94 -0
  743. package/src/components/Timer/useTimerLogic.ts +214 -0
  744. package/src/components/Timer/utils.ts +87 -0
  745. package/src/components/Timer.ts +4 -0
  746. package/src/components/TransparentOverlay.tsx +28 -0
  747. package/src/components/VelocitySlider.tsx +117 -0
  748. package/src/components/experimental/utils/AdornedSelect.tsx +38 -0
  749. package/src/components/jogging/JoggingBlocked.tsx +43 -0
  750. package/src/components/jogging/JoggingCartesianAxisControl.tsx +237 -0
  751. package/src/components/jogging/JoggingCartesianTab.tsx +349 -0
  752. package/src/components/jogging/JoggingFreedriveTab.tsx +8 -0
  753. package/src/components/jogging/JoggingJointLimitDetector.tsx +57 -0
  754. package/src/components/jogging/JoggingJointTab.tsx +126 -0
  755. package/src/components/jogging/JoggingJointValueControl.tsx +293 -0
  756. package/src/components/jogging/JoggingOptions.tsx +163 -0
  757. package/src/components/jogging/JoggingPanel.test.tsx +645 -0
  758. package/src/components/jogging/JoggingPanel.tsx +204 -0
  759. package/src/components/jogging/JoggingStore.ts +485 -0
  760. package/src/components/jogging/JoggingToggleButtonGroup.tsx +25 -0
  761. package/src/components/jogging/JoggingVelocitySlider.tsx +39 -0
  762. package/src/components/jogging/PoseCartesianValues.tsx +55 -0
  763. package/src/components/jogging/PoseJointValues.tsx +54 -0
  764. package/src/components/jogging/__fixtures__/motionStreamMockData.ts +136 -0
  765. package/src/components/modal/NoMotionGroupModal.tsx +91 -0
  766. package/src/components/robots/AxisConfig.ts +3 -0
  767. package/src/components/robots/DHLinearAxis.tsx +147 -0
  768. package/src/components/robots/DHRobot.tsx +152 -0
  769. package/src/components/robots/GenericRobot.tsx +137 -0
  770. package/src/components/robots/LinearAxis.tsx +74 -0
  771. package/src/components/robots/LinearAxisAnimator.tsx +118 -0
  772. package/src/components/robots/MotionGroupVisualizer.tsx +73 -0
  773. package/src/components/robots/Robot.tsx +57 -0
  774. package/src/components/robots/RobotAnimator.test.tsx +98 -0
  775. package/src/components/robots/RobotAnimator.tsx +116 -0
  776. package/src/components/robots/SupportedLinearAxis.tsx +110 -0
  777. package/src/components/robots/SupportedRobot.tsx +111 -0
  778. package/src/components/robots/ghostStyle.ts +71 -0
  779. package/src/components/robots/manufacturerHomePositions.ts +76 -0
  780. package/src/components/robots/robotModelLogic.ts +158 -0
  781. package/src/components/safetyBar/ControllerTypeIndicator.tsx +79 -0
  782. package/src/components/safetyBar/IndicatorWithExplanation.tsx +137 -0
  783. package/src/components/safetyBar/OperationModeIndicator.tsx +98 -0
  784. package/src/components/safetyBar/SafetyBar.tsx +72 -0
  785. package/src/components/safetyBar/SafetyStateIndicator.tsx +163 -0
  786. package/src/components/safetyBar/icons/controller-type-physical.svg +1 -0
  787. package/src/components/safetyBar/icons/controller-type-virtual.svg +1 -0
  788. package/src/components/safetyBar/icons/index.ts +10 -0
  789. package/src/components/safetyBar/icons/operation-mode-automatic.svg +1 -0
  790. package/src/components/safetyBar/icons/operation-mode-error.svg +1 -0
  791. package/src/components/safetyBar/icons/operation-mode-manual.svg +1 -0
  792. package/src/components/safetyBar/icons/safety-state-error.svg +1 -0
  793. package/src/components/safetyBar/icons/safety-state-estop.svg +1 -0
  794. package/src/components/safetyBar/icons/safety-state-manual-action-required.svg +1 -0
  795. package/src/components/safetyBar/icons/safety-state-normal.svg +1 -0
  796. package/src/components/safetyBar/icons/safety-state-stop.svg +1 -0
  797. package/src/components/utils/converters.ts +90 -0
  798. package/src/components/utils/errorHandling.test.ts +41 -0
  799. package/src/components/utils/errorHandling.ts +38 -0
  800. package/src/components/utils/hooks.tsx +55 -0
  801. package/src/components/utils/interpolation.test.ts +1138 -0
  802. package/src/components/utils/interpolation.ts +380 -0
  803. package/src/core.ts +33 -0
  804. package/src/declarations.d.ts +10 -0
  805. package/src/env.d.ts +3 -0
  806. package/src/externalizeComponent.tsx +28 -0
  807. package/src/i18n/config.ts +26 -0
  808. package/src/i18n/locales/de/translations.json +89 -0
  809. package/src/i18n/locales/en/translations.json +90 -0
  810. package/src/icons/DropdownArrowIcon.tsx +12 -0
  811. package/src/icons/axis-x.svg +1 -0
  812. package/src/icons/axis-y.svg +1 -0
  813. package/src/icons/axis-z.svg +1 -0
  814. package/src/icons/home.svg +1 -0
  815. package/src/icons/index.ts +12 -0
  816. package/src/icons/jog-minus.svg +5 -0
  817. package/src/icons/jog-plus.svg +9 -0
  818. package/src/icons/jogging.svg +1 -0
  819. package/src/icons/orientation-coord-system.svg +1 -0
  820. package/src/icons/orientation-tool.svg +1 -0
  821. package/src/icons/robot.svg +1 -0
  822. package/src/icons/rotation.svg +3 -0
  823. package/src/icons/wbLogo.svg +1 -0
  824. package/src/index.ts +4 -0
  825. package/src/lib/ConnectedMotionGroup.ts +441 -0
  826. package/src/lib/JoggerConnection.test.ts +122 -0
  827. package/src/lib/JoggerConnection.ts +694 -0
  828. package/src/lib/MotionStreamConnection.test.ts +23 -0
  829. package/src/lib/MotionStreamConnection.ts +186 -0
  830. package/src/lib/motionStateUpdate.test.ts +28 -0
  831. package/src/lib/motionStateUpdate.ts +117 -0
  832. package/src/test/consumer.test.ts +257 -0
  833. package/src/test/setup.ts +111 -0
  834. package/src/themes/createDarkTheme.ts +343 -0
  835. package/src/themes/createLightTheme.ts +8 -0
  836. package/src/themes/themeTypes.ts +96 -0
  837. package/src/themes/theming.ts +29 -0
  838. package/src/wb-icons.ts +3 -0
  839. package/dist/chunks/JoggingPanel-CQH_oXTB.js +0 -586
  840. package/dist/chunks/JoggingPanel-DZN2Y39k.cjs +0 -2
  841. package/dist/chunks/controller-type-virtual-BuJWQOvV.cjs +0 -1
  842. package/dist/chunks/externalizeComponent-DOwkaDcw.cjs +0 -2
  843. package/dist/chunks/externalizeComponent-eiCc5DIh.js +0 -209
  844. package/dist/chunks/jog-plus-CAUurv4S.js +0 -15
  845. package/dist/chunks/jog-plus-Dy1r7-r5.cjs +0 -1
  846. package/dist/chunks/operation-mode-manual-Di4Z1KM1.js +0 -20
  847. package/dist/chunks/operation-mode-manual-eHwVILeI.cjs +0 -1
  848. package/dist/chunks/robot-CrNbCELh.cjs +0 -1
  849. package/dist/chunks/rotation-CIOAnn9q.cjs +0 -1
  850. package/dist/chunks/rotation-Dm5YL3NM.js +0 -25
  851. package/dist/chunks/safety-state-stop-Bg0VUsM4.js +0 -30
  852. package/dist/chunks/safety-state-stop-CNxVYiap.cjs +0 -1
  853. package/dist/chunks/theming-Chx_tewl.cjs +0 -3
  854. package/dist/chunks/theming-Cw6qwBM7.js +0 -600
  855. package/dist/chunks/wbLogo-CObCmqTw.js +0 -30
  856. package/dist/chunks/wbLogo-G_IfZ03l.cjs +0 -1
  857. package/dist/components/3d-viewport/CoordinateSystemTransform.cjs +0 -1
  858. package/dist/components/3d-viewport/CoordinateSystemTransform.js +0 -37
  859. package/dist/components/CycleTimer/CycleTimer.cjs +0 -1
  860. package/dist/components/CycleTimer/CycleTimer.js +0 -5
  861. package/dist/components/CycleTimer/types.cjs +0 -1
  862. package/dist/components/CycleTimer/types.js +0 -1
  863. package/dist/components/ThemeSelect.cjs +0 -1
  864. package/dist/components/ThemeSelect.js +0 -38
  865. package/dist/components/Timer/Timer.cjs +0 -1
  866. package/dist/components/Timer/Timer.js +0 -5
  867. package/dist/components/Timer/types.cjs +0 -1
  868. package/dist/components/Timer/types.js +0 -1
  869. package/dist/components/TransparentOverlay.cjs +0 -1
  870. package/dist/components/TransparentOverlay.js +0 -26
  871. package/dist/components/jogging/JoggingFreedriveTab.cjs +0 -1
  872. package/dist/components/jogging/JoggingFreedriveTab.js +0 -6
  873. package/dist/components/safetyBar/icons/index.cjs +0 -1
  874. package/dist/components/safetyBar/icons/index.js +0 -15
@@ -0,0 +1 @@
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":"wVAaaA,EAAiBC,EAAAA,SAC5B,CAAC,CAAE,MAAAC,EAAO,UAAAC,KAA6D,OACrE,KAAM,CAAE,EAAAC,CAAA,EAAMC,iBAAA,EACRC,EAAcC,EAAAA,MAAA,EACdC,EAAuC,CAAA,EAE7C,SAASC,EAAqBC,EAAoC,CAChE,OAAQA,EAAA,CACN,IAAK,WACH,OAAON,EAAE,8BAA8B,EACzC,IAAK,OACH,OAAOA,EAAE,0BAA0B,EACrC,QACE,OAAOM,CAAA,CAEb,CAEA,OAAIR,EAAM,uBACRM,EAAe,KACbG,EAAAA,IAACC,EAAAA,QAAA,CAEC,QAAS,wBAAwBN,CAAW,GAC5C,WAAYF,EAAE,8BAA8B,EAC5C,MAAOF,EAAM,sBACb,KAAK,QACL,QAAQ,SACR,aAAc,GACd,SAAWW,GACTX,EAAM,yBAAyBW,EAAM,OAAO,KAAe,EAE7D,SAAUX,EAAM,SAEf,SAAAA,EAAM,aAAa,IAAKY,GACvBH,EAAAA,IAACI,EAAA,CAAoC,MAAOD,EAAG,kBAC5C,SAAAA,EAAG,MAAQZ,EAAM,uBAAuBY,EAAG,IAAI,EAAI,EAChD,GAAGA,EAAG,IAAI,MAAMA,EAAG,iBAAiB,GACpCA,EAAG,MAAQA,EAAG,iBAAA,EAHLA,EAAG,iBAIlB,CACD,CAAA,EAlBG,OAAA,CAmBN,EAIAZ,EAAM,eACRM,EAAe,KACbG,EAAAA,IAACC,EAAAA,QAAA,CAEC,QAAS,sBAAsBN,CAAW,GAC1C,WAAW,MACX,MAAOJ,EAAM,cACb,KAAK,QACL,QAAQ,SACR,SAAWW,GACTX,EAAM,iBAAiBW,EAAM,OAAO,KAAe,EAErD,SAAUX,EAAM,SAEf,SAAAA,EAAM,KAAK,IAAKc,GACfL,EAAAA,IAACI,EAAA,CAAsB,MAAOC,EAAI,GAC/B,SAAAA,EAAI,EAAA,EADQA,EAAI,EAEnB,CACD,CAAA,EAfG,KAAA,CAgBN,EAIAd,EAAM,uBACRM,EAAe,KACbG,EAAAA,IAACC,EAAAA,QAAA,CAEC,WAAYR,EAAE,kCAAkC,EAChD,QAAS,sBAAsBE,CAAW,GAC1C,MAAOJ,EAAM,oBACb,SAAWW,GACTX,EAAM,uBAAuBW,EAAM,OAAO,KAAsB,EAElE,SAAUX,EAAM,SAEf,SAAAe,EAAAA,gBAAgB,IAAKC,GACpBP,EAAAA,IAACI,EAAA,CAA6B,MAAOG,EAClC,SAAAT,EAAqBS,CAAa,CAAA,EADtBA,CAEf,CACD,CAAA,EAbG,aAAA,CAcN,EAIAhB,EAAM,qBACRM,EAAe,KACbW,EAAAA,KAACP,EAAAA,QAAA,CAEC,WAAYR,EAAE,uBAAuB,EACrC,QAAS,4BAA4BE,CAAW,GAChD,KAAK,QACL,QAAQ,SACR,QAAOc,EAAAlB,EAAM,0BAAN,YAAAkB,EAA+B,KAAM,aAC5C,SAAWP,GACTX,EAAM,uBACJW,EAAM,OAAO,KAAA,EAGjB,SAAUX,EAAM,SAEhB,SAAA,CAAAS,MAACI,GAA0B,MAAM,aAC9B,SAAAX,EAAE,iCAAiC,GADxB,YAEd,EAECF,EAAM,sBAAwB,OAC3B,KACAA,EAAM,yBAAyB,IAAKmB,GAClCV,EAAAA,IAACI,EAAA,CAAsB,MAAOM,EAAI,GAC/B,SAAAlB,EAAY,GAAGkB,EAAI,OAAO,IAAM,GAAGA,EAAI,EAAE,IAAA,EAD7BA,EAAI,EAEnB,CACD,CAAA,CAAA,EAvBD,WAAA,CAwBN,EAKFV,EAAAA,IAACW,EAAA,CACC,UAAU,MACV,cAAY,kBACZ,aAAW,kBACX,GAAI,CACF,QAAS,OACT,IAAK,OACL,oBAAqB,UACrB,aAAc,cACd,UAAW,CAAE,QAAS,GAAK,SAAU,OAAQ,aAAc,KAAA,CAAM,EAGlE,SAAAd,EAAe,IAAI,CAACe,EAAQC,IAC3Bb,EAAAA,IAACW,EAAA,CAGC,GAAI,CACF,WACEd,EAAe,OAAS,IAAM,GAC9BgB,IAAQhB,EAAe,OAAS,EAC5B,SACA,MAAA,EAGP,SAAAe,CAAA,EATIC,CAAA,CAWR,CAAA,CAAA,CAGP,CACF"}
@@ -5,3 +5,4 @@ export declare const JoggingOptions: (({ store, useDegree }: {
5
5
  }) => import("react/jsx-runtime").JSX.Element) & {
6
6
  displayName: string;
7
7
  };
8
+ //# sourceMappingURL=JoggingOptions.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -114,3 +114,4 @@ const T = p(
114
114
  export {
115
115
  T as JoggingOptions
116
116
  };
117
+ //# sourceMappingURL=JoggingOptions.js.map
@@ -0,0 +1 @@
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 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("react/jsx-runtime");require("@mui/icons-material/OpenWith");require("@mui/icons-material/Share");require("@mui/material/Stack");require("@mui/material/Tab");require("@mui/material/Tabs");require("@wandelbots/nova-js/v2");require("lodash-es");require("mobx");require("mobx-react-lite");require("react");require("react-i18next");require("../../chunks/externalizeComponent-DOwkaDcw.cjs");const e=require("../../chunks/JoggingPanel-DZN2Y39k.cjs");require("../LoadingCover.cjs");require("./JoggingBlocked.cjs");require("./JoggingCartesianTab.cjs");require("./JoggingJointTab.cjs");require("./JoggingStore.cjs");exports.JoggingPanel=e.JoggingPanel;exports.default=e.JoggingPanel;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),j=require("@mui/icons-material/OpenWith"),x=require("@mui/icons-material/Share"),g=require("@mui/material/Stack"),b=require("@mui/material/Tab"),f=require("@mui/material/Tabs"),v=require("@wandelbots/nova-js/v2"),S=require("lodash-es"),s=require("mobx"),l=require("mobx-react-lite"),c=require("react"),q=require("react-i18next"),J=require("../../externalizeComponent.cjs"),h=require("../../lib/JoggerConnection.cjs"),m=require("../LoadingCover.cjs"),C=require("./JoggingBlocked.cjs"),T=require("./JoggingCartesianTab.cjs"),I=require("./JoggingJointTab.cjs"),w=require("./JoggingStore.cjs"),u=J.externalizeComponent(l.observer(e=>{const t=S.isString(e.nova)?new v.NovaClient({instanceUrl:e.nova}):e.nova,o=l.useLocalObservable(()=>({joggingStore:null,loadingError:null}));async function a(){s.runInAction(()=>{o.loadingError=null,o.joggingStore=null});try{let n=e.store;if(!n){const r=await h.JoggerConnection.open(t,e.motionGroupId);n=await w.JoggingStore.loadFor(r)}s.runInAction(()=>{o.joggingStore=n}),e.onSetup&&e.onSetup(n)}catch(n){o.loadingError=n}}return c.useEffect(()=>(a(),e.store?()=>null:()=>{var n;(n=o.joggingStore)==null||n.dispose()}),[e.store,e.nova,e.motionGroupId]),c.useEffect(()=>{const n=o.joggingStore;n&&(e.locked?n.lock("external"):n.unlock("external"))},[o.joggingStore,e.locked]),i.jsx(g,{"data-testid":"jogging-panel","aria-label":"jogging-panel",sx:{maxWidth:"460px",minWidth:"320px",position:"relative",...e.sx},children:o.joggingStore?i.jsx(k,{store:o.joggingStore,children:e.children}):i.jsx(m.LoadingCover,{message:"Loading jogging",error:o.loadingError})})})),k=l.observer(({store:e,children:t})=>{const{t:o}=q.useTranslation();function a(){if(e.currentTab.id==="cartesian")return i.jsx(T.JoggingCartesianTab,{store:e,children:t});if(e.currentTab.id==="joint")return i.jsx(I.JoggingJointTab,{store:e,children:t})}return i.jsxs(g,{flexGrow:1,sx:{overflow:"hidden"},children:[i.jsx(f,{"data-testid":"jogging-tabs","aria-label":"jogging-tabs",value:e.tabIndex,onChange:e.onTabChange,variant:"fullWidth",children:e.tabs.map(n=>{const r=n.label==="Cartesian"?o("Jogging.Cartesian.bt"):o("Jogging.Joints.bt"),d=n.label==="cartesian"?i.jsx(j,{fontSize:"small",sx:{mr:1}}):i.jsx(x,{fontSize:"small",sx:{mr:1}});return i.jsx(b,{"data-testid":`jogging-tab-${n.id}`,"aria-label":`jogging-tab-${n.id}`,label:e.showTabIcons?i.jsxs(g,{direction:"row",alignItems:"center",children:[d,r]}):r,id:`jogging-tab-${n.id}`,"aria-controls":`jogging-tab-${n.id}`},n.id)})}),i.jsx(g,{flexGrow:1,position:"relative",sx:{overflowY:"auto",overflowX:"hidden"},children:a()}),e.blocked&&i.jsx(C.JoggingBlocked,{store:e})]})});exports.JoggingPanel=u;exports.default=u;
2
+ //# sourceMappingURL=JoggingPanel.cjs.map
@@ -0,0 +1 @@
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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"}
@@ -27,3 +27,4 @@ export declare const JoggingPanel: ((props: JoggingPanelProps) => import("react/
27
27
  displayName: string;
28
28
  };
29
29
  export default JoggingPanel;
30
+ //# sourceMappingURL=JoggingPanel.d.ts.map
@@ -0,0 +1 @@
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,23 +1,121 @@
1
- import "react/jsx-runtime";
2
- import "@mui/icons-material/OpenWith";
3
- import "@mui/icons-material/Share";
4
- import "@mui/material/Stack";
5
- import "@mui/material/Tab";
6
- import "@mui/material/Tabs";
7
- import "@wandelbots/nova-js/v2";
8
- import "lodash-es";
9
- import "mobx";
10
- import "mobx-react-lite";
11
- import "react";
12
- import "react-i18next";
13
- import "../../chunks/externalizeComponent-eiCc5DIh.js";
14
- import { J as h, J as j } from "../../chunks/JoggingPanel-CQH_oXTB.js";
15
- import "../LoadingCover.js";
16
- import "./JoggingBlocked.js";
17
- import "./JoggingCartesianTab.js";
18
- import "./JoggingJointTab.js";
19
- import "./JoggingStore.js";
1
+ import { jsx as r, jsxs as l } from "react/jsx-runtime";
2
+ import s from "@mui/icons-material/OpenWith";
3
+ import u from "@mui/icons-material/Share";
4
+ import g from "@mui/material/Stack";
5
+ import b from "@mui/material/Tab";
6
+ import j from "@mui/material/Tabs";
7
+ import { NovaClient as x } from "@wandelbots/nova-js/v2";
8
+ import { isString as v } from "lodash-es";
9
+ import { runInAction as m } from "mobx";
10
+ import { observer as c, useLocalObservable as S } from "mobx-react-lite";
11
+ import { useEffect as d } from "react";
12
+ import { useTranslation as h } from "react-i18next";
13
+ import { externalizeComponent as J } from "../../externalizeComponent.js";
14
+ import { JoggerConnection as w } from "../../lib/JoggerConnection.js";
15
+ import { LoadingCover as C } from "../LoadingCover.js";
16
+ import { JoggingBlocked as T } from "./JoggingBlocked.js";
17
+ import { JoggingCartesianTab as I } from "./JoggingCartesianTab.js";
18
+ import { JoggingJointTab as k } from "./JoggingJointTab.js";
19
+ import { JoggingStore as p } from "./JoggingStore.js";
20
+ const K = J(
21
+ c((o) => {
22
+ const e = v(o.nova) ? new x({ instanceUrl: o.nova }) : o.nova, i = S(() => ({
23
+ joggingStore: null,
24
+ loadingError: null
25
+ }));
26
+ async function a() {
27
+ m(() => {
28
+ i.loadingError = null, i.joggingStore = null;
29
+ });
30
+ try {
31
+ let n = o.store;
32
+ if (!n) {
33
+ const t = await w.open(e, o.motionGroupId);
34
+ n = await p.loadFor(t);
35
+ }
36
+ m(() => {
37
+ i.joggingStore = n;
38
+ }), o.onSetup && o.onSetup(n);
39
+ } catch (n) {
40
+ i.loadingError = n;
41
+ }
42
+ }
43
+ return d(() => (a(), o.store ? () => null : () => {
44
+ var n;
45
+ (n = i.joggingStore) == null || n.dispose();
46
+ }), [o.store, o.nova, o.motionGroupId]), d(() => {
47
+ const n = i.joggingStore;
48
+ n && (o.locked ? n.lock("external") : n.unlock("external"));
49
+ }, [i.joggingStore, o.locked]), /* @__PURE__ */ r(
50
+ g,
51
+ {
52
+ "data-testid": "jogging-panel",
53
+ "aria-label": "jogging-panel",
54
+ sx: {
55
+ maxWidth: "460px",
56
+ minWidth: "320px",
57
+ position: "relative",
58
+ ...o.sx
59
+ },
60
+ children: i.joggingStore ? /* @__PURE__ */ r(E, { store: i.joggingStore, children: o.children }) : /* @__PURE__ */ r(C, { message: "Loading jogging", error: i.loadingError })
61
+ }
62
+ );
63
+ })
64
+ ), E = c(
65
+ ({
66
+ store: o,
67
+ children: e
68
+ }) => {
69
+ const { t: i } = h();
70
+ function a() {
71
+ if (o.currentTab.id === "cartesian")
72
+ return /* @__PURE__ */ r(I, { store: o, children: e });
73
+ if (o.currentTab.id === "joint")
74
+ return /* @__PURE__ */ r(k, { store: o, children: e });
75
+ }
76
+ return /* @__PURE__ */ l(g, { flexGrow: 1, sx: { overflow: "hidden" }, children: [
77
+ /* @__PURE__ */ r(
78
+ j,
79
+ {
80
+ "data-testid": "jogging-tabs",
81
+ "aria-label": "jogging-tabs",
82
+ value: o.tabIndex,
83
+ onChange: o.onTabChange,
84
+ variant: "fullWidth",
85
+ children: o.tabs.map((n) => {
86
+ const t = n.label === "Cartesian" ? i("Jogging.Cartesian.bt") : i("Jogging.Joints.bt"), f = n.label === "cartesian" ? /* @__PURE__ */ r(s, { fontSize: "small", sx: { mr: 1 } }) : /* @__PURE__ */ r(u, { fontSize: "small", sx: { mr: 1 } });
87
+ return /* @__PURE__ */ r(
88
+ b,
89
+ {
90
+ "data-testid": `jogging-tab-${n.id}`,
91
+ "aria-label": `jogging-tab-${n.id}`,
92
+ label: o.showTabIcons ? /* @__PURE__ */ l(g, { direction: "row", alignItems: "center", children: [
93
+ f,
94
+ t
95
+ ] }) : t,
96
+ id: `jogging-tab-${n.id}`,
97
+ "aria-controls": `jogging-tab-${n.id}`
98
+ },
99
+ n.id
100
+ );
101
+ })
102
+ }
103
+ ),
104
+ /* @__PURE__ */ r(
105
+ g,
106
+ {
107
+ flexGrow: 1,
108
+ position: "relative",
109
+ sx: { overflowY: "auto", overflowX: "hidden" },
110
+ children: a()
111
+ }
112
+ ),
113
+ o.blocked && /* @__PURE__ */ r(T, { store: o })
114
+ ] });
115
+ }
116
+ );
20
117
  export {
21
- h as JoggingPanel,
22
- j as default
118
+ K as JoggingPanel,
119
+ K as default
23
120
  };
121
+ //# sourceMappingURL=JoggingPanel.js.map
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=JoggingPanel.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoggingPanel.test.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingPanel.test.tsx"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const I=require("@wandelbots/nova-js"),m=require("@wandelbots/nova-js/v2"),u=require("lodash-es"),d=require("lodash-es/keyBy.js"),S=require("lodash-es/uniqueId.js"),y=require("mobx"),l=[{id:"0.1",mm:.1,degrees:.05},{id:"1",mm:1,degrees:.5},{id:"5",mm:5,degrees:2.5},{id:"10",mm:10,degrees:5}],p=[{id:"continuous"},...l],T=["coordsys","tool"];class a{constructor(e,t,s,i,n){var r,c,o,h;this.jogger=e,this.coordSystems=t,this.motionGroupDescription=s,this.tcps=i,this.inverseSolverValue=n,this.selectedTabId="cartesian",this.locks=new Set,this.blocked=!1,this.selectedCoordSystemId="world",this.selectedTcpId="",this.selectedOrientation="coordsys",this.selectedIncrementId="continuous",this.selectedCartesianMotionType="translate",this.incrementJogInProgress=null,this.translationVelocityMmPerSec=10,this.rotationVelocityDegPerSec=1,this.minTranslationVelocityMmPerSec=5,this.maxTranslationVelocityMmPerSec=250,this.minRotationVelocityDegPerSec=1,this.maxRotationVelocityDegPerSec=60,this.showCoordSystemSelect=!1,this.showTcpSelect=!0,this.showOrientationSelect=!0,this.showIncrementSelect=!0,this.showTabIcons=!1,this.showVelocitySliderLabel=!0,this.showVelocityLegend=!1,this.showJointsLegend=!1,this.disposers=[],this.inverseSolver=void 0,this.jointType=m.JointTypeEnum.RevoluteJoint;for(const g of t)if(g.coordinate_system===""){g.coordinate_system="world";break}this.selectedCoordSystemId=((r=t[0])==null?void 0:r.coordinate_system)||"world",this.selectedTcpId=((c=i[0])==null?void 0:c.id)||"",this.inverseSolver=n,this.jointType=((h=(o=s==null?void 0:s.dh_parameters)==null?void 0:o[0])==null?void 0:h.type)??m.JointTypeEnum.RevoluteJoint,y.makeAutoObservable(this,{},{autoBind:!0}),this.jogger.onBlocked=()=>{this.block()},this.loadFromLocalStorage(),this.disposers.push(y.autorun(()=>this.saveToLocalStorage())),window.joggingStore=this}static async loadFor(e){const{nova:t}=e,[s,i]=await Promise.all([t.api.controller.listCoordinateSystems(e.motionStream.controllerId,"ROTATION_VECTOR"),t.api.motionGroup.getMotionGroupDescription(e.motionStream.controllerId,e.motionGroupId)]),n=await t.api.motionGroupModels.getMotionGroupKinematicModel(i.motion_group_model),r=Object.entries(i.tcps||{}).map(([c,o])=>({id:c,readable_name:o.name,position:o.pose.position,orientation:o.pose.orientation}));return new a(e,s||[],i,r,n.inverse_solver)}dispose(){for(const e of this.disposers)e();this.jogger.dispose()}get coordSystemCountByName(){return u.countBy(this.coordSystems,e=>e.name)}async deactivate(){if(this.jogger.mode==="jogging")return this.jogger.stop()}async activate(){return this.currentTab.id==="cartesian"?((this.jogger.tcp!==this.selectedTcpId||this.jogger.orientation!==this.selectedOrientation)&&this.jogger.setOptions({tcp:this.selectedTcpId,orientation:this.selectedOrientation}),this.activeDiscreteIncrement?this.jogger.setJoggingMode("trajectory"):this.jogger.setJoggingMode("jogging")):this.jogger.setJoggingMode("jogging"),this.jogger}loadFromLocalStorage(){const e=I.tryParseJson(localStorage.getItem("joggingToolStore"));e&&(this.tabsById[e.selectedTabId]&&(this.selectedTabId=e.selectedTabId),this.coordSystemsById[e.selectedCoordSystemId]&&(this.selectedCoordSystemId=e.selectedCoordSystemId),this.tcpsById[e.selectedTcpId]&&(this.selectedTcpId=e.selectedTcpId),this.incrementOptionsById[e.selectedIncrementId]&&(this.selectedIncrementId=e.selectedIncrementId),["translate","rotate"].includes(e.selectedCartesianMotionType)&&(this.selectedCartesianMotionType=e.selectedCartesianMotionType),["coordsys","tool"].includes(e.selectedOrientation)&&(this.selectedOrientation=e.selectedOrientation))}saveToLocalStorage(){localStorage.setItem("joggingToolStore",JSON.stringify(this.localStorageSave))}get isLocked(){return this.locks.size>0}get localStorageSave(){return{selectedTabId:this.selectedTabId,selectedCoordSystemId:this.selectedCoordSystemId,selectedTcpId:this.selectedTcpId,selectedOrientation:this.selectedOrientation,selectedIncrementId:this.selectedIncrementId,selectedCartesianMotionType:this.selectedCartesianMotionType}}get tabs(){const e=[{id:"joint",label:"Joints"}];return this.inverseSolver!==null&&e.unshift({id:"cartesian",label:"Cartesian"}),e}get incrementOptions(){return p}get discreteIncrementOptions(){return l}get incrementOptionsById(){return d(this.incrementOptions,e=>e.id)}get tabsById(){return d(this.tabs,e=>e.id)}get currentTab(){return this.tabsById[this.selectedTabId]||this.tabs[0]}get tabIndex(){return this.tabs.indexOf(this.currentTab)}get coordSystemsById(){return d(this.coordSystems,e=>e.coordinate_system)}get activeCoordSystemId(){return this.selectedOrientation==="tool"?"tool":this.selectedCoordSystemId}get tcpsById(){return d(this.tcps,e=>e.id)}get activeDiscreteIncrement(){return this.selectedOrientation==="tool"?void 0:l.find(e=>e.id===this.selectedIncrementId)}get rotationVelocityRadsPerSec(){return this.rotationVelocityDegPerSec*Math.PI/180}velocityInDisplayUnits(e){return e?this.rotationVelocityDegPerSec:this.translationVelocityMmPerSec}minVelocityInDisplayUnits(e){return e?this.minRotationVelocityDegPerSec:this.minTranslationVelocityMmPerSec}maxVelocityInDisplayUnits(e){return e?this.maxRotationVelocityDegPerSec:this.maxTranslationVelocityMmPerSec}onTabChange(e,t){const s=this.tabs[t]||this.tabs[0];this.selectedTabId=s.id}setSelectedCoordSystemId(e){this.selectedCoordSystemId=e}setSelectedTcpId(e){this.selectedTcpId=e}setSelectedOrientation(e){this.selectedOrientation=e}setSelectedIncrementId(e){this.selectedIncrementId=e}setCurrentIncrementJog(e){this.incrementJogInProgress=e}setVelocityFromSlider(e,t){t?this.rotationVelocityDegPerSec=e:this.translationVelocityMmPerSec=e}setSelectedCartesianMotionType(e){this.selectedCartesianMotionType=e}lock(e){this.locks.add(e)}unlock(e){this.locks.delete(e)}block(){this.blocked=!0}unblock(){this.blocked=!1,this.jogger.mode==="jogging"&&this.jogger.initializeJoggingWebsocket()}async withMotionLock(e){const t=S();this.lock(t);try{return await e()}finally{this.unlock(t)}}}exports.JoggingStore=a;exports.ORIENTATION_IDS=T;exports.default=a;
2
+ //# sourceMappingURL=JoggingStore.cjs.map
@@ -0,0 +1 @@
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.js\"\nimport uniqueId from \"lodash-es/uniqueId.js\"\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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"}
@@ -194,3 +194,4 @@ export declare class JoggingStore {
194
194
  withMotionLock(fn: () => Promise<void>): Promise<void>;
195
195
  }
196
196
  export default JoggingStore;
197
+ //# sourceMappingURL=JoggingStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoggingStore.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/JoggingStore.ts"],"names":[],"mappings":"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"}
@@ -216,3 +216,4 @@ export {
216
216
  k as ORIENTATION_IDS,
217
217
  g as default
218
218
  };
219
+ //# sourceMappingURL=JoggingStore.js.map
@@ -0,0 +1 @@
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.js\"\nimport uniqueId from \"lodash-es/uniqueId.js\"\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 +1,2 @@
1
1
  "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@mui/material/styles"),r=require("@mui/material/ToggleButtonGroup"),u=e.styled(r)(({theme:t})=>{var o;return{"&.MuiToggleButtonGroup-root":{background:(o=t.palette.backgroundPaperElevation)==null?void 0:o[8],borderRadius:"8px",padding:"4px",gap:"4px",button:{border:"none",borderRadius:"4px",flex:"1 1 0px",minWidth:0,"&.MuiToggleButtonGroup-firstButton":{borderRadius:"8px 4px 4px 8px"},"&.MuiToggleButtonGroup-lastButton":{borderRadius:"4px 8px 8px 4px"}}}}});exports.JoggingToggleButtonGroup=u;
2
+ //# sourceMappingURL=JoggingToggleButtonGroup.cjs.map
@@ -0,0 +1 @@
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,2 +1,3 @@
1
1
  import type { ToggleButtonGroupProps } from "@mui/material/ToggleButtonGroup";
2
2
  export declare const JoggingToggleButtonGroup: React.ComponentType<ToggleButtonGroupProps>;
3
+ //# sourceMappingURL=JoggingToggleButtonGroup.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -26,3 +26,4 @@ const g = p(r)(({ theme: t }) => {
26
26
  export {
27
27
  g as JoggingToggleButtonGroup
28
28
  };
29
+ //# sourceMappingURL=JoggingToggleButtonGroup.js.map
@@ -0,0 +1 @@
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 +1,2 @@
1
1
  "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),c=require("mobx-react-lite"),s=require("react-i18next"),l=require("../VelocitySlider.cjs"),y=c.observer(({store:i,useDegree:t})=>{const{t:e}=s.useTranslation();function a(n,r){return r?`ω = ${e("Jogging.Cartesian.Rotation.velocityDegPerSec.lb",{amount:n})}`:`v = ${e("Jogging.Cartesian.Translation.velocityMmPerSec.lb",{amount:n})}`}return o.jsx(l.VelocitySlider,{store:i,velocity:i.velocityInDisplayUnits(t),min:i.minVelocityInDisplayUnits(t),max:i.maxVelocityInDisplayUnits(t),onVelocityChange:i.setVelocityFromSlider,useDegree:t,disabled:i.isLocked,renderValue:n=>o.jsx(l.VelocitySliderLabel,{value:a(n,t),sx:{minWidth:"111px",span:{transform:"translateY(-1.5px)"}}})})});exports.JoggingVelocitySlider=y;
2
+ //# sourceMappingURL=JoggingVelocitySlider.cjs.map
@@ -0,0 +1 @@
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"}
@@ -5,3 +5,4 @@ export declare const JoggingVelocitySlider: (({ store, useDegree }: {
5
5
  }) => import("react/jsx-runtime").JSX.Element) & {
6
6
  displayName: string;
7
7
  };
8
+ //# sourceMappingURL=JoggingVelocitySlider.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -37,3 +37,4 @@ const g = m(
37
37
  export {
38
38
  g as JoggingVelocitySlider
39
39
  };
40
+ //# sourceMappingURL=JoggingVelocitySlider.js.map
@@ -0,0 +1 @@
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 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),l=require("@mui/material/Button"),c=require("@mui/material/Stack"),u=require("@wandelbots/nova-js/v2"),d=require("mobx-react-lite"),p=require("react"),x=require("../../chunks/externalizeComponent-DOwkaDcw.cjs"),C=require("../CopyableText.cjs"),n=x.externalizeComponent(d.observer(({tcpPose:r,showCopyButton:i=!1})=>{const[o,e]=p.useState(null),s=u.poseToWandelscriptString(r),a=async()=>{try{await navigator.clipboard.writeText(s),e("Copied!"),setTimeout(()=>e(null),2e3)}catch{e("Copy failed"),setTimeout(()=>e(null),2e3)}};return t.jsxs(c,{direction:"row",alignItems:"center",spacing:1,sx:{flexGrow:1,minWidth:0,overflow:"hidden"},"data-testid":"pose-cartesian-values",children:[t.jsx(C.CopyableText,{value:s}),i&&t.jsx(l,{variant:"contained",color:"secondary",size:"small",onClick:a,sx:{flexShrink:0},children:o||"Copy"})]})}));exports.PoseCartesianValues=n;exports.default=n;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),l=require("@mui/material/Button"),c=require("@mui/material/Stack"),u=require("@wandelbots/nova-js/v2"),d=require("mobx-react-lite"),p=require("react"),x=require("../../externalizeComponent.cjs"),C=require("../CopyableText.cjs"),n=x.externalizeComponent(d.observer(({tcpPose:r,showCopyButton:i=!1})=>{const[o,e]=p.useState(null),s=u.poseToWandelscriptString(r),a=async()=>{try{await navigator.clipboard.writeText(s),e("Copied!"),setTimeout(()=>e(null),2e3)}catch{e("Copy failed"),setTimeout(()=>e(null),2e3)}};return t.jsxs(c,{direction:"row",alignItems:"center",spacing:1,sx:{flexGrow:1,minWidth:0,overflow:"hidden"},"data-testid":"pose-cartesian-values",children:[t.jsx(C.CopyableText,{value:s}),i&&t.jsx(l,{variant:"contained",color:"secondary",size:"small",onClick:a,sx:{flexShrink:0},children:o||"Copy"})]})}));exports.PoseCartesianValues=n;exports.default=n;
2
+ //# sourceMappingURL=PoseCartesianValues.cjs.map
@@ -0,0 +1 @@
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"}
@@ -7,3 +7,4 @@ export declare const PoseCartesianValues: (({ tcpPose, showCopyButton }: PoseCar
7
7
  displayName: string;
8
8
  };
9
9
  export default PoseCartesianValues;
10
+ //# sourceMappingURL=PoseCartesianValues.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -4,11 +4,11 @@ import l from "@mui/material/Stack";
4
4
  import { poseToWandelscriptString as p } from "@wandelbots/nova-js/v2";
5
5
  import { observer as m } from "mobx-react-lite";
6
6
  import { useState as c } from "react";
7
- import { e as d } from "../../chunks/externalizeComponent-eiCc5DIh.js";
7
+ import { externalizeComponent as d } from "../../externalizeComponent.js";
8
8
  import { CopyableText as f } from "../CopyableText.js";
9
9
  const T = d(
10
- m(({ tcpPose: a, showCopyButton: i = !1 }) => {
11
- const [o, e] = c(null), t = p(a);
10
+ m(({ tcpPose: i, showCopyButton: a = !1 }) => {
11
+ const [o, e] = c(null), t = p(i);
12
12
  return /* @__PURE__ */ s(
13
13
  l,
14
14
  {
@@ -19,7 +19,7 @@ const T = d(
19
19
  "data-testid": "pose-cartesian-values",
20
20
  children: [
21
21
  /* @__PURE__ */ r(f, { value: t }),
22
- i && /* @__PURE__ */ r(
22
+ a && /* @__PURE__ */ r(
23
23
  n,
24
24
  {
25
25
  variant: "contained",
@@ -45,3 +45,4 @@ export {
45
45
  T as PoseCartesianValues,
46
46
  T as default
47
47
  };
48
+ //# sourceMappingURL=PoseCartesianValues.js.map
@@ -0,0 +1 @@
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 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),c=require("@mui/material/Button"),u=require("@mui/material/Stack"),d=require("mobx-react-lite"),p=require("react"),x=require("../../chunks/externalizeComponent-DOwkaDcw.cjs"),m=require("../CopyableText.cjs"),s=x.externalizeComponent(d.observer(({joints:i,showCopyButton:r=!1})=>{const[o,e]=p.useState(null),n=`[${i.map(l=>parseFloat(l.toFixed(4))).join(", ")}]`,a=async()=>{try{await navigator.clipboard.writeText(n),e("Copied!"),setTimeout(()=>e(null),2e3)}catch{e("Copy failed"),setTimeout(()=>e(null),2e3)}};return t.jsxs(u,{direction:"row",alignItems:"center",spacing:1,sx:{flexGrow:1,minWidth:0,overflow:"hidden"},"data-testid":"pose-joint-values",children:[t.jsx(m.CopyableText,{value:n}),r&&t.jsx(c,{variant:"contained",color:"secondary",size:"small",onClick:a,sx:{flexShrink:0},children:o||"Copy"})]})}));exports.PoseJointValues=s;exports.default=s;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),c=require("@mui/material/Button"),u=require("@mui/material/Stack"),d=require("mobx-react-lite"),p=require("react"),x=require("../../externalizeComponent.cjs"),m=require("../CopyableText.cjs"),s=x.externalizeComponent(d.observer(({joints:i,showCopyButton:r=!1})=>{const[o,e]=p.useState(null),n=`[${i.map(l=>parseFloat(l.toFixed(4))).join(", ")}]`,a=async()=>{try{await navigator.clipboard.writeText(n),e("Copied!"),setTimeout(()=>e(null),2e3)}catch{e("Copy failed"),setTimeout(()=>e(null),2e3)}};return t.jsxs(u,{direction:"row",alignItems:"center",spacing:1,sx:{flexGrow:1,minWidth:0,overflow:"hidden"},"data-testid":"pose-joint-values",children:[t.jsx(m.CopyableText,{value:n}),r&&t.jsx(c,{variant:"contained",color:"secondary",size:"small",onClick:a,sx:{flexShrink:0},children:o||"Copy"})]})}));exports.PoseJointValues=s;exports.default=s;
2
+ //# sourceMappingURL=PoseJointValues.cjs.map