@wandelbots/wandelbots-js-react-components 1.11.0 → 1.11.2

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 (228) hide show
  1. package/dist/index.cjs +25 -25
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +2536 -2510
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/Setup.d.ts.map +1 -0
  6. package/dist/src/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -0
  7. package/dist/src/components/3d-viewport/PresetEnvironment.d.ts.map +1 -0
  8. package/dist/src/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -0
  9. package/dist/src/components/ConsoleFilter.d.ts.map +1 -0
  10. package/dist/src/components/CopyableText.d.ts.map +1 -0
  11. package/dist/src/components/LoadingButton.d.ts.map +1 -0
  12. package/dist/src/components/LoadingCover.d.ts.map +1 -0
  13. package/dist/src/components/ThemeSelect.d.ts.map +1 -0
  14. package/dist/src/components/VelocitySlider.d.ts.map +1 -0
  15. package/dist/src/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -0
  16. package/dist/src/components/jogging/JoggingCartesianTab.d.ts.map +1 -0
  17. package/dist/src/components/jogging/JoggingCartesianValues.d.ts.map +1 -0
  18. package/dist/src/components/jogging/JoggingFreedriveTab.d.ts.map +1 -0
  19. package/dist/src/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -0
  20. package/dist/src/components/jogging/JoggingJointRotationControl.d.ts.map +1 -0
  21. package/dist/src/components/jogging/JoggingJointTab.d.ts.map +1 -0
  22. package/dist/src/components/jogging/JoggingJointValues.d.ts.map +1 -0
  23. package/dist/src/components/jogging/JoggingOptions.d.ts.map +1 -0
  24. package/dist/{components → src/components}/jogging/JoggingPanel.d.ts +8 -5
  25. package/dist/src/components/jogging/JoggingPanel.d.ts.map +1 -0
  26. package/dist/src/components/jogging/JoggingStore.d.ts.map +1 -0
  27. package/dist/src/components/jogging/JoggingVelocitySlider.d.ts.map +1 -0
  28. package/dist/src/components/modal/NoMotionGroupModal.d.ts.map +1 -0
  29. package/dist/src/components/robots/ABB_1200_07_7.d.ts.map +1 -0
  30. package/dist/src/components/robots/AxisConfig.d.ts.map +1 -0
  31. package/dist/src/components/robots/DHRobot.d.ts.map +1 -0
  32. package/dist/src/components/robots/FANUC_ARC_Mate_100iD.d.ts.map +1 -0
  33. package/dist/src/components/robots/FANUC_ARC_Mate_120iD.d.ts.map +1 -0
  34. package/dist/src/components/robots/FANUC_CRX10iA.d.ts.map +1 -0
  35. package/dist/src/components/robots/FANUC_CRX20iAL.d.ts.map +1 -0
  36. package/dist/src/components/robots/FANUC_CRX25iA.d.ts.map +1 -0
  37. package/dist/src/components/robots/FANUC_CRX25iAL.d.ts.map +1 -0
  38. package/dist/src/components/robots/KUKA_KR210_R2700.d.ts.map +1 -0
  39. package/dist/src/components/robots/KUKA_KR270_R2700.d.ts.map +1 -0
  40. package/dist/src/components/robots/Robot.d.ts.map +1 -0
  41. package/dist/src/components/robots/RobotAnimator.d.ts.map +1 -0
  42. package/dist/{components → src/components}/robots/SupportedRobot.d.ts +1 -1
  43. package/dist/src/components/robots/SupportedRobot.d.ts.map +1 -0
  44. package/dist/src/components/robots/UniversalRobots_UR10.d.ts.map +1 -0
  45. package/dist/src/components/robots/UniversalRobots_UR10e.d.ts.map +1 -0
  46. package/dist/src/components/robots/UniversalRobots_UR3.d.ts.map +1 -0
  47. package/dist/src/components/robots/UniversalRobots_UR3e.d.ts.map +1 -0
  48. package/dist/src/components/robots/UniversalRobots_UR5.d.ts.map +1 -0
  49. package/dist/src/components/robots/UniversalRobots_UR5e.d.ts.map +1 -0
  50. package/dist/src/components/robots/Yaskawa_AR1440.d.ts.map +1 -0
  51. package/dist/src/components/robots/Yaskawa_AR1730.d.ts.map +1 -0
  52. package/dist/src/components/robots/Yaskawa_AR2010.d.ts.map +1 -0
  53. package/dist/src/components/robots/Yaskawa_AR3120.d.ts.map +1 -0
  54. package/dist/src/components/robots/Yaskawa_AR900.d.ts.map +1 -0
  55. package/dist/src/components/utils/converters.d.ts.map +1 -0
  56. package/dist/src/components/utils/errorHandling.d.ts.map +1 -0
  57. package/dist/src/components/utils/hooks.d.ts.map +1 -0
  58. package/dist/src/components/utils/robotTreeQuery.d.ts.map +1 -0
  59. package/dist/src/components/wandelscript-editor/WandelscriptEditor.d.ts.map +1 -0
  60. package/dist/src/components/wandelscript-editor/wandelscript.tmLanguage.d.ts.map +1 -0
  61. package/dist/src/externalizeComponent.d.ts +7 -0
  62. package/dist/src/externalizeComponent.d.ts.map +1 -0
  63. package/dist/src/i18n/config.d.ts.map +1 -0
  64. package/dist/src/icons/index.d.ts.map +1 -0
  65. package/dist/src/index.d.ts +14 -0
  66. package/dist/src/index.d.ts.map +1 -0
  67. package/dist/src/themes/color.d.ts.map +1 -0
  68. package/dist/src/themes/theming.d.ts.map +1 -0
  69. package/dist/{components/jogging → stories}/JoggingCartesianAxisControl.stories.d.ts +1 -1
  70. package/dist/stories/JoggingCartesianAxisControl.stories.d.ts.map +1 -0
  71. package/dist/{components/jogging → stories}/JoggingJointRotationControl.stories.d.ts +1 -1
  72. package/dist/stories/JoggingJointRotationControl.stories.d.ts.map +1 -0
  73. package/dist/{components/jogging → stories}/JoggingPanel.stories.d.ts +1 -1
  74. package/dist/stories/JoggingPanel.stories.d.ts.map +1 -0
  75. package/dist/{components → stories}/LoadingButton.stories.d.ts +1 -1
  76. package/dist/stories/LoadingButton.stories.d.ts.map +1 -0
  77. package/dist/{components/robots → stories}/SupportedRobot.stories.d.ts +2 -2
  78. package/dist/stories/SupportedRobot.stories.d.ts.map +1 -0
  79. package/dist/{components → stories}/VelocitySlider.stories.d.ts +1 -1
  80. package/dist/stories/VelocitySlider.stories.d.ts.map +1 -0
  81. package/dist/{components/wandelscript-editor → stories}/WandelscriptEditor.stories.d.ts +1 -1
  82. package/dist/stories/WandelscriptEditor.stories.d.ts.map +1 -0
  83. package/dist/stories/novaTheme.stories.d.ts.map +1 -0
  84. package/package.json +5 -6
  85. package/src/components/VelocitySlider.tsx +1 -1
  86. package/src/components/jogging/JoggingCartesianAxisControl.tsx +98 -95
  87. package/src/components/jogging/JoggingJointRotationControl.tsx +182 -177
  88. package/src/components/jogging/JoggingPanel.tsx +106 -90
  89. package/src/components/modal/NoMotionGroupModal.tsx +70 -62
  90. package/src/components/robots/SupportedRobot.tsx +191 -188
  91. package/src/components/wandelscript-editor/WandelscriptEditor.tsx +98 -100
  92. package/src/externalizeComponent.tsx +8 -6
  93. package/src/index.ts +10 -42
  94. package/dist/Setup.d.ts.map +0 -1
  95. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +0 -1
  96. package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +0 -1
  97. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +0 -1
  98. package/dist/components/ConsoleFilter.d.ts.map +0 -1
  99. package/dist/components/CopyableText.d.ts.map +0 -1
  100. package/dist/components/LoadingButton.d.ts.map +0 -1
  101. package/dist/components/LoadingButton.stories.d.ts.map +0 -1
  102. package/dist/components/LoadingCover.d.ts.map +0 -1
  103. package/dist/components/ThemeSelect.d.ts.map +0 -1
  104. package/dist/components/VelocitySlider.d.ts.map +0 -1
  105. package/dist/components/VelocitySlider.stories.d.ts.map +0 -1
  106. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +0 -1
  107. package/dist/components/jogging/JoggingCartesianAxisControl.stories.d.ts.map +0 -1
  108. package/dist/components/jogging/JoggingCartesianTab.d.ts.map +0 -1
  109. package/dist/components/jogging/JoggingCartesianValues.d.ts.map +0 -1
  110. package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +0 -1
  111. package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +0 -1
  112. package/dist/components/jogging/JoggingJointRotationControl.d.ts.map +0 -1
  113. package/dist/components/jogging/JoggingJointRotationControl.stories.d.ts.map +0 -1
  114. package/dist/components/jogging/JoggingJointTab.d.ts.map +0 -1
  115. package/dist/components/jogging/JoggingJointValues.d.ts.map +0 -1
  116. package/dist/components/jogging/JoggingOptions.d.ts.map +0 -1
  117. package/dist/components/jogging/JoggingPanel.d.ts.map +0 -1
  118. package/dist/components/jogging/JoggingPanel.stories.d.ts.map +0 -1
  119. package/dist/components/jogging/JoggingStore.d.ts.map +0 -1
  120. package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +0 -1
  121. package/dist/components/modal/NoMotionGroupModal.d.ts.map +0 -1
  122. package/dist/components/robots/ABB_1200_07_7.d.ts.map +0 -1
  123. package/dist/components/robots/AxisConfig.d.ts.map +0 -1
  124. package/dist/components/robots/DHRobot.d.ts.map +0 -1
  125. package/dist/components/robots/FANUC_ARC_Mate_100iD.d.ts.map +0 -1
  126. package/dist/components/robots/FANUC_ARC_Mate_120iD.d.ts.map +0 -1
  127. package/dist/components/robots/FANUC_CRX10iA.d.ts.map +0 -1
  128. package/dist/components/robots/FANUC_CRX20iAL.d.ts.map +0 -1
  129. package/dist/components/robots/FANUC_CRX25iA.d.ts.map +0 -1
  130. package/dist/components/robots/FANUC_CRX25iAL.d.ts.map +0 -1
  131. package/dist/components/robots/KUKA_KR210_R2700.d.ts.map +0 -1
  132. package/dist/components/robots/KUKA_KR270_R2700.d.ts.map +0 -1
  133. package/dist/components/robots/Robot.d.ts.map +0 -1
  134. package/dist/components/robots/RobotAnimator.d.ts.map +0 -1
  135. package/dist/components/robots/SupportedRobot.d.ts.map +0 -1
  136. package/dist/components/robots/SupportedRobot.stories.d.ts.map +0 -1
  137. package/dist/components/robots/UniversalRobots_UR10.d.ts.map +0 -1
  138. package/dist/components/robots/UniversalRobots_UR10e.d.ts.map +0 -1
  139. package/dist/components/robots/UniversalRobots_UR3.d.ts.map +0 -1
  140. package/dist/components/robots/UniversalRobots_UR3e.d.ts.map +0 -1
  141. package/dist/components/robots/UniversalRobots_UR5.d.ts.map +0 -1
  142. package/dist/components/robots/UniversalRobots_UR5e.d.ts.map +0 -1
  143. package/dist/components/robots/Yaskawa_AR1440.d.ts.map +0 -1
  144. package/dist/components/robots/Yaskawa_AR1730.d.ts.map +0 -1
  145. package/dist/components/robots/Yaskawa_AR2010.d.ts.map +0 -1
  146. package/dist/components/robots/Yaskawa_AR3120.d.ts.map +0 -1
  147. package/dist/components/robots/Yaskawa_AR900.d.ts.map +0 -1
  148. package/dist/components/utils/converters.d.ts.map +0 -1
  149. package/dist/components/utils/errorHandling.d.ts.map +0 -1
  150. package/dist/components/utils/hooks.d.ts.map +0 -1
  151. package/dist/components/utils/robotTreeQuery.d.ts.map +0 -1
  152. package/dist/components/wandelscript-editor/WandelscriptEditor.d.ts.map +0 -1
  153. package/dist/components/wandelscript-editor/WandelscriptEditor.stories.d.ts.map +0 -1
  154. package/dist/components/wandelscript-editor/wandelscript.tmLanguage.d.ts.map +0 -1
  155. package/dist/externalizeComponent.d.ts +0 -7
  156. package/dist/externalizeComponent.d.ts.map +0 -1
  157. package/dist/i18n/config.d.ts.map +0 -1
  158. package/dist/icons/index.d.ts.map +0 -1
  159. package/dist/index.d.ts +0 -54
  160. package/dist/index.d.ts.map +0 -1
  161. package/dist/themes/color.d.ts.map +0 -1
  162. package/dist/themes/novaTheme.stories.d.ts.map +0 -1
  163. package/dist/themes/theming.d.ts.map +0 -1
  164. package/src/components/LoadingButton.stories.tsx +0 -54
  165. package/src/components/VelocitySlider.stories.tsx +0 -27
  166. package/src/components/jogging/JoggingCartesianAxisControl.stories.tsx +0 -41
  167. package/src/components/jogging/JoggingJointRotationControl.stories.tsx +0 -50
  168. package/src/components/jogging/JoggingPanel.stories.tsx +0 -29
  169. package/src/components/robots/SupportedRobot.stories.tsx +0 -130
  170. package/src/components/wandelscript-editor/WandelscriptEditor.stories.tsx +0 -45
  171. package/src/themes/novaTheme.stories.tsx +0 -77
  172. /package/dist/{Setup.d.ts → src/Setup.d.ts} +0 -0
  173. /package/dist/{components → src/components}/3d-viewport/CoordinateSystemTransform.d.ts +0 -0
  174. /package/dist/{components → src/components}/3d-viewport/PresetEnvironment.d.ts +0 -0
  175. /package/dist/{components → src/components}/3d-viewport/SafetyZonesRenderer.d.ts +0 -0
  176. /package/dist/{components → src/components}/ConsoleFilter.d.ts +0 -0
  177. /package/dist/{components → src/components}/CopyableText.d.ts +0 -0
  178. /package/dist/{components → src/components}/LoadingButton.d.ts +0 -0
  179. /package/dist/{components → src/components}/LoadingCover.d.ts +0 -0
  180. /package/dist/{components → src/components}/ThemeSelect.d.ts +0 -0
  181. /package/dist/{components → src/components}/VelocitySlider.d.ts +0 -0
  182. /package/dist/{components → src/components}/jogging/JoggingCartesianAxisControl.d.ts +0 -0
  183. /package/dist/{components → src/components}/jogging/JoggingCartesianTab.d.ts +0 -0
  184. /package/dist/{components → src/components}/jogging/JoggingCartesianValues.d.ts +0 -0
  185. /package/dist/{components → src/components}/jogging/JoggingFreedriveTab.d.ts +0 -0
  186. /package/dist/{components → src/components}/jogging/JoggingJointLimitDetector.d.ts +0 -0
  187. /package/dist/{components → src/components}/jogging/JoggingJointRotationControl.d.ts +0 -0
  188. /package/dist/{components → src/components}/jogging/JoggingJointTab.d.ts +0 -0
  189. /package/dist/{components → src/components}/jogging/JoggingJointValues.d.ts +0 -0
  190. /package/dist/{components → src/components}/jogging/JoggingOptions.d.ts +0 -0
  191. /package/dist/{components → src/components}/jogging/JoggingStore.d.ts +0 -0
  192. /package/dist/{components → src/components}/jogging/JoggingVelocitySlider.d.ts +0 -0
  193. /package/dist/{components → src/components}/modal/NoMotionGroupModal.d.ts +0 -0
  194. /package/dist/{components → src/components}/robots/ABB_1200_07_7.d.ts +0 -0
  195. /package/dist/{components → src/components}/robots/AxisConfig.d.ts +0 -0
  196. /package/dist/{components → src/components}/robots/DHRobot.d.ts +0 -0
  197. /package/dist/{components → src/components}/robots/FANUC_ARC_Mate_100iD.d.ts +0 -0
  198. /package/dist/{components → src/components}/robots/FANUC_ARC_Mate_120iD.d.ts +0 -0
  199. /package/dist/{components → src/components}/robots/FANUC_CRX10iA.d.ts +0 -0
  200. /package/dist/{components → src/components}/robots/FANUC_CRX20iAL.d.ts +0 -0
  201. /package/dist/{components → src/components}/robots/FANUC_CRX25iA.d.ts +0 -0
  202. /package/dist/{components → src/components}/robots/FANUC_CRX25iAL.d.ts +0 -0
  203. /package/dist/{components → src/components}/robots/KUKA_KR210_R2700.d.ts +0 -0
  204. /package/dist/{components → src/components}/robots/KUKA_KR270_R2700.d.ts +0 -0
  205. /package/dist/{components → src/components}/robots/Robot.d.ts +0 -0
  206. /package/dist/{components → src/components}/robots/RobotAnimator.d.ts +0 -0
  207. /package/dist/{components → src/components}/robots/UniversalRobots_UR10.d.ts +0 -0
  208. /package/dist/{components → src/components}/robots/UniversalRobots_UR10e.d.ts +0 -0
  209. /package/dist/{components → src/components}/robots/UniversalRobots_UR3.d.ts +0 -0
  210. /package/dist/{components → src/components}/robots/UniversalRobots_UR3e.d.ts +0 -0
  211. /package/dist/{components → src/components}/robots/UniversalRobots_UR5.d.ts +0 -0
  212. /package/dist/{components → src/components}/robots/UniversalRobots_UR5e.d.ts +0 -0
  213. /package/dist/{components → src/components}/robots/Yaskawa_AR1440.d.ts +0 -0
  214. /package/dist/{components → src/components}/robots/Yaskawa_AR1730.d.ts +0 -0
  215. /package/dist/{components → src/components}/robots/Yaskawa_AR2010.d.ts +0 -0
  216. /package/dist/{components → src/components}/robots/Yaskawa_AR3120.d.ts +0 -0
  217. /package/dist/{components → src/components}/robots/Yaskawa_AR900.d.ts +0 -0
  218. /package/dist/{components → src/components}/utils/converters.d.ts +0 -0
  219. /package/dist/{components → src/components}/utils/errorHandling.d.ts +0 -0
  220. /package/dist/{components → src/components}/utils/hooks.d.ts +0 -0
  221. /package/dist/{components → src/components}/utils/robotTreeQuery.d.ts +0 -0
  222. /package/dist/{components → src/components}/wandelscript-editor/WandelscriptEditor.d.ts +0 -0
  223. /package/dist/{components → src/components}/wandelscript-editor/wandelscript.tmLanguage.d.ts +0 -0
  224. /package/dist/{i18n → src/i18n}/config.d.ts +0 -0
  225. /package/dist/{icons → src/icons}/index.d.ts +0 -0
  226. /package/dist/{themes → src/themes}/color.d.ts +0 -0
  227. /package/dist/{themes → src/themes}/theming.d.ts +0 -0
  228. /package/dist/{themes → stories}/novaTheme.stories.d.ts +0 -0
@@ -3,6 +3,7 @@ import Stack from "@mui/material/Stack"
3
3
  import { observer } from "mobx-react-lite"
4
4
  import { useRef, type ReactNode } from "react"
5
5
  import { useAnimationFrame } from "../utils/hooks"
6
+ import { externalizeComponent } from "../../externalizeComponent"
6
7
 
7
8
  type JoggingCartesianAxisControlProps = {
8
9
  color?: string
@@ -13,115 +14,117 @@ type JoggingCartesianAxisControlProps = {
13
14
  disabled?: boolean
14
15
  } & React.ComponentProps<typeof Stack>
15
16
 
16
- export const JoggingCartesianAxisControl = observer(
17
- ({
18
- color,
19
- label,
20
- getDisplayedValue,
21
- startJogging,
22
- stopJogging,
23
- disabled,
24
- ...rest
25
- }: JoggingCartesianAxisControlProps) => {
26
- useAnimationFrame(() => {
27
- const displayValue = getDisplayedValue()
28
- const element = valueContainerRef.current
29
- if (!element) return
17
+ export const JoggingCartesianAxisControl = externalizeComponent(
18
+ observer(
19
+ ({
20
+ color,
21
+ label,
22
+ getDisplayedValue,
23
+ startJogging,
24
+ stopJogging,
25
+ disabled,
26
+ ...rest
27
+ }: JoggingCartesianAxisControlProps) => {
28
+ useAnimationFrame(() => {
29
+ const displayValue = getDisplayedValue()
30
+ const element = valueContainerRef.current
31
+ if (!element) return
30
32
 
31
- element.textContent = displayValue
32
- })
33
+ element.textContent = displayValue
34
+ })
33
35
 
34
- const valueContainerRef = useRef<HTMLParagraphElement>(null)
36
+ const valueContainerRef = useRef<HTMLParagraphElement>(null)
35
37
 
36
- color = color || "#F14D42"
38
+ color = color || "#F14D42"
37
39
 
38
- function onPointerDownMinus(ev: React.PointerEvent) {
39
- // Stop right click from triggering jog
40
- if (ev.button === 0) startJogging("-")
41
- }
40
+ function onPointerDownMinus(ev: React.PointerEvent) {
41
+ // Stop right click from triggering jog
42
+ if (ev.button === 0) startJogging("-")
43
+ }
42
44
 
43
- function onPointerDownPlus(ev: React.PointerEvent) {
44
- if (ev.button === 0) startJogging("+")
45
- }
45
+ function onPointerDownPlus(ev: React.PointerEvent) {
46
+ if (ev.button === 0) startJogging("+")
47
+ }
46
48
 
47
- return (
48
- <Stack height="72px" direction="row" {...rest}>
49
- <Button
50
- onPointerDown={onPointerDownMinus}
51
- onPointerUp={stopJogging}
52
- onPointerOut={stopJogging}
53
- disabled={disabled}
54
- sx={{
55
- width: "105px",
56
- backgroundColor: color,
57
- color: "white",
58
- alignContent: "center",
59
- fontSize: "37px",
60
- borderRadius: "16px 0px 0px 16px",
61
-
62
- ":hover": {
63
- color: "white",
49
+ return (
50
+ <Stack height="72px" direction="row" {...rest}>
51
+ <Button
52
+ onPointerDown={onPointerDownMinus}
53
+ onPointerUp={stopJogging}
54
+ onPointerOut={stopJogging}
55
+ disabled={disabled}
56
+ sx={{
57
+ width: "105px",
64
58
  backgroundColor: color,
65
- },
66
- }}
67
- >
68
- {"-"}
69
- </Button>
59
+ color: "white",
60
+ alignContent: "center",
61
+ fontSize: "37px",
62
+ borderRadius: "16px 0px 0px 16px",
63
+
64
+ ":hover": {
65
+ color: "white",
66
+ backgroundColor: color,
67
+ },
68
+ }}
69
+ >
70
+ {"-"}
71
+ </Button>
70
72
 
71
- <Stack
72
- spacing="6px"
73
- sx={{
74
- width: "184px",
75
- backgroundColor: color,
76
- alignItems: "center",
77
- justifyContent: "center",
78
- opacity: "0.9",
79
- }}
80
- >
81
73
  <Stack
82
- height="22px"
83
- direction="row"
84
- alignItems="center"
85
- justifyItems="center"
86
- spacing={1}
87
- sx={{ userSelect: "none", color: "white" }}
74
+ spacing="6px"
75
+ sx={{
76
+ width: "184px",
77
+ backgroundColor: color,
78
+ alignItems: "center",
79
+ justifyContent: "center",
80
+ opacity: "0.9",
81
+ }}
88
82
  >
89
- {label}
83
+ <Stack
84
+ height="22px"
85
+ direction="row"
86
+ alignItems="center"
87
+ justifyItems="center"
88
+ spacing={1}
89
+ sx={{ userSelect: "none", color: "white" }}
90
+ >
91
+ {label}
92
+ </Stack>
93
+ <Typography
94
+ height="22px"
95
+ sx={{
96
+ fontSize: "15px",
97
+ color: "white",
98
+ }}
99
+ ref={valueContainerRef}
100
+ >
101
+ {getDisplayedValue()}
102
+ </Typography>
90
103
  </Stack>
91
- <Typography
92
- height="22px"
104
+
105
+ <Button
106
+ onPointerDown={onPointerDownPlus}
107
+ onPointerUp={stopJogging}
108
+ onPointerOut={stopJogging}
109
+ disabled={disabled}
93
110
  sx={{
94
- fontSize: "15px",
111
+ width: "105px",
112
+ backgroundColor: color,
95
113
  color: "white",
114
+ alignContent: "center",
115
+ fontSize: "37px",
116
+ borderRadius: "0px 16px 16px 0px",
117
+
118
+ ":hover": {
119
+ color: "white",
120
+ backgroundColor: color,
121
+ },
96
122
  }}
97
- ref={valueContainerRef}
98
123
  >
99
- {getDisplayedValue()}
100
- </Typography>
124
+ {"+"}
125
+ </Button>
101
126
  </Stack>
102
-
103
- <Button
104
- onPointerDown={onPointerDownPlus}
105
- onPointerUp={stopJogging}
106
- onPointerOut={stopJogging}
107
- disabled={disabled}
108
- sx={{
109
- width: "105px",
110
- backgroundColor: color,
111
- color: "white",
112
- alignContent: "center",
113
- fontSize: "37px",
114
- borderRadius: "0px 16px 16px 0px",
115
-
116
- ":hover": {
117
- color: "white",
118
- backgroundColor: color,
119
- },
120
- }}
121
- >
122
- {"+"}
123
- </Button>
124
- </Stack>
125
- )
126
- },
127
+ )
128
+ },
129
+ ),
127
130
  )
@@ -7,6 +7,7 @@ import { useAnimationFrame } from "../utils/hooks"
7
7
  import { useState } from "react"
8
8
  import throttle from "lodash-es/throttle"
9
9
  import { useTranslation } from "react-i18next"
10
+ import { externalizeComponent } from "../../externalizeComponent"
10
11
 
11
12
  type JoggingJointRotationControlProps = {
12
13
  startJogging: (direction: "-" | "+") => void
@@ -18,195 +19,199 @@ type JoggingJointRotationControlProps = {
18
19
  disabled?: boolean
19
20
  } & React.ComponentProps<typeof Stack>
20
21
 
21
- export const JoggingJointRotationControl = observer(
22
- ({
23
- startJogging,
24
- stopJogging,
25
- lowerLimitDegs,
26
- upperLimitDegs,
27
- getValueDegs,
28
- disabled,
29
- ...rest
30
- }: JoggingJointRotationControlProps) => {
31
- const { t } = useTranslation()
32
- const [currentValue, setCurrentValue] = useState<number | undefined>()
33
-
34
- const state = useLocalObservable(() => ({
35
- activeJoggingDir: null as "-" | "+" | null,
36
-
37
- startJogging(dir: "-" | "+") {
38
- this.activeJoggingDir = dir
39
- startJogging(dir)
40
- },
41
-
42
- stopJogging() {
43
- this.activeJoggingDir = null
44
- stopJogging()
45
- },
46
- }))
47
-
48
- const updateValue = throttle(() => {
49
- setCurrentValue(getValueDegs())
50
- }, 50)
51
-
52
- useAnimationFrame(updateValue)
53
-
54
- function onPointerDownMinus(ev: React.PointerEvent) {
55
- // Stop right click from triggering jog
56
- if (ev.button === 0) state.startJogging("-")
57
- }
58
-
59
- function onPointerDownPlus(ev: React.PointerEvent) {
60
- if (ev.button === 0) state.startJogging("+")
61
- }
62
-
63
- function onPointerUp(ev: React.PointerEvent) {
64
- state.stopJogging()
65
- }
66
-
67
- function onPointerOut(ev: React.PointerEvent) {
68
- // Prevent subelements of button from stopping jogging
69
- if (ev.target !== ev.currentTarget) return
70
-
71
- state.stopJogging()
72
- }
73
-
74
- function formatDegrees(value: number | undefined, precision = 1) {
75
- if (value === undefined || isNaN(value)) return ""
76
-
77
- const output = t("General.degree.variable", {
78
- amount: value.toFixed(precision),
79
- })
80
-
81
- if (value > 0 && precision === 0) {
82
- return `+${output}`
83
- } else {
84
- return output
22
+ export const JoggingJointRotationControl = externalizeComponent(
23
+ observer(
24
+ ({
25
+ startJogging,
26
+ stopJogging,
27
+ lowerLimitDegs,
28
+ upperLimitDegs,
29
+ getValueDegs,
30
+ disabled,
31
+ ...rest
32
+ }: JoggingJointRotationControlProps) => {
33
+ const { t } = useTranslation()
34
+ const [currentValue, setCurrentValue] = useState<number | undefined>()
35
+
36
+ const state = useLocalObservable(() => ({
37
+ activeJoggingDir: null as "-" | "+" | null,
38
+
39
+ startJogging(dir: "-" | "+") {
40
+ this.activeJoggingDir = dir
41
+ startJogging(dir)
42
+ },
43
+
44
+ stopJogging() {
45
+ this.activeJoggingDir = null
46
+ stopJogging()
47
+ },
48
+ }))
49
+
50
+ const updateValue = throttle(() => {
51
+ setCurrentValue(getValueDegs())
52
+ }, 50)
53
+
54
+ useAnimationFrame(updateValue)
55
+
56
+ function onPointerDownMinus(ev: React.PointerEvent) {
57
+ // Stop right click from triggering jog
58
+ if (ev.button === 0) state.startJogging("-")
85
59
  }
86
- }
87
-
88
- return (
89
- <Stack
90
- height="64px"
91
- width="100%"
92
- maxWidth="300px"
93
- direction="row"
94
- {...rest}
95
- sx={{
96
- "& .MuiIconButton-root": {
97
- width: "52px",
98
- color: "white",
99
- alignContent: "center",
100
- backgroundColor: "#38445A",
101
- "&:disabled": {
102
- opacity: 0.5,
103
- backgroundColor: "#38445A",
104
- },
105
- "& svg": {
106
- width: "42px",
107
- height: "42px",
108
- },
109
- },
110
- }}
111
- >
112
- <IconButton
113
- onPointerDown={onPointerDownMinus}
114
- onPointerUp={onPointerUp}
115
- onPointerOut={onPointerOut}
116
- disabled={disabled}
117
- sx={{
118
- borderRadius: "16px 0px 0px 16px",
119
- backgroundColor:
120
- state.activeJoggingDir === "-" ? "#495975" : undefined,
121
- }}
122
- >
123
- <ChevronLeft />
124
- </IconButton>
125
60
 
61
+ function onPointerDownPlus(ev: React.PointerEvent) {
62
+ if (ev.button === 0) state.startJogging("+")
63
+ }
64
+
65
+ function onPointerUp(ev: React.PointerEvent) {
66
+ state.stopJogging()
67
+ }
68
+
69
+ function onPointerOut(ev: React.PointerEvent) {
70
+ // Prevent subelements of button from stopping jogging
71
+ if (ev.target !== ev.currentTarget) return
72
+
73
+ state.stopJogging()
74
+ }
75
+
76
+ function formatDegrees(value: number | undefined, precision = 1) {
77
+ if (value === undefined || isNaN(value)) return ""
78
+
79
+ const output = t("General.degree.variable", {
80
+ amount: value.toFixed(precision),
81
+ })
82
+
83
+ if (value > 0 && precision === 0) {
84
+ return `+${output}`
85
+ } else {
86
+ return output
87
+ }
88
+ }
89
+
90
+ return (
126
91
  <Stack
127
- flexGrow={1}
128
- alignItems="center"
129
- justifyContent="center"
92
+ height="64px"
93
+ width="100%"
94
+ maxWidth="300px"
95
+ direction="row"
96
+ {...rest}
130
97
  sx={{
131
- borderStyle: "solid",
132
- borderLeftWidth: 0,
133
- borderRightWidth: 0,
134
- borderTopWidth: "4px",
135
- borderBottomWidth: "4px",
136
- backgroundColor: "#38445A",
137
- borderColor: "#38445A",
138
- paddingLeft: "20px",
139
- paddingRight: "20px",
140
- zIndex: 1,
98
+ "& .MuiIconButton-root": {
99
+ width: "52px",
100
+ color: "white",
101
+ alignContent: "center",
102
+ backgroundColor: "#38445A",
103
+ "&:disabled": {
104
+ opacity: 0.5,
105
+ backgroundColor: "#38445A",
106
+ },
107
+ "& svg": {
108
+ width: "42px",
109
+ height: "42px",
110
+ },
111
+ },
141
112
  }}
142
113
  >
143
- <Typography
114
+ <IconButton
115
+ onPointerDown={onPointerDownMinus}
116
+ onPointerUp={onPointerUp}
117
+ onPointerOut={onPointerOut}
118
+ disabled={disabled}
144
119
  sx={{
145
- fontSize: "15px",
146
- position: "relative",
147
- top: "5px",
148
- color: "white",
120
+ borderRadius: "16px 0px 0px 16px",
121
+ backgroundColor:
122
+ state.activeJoggingDir === "-" ? "#495975" : undefined,
149
123
  }}
150
124
  >
151
- {formatDegrees(currentValue)}
152
- </Typography>
153
-
154
- <Slider
155
- disabled
156
- aria-label="Joint position"
157
- min={lowerLimitDegs}
158
- max={upperLimitDegs}
159
- value={currentValue || 0}
160
- track={false}
125
+ <ChevronLeft />
126
+ </IconButton>
127
+
128
+ <Stack
129
+ flexGrow={1}
130
+ alignItems="center"
131
+ justifyContent="center"
161
132
  sx={{
162
- "& .MuiSlider-mark": {
163
- display: "none",
164
- },
165
- "& .MuiSlider-thumb": {
166
- width: "5px",
167
- height: "10px",
168
- borderRadius: "2px",
169
- },
170
- "& .MuiSlider-markLabel": {
171
- top: "20px",
172
- fontSize: "12px",
173
- color: "white",
174
- },
175
- "& .MuiSlider-rail": {
176
- backgroundColor: "#1F283A",
177
- opacity: 1,
178
- },
133
+ borderStyle: "solid",
134
+ borderLeftWidth: 0,
135
+ borderRightWidth: 0,
136
+ borderTopWidth: "4px",
137
+ borderBottomWidth: "4px",
138
+ backgroundColor: "#38445A",
139
+ borderColor: "#38445A",
140
+ paddingLeft: "20px",
141
+ paddingRight: "20px",
142
+ zIndex: 1,
179
143
  }}
180
- marks={
181
- lowerLimitDegs !== undefined &&
182
- upperLimitDegs !== undefined && [
183
- {
184
- value: lowerLimitDegs,
185
- label: formatDegrees(lowerLimitDegs, 0),
144
+ >
145
+ <Typography
146
+ sx={{
147
+ fontSize: "15px",
148
+ position: "relative",
149
+ top: "5px",
150
+ color: "white",
151
+ }}
152
+ >
153
+ {formatDegrees(currentValue)}
154
+ </Typography>
155
+
156
+ <Slider
157
+ disabled
158
+ aria-label="Joint position"
159
+ min={lowerLimitDegs}
160
+ max={upperLimitDegs}
161
+ value={currentValue || 0}
162
+ track={false}
163
+ sx={{
164
+ "& .MuiSlider-mark": {
165
+ display: "none",
166
+ },
167
+ "& .MuiSlider-thumb": {
168
+ width: "5px",
169
+ height: "10px",
170
+ borderRadius: "2px",
171
+ },
172
+ "& .MuiSlider-markLabel": {
173
+ top: "20px",
174
+ fontSize: "12px",
175
+ color: "white",
186
176
  },
187
- {
188
- value: upperLimitDegs,
189
- label: formatDegrees(upperLimitDegs, 0),
177
+ "& .MuiSlider-rail": {
178
+ backgroundColor: "#1F283A",
179
+ opacity: 1,
190
180
  },
191
- ]
192
- }
193
- />
181
+ }}
182
+ marks={
183
+ lowerLimitDegs !== undefined &&
184
+ upperLimitDegs !== undefined && [
185
+ {
186
+ value: lowerLimitDegs,
187
+ label: formatDegrees(lowerLimitDegs, 0),
188
+ },
189
+ {
190
+ value: upperLimitDegs,
191
+ label: formatDegrees(upperLimitDegs, 0),
192
+ },
193
+ ]
194
+ }
195
+ />
196
+ </Stack>
197
+
198
+ <IconButton
199
+ onPointerDown={onPointerDownPlus}
200
+ onPointerUp={onPointerUp}
201
+ onPointerOut={onPointerOut}
202
+ disabled={disabled}
203
+ sx={{
204
+ borderRadius: "0px 16px 16px 0px",
205
+ backgroundColor:
206
+ state.activeJoggingDir === "+"
207
+ ? "#495975 !important"
208
+ : "#38445A",
209
+ }}
210
+ >
211
+ <ChevronRight />
212
+ </IconButton>
194
213
  </Stack>
195
-
196
- <IconButton
197
- onPointerDown={onPointerDownPlus}
198
- onPointerUp={onPointerUp}
199
- onPointerOut={onPointerOut}
200
- disabled={disabled}
201
- sx={{
202
- borderRadius: "0px 16px 16px 0px",
203
- backgroundColor:
204
- state.activeJoggingDir === "+" ? "#495975 !important" : "#38445A",
205
- }}
206
- >
207
- <ChevronRight />
208
- </IconButton>
209
- </Stack>
210
- )
211
- },
214
+ )
215
+ },
216
+ ),
212
217
  )