@wandelbots/wandelbots-js-react-components 5.4.2 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/dist/3d.cjs +2 -0
  2. package/dist/3d.cjs.map +1 -0
  3. package/dist/3d.js +31 -0
  4. package/dist/3d.js.map +1 -0
  5. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
  6. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -1
  7. package/dist/components/3d-viewport/PresetEnvironment.cjs +2 -0
  8. package/dist/components/3d-viewport/PresetEnvironment.cjs.map +1 -0
  9. package/dist/components/3d-viewport/PresetEnvironment.d.ts +1 -0
  10. package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -1
  11. package/dist/components/3d-viewport/PresetEnvironment.js +81 -0
  12. package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
  13. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -0
  14. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +1 -0
  15. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -0
  16. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -1
  17. package/dist/components/3d-viewport/SafetyZonesRenderer.js +131 -0
  18. package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
  19. package/dist/components/3d-viewport/TrajectoryRenderer.cjs +2 -0
  20. package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +1 -0
  21. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +1 -0
  22. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +1 -1
  23. package/dist/components/3d-viewport/TrajectoryRenderer.js +31 -0
  24. package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
  25. package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -0
  26. package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
  27. package/dist/components/3d-viewport/collider/ColliderCollection.js +22 -0
  28. package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
  29. package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -0
  30. package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
  31. package/dist/components/3d-viewport/collider/ColliderElement.js +29 -0
  32. package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
  33. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -0
  34. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
  35. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +19 -0
  36. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
  37. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +2 -0
  38. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
  39. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +43 -0
  40. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
  41. package/dist/components/AppHeader.cjs +2 -0
  42. package/dist/components/AppHeader.cjs.map +1 -0
  43. package/dist/components/AppHeader.d.ts +1 -0
  44. package/dist/components/AppHeader.d.ts.map +1 -1
  45. package/dist/components/AppHeader.js +139 -0
  46. package/dist/components/AppHeader.js.map +1 -0
  47. package/dist/components/ConsoleFilter.cjs +2 -0
  48. package/dist/components/ConsoleFilter.cjs.map +1 -0
  49. package/dist/components/ConsoleFilter.js +13 -0
  50. package/dist/components/ConsoleFilter.js.map +1 -0
  51. package/dist/components/CopyableText.cjs +2 -0
  52. package/dist/components/CopyableText.cjs.map +1 -0
  53. package/dist/components/CopyableText.d.ts +1 -0
  54. package/dist/components/CopyableText.d.ts.map +1 -1
  55. package/dist/components/CopyableText.js +71 -0
  56. package/dist/components/CopyableText.js.map +1 -0
  57. package/dist/components/CycleTimer/CycleTimer.d.ts +1 -0
  58. package/dist/components/CycleTimer/CycleTimer.d.ts.map +1 -1
  59. package/dist/components/CycleTimer/DefaultVariant.cjs +2 -0
  60. package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
  61. package/dist/components/CycleTimer/DefaultVariant.js +301 -0
  62. package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
  63. package/dist/components/CycleTimer/SmallVariant.cjs +2 -0
  64. package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
  65. package/dist/components/CycleTimer/SmallVariant.js +150 -0
  66. package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
  67. package/dist/components/CycleTimer/index.cjs +2 -0
  68. package/dist/components/CycleTimer/index.cjs.map +1 -0
  69. package/dist/components/CycleTimer/index.d.ts +1 -0
  70. package/dist/components/CycleTimer/index.d.ts.map +1 -1
  71. package/dist/components/CycleTimer/index.js +86 -0
  72. package/dist/components/CycleTimer/index.js.map +1 -0
  73. package/dist/components/CycleTimer/useAnimations.cjs +2 -0
  74. package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
  75. package/dist/components/CycleTimer/useAnimations.js +105 -0
  76. package/dist/components/CycleTimer/useAnimations.js.map +1 -0
  77. package/dist/components/CycleTimer/useTimerLogic.cjs +2 -0
  78. package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
  79. package/dist/components/CycleTimer/useTimerLogic.js +191 -0
  80. package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
  81. package/dist/components/CycleTimer/utils.cjs +2 -0
  82. package/dist/components/CycleTimer/utils.cjs.map +1 -0
  83. package/dist/components/CycleTimer/utils.js +20 -0
  84. package/dist/components/CycleTimer/utils.js.map +1 -0
  85. package/dist/components/CycleTimer.cjs +2 -0
  86. package/dist/components/CycleTimer.cjs.map +1 -0
  87. package/dist/components/CycleTimer.d.ts +1 -0
  88. package/dist/components/CycleTimer.d.ts.map +1 -1
  89. package/dist/components/CycleTimer.js +6 -0
  90. package/dist/components/CycleTimer.js.map +1 -0
  91. package/dist/components/DataGrid.cjs +2 -0
  92. package/dist/components/DataGrid.cjs.map +1 -0
  93. package/dist/components/DataGrid.d.ts +1 -0
  94. package/dist/components/DataGrid.d.ts.map +1 -1
  95. package/dist/components/DataGrid.js +535 -0
  96. package/dist/components/DataGrid.js.map +1 -0
  97. package/dist/components/LoadingCover.cjs +2 -0
  98. package/dist/components/LoadingCover.cjs.map +1 -0
  99. package/dist/components/LoadingCover.d.ts +1 -0
  100. package/dist/components/LoadingCover.d.ts.map +1 -1
  101. package/dist/components/LoadingCover.js +77 -0
  102. package/dist/components/LoadingCover.js.map +1 -0
  103. package/dist/components/LogPanel.cjs +2 -0
  104. package/dist/components/LogPanel.cjs.map +1 -0
  105. package/dist/components/LogPanel.d.ts +1 -0
  106. package/dist/components/LogPanel.d.ts.map +1 -1
  107. package/dist/components/LogPanel.js +34 -0
  108. package/dist/components/LogPanel.js.map +1 -0
  109. package/dist/components/LogStore.cjs +2 -0
  110. package/dist/components/LogStore.cjs.map +1 -0
  111. package/dist/components/LogStore.d.ts +1 -0
  112. package/dist/components/LogStore.d.ts.map +1 -1
  113. package/dist/components/LogStore.js +33 -0
  114. package/dist/components/LogStore.js.map +1 -0
  115. package/dist/components/LogViewer.cjs +2 -0
  116. package/dist/components/LogViewer.cjs.map +1 -0
  117. package/dist/components/LogViewer.d.ts +1 -0
  118. package/dist/components/LogViewer.d.ts.map +1 -1
  119. package/dist/components/LogViewer.js +299 -0
  120. package/dist/components/LogViewer.js.map +1 -0
  121. package/dist/components/ProgramControl.cjs +2 -0
  122. package/dist/components/ProgramControl.cjs.map +1 -0
  123. package/dist/components/ProgramControl.d.ts +1 -0
  124. package/dist/components/ProgramControl.d.ts.map +1 -1
  125. package/dist/components/ProgramControl.js +147 -0
  126. package/dist/components/ProgramControl.js.map +1 -0
  127. package/dist/components/ProgramStateIndicator.cjs +2 -0
  128. package/dist/components/ProgramStateIndicator.cjs.map +1 -0
  129. package/dist/components/ProgramStateIndicator.d.ts +1 -0
  130. package/dist/components/ProgramStateIndicator.d.ts.map +1 -1
  131. package/dist/components/ProgramStateIndicator.js +140 -0
  132. package/dist/components/ProgramStateIndicator.js.map +1 -0
  133. package/dist/components/RobotCard.cjs +2 -0
  134. package/dist/components/RobotCard.cjs.map +1 -0
  135. package/dist/components/RobotCard.d.ts +1 -0
  136. package/dist/components/RobotCard.d.ts.map +1 -1
  137. package/dist/components/RobotCard.js +360 -0
  138. package/dist/components/RobotCard.js.map +1 -0
  139. package/dist/components/RobotListItem.cjs +2 -0
  140. package/dist/components/RobotListItem.cjs.map +1 -0
  141. package/dist/components/RobotListItem.d.ts +1 -0
  142. package/dist/components/RobotListItem.d.ts.map +1 -1
  143. package/dist/components/RobotListItem.js +122 -0
  144. package/dist/components/RobotListItem.js.map +1 -0
  145. package/dist/components/RobotSetupReadinessIndicator.cjs +2 -0
  146. package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
  147. package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
  148. package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -1
  149. package/dist/components/RobotSetupReadinessIndicator.js +122 -0
  150. package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
  151. package/dist/components/SelectableFab.cjs +2 -0
  152. package/dist/components/SelectableFab.cjs.map +1 -0
  153. package/dist/components/SelectableFab.d.ts +1 -1
  154. package/dist/components/SelectableFab.d.ts.map +1 -1
  155. package/dist/components/SelectableFab.js +51 -0
  156. package/dist/components/SelectableFab.js.map +1 -0
  157. package/dist/components/TabBar.cjs +2 -0
  158. package/dist/components/TabBar.cjs.map +1 -0
  159. package/dist/components/TabBar.d.ts +1 -0
  160. package/dist/components/TabBar.d.ts.map +1 -1
  161. package/dist/components/TabBar.js +212 -0
  162. package/dist/components/TabBar.js.map +1 -0
  163. package/dist/components/ThemeSelect.d.ts +1 -1
  164. package/dist/components/ThemeSelect.d.ts.map +1 -1
  165. package/dist/components/Timer/Timer.d.ts +1 -0
  166. package/dist/components/Timer/Timer.d.ts.map +1 -1
  167. package/dist/components/Timer/TimerDefaultVariant.cjs +2 -0
  168. package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
  169. package/dist/components/Timer/TimerDefaultVariant.js +136 -0
  170. package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
  171. package/dist/components/Timer/TimerSmallVariant.cjs +2 -0
  172. package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
  173. package/dist/components/Timer/TimerSmallVariant.js +128 -0
  174. package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
  175. package/dist/components/Timer/index.cjs +2 -0
  176. package/dist/components/Timer/index.cjs.map +1 -0
  177. package/dist/components/Timer/index.d.ts +1 -0
  178. package/dist/components/Timer/index.d.ts.map +1 -1
  179. package/dist/components/Timer/index.js +68 -0
  180. package/dist/components/Timer/index.js.map +1 -0
  181. package/dist/components/Timer/useTimerAnimations.cjs +2 -0
  182. package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
  183. package/dist/components/Timer/useTimerAnimations.js +48 -0
  184. package/dist/components/Timer/useTimerAnimations.js.map +1 -0
  185. package/dist/components/Timer/useTimerLogic.cjs +2 -0
  186. package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
  187. package/dist/components/Timer/useTimerLogic.js +113 -0
  188. package/dist/components/Timer/useTimerLogic.js.map +1 -0
  189. package/dist/components/Timer/utils.cjs +2 -0
  190. package/dist/components/Timer/utils.cjs.map +1 -0
  191. package/dist/components/Timer/utils.js +19 -0
  192. package/dist/components/Timer/utils.js.map +1 -0
  193. package/dist/components/Timer.cjs +2 -0
  194. package/dist/components/Timer.cjs.map +1 -0
  195. package/dist/components/Timer.d.ts +4 -0
  196. package/dist/components/Timer.d.ts.map +1 -0
  197. package/dist/components/Timer.js +6 -0
  198. package/dist/components/Timer.js.map +1 -0
  199. package/dist/components/TransparentOverlay.d.ts +1 -0
  200. package/dist/components/TransparentOverlay.d.ts.map +1 -1
  201. package/dist/components/VelocitySlider.cjs +2 -0
  202. package/dist/components/VelocitySlider.cjs.map +1 -0
  203. package/dist/components/VelocitySlider.d.ts +1 -1
  204. package/dist/components/VelocitySlider.d.ts.map +1 -1
  205. package/dist/components/VelocitySlider.js +97 -0
  206. package/dist/components/VelocitySlider.js.map +1 -0
  207. package/dist/components/experimental/utils/AdornedSelect.cjs +2 -0
  208. package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
  209. package/dist/components/experimental/utils/AdornedSelect.js +35 -0
  210. package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
  211. package/dist/components/jogging/JoggingBlocked.cjs +2 -0
  212. package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
  213. package/dist/components/jogging/JoggingBlocked.js +46 -0
  214. package/dist/components/jogging/JoggingBlocked.js.map +1 -0
  215. package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -0
  216. package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
  217. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -1
  218. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -1
  219. package/dist/components/jogging/JoggingCartesianAxisControl.js +186 -0
  220. package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
  221. package/dist/components/jogging/JoggingCartesianTab.cjs +2 -0
  222. package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
  223. package/dist/components/jogging/JoggingCartesianTab.js +267 -0
  224. package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
  225. package/dist/components/jogging/JoggingJointLimitDetector.cjs +2 -0
  226. package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
  227. package/dist/components/jogging/JoggingJointLimitDetector.js +42 -0
  228. package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
  229. package/dist/components/jogging/JoggingJointTab.cjs +2 -0
  230. package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
  231. package/dist/components/jogging/JoggingJointTab.js +114 -0
  232. package/dist/components/jogging/JoggingJointTab.js.map +1 -0
  233. package/dist/components/jogging/JoggingJointValueControl.cjs +2 -0
  234. package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
  235. package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -1
  236. package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -1
  237. package/dist/components/jogging/JoggingJointValueControl.js +240 -0
  238. package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
  239. package/dist/components/jogging/JoggingOptions.cjs +2 -0
  240. package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
  241. package/dist/components/jogging/JoggingOptions.js +117 -0
  242. package/dist/components/jogging/JoggingOptions.js.map +1 -0
  243. package/dist/components/jogging/JoggingPanel.cjs +2 -0
  244. package/dist/components/jogging/JoggingPanel.cjs.map +1 -0
  245. package/dist/components/jogging/JoggingPanel.d.ts +1 -0
  246. package/dist/components/jogging/JoggingPanel.d.ts.map +1 -1
  247. package/dist/components/jogging/JoggingPanel.js +121 -0
  248. package/dist/components/jogging/JoggingPanel.js.map +1 -0
  249. package/dist/components/jogging/JoggingStore.cjs +2 -0
  250. package/dist/components/jogging/JoggingStore.cjs.map +1 -0
  251. package/dist/components/jogging/JoggingStore.d.ts +1 -1
  252. package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
  253. package/dist/components/jogging/JoggingStore.js +219 -0
  254. package/dist/components/jogging/JoggingStore.js.map +1 -0
  255. package/dist/components/jogging/JoggingToggleButtonGroup.cjs +2 -0
  256. package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
  257. package/dist/components/jogging/JoggingToggleButtonGroup.js +29 -0
  258. package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
  259. package/dist/components/jogging/JoggingVelocitySlider.cjs +2 -0
  260. package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
  261. package/dist/components/jogging/JoggingVelocitySlider.js +40 -0
  262. package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
  263. package/dist/components/jogging/PoseCartesianValues.cjs +2 -0
  264. package/dist/components/jogging/PoseCartesianValues.cjs.map +1 -0
  265. package/dist/components/jogging/PoseCartesianValues.d.ts +1 -0
  266. package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -1
  267. package/dist/components/jogging/PoseCartesianValues.js +48 -0
  268. package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
  269. package/dist/components/jogging/PoseJointValues.cjs +2 -0
  270. package/dist/components/jogging/PoseJointValues.cjs.map +1 -0
  271. package/dist/components/jogging/PoseJointValues.d.ts +1 -0
  272. package/dist/components/jogging/PoseJointValues.d.ts.map +1 -1
  273. package/dist/components/jogging/PoseJointValues.js +47 -0
  274. package/dist/components/jogging/PoseJointValues.js.map +1 -0
  275. package/dist/components/modal/NoMotionGroupModal.cjs +2 -0
  276. package/dist/components/modal/NoMotionGroupModal.cjs.map +1 -0
  277. package/dist/components/modal/NoMotionGroupModal.d.ts +1 -0
  278. package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -1
  279. package/dist/components/modal/NoMotionGroupModal.js +92 -0
  280. package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
  281. package/dist/components/robots/AxisConfig.cjs +2 -0
  282. package/dist/components/robots/AxisConfig.cjs.map +1 -0
  283. package/dist/components/robots/AxisConfig.js +5 -0
  284. package/dist/components/robots/AxisConfig.js.map +1 -0
  285. package/dist/components/robots/DHLinearAxis.cjs +2 -0
  286. package/dist/components/robots/DHLinearAxis.cjs.map +1 -0
  287. package/dist/components/robots/DHLinearAxis.d.ts +1 -0
  288. package/dist/components/robots/DHLinearAxis.d.ts.map +1 -1
  289. package/dist/components/robots/DHLinearAxis.js +92 -0
  290. package/dist/components/robots/DHLinearAxis.js.map +1 -0
  291. package/dist/components/robots/DHRobot.cjs +2 -0
  292. package/dist/components/robots/DHRobot.cjs.map +1 -0
  293. package/dist/components/robots/DHRobot.d.ts +1 -0
  294. package/dist/components/robots/DHRobot.d.ts.map +1 -1
  295. package/dist/components/robots/DHRobot.js +94 -0
  296. package/dist/components/robots/DHRobot.js.map +1 -0
  297. package/dist/components/robots/GenericRobot.cjs +2 -0
  298. package/dist/components/robots/GenericRobot.cjs.map +1 -0
  299. package/dist/components/robots/GenericRobot.d.ts +1 -0
  300. package/dist/components/robots/GenericRobot.d.ts.map +1 -1
  301. package/dist/components/robots/GenericRobot.js +91 -0
  302. package/dist/components/robots/GenericRobot.js.map +1 -0
  303. package/dist/components/robots/LinearAxis.cjs +2 -0
  304. package/dist/components/robots/LinearAxis.cjs.map +1 -0
  305. package/dist/components/robots/LinearAxis.d.ts +1 -0
  306. package/dist/components/robots/LinearAxis.d.ts.map +1 -1
  307. package/dist/components/robots/LinearAxis.js +42 -0
  308. package/dist/components/robots/LinearAxis.js.map +1 -0
  309. package/dist/components/robots/LinearAxisAnimator.cjs +2 -0
  310. package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
  311. package/dist/components/robots/LinearAxisAnimator.js +66 -0
  312. package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
  313. package/dist/components/robots/MotionGroupVisualizer.cjs +2 -0
  314. package/dist/components/robots/MotionGroupVisualizer.cjs.map +1 -0
  315. package/dist/components/robots/MotionGroupVisualizer.d.ts +1 -0
  316. package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -1
  317. package/dist/components/robots/MotionGroupVisualizer.js +21 -0
  318. package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
  319. package/dist/components/robots/Robot.cjs +2 -0
  320. package/dist/components/robots/Robot.cjs.map +1 -0
  321. package/dist/components/robots/Robot.d.ts +1 -0
  322. package/dist/components/robots/Robot.d.ts.map +1 -1
  323. package/dist/components/robots/Robot.js +31 -0
  324. package/dist/components/robots/Robot.js.map +1 -0
  325. package/dist/components/robots/RobotAnimator.cjs +2 -0
  326. package/dist/components/robots/RobotAnimator.cjs.map +1 -0
  327. package/dist/components/robots/RobotAnimator.js +66 -0
  328. package/dist/components/robots/RobotAnimator.js.map +1 -0
  329. package/dist/components/robots/SupportedLinearAxis.cjs +2 -0
  330. package/dist/components/robots/SupportedLinearAxis.cjs.map +1 -0
  331. package/dist/components/robots/SupportedLinearAxis.d.ts +1 -0
  332. package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -1
  333. package/dist/components/robots/SupportedLinearAxis.js +82 -0
  334. package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
  335. package/dist/components/robots/SupportedRobot.cjs +2 -0
  336. package/dist/components/robots/SupportedRobot.cjs.map +1 -0
  337. package/dist/components/robots/SupportedRobot.d.ts +1 -0
  338. package/dist/components/robots/SupportedRobot.d.ts.map +1 -1
  339. package/dist/components/robots/SupportedRobot.js +82 -0
  340. package/dist/components/robots/SupportedRobot.js.map +1 -0
  341. package/dist/components/robots/ghostStyle.cjs +2 -0
  342. package/dist/components/robots/ghostStyle.cjs.map +1 -0
  343. package/dist/components/robots/ghostStyle.js +40 -0
  344. package/dist/components/robots/ghostStyle.js.map +1 -0
  345. package/dist/components/robots/manufacturerHomePositions.cjs +2 -0
  346. package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
  347. package/dist/components/robots/manufacturerHomePositions.js +51 -0
  348. package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
  349. package/dist/components/robots/robotModelLogic.cjs +2 -0
  350. package/dist/components/robots/robotModelLogic.cjs.map +1 -0
  351. package/dist/components/robots/robotModelLogic.js +61 -0
  352. package/dist/components/robots/robotModelLogic.js.map +1 -0
  353. package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -0
  354. package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
  355. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -1
  356. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -1
  357. package/dist/components/safetyBar/ControllerTypeIndicator.js +71 -0
  358. package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
  359. package/dist/components/safetyBar/IndicatorWithExplanation.cjs +2 -0
  360. package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +1 -0
  361. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +1 -0
  362. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -1
  363. package/dist/components/safetyBar/IndicatorWithExplanation.js +123 -0
  364. package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
  365. package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -0
  366. package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
  367. package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -1
  368. package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -1
  369. package/dist/components/safetyBar/OperationModeIndicator.js +75 -0
  370. package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
  371. package/dist/components/safetyBar/SafetyBar.cjs +2 -0
  372. package/dist/components/safetyBar/SafetyBar.cjs.map +1 -0
  373. package/dist/components/safetyBar/SafetyBar.d.ts +1 -0
  374. package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -1
  375. package/dist/components/safetyBar/SafetyBar.js +66 -0
  376. package/dist/components/safetyBar/SafetyBar.js.map +1 -0
  377. package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -0
  378. package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
  379. package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -1
  380. package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -1
  381. package/dist/components/safetyBar/SafetyStateIndicator.js +126 -0
  382. package/dist/components/safetyBar/SafetyStateIndicator.js.map +1 -0
  383. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +2 -0
  384. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +1 -0
  385. package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +3 -0
  386. package/dist/components/safetyBar/icons/controller-type-physical.svg.js +11 -0
  387. package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +1 -0
  388. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +2 -0
  389. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +1 -0
  390. package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +3 -0
  391. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +11 -0
  392. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +1 -0
  393. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +2 -0
  394. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +1 -0
  395. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +3 -0
  396. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +11 -0
  397. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +1 -0
  398. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +2 -0
  399. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +1 -0
  400. package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +3 -0
  401. package/dist/components/safetyBar/icons/operation-mode-error.svg.js +11 -0
  402. package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +1 -0
  403. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +2 -0
  404. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +1 -0
  405. package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +3 -0
  406. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +11 -0
  407. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +1 -0
  408. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +2 -0
  409. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +1 -0
  410. package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +3 -0
  411. package/dist/components/safetyBar/icons/safety-state-error.svg.js +11 -0
  412. package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +1 -0
  413. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +2 -0
  414. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +1 -0
  415. package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +3 -0
  416. package/dist/components/safetyBar/icons/safety-state-estop.svg.js +11 -0
  417. package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +1 -0
  418. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +2 -0
  419. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +1 -0
  420. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +3 -0
  421. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +11 -0
  422. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +1 -0
  423. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +2 -0
  424. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +1 -0
  425. package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +3 -0
  426. package/dist/components/safetyBar/icons/safety-state-normal.svg.js +11 -0
  427. package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +1 -0
  428. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +2 -0
  429. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +1 -0
  430. package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +3 -0
  431. package/dist/components/safetyBar/icons/safety-state-stop.svg.js +11 -0
  432. package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +1 -0
  433. package/dist/components/utils/converters.cjs +2 -0
  434. package/dist/components/utils/converters.cjs.map +1 -0
  435. package/dist/components/utils/converters.js +40 -0
  436. package/dist/components/utils/converters.js.map +1 -0
  437. package/dist/components/utils/errorHandling.cjs +2 -0
  438. package/dist/components/utils/errorHandling.cjs.map +1 -0
  439. package/dist/components/utils/errorHandling.js +14 -0
  440. package/dist/components/utils/errorHandling.js.map +1 -0
  441. package/dist/components/utils/hooks.cjs +2 -0
  442. package/dist/components/utils/hooks.cjs.map +1 -0
  443. package/dist/components/utils/hooks.js +29 -0
  444. package/dist/components/utils/hooks.js.map +1 -0
  445. package/dist/components/utils/interpolation.cjs +2 -0
  446. package/dist/components/utils/interpolation.cjs.map +1 -0
  447. package/dist/components/utils/interpolation.js +138 -0
  448. package/dist/components/utils/interpolation.js.map +1 -0
  449. package/dist/core.cjs +2 -0
  450. package/dist/core.cjs.map +1 -0
  451. package/dist/core.js +81 -0
  452. package/dist/core.js.map +1 -0
  453. package/dist/externalizeComponent.cjs +2 -0
  454. package/dist/externalizeComponent.cjs.map +1 -0
  455. package/dist/externalizeComponent.js +13 -0
  456. package/dist/externalizeComponent.js.map +1 -0
  457. package/dist/i18n/config.cjs +2 -0
  458. package/dist/i18n/config.cjs.map +1 -0
  459. package/dist/i18n/config.js +25 -0
  460. package/dist/i18n/config.js.map +1 -0
  461. package/dist/i18n/locales/de/translations.json.cjs +3 -0
  462. package/dist/i18n/locales/de/translations.json.cjs.map +1 -0
  463. package/dist/i18n/locales/de/translations.json.js +94 -0
  464. package/dist/i18n/locales/de/translations.json.js.map +1 -0
  465. package/dist/i18n/locales/en/translations.json.cjs +2 -0
  466. package/dist/i18n/locales/en/translations.json.cjs.map +1 -0
  467. package/dist/i18n/locales/en/translations.json.js +94 -0
  468. package/dist/i18n/locales/en/translations.json.js.map +1 -0
  469. package/dist/icons/DropdownArrowIcon.cjs +2 -0
  470. package/dist/icons/DropdownArrowIcon.cjs.map +1 -0
  471. package/dist/icons/DropdownArrowIcon.js +14 -0
  472. package/dist/icons/DropdownArrowIcon.js.map +1 -0
  473. package/dist/icons/axis-x.svg.cjs +2 -0
  474. package/dist/icons/axis-x.svg.cjs.map +1 -0
  475. package/dist/icons/axis-x.svg.d.ts +3 -0
  476. package/dist/icons/axis-x.svg.js +11 -0
  477. package/dist/icons/axis-x.svg.js.map +1 -0
  478. package/dist/icons/axis-y.svg.cjs +2 -0
  479. package/dist/icons/axis-y.svg.cjs.map +1 -0
  480. package/dist/icons/axis-y.svg.d.ts +3 -0
  481. package/dist/icons/axis-y.svg.js +11 -0
  482. package/dist/icons/axis-y.svg.js.map +1 -0
  483. package/dist/icons/axis-z.svg.cjs +2 -0
  484. package/dist/icons/axis-z.svg.cjs.map +1 -0
  485. package/dist/icons/axis-z.svg.d.ts +3 -0
  486. package/dist/icons/axis-z.svg.js +11 -0
  487. package/dist/icons/axis-z.svg.js.map +1 -0
  488. package/dist/icons/home.svg.cjs +2 -0
  489. package/dist/icons/home.svg.cjs.map +1 -0
  490. package/dist/icons/home.svg.d.ts +3 -0
  491. package/dist/icons/home.svg.js +11 -0
  492. package/dist/icons/home.svg.js.map +1 -0
  493. package/dist/icons/jog-minus.svg.cjs +2 -0
  494. package/dist/icons/jog-minus.svg.cjs.map +1 -0
  495. package/dist/icons/jog-minus.svg.d.ts +3 -0
  496. package/dist/icons/jog-minus.svg.js +11 -0
  497. package/dist/icons/jog-minus.svg.js.map +1 -0
  498. package/dist/icons/jog-plus.svg.cjs +2 -0
  499. package/dist/icons/jog-plus.svg.cjs.map +1 -0
  500. package/dist/icons/jog-plus.svg.d.ts +3 -0
  501. package/dist/icons/jog-plus.svg.js +11 -0
  502. package/dist/icons/jog-plus.svg.js.map +1 -0
  503. package/dist/icons/jogging.svg.cjs +2 -0
  504. package/dist/icons/jogging.svg.cjs.map +1 -0
  505. package/dist/icons/jogging.svg.d.ts +3 -0
  506. package/dist/icons/jogging.svg.js +11 -0
  507. package/dist/icons/jogging.svg.js.map +1 -0
  508. package/dist/icons/orientation-coord-system.svg.cjs +2 -0
  509. package/dist/icons/orientation-coord-system.svg.cjs.map +1 -0
  510. package/dist/icons/orientation-coord-system.svg.d.ts +3 -0
  511. package/dist/icons/orientation-coord-system.svg.js +11 -0
  512. package/dist/icons/orientation-coord-system.svg.js.map +1 -0
  513. package/dist/icons/orientation-tool.svg.cjs +2 -0
  514. package/dist/icons/orientation-tool.svg.cjs.map +1 -0
  515. package/dist/icons/orientation-tool.svg.d.ts +3 -0
  516. package/dist/icons/orientation-tool.svg.js +11 -0
  517. package/dist/icons/orientation-tool.svg.js.map +1 -0
  518. package/dist/icons/robot.svg.cjs +2 -0
  519. package/dist/icons/robot.svg.cjs.map +1 -0
  520. package/dist/icons/robot.svg.d.ts +3 -0
  521. package/dist/icons/robot.svg.js +11 -0
  522. package/dist/icons/robot.svg.js.map +1 -0
  523. package/dist/icons/rotation.svg.cjs +2 -0
  524. package/dist/icons/rotation.svg.cjs.map +1 -0
  525. package/dist/icons/rotation.svg.d.ts +3 -0
  526. package/dist/icons/rotation.svg.js +11 -0
  527. package/dist/icons/rotation.svg.js.map +1 -0
  528. package/dist/icons/wbLogo.svg.cjs +2 -0
  529. package/dist/icons/wbLogo.svg.cjs.map +1 -0
  530. package/dist/icons/wbLogo.svg.d.ts +3 -0
  531. package/dist/icons/wbLogo.svg.js +11 -0
  532. package/dist/icons/wbLogo.svg.js.map +1 -0
  533. package/dist/index.cjs +2 -0
  534. package/dist/index.cjs.map +1 -0
  535. package/dist/index.js +153 -0
  536. package/dist/index.js.map +1 -0
  537. package/dist/lib/ConnectedMotionGroup.cjs +4 -0
  538. package/dist/lib/ConnectedMotionGroup.cjs.map +1 -0
  539. package/dist/lib/ConnectedMotionGroup.d.ts +1 -0
  540. package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -1
  541. package/dist/lib/ConnectedMotionGroup.js +250 -0
  542. package/dist/lib/ConnectedMotionGroup.js.map +1 -0
  543. package/dist/lib/JoggerConnection.cjs +2 -0
  544. package/dist/lib/JoggerConnection.cjs.map +1 -0
  545. package/dist/lib/JoggerConnection.d.ts +1 -0
  546. package/dist/lib/JoggerConnection.d.ts.map +1 -1
  547. package/dist/lib/JoggerConnection.js +342 -0
  548. package/dist/lib/JoggerConnection.js.map +1 -0
  549. package/dist/lib/MotionStreamConnection.cjs +3 -0
  550. package/dist/lib/MotionStreamConnection.cjs.map +1 -0
  551. package/dist/lib/MotionStreamConnection.d.ts +1 -0
  552. package/dist/lib/MotionStreamConnection.d.ts.map +1 -1
  553. package/dist/lib/MotionStreamConnection.js +94 -0
  554. package/dist/lib/MotionStreamConnection.js.map +1 -0
  555. package/dist/lib/motionStateUpdate.cjs +2 -0
  556. package/dist/lib/motionStateUpdate.cjs.map +1 -0
  557. package/dist/lib/motionStateUpdate.js +49 -0
  558. package/dist/lib/motionStateUpdate.js.map +1 -0
  559. package/dist/test/consumer.test.d.ts +2 -0
  560. package/dist/test/consumer.test.d.ts.map +1 -0
  561. package/dist/themes/createDarkTheme.cjs +2 -0
  562. package/dist/themes/createDarkTheme.cjs.map +1 -0
  563. package/dist/themes/createDarkTheme.js +344 -0
  564. package/dist/themes/createDarkTheme.js.map +1 -0
  565. package/dist/themes/createLightTheme.cjs +2 -0
  566. package/dist/themes/createLightTheme.cjs.map +1 -0
  567. package/dist/themes/createLightTheme.js +9 -0
  568. package/dist/themes/createLightTheme.js.map +1 -0
  569. package/dist/themes/theming.cjs +2 -0
  570. package/dist/themes/theming.cjs.map +1 -0
  571. package/dist/themes/theming.js +14 -0
  572. package/dist/themes/theming.js.map +1 -0
  573. package/dist/wb-icons.cjs +2 -0
  574. package/dist/wb-icons.cjs.map +1 -0
  575. package/dist/wb-icons.js +47 -0
  576. package/dist/wb-icons.js.map +1 -0
  577. package/package.json +20 -9
  578. package/src/components/3d-viewport/CoordinateSystemTransform.tsx +2 -0
  579. package/src/components/3d-viewport/PresetEnvironment.tsx +2 -0
  580. package/src/components/3d-viewport/SafetyZonesRenderer.tsx +2 -0
  581. package/src/components/3d-viewport/TrajectoryRenderer.tsx +2 -0
  582. package/src/components/AppHeader.tsx +2 -0
  583. package/src/components/CopyableText.tsx +2 -0
  584. package/src/components/CycleTimer/CycleTimer.ts +2 -0
  585. package/src/components/CycleTimer/index.tsx +2 -0
  586. package/src/components/CycleTimer.tsx +2 -0
  587. package/src/components/DataGrid.tsx +2 -0
  588. package/src/components/LoadingCover.tsx +2 -0
  589. package/src/components/LogPanel.tsx +2 -0
  590. package/src/components/LogStore.ts +2 -0
  591. package/src/components/LogViewer.tsx +2 -0
  592. package/src/components/ProgramControl.tsx +2 -0
  593. package/src/components/ProgramStateIndicator.tsx +2 -0
  594. package/src/components/RobotCard.tsx +2 -0
  595. package/src/components/RobotListItem.tsx +2 -0
  596. package/src/components/RobotSetupReadinessIndicator.tsx +2 -0
  597. package/src/components/SelectableFab.tsx +2 -0
  598. package/src/components/TabBar.tsx +2 -0
  599. package/src/components/ThemeSelect.tsx +2 -0
  600. package/src/components/Timer/Timer.ts +2 -0
  601. package/src/components/Timer/index.tsx +2 -0
  602. package/src/components/Timer.ts +4 -0
  603. package/src/components/TransparentOverlay.tsx +2 -0
  604. package/src/components/VelocitySlider.tsx +2 -0
  605. package/src/components/jogging/JoggingCartesianAxisControl.tsx +2 -0
  606. package/src/components/jogging/JoggingJointValueControl.tsx +2 -0
  607. package/src/components/jogging/JoggingPanel.tsx +2 -0
  608. package/src/components/jogging/JoggingStore.ts +2 -0
  609. package/src/components/jogging/PoseCartesianValues.tsx +2 -0
  610. package/src/components/jogging/PoseJointValues.tsx +2 -0
  611. package/src/components/modal/NoMotionGroupModal.tsx +2 -0
  612. package/src/components/robots/DHLinearAxis.tsx +2 -0
  613. package/src/components/robots/DHRobot.tsx +2 -0
  614. package/src/components/robots/GenericRobot.tsx +2 -0
  615. package/src/components/robots/LinearAxis.tsx +2 -0
  616. package/src/components/robots/MotionGroupVisualizer.tsx +2 -0
  617. package/src/components/robots/Robot.tsx +2 -0
  618. package/src/components/robots/SupportedLinearAxis.tsx +2 -0
  619. package/src/components/robots/SupportedRobot.tsx +2 -0
  620. package/src/components/safetyBar/ControllerTypeIndicator.tsx +2 -0
  621. package/src/components/safetyBar/IndicatorWithExplanation.tsx +2 -0
  622. package/src/components/safetyBar/OperationModeIndicator.tsx +2 -0
  623. package/src/components/safetyBar/SafetyBar.tsx +2 -0
  624. package/src/components/safetyBar/SafetyStateIndicator.tsx +2 -0
  625. package/src/lib/ConnectedMotionGroup.ts +2 -0
  626. package/src/lib/JoggerConnection.ts +2 -0
  627. package/src/lib/MotionStreamConnection.ts +2 -0
  628. package/src/test/consumer.test.ts +230 -0
  629. package/dist/3d.cjs.js +0 -2
  630. package/dist/3d.cjs.js.map +0 -1
  631. package/dist/3d.es.js +0 -19
  632. package/dist/3d.es.js.map +0 -1
  633. package/dist/MotionGroupVisualizer-B-e22qXF.cjs +0 -2
  634. package/dist/MotionGroupVisualizer-B-e22qXF.cjs.map +0 -1
  635. package/dist/MotionGroupVisualizer-CIASsBC6.js +0 -1433
  636. package/dist/MotionGroupVisualizer-CIASsBC6.js.map +0 -1
  637. package/dist/auth0-spa-js.production.esm-CVEdrQ4-.cjs +0 -5
  638. package/dist/auth0-spa-js.production.esm-CVEdrQ4-.cjs.map +0 -1
  639. package/dist/auth0-spa-js.production.esm-Cr9w0sUa.js +0 -4217
  640. package/dist/auth0-spa-js.production.esm-Cr9w0sUa.js.map +0 -1
  641. package/dist/core.cjs.js +0 -2
  642. package/dist/core.cjs.js.map +0 -1
  643. package/dist/core.es.js +0 -52
  644. package/dist/core.es.js.map +0 -1
  645. package/dist/index.cjs.js +0 -2
  646. package/dist/index.cjs.js.map +0 -1
  647. package/dist/index.es.js +0 -92
  648. package/dist/index.es.js.map +0 -1
  649. package/dist/interpolation-BIB6FC35.cjs +0 -198
  650. package/dist/interpolation-BIB6FC35.cjs.map +0 -1
  651. package/dist/interpolation-lSTX6ZXZ.js +0 -14559
  652. package/dist/interpolation-lSTX6ZXZ.js.map +0 -1
  653. package/dist/safety-state-stop-ClWLVLMl.cjs +0 -2
  654. package/dist/safety-state-stop-ClWLVLMl.cjs.map +0 -1
  655. package/dist/safety-state-stop-DuMBCxN5.js +0 -91
  656. package/dist/safety-state-stop-DuMBCxN5.js.map +0 -1
  657. package/dist/theming-D_pShDEg.js +0 -32236
  658. package/dist/theming-D_pShDEg.js.map +0 -1
  659. package/dist/theming-L5E8VSae.cjs +0 -84
  660. package/dist/theming-L5E8VSae.cjs.map +0 -1
  661. package/dist/wb-icons.cjs.js +0 -2
  662. package/dist/wb-icons.cjs.js.map +0 -1
  663. package/dist/wb-icons.es.js +0 -27
  664. package/dist/wb-icons.es.js.map +0 -1
  665. package/dist/wbLogo-CObCmqTw.js +0 -31
  666. package/dist/wbLogo-CObCmqTw.js.map +0 -1
  667. package/dist/wbLogo-G_IfZ03l.cjs +0 -2
  668. package/dist/wbLogo-G_IfZ03l.cjs.map +0 -1
@@ -0,0 +1,11 @@
1
+ import * as e from "react";
2
+ import { forwardRef as a } from "react";
3
+ const m = ({
4
+ title: r,
5
+ titleId: l,
6
+ ...o
7
+ }, t) => /* @__PURE__ */ e.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", viewBox: "0 0 21 25", ref: t, "aria-labelledby": l, ...o }, r ? /* @__PURE__ */ e.createElement("title", { id: l }, r) : null, /* @__PURE__ */ e.createElement("path", { d: "M0 8.256v5.96l17.023-9.745L14.42 0zM9.703 11.676 0 17.21v5.974l9.703-5.536zM11.889 19.413l-9.663 5.58h13.278v-5.58z" })), c = a(m);
8
+ export {
9
+ c as default
10
+ };
11
+ //# sourceMappingURL=wbLogo.svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wbLogo.svg.js","sources":["../../src/icons/wbLogo.svg"],"sourcesContent":["import * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgWbLogo = ({\n title,\n titleId,\n ...props\n}, ref) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\", viewBox: \"0 0 21 25\", ref, \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0 8.256v5.96l17.023-9.745L14.42 0zM9.703 11.676 0 17.21v5.974l9.703-5.536zM11.889 19.413l-9.663 5.58h13.278v-5.58z\" }));\nconst ForwardRef = forwardRef(SvgWbLogo);\nexport default ForwardRef;\n"],"names":["SvgWbLogo","title","titleId","props","ref","React","ForwardRef","forwardRef"],"mappings":";;AAEA,MAAMA,IAAY,CAAC;AAAA,EACjB,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,MAAwB,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,MAAM,gBAAgB,SAAS,aAAa,KAAAD,GAAK,mBAAmBF,GAAS,GAAGC,EAAK,GAAIF,IAAwB,gBAAAI,EAAM,cAAc,SAAS,EAAE,IAAIH,EAAO,GAAID,CAAK,IAAI,MAAsB,gBAAAI,EAAM,cAAc,QAAQ,EAAE,GAAG,sHAAqH,CAAE,CAAC,GAC9aC,IAAaC,EAAWP,CAAS;"}
package/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./components/3d-viewport/collider/CollisionSceneRenderer.cjs"),l=require("./components/3d-viewport/PresetEnvironment.cjs"),g=require("./components/3d-viewport/SafetyZonesRenderer.cjs"),d=require("./components/3d-viewport/TrajectoryRenderer.cjs"),q=require("./components/RobotCard.cjs"),S=require("./components/robots/AxisConfig.cjs"),p=require("./components/robots/LinearAxis.cjs"),r=require("./components/robots/manufacturerHomePositions.cjs"),f=require("./components/robots/Robot.cjs"),M=require("./components/robots/robotModelLogic.cjs"),C=require("./components/robots/SupportedLinearAxis.cjs"),m=require("./components/robots/SupportedRobot.cjs"),R=require("./components/robots/MotionGroupVisualizer.cjs"),I=require("./components/AppHeader.cjs"),b=require("./components/CycleTimer/index.cjs"),y=require("./components/DataGrid.cjs"),A=require("./components/jogging/JoggingCartesianAxisControl.cjs"),L=require("./components/jogging/JoggingJointValueControl.cjs"),P=require("./components/jogging/JoggingPanel.cjs"),V=require("./components/jogging/JoggingStore.cjs"),J=require("./components/jogging/PoseCartesianValues.cjs"),E=require("./components/jogging/PoseJointValues.cjs"),n=require("./components/LoadingCover.cjs"),x=require("./components/LogPanel.cjs"),T=require("./components/LogStore.cjs"),e=require("./components/LogViewer.cjs"),G=require("./components/modal/NoMotionGroupModal.cjs"),a=require("./components/ProgramControl.cjs"),N=require("./components/ProgramStateIndicator.cjs"),O=require("./components/RobotListItem.cjs"),i=require("./components/RobotSetupReadinessIndicator.cjs"),j=require("./components/safetyBar/SafetyBar.cjs"),v=require("./components/SelectableFab.cjs"),F=require("./components/TabBar.cjs"),H=require("./components/Timer/index.cjs"),o=require("./components/utils/hooks.cjs"),s=require("./components/utils/interpolation.cjs"),u=require("./components/VelocitySlider.cjs"),h=require("./i18n/config.cjs"),B=require("./lib/ConnectedMotionGroup.cjs"),D=require("./lib/JoggerConnection.cjs"),t=require("./lib/motionStateUpdate.cjs"),w=require("./lib/MotionStreamConnection.cjs"),U=require("./themes/theming.cjs"),W=require("./components/safetyBar/icons/controller-type-physical.svg.cjs"),Z=require("./components/safetyBar/icons/controller-type-virtual.svg.cjs"),_=require("./components/safetyBar/icons/operation-mode-automatic.svg.cjs"),z=require("./components/safetyBar/icons/operation-mode-error.svg.cjs"),X=require("./components/safetyBar/icons/operation-mode-manual.svg.cjs"),Y=require("./components/safetyBar/icons/safety-state-error.svg.cjs"),k=require("./components/safetyBar/icons/safety-state-estop.svg.cjs"),$=require("./components/safetyBar/icons/safety-state-manual-action-required.svg.cjs"),K=require("./components/safetyBar/icons/safety-state-normal.svg.cjs"),Q=require("./components/safetyBar/icons/safety-state-stop.svg.cjs"),ee=require("./icons/axis-x.svg.cjs"),oe=require("./icons/axis-y.svg.cjs"),te=require("./icons/axis-z.svg.cjs"),re=require("./icons/home.svg.cjs"),ne=require("./icons/jog-minus.svg.cjs"),ae=require("./icons/jog-plus.svg.cjs"),ie=require("./icons/jogging.svg.cjs"),se=require("./icons/orientation-coord-system.svg.cjs"),ue=require("./icons/orientation-tool.svg.cjs"),ce=require("./icons/robot.svg.cjs"),le=require("./icons/rotation.svg.cjs"),ge=require("./icons/wbLogo.svg.cjs");exports.CollisionSceneRenderer=c.default;exports.PresetEnvironment=l.PresetEnvironment;exports.SafetyZonesRenderer=g.SafetyZonesRenderer;exports.TrajectoryRenderer=d.TrajectoryRenderer;exports.RobotCard=q.RobotCard;exports.defaultAxisConfig=S.defaultAxisConfig;exports.LinearAxis=p.LinearAxis;exports.MANUFACTURER_HOME_CONFIGS=r.MANUFACTURER_HOME_CONFIGS;exports.extractManufacturer=r.extractManufacturer;exports.getDefaultHomeConfig=r.getDefaultHomeConfig;exports.Robot=f.Robot;exports.defaultGetModel=M.defaultGetModel;exports.SupportedLinearAxis=C.SupportedLinearAxis;exports.SupportedRobot=m.SupportedRobot;exports.MotionGroupVisualizer=R.MotionGroupVisualizer;exports.AppHeader=I.AppHeader;exports.CycleTimer=b.CycleTimer;exports.WandelbotsDataGrid=y.WandelbotsDataGrid;exports.JoggingCartesianAxisControl=A.JoggingCartesianAxisControl;exports.JoggingJointValueControl=L.JoggingJointValueControl;exports.JoggingPanel=P.JoggingPanel;exports.JoggingStore=V.JoggingStore;exports.PoseCartesianValues=J.PoseCartesianValues;exports.PoseJointValues=E.PoseJointValues;exports.LoadingCover=n.LoadingCover;exports.LoadingErrorMessage=n.LoadingErrorMessage;exports.LogPanel=x.LogPanel;exports.LogStore=T.LogStore;exports.LogViewer=e.LogViewer;exports.createDebugMessage=e.createDebugMessage;exports.createErrorMessage=e.createErrorMessage;exports.createInfoMessage=e.createInfoMessage;exports.createLogMessage=e.createLogMessage;exports.createWarningMessage=e.createWarningMessage;exports.NoMotionGroupModal=G.NoMotionGroupModal;exports.ProgramControl=a.ProgramControl;exports.ProgramState=a.ProgramState;exports.ProgramStateIndicator=N.ProgramStateIndicator;exports.RobotListItem=O.RobotListItem;exports.RobotSetupReadinessIndicator=i.RobotSetupReadinessIndicator;exports.RobotSetupReadinessState=i.RobotSetupReadinessState;exports.SafetyBar=j.SafetyBar;exports.SelectableFab=v.SelectableFab;exports.TabBar=F.TabBar;exports.Timer=H.Timer;exports.useAnimationFrame=o.useAnimationFrame;exports.useAutorun=o.useAutorun;exports.useMounted=o.useMounted;exports.useReaction=o.useReaction;exports.ValueInterpolator=s.ValueInterpolator;exports.useInterpolation=s.useInterpolation;exports.VelocitySlider=u.VelocitySlider;exports.VelocitySliderLabel=u.VelocitySliderLabel;exports.i18n=h.i18n;exports.ConnectedMotionGroup=B.ConnectedMotionGroup;exports.JoggerConnection=D.JoggerConnection;exports.jointValuesEqual=t.jointValuesEqual;exports.poseEqual=t.poseEqual;exports.tcpMotionEqual=t.tcpMotionEqual;exports.unwrapRotationVector=t.unwrapRotationVector;exports.MotionStreamConnection=w.MotionStreamConnection;exports.createNovaMuiTheme=U.createNovaMuiTheme;exports.ControllerTypePhysicalIcon=W.default;exports.ControllerTypeVirtualIcon=Z.default;exports.OperationModeAutomaticIcon=_.default;exports.OperationModeErrorIcon=z.default;exports.OperationModeManualIcon=X.default;exports.SafetyStateErrorIcon=Y.default;exports.SafetyStateEstopIcon=k.default;exports.SafetyStateManualActionRequiredIcon=$.default;exports.SafetyStateNormalIcon=K.default;exports.SafetyStateStopIcon=Q.default;exports.AxisXIcon=ee.default;exports.AxisYIcon=oe.default;exports.AxisZIcon=te.default;exports.HomeIcon=re.default;exports.JogMinusIcon=ne.default;exports.JogPlusIcon=ae.default;exports.JoggingIcon=ie.default;exports.OrientationCoordSystemIcon=se.default;exports.OrientationToolIcon=ue.default;exports.RobotIcon=ce.default;exports.RotationIcon=le.default;exports.WBLogoIcon=ge.default;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,153 @@
1
+ import { default as r } from "./components/3d-viewport/collider/CollisionSceneRenderer.js";
2
+ import { PresetEnvironment as a } from "./components/3d-viewport/PresetEnvironment.js";
3
+ import { SafetyZonesRenderer as n } from "./components/3d-viewport/SafetyZonesRenderer.js";
4
+ import { TrajectoryRenderer as m } from "./components/3d-viewport/TrajectoryRenderer.js";
5
+ import { RobotCard as i } from "./components/RobotCard.js";
6
+ import { defaultAxisConfig as l } from "./components/robots/AxisConfig.js";
7
+ import { LinearAxis as d } from "./components/robots/LinearAxis.js";
8
+ import { MANUFACTURER_HOME_CONFIGS as g, extractManufacturer as I, getDefaultHomeConfig as S } from "./components/robots/manufacturerHomePositions.js";
9
+ import { Robot as C } from "./components/robots/Robot.js";
10
+ import { defaultGetModel as y } from "./components/robots/robotModelLogic.js";
11
+ import { SupportedLinearAxis as b } from "./components/robots/SupportedLinearAxis.js";
12
+ import { SupportedRobot as L } from "./components/robots/SupportedRobot.js";
13
+ import { MotionGroupVisualizer as J } from "./components/robots/MotionGroupVisualizer.js";
14
+ import { AppHeader as T } from "./components/AppHeader.js";
15
+ import { CycleTimer as G } from "./components/CycleTimer/index.js";
16
+ import { WandelbotsDataGrid as q } from "./components/DataGrid.js";
17
+ import { JoggingCartesianAxisControl as H } from "./components/jogging/JoggingCartesianAxisControl.js";
18
+ import { JoggingJointValueControl as B } from "./components/jogging/JoggingJointValueControl.js";
19
+ import { JoggingPanel as W } from "./components/jogging/JoggingPanel.js";
20
+ import { JoggingStore as j } from "./components/jogging/JoggingStore.js";
21
+ import { PoseCartesianValues as U } from "./components/jogging/PoseCartesianValues.js";
22
+ import { PoseJointValues as _ } from "./components/jogging/PoseJointValues.js";
23
+ import { LoadingCover as X, LoadingErrorMessage as Y } from "./components/LoadingCover.js";
24
+ import { LogPanel as K } from "./components/LogPanel.js";
25
+ import { LogStore as $ } from "./components/LogStore.js";
26
+ import { LogViewer as eo, createDebugMessage as ro, createErrorMessage as to, createInfoMessage as ao, createLogMessage as fo, createWarningMessage as no } from "./components/LogViewer.js";
27
+ import { NoMotionGroupModal as mo } from "./components/modal/NoMotionGroupModal.js";
28
+ import { ProgramControl as io, ProgramState as so } from "./components/ProgramControl.js";
29
+ import { ProgramStateIndicator as uo } from "./components/ProgramStateIndicator.js";
30
+ import { RobotListItem as go } from "./components/RobotListItem.js";
31
+ import { RobotSetupReadinessIndicator as So, RobotSetupReadinessState as Mo } from "./components/RobotSetupReadinessIndicator.js";
32
+ import { SafetyBar as Ro } from "./components/safetyBar/SafetyBar.js";
33
+ import { SelectableFab as Ao } from "./components/SelectableFab.js";
34
+ import { TabBar as Eo } from "./components/TabBar.js";
35
+ import { Timer as Vo } from "./components/Timer/index.js";
36
+ import { useAnimationFrame as Po, useAutorun as To, useMounted as Oo, useReaction as Go } from "./components/utils/hooks.js";
37
+ import { ValueInterpolator as qo, useInterpolation as Fo } from "./components/utils/interpolation.js";
38
+ import { VelocitySlider as vo, VelocitySliderLabel as Bo } from "./components/VelocitySlider.js";
39
+ import { i18n as Wo } from "./i18n/config.js";
40
+ import { ConnectedMotionGroup as jo } from "./lib/ConnectedMotionGroup.js";
41
+ import { JoggerConnection as Uo } from "./lib/JoggerConnection.js";
42
+ import { jointValuesEqual as _o, poseEqual as zo, tcpMotionEqual as Xo, unwrapRotationVector as Yo } from "./lib/motionStateUpdate.js";
43
+ import { MotionStreamConnection as Ko } from "./lib/MotionStreamConnection.js";
44
+ import { createNovaMuiTheme as $o } from "./themes/theming.js";
45
+ import { default as ee } from "./components/safetyBar/icons/controller-type-physical.svg.js";
46
+ import { default as te } from "./components/safetyBar/icons/controller-type-virtual.svg.js";
47
+ import { default as fe } from "./components/safetyBar/icons/operation-mode-automatic.svg.js";
48
+ import { default as pe } from "./components/safetyBar/icons/operation-mode-error.svg.js";
49
+ import { default as xe } from "./components/safetyBar/icons/operation-mode-manual.svg.js";
50
+ import { default as se } from "./components/safetyBar/icons/safety-state-error.svg.js";
51
+ import { default as ue } from "./components/safetyBar/icons/safety-state-estop.svg.js";
52
+ import { default as ce } from "./components/safetyBar/icons/safety-state-manual-action-required.svg.js";
53
+ import { default as Ie } from "./components/safetyBar/icons/safety-state-normal.svg.js";
54
+ import { default as Me } from "./components/safetyBar/icons/safety-state-stop.svg.js";
55
+ import { default as Re } from "./icons/axis-x.svg.js";
56
+ import { default as Ae } from "./icons/axis-y.svg.js";
57
+ import { default as Ee } from "./icons/axis-z.svg.js";
58
+ import { default as Ve } from "./icons/home.svg.js";
59
+ import { default as Pe } from "./icons/jog-minus.svg.js";
60
+ import { default as Oe } from "./icons/jog-plus.svg.js";
61
+ import { default as Ne } from "./icons/jogging.svg.js";
62
+ import { default as Fe } from "./icons/orientation-coord-system.svg.js";
63
+ import { default as ve } from "./icons/orientation-tool.svg.js";
64
+ import { default as De } from "./icons/robot.svg.js";
65
+ import { default as he } from "./icons/rotation.svg.js";
66
+ import { default as we } from "./icons/wbLogo.svg.js";
67
+ export {
68
+ T as AppHeader,
69
+ Re as AxisXIcon,
70
+ Ae as AxisYIcon,
71
+ Ee as AxisZIcon,
72
+ r as CollisionSceneRenderer,
73
+ jo as ConnectedMotionGroup,
74
+ ee as ControllerTypePhysicalIcon,
75
+ te as ControllerTypeVirtualIcon,
76
+ G as CycleTimer,
77
+ Ve as HomeIcon,
78
+ Pe as JogMinusIcon,
79
+ Oe as JogPlusIcon,
80
+ Uo as JoggerConnection,
81
+ H as JoggingCartesianAxisControl,
82
+ Ne as JoggingIcon,
83
+ B as JoggingJointValueControl,
84
+ W as JoggingPanel,
85
+ j as JoggingStore,
86
+ d as LinearAxis,
87
+ X as LoadingCover,
88
+ Y as LoadingErrorMessage,
89
+ K as LogPanel,
90
+ $ as LogStore,
91
+ eo as LogViewer,
92
+ g as MANUFACTURER_HOME_CONFIGS,
93
+ J as MotionGroupVisualizer,
94
+ Ko as MotionStreamConnection,
95
+ mo as NoMotionGroupModal,
96
+ fe as OperationModeAutomaticIcon,
97
+ pe as OperationModeErrorIcon,
98
+ xe as OperationModeManualIcon,
99
+ Fe as OrientationCoordSystemIcon,
100
+ ve as OrientationToolIcon,
101
+ U as PoseCartesianValues,
102
+ _ as PoseJointValues,
103
+ a as PresetEnvironment,
104
+ io as ProgramControl,
105
+ so as ProgramState,
106
+ uo as ProgramStateIndicator,
107
+ C as Robot,
108
+ i as RobotCard,
109
+ De as RobotIcon,
110
+ go as RobotListItem,
111
+ So as RobotSetupReadinessIndicator,
112
+ Mo as RobotSetupReadinessState,
113
+ he as RotationIcon,
114
+ Ro as SafetyBar,
115
+ se as SafetyStateErrorIcon,
116
+ ue as SafetyStateEstopIcon,
117
+ ce as SafetyStateManualActionRequiredIcon,
118
+ Ie as SafetyStateNormalIcon,
119
+ Me as SafetyStateStopIcon,
120
+ n as SafetyZonesRenderer,
121
+ Ao as SelectableFab,
122
+ b as SupportedLinearAxis,
123
+ L as SupportedRobot,
124
+ Eo as TabBar,
125
+ Vo as Timer,
126
+ m as TrajectoryRenderer,
127
+ qo as ValueInterpolator,
128
+ vo as VelocitySlider,
129
+ Bo as VelocitySliderLabel,
130
+ we as WBLogoIcon,
131
+ q as WandelbotsDataGrid,
132
+ ro as createDebugMessage,
133
+ to as createErrorMessage,
134
+ ao as createInfoMessage,
135
+ fo as createLogMessage,
136
+ $o as createNovaMuiTheme,
137
+ no as createWarningMessage,
138
+ l as defaultAxisConfig,
139
+ y as defaultGetModel,
140
+ I as extractManufacturer,
141
+ S as getDefaultHomeConfig,
142
+ Wo as i18n,
143
+ _o as jointValuesEqual,
144
+ zo as poseEqual,
145
+ Xo as tcpMotionEqual,
146
+ Yo as unwrapRotationVector,
147
+ Po as useAnimationFrame,
148
+ To as useAutorun,
149
+ Fo as useInterpolation,
150
+ Oo as useMounted,
151
+ Go as useReaction
152
+ };
153
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,4 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const S=require("@wandelbots/nova-js"),a=require("mobx"),w=require("three"),A=require("./motionStateUpdate.cjs");function I(h){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(h){for(const o in h)if(o!=="default"){const n=Object.getOwnPropertyDescriptor(h,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:()=>h[o]})}}return t.default=h,Object.freeze(t)}const y=I(w),b=1e-4,R={a:0,d:0,alpha:0,theta:0,reverse_rotation_direction:!1};class p{constructor(t,o,n,r,e,s,l,g,c,_){this.nova=t,this.controller=o,this.motionGroup=n,this.initialMotionState=r,this.motionStateSocket=e,this.isVirtual=s,this.tcps=l,this.description=g,this.initialControllerState=c,this.controllerStateSocket=_,this.connectedJoggingSocket=null,this.joggingVelocity=10,this.activationState="inactive",this.rapidlyChangingMotionState=r,this.controllerState=c,_.addEventListener("message",d=>{var u;const i=(u=S.tryParseJson(d.data))==null?void 0:u.result;i&&a.runInAction(()=>{this.controllerState=i})}),e.addEventListener("message",d=>{var u;const i=(u=S.tryParseJson(d.data))==null?void 0:u.result;if(!i)throw new Error(`Failed to get motion state for ${this.motionGroupId}: ${d.data}`);A.jointValuesEqual(this.rapidlyChangingMotionState.joint_position,i.joint_position,b)||a.runInAction(()=>{this.rapidlyChangingMotionState.joint_position=i.joint_position}),A.tcpMotionEqual(this.rapidlyChangingMotionState,i,b)||a.runInAction(()=>{this.rapidlyChangingMotionState.tcp_pose=i.tcp_pose}),this.rapidlyChangingMotionState.standstill!==i.standstill&&a.runInAction(()=>{this.rapidlyChangingMotionState.standstill=i.standstill})}),a.makeAutoObservable(this)}static async connectMultiple(t,o){return Promise.all(o.map(n=>p.connect(t,n)))}static async connect(t,o){var O,T;const[n,r]=o.split("@"),e=await t.api.controller.getCurrentRobotControllerState(r),s=e==null?void 0:e.motion_groups.find(M=>M.motion_group===o);if(!e||!s)throw new Error(`Controller ${r} or motion group ${o} not found`);const l=t.openReconnectingWebsocket(`/controllers/${r}/motion-groups/${o}/state-stream`),g=await l.firstMessage(),c=(O=S.tryParseJson(g.data))==null?void 0:O.result;if(!c)throw new Error(`Unable to parse initial motion state message ${g.data}`);console.log(`Connected motion state websocket to motion group ${s.motion_group}. Initial state:
2
+ `,c);const d=(await t.api.controller.getRobotController(e.controller)).configuration.kind==="VirtualController",i=await t.api.motionGroup.getMotionGroupDescription(r,s.motion_group),u=Object.entries(i.tcps||{}).map(([M,E])=>({id:M,readable_name:E.name,position:E.pose.position,orientation:E.pose.orientation})),f=t.openReconnectingWebsocket(`/controllers/${e.controller}/state-stream?response_rate=1000`),v=await f.firstMessage(),m=(T=S.tryParseJson(v.data))==null?void 0:T.result;if(!m)throw new Error(`Unable to parse initial controller state message ${v.data}`);return console.log(`Connected controller state websocket to controller ${e.controller}. Initial state:
3
+ `,m),new p(t,e,s,c,l,d,u,i,m,f)}get motionGroupId(){return this.motionGroup.motion_group}get controllerId(){return this.controller.controller}get modelFromController(){return this.description.motion_group_model}get joggingVelocityRads(){return this.joggingVelocity*Math.PI/180}get joints(){return this.initialMotionState.joint_position.map((t,o)=>({index:o}))}get dhParameters(){if(this.description.dh_parameters!==void 0)return this.description.dh_parameters.map(t=>({...R,...t}))}get safetyZones(){return this.description.safety_zones}get mountingPosition(){var t,o,n;return this.description.mounting?[(((t=this.description.mounting.position)==null?void 0:t[0])||0)/1e3,(((o=this.description.mounting.position)==null?void 0:o[1])||0)/1e3,(((n=this.description.mounting.position)==null?void 0:n[2])||0)/1e3]:[0,0,0]}get mountingQuaternion(){var r,e,s,l,g,c;const t=new y.Vector3(((e=(r=this.description.mounting)==null?void 0:r.orientation)==null?void 0:e[0])||0,((l=(s=this.description.mounting)==null?void 0:s.orientation)==null?void 0:l[1])||0,((c=(g=this.description.mounting)==null?void 0:g.orientation)==null?void 0:c[2])||0),o=t.length(),n=t.normalize();return new y.Quaternion().setFromAxisAngle(n,o)}get isEstopActive(){return["SAFETY_STATE_ROBOT_EMERGENCY_STOP","SAFETY_STATE_DEVICE_EMERGENCY_STOP"].includes(this.controllerState.safety_state)}get isMoveableSafetyState(){return["SAFETY_STATE_NORMAL","SAFETY_STATE_REDUCED"].includes(this.controllerState.safety_state)}get isMoveableOperationMode(){return["OPERATION_MODE_AUTO","OPERATION_MODE_MANUAL","OPERATION_MODE_MANUAL_T1","OPERATION_MODE_MANUAL_T2"].includes(this.controllerState.operation_mode)}get canBeMoved(){return this.isMoveableSafetyState&&this.isMoveableOperationMode&&this.activationState==="active"}async deactivate(){if(this.activationState!=="active"){console.error("Tried to deactivate while already deactivating");return}a.runInAction(()=>{this.activationState="deactivating"});try{await this.nova.api.controller.setDefaultMode(this.controllerId,"ROBOT_SYSTEM_MODE_MONITOR"),a.runInAction(()=>{this.activationState="inactive"})}catch(t){throw a.runInAction(()=>{this.activationState="active"}),t}}async activate(){if(this.activationState!=="inactive"){console.error("Tried to activate while already activating");return}a.runInAction(()=>{this.activationState="activating"});try{await this.nova.api.controller.setDefaultMode(this.controllerId,"ROBOT_SYSTEM_MODE_CONTROL"),a.runInAction(()=>{this.activationState="active"})}catch(t){throw a.runInAction(()=>{this.activationState="inactive"}),t}}toggleActivation(){this.activationState==="inactive"?this.activate():this.activationState==="active"&&this.deactivate()}dispose(){this.motionStateSocket.close(),this.connectedJoggingSocket&&this.connectedJoggingSocket.close()}setJoggingVelocity(t){this.joggingVelocity=t}}exports.ConnectedMotionGroup=p;exports.default=p;
4
+ //# sourceMappingURL=ConnectedMotionGroup.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectedMotionGroup.cjs","sources":["../../src/lib/ConnectedMotionGroup.ts"],"sourcesContent":["import {\n tryParseJson,\n type AutoReconnectingWebsocket,\n} from \"@wandelbots/nova-js\"\nimport type {\n DHParameter,\n MotionGroupDescription,\n MotionGroupState,\n NovaClient,\n OperationMode,\n RobotControllerState,\n SafetyStateType,\n} from \"@wandelbots/nova-js/v2\"\nimport { makeAutoObservable, runInAction } from \"mobx\"\nimport * as THREE from \"three\"\nimport type { Vector3Simple } from \"./JoggerConnection\"\nimport { jointValuesEqual, tcpMotionEqual } from \"./motionStateUpdate\"\n\nconst MOTION_DELTA_THRESHOLD = 0.0001\n\nexport type RobotTcpLike = {\n id: string\n readable_name: string\n position: Vector3Simple\n orientation: Vector3Simple\n}\n\nexport type MotionGroupOption = {\n selectionId: string\n}\n\nconst EMPTY_DH_PARAMETER: DHParameter = {\n a: 0,\n d: 0,\n alpha: 0,\n theta: 0,\n reverse_rotation_direction: false,\n}\n\n/**\n * Store representing the current state of a connected motion group.\n * API v2 version, not used yet in the components.\n */\nexport class ConnectedMotionGroup {\n static async connectMultiple(nova: NovaClient, motionGroupIds: string[]) {\n return Promise.all(\n motionGroupIds.map((motionGroupId) =>\n ConnectedMotionGroup.connect(nova, motionGroupId),\n ),\n )\n }\n\n static async connect(nova: NovaClient, motionGroupId: string) {\n const [_motionGroupIndex, controllerId] = motionGroupId.split(\"@\") as [\n string,\n string,\n ]\n\n const controller =\n await nova.api.controller.getCurrentRobotControllerState(controllerId)\n const motionGroup = controller?.motion_groups.find(\n (mg) => mg.motion_group === motionGroupId,\n )\n if (!controller || !motionGroup) {\n throw new Error(\n `Controller ${controllerId} or motion group ${motionGroupId} not found`,\n )\n }\n\n const motionStateSocket = nova.openReconnectingWebsocket(\n `/controllers/${controllerId}/motion-groups/${motionGroupId}/state-stream`,\n )\n\n // Wait for the first message to get the initial state\n const firstMessage = await motionStateSocket.firstMessage()\n const initialMotionState = tryParseJson(firstMessage.data)\n ?.result as MotionGroupState\n\n if (!initialMotionState) {\n throw new Error(\n `Unable to parse initial motion state message ${firstMessage.data}`,\n )\n }\n\n console.log(\n `Connected motion state websocket to motion group ${motionGroup.motion_group}. Initial state:\\n `,\n initialMotionState,\n )\n\n // Check if robot is virtual or physical\n const config = await nova.api.controller.getRobotController(\n controller.controller,\n )\n const isVirtual = config.configuration.kind === \"VirtualController\"\n\n // If there's a configured mounting, we need it to show the right\n // position of the robot model\n const description = await nova.api.motionGroup.getMotionGroupDescription(\n controllerId,\n motionGroup.motion_group,\n )\n\n // Find out what TCPs this motion group has (we need it for jogging)\n // There are converted into a RobotTcpLike for easier use in the UI\n const tcps: RobotTcpLike[] = Object.entries(description.tcps || {}).map(\n ([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\n // Open the websocket to monitor controller state for e.g. e-stop\n const controllerStateSocket = nova.openReconnectingWebsocket(\n `/controllers/${controller.controller}/state-stream?response_rate=1000`,\n )\n\n // Wait for the first message to get the initial state\n const firstControllerMessage = await controllerStateSocket.firstMessage()\n const initialControllerState = tryParseJson(firstControllerMessage.data)\n ?.result as RobotControllerState\n\n if (!initialControllerState) {\n throw new Error(\n `Unable to parse initial controller state message ${firstControllerMessage.data}`,\n )\n }\n\n console.log(\n `Connected controller state websocket to controller ${controller.controller}. Initial state:\\n `,\n initialControllerState,\n )\n\n return new ConnectedMotionGroup(\n nova,\n controller,\n motionGroup,\n initialMotionState,\n motionStateSocket,\n isVirtual,\n tcps,\n description,\n initialControllerState,\n controllerStateSocket,\n )\n }\n\n connectedJoggingSocket: WebSocket | null = null\n // biome-ignore lint/suspicious/noExplicitAny: legacy code\n planData: any | null // tmp\n joggingVelocity: number = 10\n\n // Not mobx-observable as this changes very fast; should be observed\n // using animation frames\n rapidlyChangingMotionState: MotionGroupState\n\n // Response rate on the websocket should be a bit slower on this one since\n // we don't use the motion data\n controllerState: RobotControllerState\n\n /**\n * Reflects activation state of the motion group / robot servos. The\n * movement controls in the UI should only be enabled in the \"active\" state\n */\n activationState: \"inactive\" | \"activating\" | \"deactivating\" | \"active\" =\n \"inactive\"\n\n constructor(\n readonly nova: NovaClient,\n readonly controller: RobotControllerState,\n readonly motionGroup: MotionGroupState,\n readonly initialMotionState: MotionGroupState,\n readonly motionStateSocket: AutoReconnectingWebsocket,\n readonly isVirtual: boolean,\n readonly tcps: RobotTcpLike[],\n readonly description: MotionGroupDescription,\n readonly initialControllerState: RobotControllerState,\n readonly controllerStateSocket: AutoReconnectingWebsocket,\n ) {\n this.rapidlyChangingMotionState = initialMotionState\n this.controllerState = initialControllerState\n\n // Track controller state updates (e.g. safety state and operation mode)\n controllerStateSocket.addEventListener(\"message\", (event) => {\n const data = tryParseJson(event.data)?.result\n\n if (!data) {\n return\n }\n\n runInAction(() => {\n this.controllerState = data\n })\n })\n\n motionStateSocket.addEventListener(\"message\", (event) => {\n const latestMotionState = tryParseJson(event.data)?.result as\n | MotionGroupState\n | undefined\n\n if (!latestMotionState) {\n throw new Error(\n `Failed to get motion state for ${this.motionGroupId}: ${event.data}`,\n )\n }\n\n // handle joint position changes\n if (\n !jointValuesEqual(\n this.rapidlyChangingMotionState.joint_position,\n latestMotionState.joint_position,\n MOTION_DELTA_THRESHOLD,\n )\n ) {\n runInAction(() => {\n this.rapidlyChangingMotionState.joint_position =\n latestMotionState.joint_position\n })\n }\n\n // handle tcp pose changes\n if (\n !tcpMotionEqual(\n this.rapidlyChangingMotionState,\n latestMotionState,\n MOTION_DELTA_THRESHOLD,\n )\n ) {\n runInAction(() => {\n this.rapidlyChangingMotionState.tcp_pose = latestMotionState.tcp_pose\n })\n }\n\n // handle standstill changes\n if (\n this.rapidlyChangingMotionState.standstill !==\n latestMotionState.standstill\n ) {\n runInAction(() => {\n this.rapidlyChangingMotionState.standstill =\n latestMotionState.standstill\n })\n }\n })\n makeAutoObservable(this)\n }\n\n get motionGroupId() {\n return this.motionGroup.motion_group\n }\n\n get controllerId() {\n return this.controller.controller\n }\n\n get modelFromController() {\n return this.description.motion_group_model\n }\n\n /** Jogging velocity in radians for rotation and joint movement */\n get joggingVelocityRads() {\n return (this.joggingVelocity * Math.PI) / 180\n }\n\n get joints() {\n return this.initialMotionState.joint_position.map((_, i) => {\n return {\n index: i,\n }\n })\n }\n\n // Please note that API v2 omits 0 values\n get dhParameters() {\n if (this.description.dh_parameters === undefined) {\n return undefined\n }\n\n return this.description.dh_parameters.map((dh_param) => ({\n ...EMPTY_DH_PARAMETER,\n ...dh_param,\n }))\n }\n\n get safetyZones() {\n return this.description.safety_zones\n }\n\n /** Gets the robot mounting position offset in 3D viz coordinates */\n get mountingPosition(): [number, number, number] {\n if (!this.description.mounting) {\n return [0, 0, 0]\n }\n\n return [\n (this.description.mounting.position?.[0] || 0) / 1000,\n (this.description.mounting.position?.[1] || 0) / 1000,\n (this.description.mounting.position?.[2] || 0) / 1000,\n ]\n }\n\n /** Gets the robot mounting position rotation in 3D viz coordinates */\n get mountingQuaternion() {\n const rotationVector = new THREE.Vector3(\n this.description.mounting?.orientation?.[0] || 0,\n this.description.mounting?.orientation?.[1] || 0,\n this.description.mounting?.orientation?.[2] || 0,\n )\n\n const magnitude = rotationVector.length()\n const axis = rotationVector.normalize()\n\n return new THREE.Quaternion().setFromAxisAngle(axis, magnitude)\n }\n\n /**\n * Whether the controller is currently in a safety state\n * corresponding to an emergency stop\n */\n get isEstopActive() {\n const estopStates: SafetyStateType[] = [\n \"SAFETY_STATE_ROBOT_EMERGENCY_STOP\",\n \"SAFETY_STATE_DEVICE_EMERGENCY_STOP\",\n ]\n\n return estopStates.includes(this.controllerState.safety_state)\n }\n\n /**\n * Whether the controller is in a safety state\n * that may be non-functional for robot pad purposes\n */\n get isMoveableSafetyState() {\n const goodSafetyStates: SafetyStateType[] = [\n \"SAFETY_STATE_NORMAL\",\n \"SAFETY_STATE_REDUCED\",\n ]\n\n return goodSafetyStates.includes(this.controllerState.safety_state)\n }\n\n /**\n * Whether the controller is in an operation mode that allows movement\n */\n get isMoveableOperationMode() {\n const goodOperationModes: OperationMode[] = [\n \"OPERATION_MODE_AUTO\",\n \"OPERATION_MODE_MANUAL\",\n \"OPERATION_MODE_MANUAL_T1\",\n \"OPERATION_MODE_MANUAL_T2\",\n ]\n\n return goodOperationModes.includes(this.controllerState.operation_mode)\n }\n\n /**\n * Whether the robot is currently active and can be moved, based on the\n * safety state, operation mode and servo toggle activation state.\n */\n get canBeMoved() {\n return (\n this.isMoveableSafetyState &&\n this.isMoveableOperationMode &&\n this.activationState === \"active\"\n )\n }\n\n async deactivate() {\n if (this.activationState !== \"active\") {\n console.error(\"Tried to deactivate while already deactivating\")\n return\n }\n\n runInAction(() => {\n this.activationState = \"deactivating\"\n })\n\n try {\n await this.nova.api.controller.setDefaultMode(\n this.controllerId,\n \"ROBOT_SYSTEM_MODE_MONITOR\",\n )\n\n runInAction(() => {\n this.activationState = \"inactive\"\n })\n } catch (err) {\n runInAction(() => {\n this.activationState = \"active\"\n })\n throw err\n }\n }\n\n async activate() {\n if (this.activationState !== \"inactive\") {\n console.error(\"Tried to activate while already activating\")\n return\n }\n\n runInAction(() => {\n this.activationState = \"activating\"\n })\n\n try {\n await this.nova.api.controller.setDefaultMode(\n this.controllerId,\n \"ROBOT_SYSTEM_MODE_CONTROL\",\n )\n\n runInAction(() => {\n this.activationState = \"active\"\n })\n } catch (err) {\n runInAction(() => {\n this.activationState = \"inactive\"\n })\n throw err\n }\n }\n\n toggleActivation() {\n if (this.activationState === \"inactive\") {\n this.activate()\n } else if (this.activationState === \"active\") {\n this.deactivate()\n }\n }\n\n dispose() {\n this.motionStateSocket.close()\n if (this.connectedJoggingSocket) this.connectedJoggingSocket.close()\n }\n\n setJoggingVelocity(velocity: number) {\n this.joggingVelocity = velocity\n }\n}\n\nexport default ConnectedMotionGroup\n"],"names":["MOTION_DELTA_THRESHOLD","EMPTY_DH_PARAMETER","ConnectedMotionGroup","nova","controller","motionGroup","initialMotionState","motionStateSocket","isVirtual","tcps","description","initialControllerState","controllerStateSocket","event","data","tryParseJson","runInAction","latestMotionState","jointValuesEqual","tcpMotionEqual","makeAutoObservable","motionGroupIds","motionGroupId","_motionGroupIndex","controllerId","mg","firstMessage","id","tcp","firstControllerMessage","_","i","dh_param","_a","_b","_c","rotationVector","THREE","_d","_f","_e","magnitude","axis","err","velocity"],"mappings":"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"}
@@ -87,4 +87,5 @@ export declare class ConnectedMotionGroup {
87
87
  dispose(): void;
88
88
  setJoggingVelocity(velocity: number): void;
89
89
  }
90
+ export default ConnectedMotionGroup;
90
91
  //# sourceMappingURL=ConnectedMotionGroup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectedMotionGroup.d.ts","sourceRoot":"","sources":["../../src/lib/ConnectedMotionGroup.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAEV,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EAEV,oBAAoB,EAErB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAKvD,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,aAAa,CAAA;IACvB,WAAW,EAAE,aAAa,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAUD;;;GAGG;AACH,qBAAa,oBAAoB;IA8H7B,QAAQ,CAAC,IAAI,EAAE,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,oBAAoB;IACzC,QAAQ,CAAC,WAAW,EAAE,gBAAgB;IACtC,QAAQ,CAAC,kBAAkB,EAAE,gBAAgB;IAC7C,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE;IAC7B,QAAQ,CAAC,WAAW,EAAE,sBAAsB;IAC5C,QAAQ,CAAC,sBAAsB,EAAE,oBAAoB;IACrD,QAAQ,CAAC,qBAAqB,EAAE,yBAAyB;WAtI9C,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE;WAQ1D,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM;IAgG5D,sBAAsB,EAAE,SAAS,GAAG,IAAI,CAAO;IAE/C,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAA;IACpB,eAAe,EAAE,MAAM,CAAK;IAI5B,0BAA0B,EAAE,gBAAgB,CAAA;IAI5C,eAAe,EAAE,oBAAoB,CAAA;IAErC;;;OAGG;IACH,eAAe,EAAE,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ,CAC1D;gBAGD,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,gBAAgB,EAC7B,kBAAkB,EAAE,gBAAgB,EACpC,iBAAiB,EAAE,yBAAyB,EAC5C,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,YAAY,EAAE,EACpB,WAAW,EAAE,sBAAsB,EACnC,sBAAsB,EAAE,oBAAoB,EAC5C,qBAAqB,EAAE,yBAAyB;IAsE3D,IAAI,aAAa,WAEhB;IAED,IAAI,YAAY,WAEf;IAED,IAAI,mBAAmB,WAEtB;IAED,kEAAkE;IAClE,IAAI,mBAAmB,WAEtB;IAED,IAAI,MAAM;;QAMT;IAGD,IAAI,YAAY;;;;;;;oBASf;IAED,IAAI,WAAW;;kBAEd;IAED,oEAAoE;IACpE,IAAI,gBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAU/C;IAED,sEAAsE;IACtE,IAAI,kBAAkB,qBAWrB;IAED;;;OAGG;IACH,IAAI,aAAa,YAOhB;IAED;;;OAGG;IACH,IAAI,qBAAqB,YAOxB;IAED;;OAEG;IACH,IAAI,uBAAuB,YAS1B;IAED;;;OAGG;IACH,IAAI,UAAU,YAMb;IAEK,UAAU;IA2BV,QAAQ;IA2Bd,gBAAgB;IAQhB,OAAO;IAKP,kBAAkB,CAAC,QAAQ,EAAE,MAAM;CAGpC"}
1
+ {"version":3,"file":"ConnectedMotionGroup.d.ts","sourceRoot":"","sources":["../../src/lib/ConnectedMotionGroup.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAEV,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EAEV,oBAAoB,EAErB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAKvD,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,aAAa,CAAA;IACvB,WAAW,EAAE,aAAa,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAUD;;;GAGG;AACH,qBAAa,oBAAoB;IA8H7B,QAAQ,CAAC,IAAI,EAAE,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,oBAAoB;IACzC,QAAQ,CAAC,WAAW,EAAE,gBAAgB;IACtC,QAAQ,CAAC,kBAAkB,EAAE,gBAAgB;IAC7C,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE;IAC7B,QAAQ,CAAC,WAAW,EAAE,sBAAsB;IAC5C,QAAQ,CAAC,sBAAsB,EAAE,oBAAoB;IACrD,QAAQ,CAAC,qBAAqB,EAAE,yBAAyB;WAtI9C,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE;WAQ1D,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM;IAgG5D,sBAAsB,EAAE,SAAS,GAAG,IAAI,CAAO;IAE/C,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAA;IACpB,eAAe,EAAE,MAAM,CAAK;IAI5B,0BAA0B,EAAE,gBAAgB,CAAA;IAI5C,eAAe,EAAE,oBAAoB,CAAA;IAErC;;;OAGG;IACH,eAAe,EAAE,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ,CAC1D;gBAGD,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,gBAAgB,EAC7B,kBAAkB,EAAE,gBAAgB,EACpC,iBAAiB,EAAE,yBAAyB,EAC5C,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,YAAY,EAAE,EACpB,WAAW,EAAE,sBAAsB,EACnC,sBAAsB,EAAE,oBAAoB,EAC5C,qBAAqB,EAAE,yBAAyB;IAsE3D,IAAI,aAAa,WAEhB;IAED,IAAI,YAAY,WAEf;IAED,IAAI,mBAAmB,WAEtB;IAED,kEAAkE;IAClE,IAAI,mBAAmB,WAEtB;IAED,IAAI,MAAM;;QAMT;IAGD,IAAI,YAAY;;;;;;;oBASf;IAED,IAAI,WAAW;;kBAEd;IAED,oEAAoE;IACpE,IAAI,gBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAU/C;IAED,sEAAsE;IACtE,IAAI,kBAAkB,qBAWrB;IAED;;;OAGG;IACH,IAAI,aAAa,YAOhB;IAED;;;OAGG;IACH,IAAI,qBAAqB,YAOxB;IAED;;OAEG;IACH,IAAI,uBAAuB,YAS1B;IAED;;;OAGG;IACH,IAAI,UAAU,YAMb;IAEK,UAAU;IA2BV,QAAQ;IA2Bd,gBAAgB;IAQhB,OAAO;IAKP,kBAAkB,CAAC,QAAQ,EAAE,MAAM;CAGpC;AAED,eAAe,oBAAoB,CAAA"}
@@ -0,0 +1,250 @@
1
+ import { tryParseJson as p } from "@wandelbots/nova-js";
2
+ import { runInAction as a, makeAutoObservable as A } from "mobx";
3
+ import * as T from "three";
4
+ import { jointValuesEqual as w, tcpMotionEqual as R } from "./motionStateUpdate.js";
5
+ const y = 1e-4, C = {
6
+ a: 0,
7
+ d: 0,
8
+ alpha: 0,
9
+ theta: 0,
10
+ reverse_rotation_direction: !1
11
+ };
12
+ class E {
13
+ constructor(t, o, s, n, i, r, l, g, c, u) {
14
+ this.nova = t, this.controller = o, this.motionGroup = s, this.initialMotionState = n, this.motionStateSocket = i, this.isVirtual = r, this.tcps = l, this.description = g, this.initialControllerState = c, this.controllerStateSocket = u, this.connectedJoggingSocket = null, this.joggingVelocity = 10, this.activationState = "inactive", this.rapidlyChangingMotionState = n, this.controllerState = c, u.addEventListener("message", (d) => {
15
+ var h;
16
+ const e = (h = p(d.data)) == null ? void 0 : h.result;
17
+ e && a(() => {
18
+ this.controllerState = e;
19
+ });
20
+ }), i.addEventListener("message", (d) => {
21
+ var h;
22
+ const e = (h = p(d.data)) == null ? void 0 : h.result;
23
+ if (!e)
24
+ throw new Error(
25
+ `Failed to get motion state for ${this.motionGroupId}: ${d.data}`
26
+ );
27
+ w(
28
+ this.rapidlyChangingMotionState.joint_position,
29
+ e.joint_position,
30
+ y
31
+ ) || a(() => {
32
+ this.rapidlyChangingMotionState.joint_position = e.joint_position;
33
+ }), R(
34
+ this.rapidlyChangingMotionState,
35
+ e,
36
+ y
37
+ ) || a(() => {
38
+ this.rapidlyChangingMotionState.tcp_pose = e.tcp_pose;
39
+ }), this.rapidlyChangingMotionState.standstill !== e.standstill && a(() => {
40
+ this.rapidlyChangingMotionState.standstill = e.standstill;
41
+ });
42
+ }), A(this);
43
+ }
44
+ static async connectMultiple(t, o) {
45
+ return Promise.all(
46
+ o.map(
47
+ (s) => E.connect(t, s)
48
+ )
49
+ );
50
+ }
51
+ static async connect(t, o) {
52
+ var f, O;
53
+ const [s, n] = o.split("@"), i = await t.api.controller.getCurrentRobotControllerState(n), r = i == null ? void 0 : i.motion_groups.find(
54
+ (m) => m.motion_group === o
55
+ );
56
+ if (!i || !r)
57
+ throw new Error(
58
+ `Controller ${n} or motion group ${o} not found`
59
+ );
60
+ const l = t.openReconnectingWebsocket(
61
+ `/controllers/${n}/motion-groups/${o}/state-stream`
62
+ ), g = await l.firstMessage(), c = (f = p(g.data)) == null ? void 0 : f.result;
63
+ if (!c)
64
+ throw new Error(
65
+ `Unable to parse initial motion state message ${g.data}`
66
+ );
67
+ console.log(
68
+ `Connected motion state websocket to motion group ${r.motion_group}. Initial state:
69
+ `,
70
+ c
71
+ );
72
+ const d = (await t.api.controller.getRobotController(
73
+ i.controller
74
+ )).configuration.kind === "VirtualController", e = await t.api.motionGroup.getMotionGroupDescription(
75
+ n,
76
+ r.motion_group
77
+ ), h = Object.entries(e.tcps || {}).map(
78
+ ([m, _]) => ({
79
+ id: m,
80
+ readable_name: _.name,
81
+ position: _.pose.position,
82
+ orientation: _.pose.orientation
83
+ })
84
+ ), M = t.openReconnectingWebsocket(
85
+ `/controllers/${i.controller}/state-stream?response_rate=1000`
86
+ ), v = await M.firstMessage(), S = (O = p(v.data)) == null ? void 0 : O.result;
87
+ if (!S)
88
+ throw new Error(
89
+ `Unable to parse initial controller state message ${v.data}`
90
+ );
91
+ return console.log(
92
+ `Connected controller state websocket to controller ${i.controller}. Initial state:
93
+ `,
94
+ S
95
+ ), new E(
96
+ t,
97
+ i,
98
+ r,
99
+ c,
100
+ l,
101
+ d,
102
+ h,
103
+ e,
104
+ S,
105
+ M
106
+ );
107
+ }
108
+ get motionGroupId() {
109
+ return this.motionGroup.motion_group;
110
+ }
111
+ get controllerId() {
112
+ return this.controller.controller;
113
+ }
114
+ get modelFromController() {
115
+ return this.description.motion_group_model;
116
+ }
117
+ /** Jogging velocity in radians for rotation and joint movement */
118
+ get joggingVelocityRads() {
119
+ return this.joggingVelocity * Math.PI / 180;
120
+ }
121
+ get joints() {
122
+ return this.initialMotionState.joint_position.map((t, o) => ({
123
+ index: o
124
+ }));
125
+ }
126
+ // Please note that API v2 omits 0 values
127
+ get dhParameters() {
128
+ if (this.description.dh_parameters !== void 0)
129
+ return this.description.dh_parameters.map((t) => ({
130
+ ...C,
131
+ ...t
132
+ }));
133
+ }
134
+ get safetyZones() {
135
+ return this.description.safety_zones;
136
+ }
137
+ /** Gets the robot mounting position offset in 3D viz coordinates */
138
+ get mountingPosition() {
139
+ var t, o, s;
140
+ return this.description.mounting ? [
141
+ (((t = this.description.mounting.position) == null ? void 0 : t[0]) || 0) / 1e3,
142
+ (((o = this.description.mounting.position) == null ? void 0 : o[1]) || 0) / 1e3,
143
+ (((s = this.description.mounting.position) == null ? void 0 : s[2]) || 0) / 1e3
144
+ ] : [0, 0, 0];
145
+ }
146
+ /** Gets the robot mounting position rotation in 3D viz coordinates */
147
+ get mountingQuaternion() {
148
+ var n, i, r, l, g, c;
149
+ const t = new T.Vector3(
150
+ ((i = (n = this.description.mounting) == null ? void 0 : n.orientation) == null ? void 0 : i[0]) || 0,
151
+ ((l = (r = this.description.mounting) == null ? void 0 : r.orientation) == null ? void 0 : l[1]) || 0,
152
+ ((c = (g = this.description.mounting) == null ? void 0 : g.orientation) == null ? void 0 : c[2]) || 0
153
+ ), o = t.length(), s = t.normalize();
154
+ return new T.Quaternion().setFromAxisAngle(s, o);
155
+ }
156
+ /**
157
+ * Whether the controller is currently in a safety state
158
+ * corresponding to an emergency stop
159
+ */
160
+ get isEstopActive() {
161
+ return [
162
+ "SAFETY_STATE_ROBOT_EMERGENCY_STOP",
163
+ "SAFETY_STATE_DEVICE_EMERGENCY_STOP"
164
+ ].includes(this.controllerState.safety_state);
165
+ }
166
+ /**
167
+ * Whether the controller is in a safety state
168
+ * that may be non-functional for robot pad purposes
169
+ */
170
+ get isMoveableSafetyState() {
171
+ return [
172
+ "SAFETY_STATE_NORMAL",
173
+ "SAFETY_STATE_REDUCED"
174
+ ].includes(this.controllerState.safety_state);
175
+ }
176
+ /**
177
+ * Whether the controller is in an operation mode that allows movement
178
+ */
179
+ get isMoveableOperationMode() {
180
+ return [
181
+ "OPERATION_MODE_AUTO",
182
+ "OPERATION_MODE_MANUAL",
183
+ "OPERATION_MODE_MANUAL_T1",
184
+ "OPERATION_MODE_MANUAL_T2"
185
+ ].includes(this.controllerState.operation_mode);
186
+ }
187
+ /**
188
+ * Whether the robot is currently active and can be moved, based on the
189
+ * safety state, operation mode and servo toggle activation state.
190
+ */
191
+ get canBeMoved() {
192
+ return this.isMoveableSafetyState && this.isMoveableOperationMode && this.activationState === "active";
193
+ }
194
+ async deactivate() {
195
+ if (this.activationState !== "active") {
196
+ console.error("Tried to deactivate while already deactivating");
197
+ return;
198
+ }
199
+ a(() => {
200
+ this.activationState = "deactivating";
201
+ });
202
+ try {
203
+ await this.nova.api.controller.setDefaultMode(
204
+ this.controllerId,
205
+ "ROBOT_SYSTEM_MODE_MONITOR"
206
+ ), a(() => {
207
+ this.activationState = "inactive";
208
+ });
209
+ } catch (t) {
210
+ throw a(() => {
211
+ this.activationState = "active";
212
+ }), t;
213
+ }
214
+ }
215
+ async activate() {
216
+ if (this.activationState !== "inactive") {
217
+ console.error("Tried to activate while already activating");
218
+ return;
219
+ }
220
+ a(() => {
221
+ this.activationState = "activating";
222
+ });
223
+ try {
224
+ await this.nova.api.controller.setDefaultMode(
225
+ this.controllerId,
226
+ "ROBOT_SYSTEM_MODE_CONTROL"
227
+ ), a(() => {
228
+ this.activationState = "active";
229
+ });
230
+ } catch (t) {
231
+ throw a(() => {
232
+ this.activationState = "inactive";
233
+ }), t;
234
+ }
235
+ }
236
+ toggleActivation() {
237
+ this.activationState === "inactive" ? this.activate() : this.activationState === "active" && this.deactivate();
238
+ }
239
+ dispose() {
240
+ this.motionStateSocket.close(), this.connectedJoggingSocket && this.connectedJoggingSocket.close();
241
+ }
242
+ setJoggingVelocity(t) {
243
+ this.joggingVelocity = t;
244
+ }
245
+ }
246
+ export {
247
+ E as ConnectedMotionGroup,
248
+ E as default
249
+ };
250
+ //# sourceMappingURL=ConnectedMotionGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectedMotionGroup.js","sources":["../../src/lib/ConnectedMotionGroup.ts"],"sourcesContent":["import {\n tryParseJson,\n type AutoReconnectingWebsocket,\n} from \"@wandelbots/nova-js\"\nimport type {\n DHParameter,\n MotionGroupDescription,\n MotionGroupState,\n NovaClient,\n OperationMode,\n RobotControllerState,\n SafetyStateType,\n} from \"@wandelbots/nova-js/v2\"\nimport { makeAutoObservable, runInAction } from \"mobx\"\nimport * as THREE from \"three\"\nimport type { Vector3Simple } from \"./JoggerConnection\"\nimport { jointValuesEqual, tcpMotionEqual } from \"./motionStateUpdate\"\n\nconst MOTION_DELTA_THRESHOLD = 0.0001\n\nexport type RobotTcpLike = {\n id: string\n readable_name: string\n position: Vector3Simple\n orientation: Vector3Simple\n}\n\nexport type MotionGroupOption = {\n selectionId: string\n}\n\nconst EMPTY_DH_PARAMETER: DHParameter = {\n a: 0,\n d: 0,\n alpha: 0,\n theta: 0,\n reverse_rotation_direction: false,\n}\n\n/**\n * Store representing the current state of a connected motion group.\n * API v2 version, not used yet in the components.\n */\nexport class ConnectedMotionGroup {\n static async connectMultiple(nova: NovaClient, motionGroupIds: string[]) {\n return Promise.all(\n motionGroupIds.map((motionGroupId) =>\n ConnectedMotionGroup.connect(nova, motionGroupId),\n ),\n )\n }\n\n static async connect(nova: NovaClient, motionGroupId: string) {\n const [_motionGroupIndex, controllerId] = motionGroupId.split(\"@\") as [\n string,\n string,\n ]\n\n const controller =\n await nova.api.controller.getCurrentRobotControllerState(controllerId)\n const motionGroup = controller?.motion_groups.find(\n (mg) => mg.motion_group === motionGroupId,\n )\n if (!controller || !motionGroup) {\n throw new Error(\n `Controller ${controllerId} or motion group ${motionGroupId} not found`,\n )\n }\n\n const motionStateSocket = nova.openReconnectingWebsocket(\n `/controllers/${controllerId}/motion-groups/${motionGroupId}/state-stream`,\n )\n\n // Wait for the first message to get the initial state\n const firstMessage = await motionStateSocket.firstMessage()\n const initialMotionState = tryParseJson(firstMessage.data)\n ?.result as MotionGroupState\n\n if (!initialMotionState) {\n throw new Error(\n `Unable to parse initial motion state message ${firstMessage.data}`,\n )\n }\n\n console.log(\n `Connected motion state websocket to motion group ${motionGroup.motion_group}. Initial state:\\n `,\n initialMotionState,\n )\n\n // Check if robot is virtual or physical\n const config = await nova.api.controller.getRobotController(\n controller.controller,\n )\n const isVirtual = config.configuration.kind === \"VirtualController\"\n\n // If there's a configured mounting, we need it to show the right\n // position of the robot model\n const description = await nova.api.motionGroup.getMotionGroupDescription(\n controllerId,\n motionGroup.motion_group,\n )\n\n // Find out what TCPs this motion group has (we need it for jogging)\n // There are converted into a RobotTcpLike for easier use in the UI\n const tcps: RobotTcpLike[] = Object.entries(description.tcps || {}).map(\n ([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\n // Open the websocket to monitor controller state for e.g. e-stop\n const controllerStateSocket = nova.openReconnectingWebsocket(\n `/controllers/${controller.controller}/state-stream?response_rate=1000`,\n )\n\n // Wait for the first message to get the initial state\n const firstControllerMessage = await controllerStateSocket.firstMessage()\n const initialControllerState = tryParseJson(firstControllerMessage.data)\n ?.result as RobotControllerState\n\n if (!initialControllerState) {\n throw new Error(\n `Unable to parse initial controller state message ${firstControllerMessage.data}`,\n )\n }\n\n console.log(\n `Connected controller state websocket to controller ${controller.controller}. Initial state:\\n `,\n initialControllerState,\n )\n\n return new ConnectedMotionGroup(\n nova,\n controller,\n motionGroup,\n initialMotionState,\n motionStateSocket,\n isVirtual,\n tcps,\n description,\n initialControllerState,\n controllerStateSocket,\n )\n }\n\n connectedJoggingSocket: WebSocket | null = null\n // biome-ignore lint/suspicious/noExplicitAny: legacy code\n planData: any | null // tmp\n joggingVelocity: number = 10\n\n // Not mobx-observable as this changes very fast; should be observed\n // using animation frames\n rapidlyChangingMotionState: MotionGroupState\n\n // Response rate on the websocket should be a bit slower on this one since\n // we don't use the motion data\n controllerState: RobotControllerState\n\n /**\n * Reflects activation state of the motion group / robot servos. The\n * movement controls in the UI should only be enabled in the \"active\" state\n */\n activationState: \"inactive\" | \"activating\" | \"deactivating\" | \"active\" =\n \"inactive\"\n\n constructor(\n readonly nova: NovaClient,\n readonly controller: RobotControllerState,\n readonly motionGroup: MotionGroupState,\n readonly initialMotionState: MotionGroupState,\n readonly motionStateSocket: AutoReconnectingWebsocket,\n readonly isVirtual: boolean,\n readonly tcps: RobotTcpLike[],\n readonly description: MotionGroupDescription,\n readonly initialControllerState: RobotControllerState,\n readonly controllerStateSocket: AutoReconnectingWebsocket,\n ) {\n this.rapidlyChangingMotionState = initialMotionState\n this.controllerState = initialControllerState\n\n // Track controller state updates (e.g. safety state and operation mode)\n controllerStateSocket.addEventListener(\"message\", (event) => {\n const data = tryParseJson(event.data)?.result\n\n if (!data) {\n return\n }\n\n runInAction(() => {\n this.controllerState = data\n })\n })\n\n motionStateSocket.addEventListener(\"message\", (event) => {\n const latestMotionState = tryParseJson(event.data)?.result as\n | MotionGroupState\n | undefined\n\n if (!latestMotionState) {\n throw new Error(\n `Failed to get motion state for ${this.motionGroupId}: ${event.data}`,\n )\n }\n\n // handle joint position changes\n if (\n !jointValuesEqual(\n this.rapidlyChangingMotionState.joint_position,\n latestMotionState.joint_position,\n MOTION_DELTA_THRESHOLD,\n )\n ) {\n runInAction(() => {\n this.rapidlyChangingMotionState.joint_position =\n latestMotionState.joint_position\n })\n }\n\n // handle tcp pose changes\n if (\n !tcpMotionEqual(\n this.rapidlyChangingMotionState,\n latestMotionState,\n MOTION_DELTA_THRESHOLD,\n )\n ) {\n runInAction(() => {\n this.rapidlyChangingMotionState.tcp_pose = latestMotionState.tcp_pose\n })\n }\n\n // handle standstill changes\n if (\n this.rapidlyChangingMotionState.standstill !==\n latestMotionState.standstill\n ) {\n runInAction(() => {\n this.rapidlyChangingMotionState.standstill =\n latestMotionState.standstill\n })\n }\n })\n makeAutoObservable(this)\n }\n\n get motionGroupId() {\n return this.motionGroup.motion_group\n }\n\n get controllerId() {\n return this.controller.controller\n }\n\n get modelFromController() {\n return this.description.motion_group_model\n }\n\n /** Jogging velocity in radians for rotation and joint movement */\n get joggingVelocityRads() {\n return (this.joggingVelocity * Math.PI) / 180\n }\n\n get joints() {\n return this.initialMotionState.joint_position.map((_, i) => {\n return {\n index: i,\n }\n })\n }\n\n // Please note that API v2 omits 0 values\n get dhParameters() {\n if (this.description.dh_parameters === undefined) {\n return undefined\n }\n\n return this.description.dh_parameters.map((dh_param) => ({\n ...EMPTY_DH_PARAMETER,\n ...dh_param,\n }))\n }\n\n get safetyZones() {\n return this.description.safety_zones\n }\n\n /** Gets the robot mounting position offset in 3D viz coordinates */\n get mountingPosition(): [number, number, number] {\n if (!this.description.mounting) {\n return [0, 0, 0]\n }\n\n return [\n (this.description.mounting.position?.[0] || 0) / 1000,\n (this.description.mounting.position?.[1] || 0) / 1000,\n (this.description.mounting.position?.[2] || 0) / 1000,\n ]\n }\n\n /** Gets the robot mounting position rotation in 3D viz coordinates */\n get mountingQuaternion() {\n const rotationVector = new THREE.Vector3(\n this.description.mounting?.orientation?.[0] || 0,\n this.description.mounting?.orientation?.[1] || 0,\n this.description.mounting?.orientation?.[2] || 0,\n )\n\n const magnitude = rotationVector.length()\n const axis = rotationVector.normalize()\n\n return new THREE.Quaternion().setFromAxisAngle(axis, magnitude)\n }\n\n /**\n * Whether the controller is currently in a safety state\n * corresponding to an emergency stop\n */\n get isEstopActive() {\n const estopStates: SafetyStateType[] = [\n \"SAFETY_STATE_ROBOT_EMERGENCY_STOP\",\n \"SAFETY_STATE_DEVICE_EMERGENCY_STOP\",\n ]\n\n return estopStates.includes(this.controllerState.safety_state)\n }\n\n /**\n * Whether the controller is in a safety state\n * that may be non-functional for robot pad purposes\n */\n get isMoveableSafetyState() {\n const goodSafetyStates: SafetyStateType[] = [\n \"SAFETY_STATE_NORMAL\",\n \"SAFETY_STATE_REDUCED\",\n ]\n\n return goodSafetyStates.includes(this.controllerState.safety_state)\n }\n\n /**\n * Whether the controller is in an operation mode that allows movement\n */\n get isMoveableOperationMode() {\n const goodOperationModes: OperationMode[] = [\n \"OPERATION_MODE_AUTO\",\n \"OPERATION_MODE_MANUAL\",\n \"OPERATION_MODE_MANUAL_T1\",\n \"OPERATION_MODE_MANUAL_T2\",\n ]\n\n return goodOperationModes.includes(this.controllerState.operation_mode)\n }\n\n /**\n * Whether the robot is currently active and can be moved, based on the\n * safety state, operation mode and servo toggle activation state.\n */\n get canBeMoved() {\n return (\n this.isMoveableSafetyState &&\n this.isMoveableOperationMode &&\n this.activationState === \"active\"\n )\n }\n\n async deactivate() {\n if (this.activationState !== \"active\") {\n console.error(\"Tried to deactivate while already deactivating\")\n return\n }\n\n runInAction(() => {\n this.activationState = \"deactivating\"\n })\n\n try {\n await this.nova.api.controller.setDefaultMode(\n this.controllerId,\n \"ROBOT_SYSTEM_MODE_MONITOR\",\n )\n\n runInAction(() => {\n this.activationState = \"inactive\"\n })\n } catch (err) {\n runInAction(() => {\n this.activationState = \"active\"\n })\n throw err\n }\n }\n\n async activate() {\n if (this.activationState !== \"inactive\") {\n console.error(\"Tried to activate while already activating\")\n return\n }\n\n runInAction(() => {\n this.activationState = \"activating\"\n })\n\n try {\n await this.nova.api.controller.setDefaultMode(\n this.controllerId,\n \"ROBOT_SYSTEM_MODE_CONTROL\",\n )\n\n runInAction(() => {\n this.activationState = \"active\"\n })\n } catch (err) {\n runInAction(() => {\n this.activationState = \"inactive\"\n })\n throw err\n }\n }\n\n toggleActivation() {\n if (this.activationState === \"inactive\") {\n this.activate()\n } else if (this.activationState === \"active\") {\n this.deactivate()\n }\n }\n\n dispose() {\n this.motionStateSocket.close()\n if (this.connectedJoggingSocket) this.connectedJoggingSocket.close()\n }\n\n setJoggingVelocity(velocity: number) {\n this.joggingVelocity = velocity\n }\n}\n\nexport default ConnectedMotionGroup\n"],"names":["MOTION_DELTA_THRESHOLD","EMPTY_DH_PARAMETER","ConnectedMotionGroup","nova","controller","motionGroup","initialMotionState","motionStateSocket","isVirtual","tcps","description","initialControllerState","controllerStateSocket","event","data","_a","tryParseJson","runInAction","latestMotionState","jointValuesEqual","tcpMotionEqual","makeAutoObservable","motionGroupIds","motionGroupId","_motionGroupIndex","controllerId","mg","firstMessage","id","tcp","firstControllerMessage","_b","_","i","dh_param","_c","rotationVector","THREE","_d","_f","_e","magnitude","axis","err","velocity"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("@wandelbots/nova-js"),w=require("@wandelbots/nova-js/v2"),_=require("mobx"),E=require("three/src/math/Vector3.js"),F=require("./MotionStreamConnection.cjs"),k="Movement request rejected. Another client is currently executing a 'Jogging' motion!";class y{constructor(t,e={}){this.motionStream=t,this.options=e,this.ENDPOINT_JOGGING="/execution/jogging",this.ENDPOINT_TRAJECTORY="/execution/trajectory",this.DEFAULT_MODE="off",this.DEFAULT_TCP="Flange",this.NO_TCP=void 0,this.DEFAULT_INIT_TIMEOUT=5e3,this.DEFAULT_ORIENTATION="coordsys",this.mode="off",this.joggingSocket=null,this.trajectorySocket=null,this.timeout=this.DEFAULT_INIT_TIMEOUT,this.tcp=(e==null?void 0:e.tcp)||t.motionGroup.tcp||this.getDefaultTcp(t),this.orientation=(e==null?void 0:e.orientation)||this.DEFAULT_ORIENTATION,this.timeout=(e==null?void 0:e.timeout)||this.DEFAULT_INIT_TIMEOUT,this.mode=(e==null?void 0:e.mode)||this.DEFAULT_MODE,this.onError=e==null?void 0:e.onError}static async open(t,e,r={}){const s=await F.MotionStreamConnection.open(t,e),i=new y(s,r);return await i.setJoggingMode(i.mode),i}getDefaultTcp(t){var r,s;const e=(s=(r=t.description.dh_parameters)==null?void 0:r[0])==null?void 0:s.type;return t.joints.length<6&&(e===w.JointTypeEnum.RevoluteJoint||e===w.JointTypeEnum.PrismaticJoint)?this.NO_TCP:this.DEFAULT_TCP}async setOptions(t){t.tcp&&(this.tcp=t.tcp),t.orientation&&(this.orientation=t.orientation),t.timeout&&(this.timeout=t.timeout),t.mode&&(this.mode=t.mode),t.onError&&(this.onError=t.onError),this.setJoggingMode(this.mode,!1)}get motionGroupId(){return this.motionStream.motionGroupId}get nova(){return this.motionStream.nova}get numJoints(){return this.motionStream.joints.length}async stop(){if(this.joggingSocket){const t=new Array(this.numJoints).fill(0);this.joggingSocket.sendJson({message_type:"JointVelocityRequest",velocity:t})}this.trajectorySocket&&this.trajectorySocket.sendJson({message_type:"PauseMovementRequest"})}async dispose(){const t=[this.joggingSocket,this.trajectorySocket].filter(e=>e!==null);return t.forEach(e=>{e.dispose()}),this.joggingSocket=null,this.trajectorySocket=null,Promise.all(t.map(e=>e.closed()))}async setJoggingMode(t,e=!0){if(!(this.mode===t&&e)&&(this.dispose(),this.mode=t,this.mode==="jogging"))return this.initializeJoggingWebsocket()}async initializeJoggingWebsocket(){return new Promise((t,e)=>{const r=setTimeout(()=>{e(new Error(`Jogging initialization timeout after ${this.timeout} seconds`))},this.timeout);this.joggingSocket=this.nova.openReconnectingWebsocket(this.ENDPOINT_JOGGING),this.joggingSocket.addEventListener("message",s=>{var c,h,a,d;const i=l.tryParseJson(s.data);if(((c=i==null?void 0:i.result)==null?void 0:c.kind)==="INITIALIZE_RECEIVED"){clearTimeout(r),t();return}if(((h=i==null?void 0:i.result)==null?void 0:h.kind)==="MOTION_ERROR")if(clearTimeout(r),this.onBlocked&&((a=i==null?void 0:i.result)!=null&&a.message.includes(k))){(d=this.joggingSocket)==null||d.dispose(),this.onBlocked();return}else this.onError?this.onError(s.data):e(new Error(s.data))}),this.joggingSocket.sendJson({message_type:"InitializeJoggingRequest",motion_group:this.motionGroupId,...this.tcp?{tcp:this.tcp}:{}})})}async rotateJoints({joint:t,direction:e,velocityValue:r,velocityUnit:s}){if(!this.joggingSocket||this.mode!=="jogging")throw new Error("Joint jogging websocket not connected; create one by setting jogging mode to 'jogging'");const i=new Array(this.numJoints).fill(0);i[t]=e==="-"?-r:r,this.joggingSocket.sendJson({message_type:"JointVelocityRequest",velocity:i})}async translateTCP({axis:t,direction:e,velocityMmPerSec:r}){if(!this.joggingSocket||this.mode!=="jogging")throw new Error("Continuous jogging websocket not connected; create one by setting jogging mode to 'jogging'");const s=[0,0,0],i=[0,0,0];i[l.XYZ_TO_VECTOR[t]]=e==="-"?-r:r,this.joggingSocket.sendJson({message_type:"TcpVelocityRequest",translation:i,rotation:s,use_tool_coordinate_system:this.orientation==="tool"})}async rotateTCP({axis:t,direction:e,velocityRadsPerSec:r}){if(!this.joggingSocket||this.mode!=="jogging")throw new Error("Continuous jogging websocket not connected; create one by setting jogging mode to 'jogging'");const s=[0,0,0],i=[0,0,0];s[l.XYZ_TO_VECTOR[t]]=e==="-"?-r:r,this.joggingSocket.sendJson({message_type:"TcpVelocityRequest",translation:i,rotation:s})}async runIncrementalCartesianMotion({currentTcpPose:t,currentJoints:e,velocityInRelevantUnits:r,axis:s,direction:i,motion:c}){const h=[];if(this.mode!=="trajectory")throw new Error("Set jogging mode to 'trajectory' to run incremental cartesian motions");if(c.type==="translate"){if(!t.position)throw new Error("Current pose has no position, cannot perform translation");const o=[...t.position];o[l.XYZ_TO_VECTOR[s]]+=c.distanceMm*(i==="-"?-1:1),h.push({limits_override:{tcp_velocity_limit:r},path:{path_definition_name:"PathLine",target_pose:{position:o,orientation:t.orientation}}})}else if(c.type==="rotate"){if(!t.orientation)throw new Error("Current pose has no orientation, cannot perform rotation");const o=new E.Vector3(t.orientation[0],t.orientation[1],t.orientation[2]),n=o.length(),m=o.clone().normalize(),g=c.distanceRads*(i==="-"?-1:1),u=new E.Vector3(0,0,0);u[s]=1;const J=Math.cos(.5*g)*Math.cos(.5*n),T=Math.sin(.5*g)*Math.sin(.5*n),M=Math.sin(.5*g)*Math.cos(.5*n),C=Math.cos(.5*g)*Math.sin(.5*n),D=u.dot(m),N=u.clone().cross(m),p=2*Math.acos(J-T*D),v=p/Math.sin(.5*p),A=new E.Vector3().addScaledVector(N,T).addScaledVector(u,M).addScaledVector(m,C).multiplyScalar(v);h.push({limits_override:{tcp_orientation_velocity_limit:r},path:{path_definition_name:"PathLine",target_pose:{position:t.position,orientation:[...A]}}})}const a=this.motionStream.description;if(a.cycle_time===void 0){console.warn("Current motion group has no cycle time, cannot plan jogging motion");return}const d={motion_group_model:a.motion_group_model,cycle_time:a.cycle_time,mounting:a.mounting,global:a.operation_limits.auto_limits},j=await this.nova.api.trajectoryPlanning.planTrajectory({motion_group_setup:d,start_joint_position:e,motion_commands:h}),f=j.response;if(!f)throw new Error(`Failed to plan jogging increment motion ${JSON.stringify(j)}`);this.trajectorySocket&&(console.warn("Trajectory jogging websocket already open; will close"),this.trajectorySocket.dispose()),this.trajectorySocket=this.nova.openReconnectingWebsocket(this.ENDPOINT_TRAJECTORY);const S=o=>{var n;if(!o||o.add_trajectory_error||o.message)if(this.onError)this.onError(o);else throw new Error(((n=o==null?void 0:o.add_trajectory_error)==null?void 0:n.message)||(o==null?void 0:o.message)||"Failed to execute trajectory, unknown error");if(!this.trajectorySocket)throw new Error("Failed to execute trajectory, websocket not available anymore");this.trajectorySocket.sendJson({message_type:"StartMovementRequest",direction:"DIRECTION_FORWARD"})},R=async()=>{var o;await _.when(()=>!this.motionStream.rapidlyChangingMotionState.standstill),await _.when(()=>this.motionStream.rapidlyChangingMotionState.standstill),(o=this.trajectorySocket)==null||o.dispose(),this.trajectorySocket=null},I=async()=>{var o;await _.when(()=>this.motionStream.rapidlyChangingMotionState.standstill),(o=this.trajectorySocket)==null||o.dispose(),this.trajectorySocket=null},O=async o=>{if(o!=null&&o.message)if(this.onError){this.onError(o);return}else throw new Error(o.message||"Failed to execute trajectory, unknown error");this.motionStream.rapidlyChangingMotionState.standstill?await R():await I()};this.trajectorySocket.addEventListener("message",o=>{var m,g;const n=l.tryParseJson(o.data);if(!((m=n==null?void 0:n.result)!=null&&m.kind))throw new Error(`Failed to execute trajectory: Received invalid message ${o.data}`);if(this.onBlocked&&((g=n.result.message)!=null&&g.includes(k))){this.onBlocked();return}if(n.result.kind==="INITIALIZE_RECEIVED")S(n.result);else if(n.result.kind==="START_RECEIVED")O(n);else if(n.result.kind!=="PAUSE_RECEIVED")if(n.result.kind==="MOTION_ERROR"&&n.result.message)if(this.onError){this.onError(n);return}else throw new Error(n.result.message);else throw new Error(`Failed to execute trajectory, cannot handle message type "${n.result.kind}"`)}),this.trajectorySocket.sendJson({message_type:"InitializeMovementRequest",trajectory:{message_type:"TrajectoryData",motion_group:this.motionGroupId,data:f,tcp:this.tcp}})}}exports.JoggerConnection=y;exports.default=y;
2
+ //# sourceMappingURL=JoggerConnection.cjs.map