@wandelbots/wandelbots-js-react-components 5.4.1 → 5.4.2-pr.ci-pr-preview.586.f684aae

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 (200) hide show
  1. package/dist/3d.cjs.js +1 -1
  2. package/dist/3d.d.ts +1 -1
  3. package/dist/3d.d.ts.map +1 -1
  4. package/dist/3d.es.js +1 -1
  5. package/dist/MotionGroupVisualizer-B-e22qXF.cjs +2 -0
  6. package/dist/MotionGroupVisualizer-B-e22qXF.cjs.map +1 -0
  7. package/dist/MotionGroupVisualizer-CIASsBC6.js +1433 -0
  8. package/dist/MotionGroupVisualizer-CIASsBC6.js.map +1 -0
  9. package/dist/Setup.d.ts +1 -1
  10. package/dist/Setup.d.ts.map +1 -1
  11. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -1
  12. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -1
  13. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -1
  14. package/dist/components/AppHeader.d.ts +1 -1
  15. package/dist/components/AppHeader.d.ts.map +1 -1
  16. package/dist/components/ConsoleFilter.d.ts +1 -1
  17. package/dist/components/ConsoleFilter.d.ts.map +1 -1
  18. package/dist/components/CopyableText.d.ts.map +1 -1
  19. package/dist/components/CycleTimer/DefaultVariant.d.ts.map +1 -1
  20. package/dist/components/CycleTimer/SmallVariant.d.ts.map +1 -1
  21. package/dist/components/DataGrid.d.ts +1 -1
  22. package/dist/components/DataGrid.d.ts.map +1 -1
  23. package/dist/components/LoadingCover.d.ts.map +1 -1
  24. package/dist/components/LogPanel.d.ts +1 -1
  25. package/dist/components/LogPanel.d.ts.map +1 -1
  26. package/dist/components/LogViewer.d.ts +1 -1
  27. package/dist/components/LogViewer.d.ts.map +1 -1
  28. package/dist/components/ProgramControl.d.ts.map +1 -1
  29. package/dist/components/ProgramStateIndicator.d.ts.map +1 -1
  30. package/dist/components/RobotCard.d.ts.map +1 -1
  31. package/dist/components/RobotListItem.d.ts.map +1 -1
  32. package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -1
  33. package/dist/components/SelectableFab.d.ts +1 -1
  34. package/dist/components/SelectableFab.d.ts.map +1 -1
  35. package/dist/components/TabBar.d.ts +1 -1
  36. package/dist/components/TabBar.d.ts.map +1 -1
  37. package/dist/components/ThemeSelect.d.ts +1 -1
  38. package/dist/components/ThemeSelect.d.ts.map +1 -1
  39. package/dist/components/Timer/TimerDefaultVariant.d.ts.map +1 -1
  40. package/dist/components/Timer/TimerSmallVariant.d.ts.map +1 -1
  41. package/dist/components/TransparentOverlay.d.ts +2 -2
  42. package/dist/components/TransparentOverlay.d.ts.map +1 -1
  43. package/dist/components/VelocitySlider.d.ts +1 -1
  44. package/dist/components/VelocitySlider.d.ts.map +1 -1
  45. package/dist/components/experimental/utils/AdornedSelect.d.ts +1 -1
  46. package/dist/components/experimental/utils/AdornedSelect.d.ts.map +1 -1
  47. package/dist/components/jogging/JoggingBlocked.d.ts +1 -1
  48. package/dist/components/jogging/JoggingBlocked.d.ts.map +1 -1
  49. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -1
  50. package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -1
  51. package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +1 -1
  52. package/dist/components/jogging/JoggingJointLimitDetector.d.ts +1 -1
  53. package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -1
  54. package/dist/components/jogging/JoggingJointTab.d.ts +2 -2
  55. package/dist/components/jogging/JoggingJointTab.d.ts.map +1 -1
  56. package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -1
  57. package/dist/components/jogging/JoggingOptions.d.ts.map +1 -1
  58. package/dist/components/jogging/JoggingPanel.d.ts +1 -1
  59. package/dist/components/jogging/JoggingPanel.d.ts.map +1 -1
  60. package/dist/components/jogging/JoggingStore.d.ts +1 -1
  61. package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
  62. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +1 -1
  63. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +1 -1
  64. package/dist/components/jogging/JoggingVelocitySlider.d.ts +1 -1
  65. package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +1 -1
  66. package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -1
  67. package/dist/components/jogging/PoseJointValues.d.ts.map +1 -1
  68. package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -1
  69. package/dist/components/robots/DHLinearAxis.d.ts.map +1 -1
  70. package/dist/components/robots/DHRobot.d.ts.map +1 -1
  71. package/dist/components/robots/GenericRobot.d.ts +1 -1
  72. package/dist/components/robots/GenericRobot.d.ts.map +1 -1
  73. package/dist/components/robots/LinearAxisAnimator.d.ts +1 -1
  74. package/dist/components/robots/LinearAxisAnimator.d.ts.map +1 -1
  75. package/dist/components/robots/MotionGroupVisualizer.d.ts +2 -2
  76. package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -1
  77. package/dist/components/robots/RobotAnimator.d.ts +1 -1
  78. package/dist/components/robots/RobotAnimator.d.ts.map +1 -1
  79. package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -1
  80. package/dist/components/robots/SupportedRobot.d.ts.map +1 -1
  81. package/dist/components/robots/robotModelLogic.d.ts.map +1 -1
  82. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -1
  83. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -1
  84. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +2 -1
  85. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -1
  86. package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -1
  87. package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -1
  88. package/dist/components/safetyBar/SafetyBar.d.ts +1 -1
  89. package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -1
  90. package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -1
  91. package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -1
  92. package/dist/components/utils/converters.d.ts +2 -2
  93. package/dist/components/utils/converters.d.ts.map +1 -1
  94. package/dist/components/utils/hooks.d.ts.map +1 -1
  95. package/dist/components/utils/interpolation.d.ts.map +1 -1
  96. package/dist/core.cjs.js +1 -1
  97. package/dist/core.es.js +2 -2
  98. package/dist/externalizeComponent.d.ts.map +1 -1
  99. package/dist/icons/DropdownArrowIcon.d.ts +1 -1
  100. package/dist/icons/DropdownArrowIcon.d.ts.map +1 -1
  101. package/dist/index.cjs.js +1 -1
  102. package/dist/index.es.js +3 -3
  103. package/dist/interpolation-BIB6FC35.cjs +198 -0
  104. package/dist/interpolation-BIB6FC35.cjs.map +1 -0
  105. package/dist/interpolation-lSTX6ZXZ.js +14559 -0
  106. package/dist/interpolation-lSTX6ZXZ.js.map +1 -0
  107. package/dist/lib/JoggerConnection.d.ts +1 -1
  108. package/dist/lib/JoggerConnection.d.ts.map +1 -1
  109. package/dist/themes/createDarkTheme.d.ts +1 -1
  110. package/dist/themes/createDarkTheme.d.ts.map +1 -1
  111. package/dist/themes/createLightTheme.d.ts +1 -1
  112. package/dist/themes/createLightTheme.d.ts.map +1 -1
  113. package/dist/theming-D_pShDEg.js +32236 -0
  114. package/dist/theming-D_pShDEg.js.map +1 -0
  115. package/dist/theming-L5E8VSae.cjs +84 -0
  116. package/dist/theming-L5E8VSae.cjs.map +1 -0
  117. package/package.json +4 -3
  118. package/src/3d.ts +2 -2
  119. package/src/Setup.tsx +2 -6
  120. package/src/components/3d-viewport/PresetEnvironment.tsx +1 -0
  121. package/src/components/3d-viewport/SafetyZonesRenderer.tsx +43 -23
  122. package/src/components/3d-viewport/TrajectoryRenderer.tsx +1 -1
  123. package/src/components/3d-viewport/collider/ColliderCollection.tsx +3 -2
  124. package/src/components/AppHeader.tsx +9 -12
  125. package/src/components/ConsoleFilter.tsx +1 -1
  126. package/src/components/CopyableText.tsx +4 -1
  127. package/src/components/CycleTimer/DefaultVariant.tsx +8 -5
  128. package/src/components/CycleTimer/SmallVariant.tsx +3 -1
  129. package/src/components/DataGrid.tsx +4 -1
  130. package/src/components/LoadingCover.tsx +4 -1
  131. package/src/components/LogPanel.tsx +1 -1
  132. package/src/components/LogViewer.tsx +13 -17
  133. package/src/components/ProgramControl.tsx +7 -2
  134. package/src/components/ProgramStateIndicator.tsx +3 -2
  135. package/src/components/RobotCard.tsx +6 -1
  136. package/src/components/RobotListItem.tsx +4 -1
  137. package/src/components/RobotSetupReadinessIndicator.tsx +4 -2
  138. package/src/components/SelectableFab.tsx +2 -2
  139. package/src/components/TabBar.tsx +7 -3
  140. package/src/components/ThemeSelect.tsx +2 -1
  141. package/src/components/Timer/TimerDefaultVariant.tsx +9 -6
  142. package/src/components/Timer/TimerSmallVariant.tsx +2 -1
  143. package/src/components/Timer/useTimerLogic.ts +9 -9
  144. package/src/components/TransparentOverlay.tsx +2 -2
  145. package/src/components/VelocitySlider.tsx +3 -1
  146. package/src/components/experimental/utils/AdornedSelect.tsx +4 -8
  147. package/src/components/jogging/JoggingBlocked.tsx +6 -2
  148. package/src/components/jogging/JoggingCartesianAxisControl.tsx +5 -7
  149. package/src/components/jogging/JoggingCartesianTab.tsx +6 -8
  150. package/src/components/jogging/JoggingFreedriveTab.tsx +1 -2
  151. package/src/components/jogging/JoggingJointLimitDetector.tsx +41 -43
  152. package/src/components/jogging/JoggingJointTab.tsx +12 -20
  153. package/src/components/jogging/JoggingJointValueControl.tsx +44 -30
  154. package/src/components/jogging/JoggingOptions.tsx +143 -139
  155. package/src/components/jogging/JoggingPanel.test.tsx +77 -85
  156. package/src/components/jogging/JoggingPanel.tsx +10 -13
  157. package/src/components/jogging/JoggingStore.ts +18 -13
  158. package/src/components/jogging/JoggingToggleButtonGroup.tsx +3 -3
  159. package/src/components/jogging/JoggingVelocitySlider.tsx +2 -10
  160. package/src/components/jogging/PoseCartesianValues.tsx +2 -1
  161. package/src/components/jogging/PoseJointValues.tsx +2 -1
  162. package/src/components/jogging/__fixtures__/motionStreamMockData.ts +0 -1
  163. package/src/components/modal/NoMotionGroupModal.tsx +7 -10
  164. package/src/components/robots/DHLinearAxis.tsx +62 -45
  165. package/src/components/robots/DHRobot.tsx +47 -45
  166. package/src/components/robots/GenericRobot.tsx +24 -24
  167. package/src/components/robots/LinearAxis.tsx +0 -1
  168. package/src/components/robots/LinearAxisAnimator.tsx +4 -1
  169. package/src/components/robots/MotionGroupVisualizer.tsx +53 -53
  170. package/src/components/robots/RobotAnimator.test.tsx +2 -2
  171. package/src/components/robots/RobotAnimator.tsx +4 -1
  172. package/src/components/robots/SupportedLinearAxis.tsx +10 -3
  173. package/src/components/robots/SupportedRobot.tsx +10 -3
  174. package/src/components/robots/robotModelLogic.ts +22 -11
  175. package/src/components/safetyBar/ControllerTypeIndicator.tsx +2 -1
  176. package/src/components/safetyBar/IndicatorWithExplanation.tsx +13 -11
  177. package/src/components/safetyBar/OperationModeIndicator.tsx +2 -1
  178. package/src/components/safetyBar/SafetyBar.tsx +3 -1
  179. package/src/components/safetyBar/SafetyStateIndicator.tsx +2 -1
  180. package/src/components/utils/converters.ts +10 -7
  181. package/src/components/utils/errorHandling.ts +1 -1
  182. package/src/components/utils/hooks.tsx +1 -0
  183. package/src/components/utils/interpolation.test.ts +53 -38
  184. package/src/components/utils/interpolation.ts +1 -0
  185. package/src/externalizeComponent.tsx +3 -1
  186. package/src/icons/DropdownArrowIcon.tsx +1 -2
  187. package/src/lib/JoggerConnection.ts +24 -24
  188. package/src/themes/createDarkTheme.ts +2 -3
  189. package/dist/MotionGroupVisualizer-1twp8wG6.js +0 -1328
  190. package/dist/MotionGroupVisualizer-1twp8wG6.js.map +0 -1
  191. package/dist/MotionGroupVisualizer-Dq_KWGsa.cjs +0 -2
  192. package/dist/MotionGroupVisualizer-Dq_KWGsa.cjs.map +0 -1
  193. package/dist/interpolation-B3pbgXYX.cjs +0 -42
  194. package/dist/interpolation-B3pbgXYX.cjs.map +0 -1
  195. package/dist/interpolation-D4ATdkEg.js +0 -7912
  196. package/dist/interpolation-D4ATdkEg.js.map +0 -1
  197. package/dist/theming-BJ6pB6jG.cjs +0 -115
  198. package/dist/theming-BJ6pB6jG.cjs.map +0 -1
  199. package/dist/theming-LwkvEF-K.js +0 -22417
  200. package/dist/theming-LwkvEF-K.js.map +0 -1
@@ -1,11 +1,7 @@
1
- import {
2
- FormControl,
3
- InputLabel,
4
- Select,
5
- styled,
6
- type SelectProps,
7
- } from "@mui/material"
8
-
1
+ import FormControl from "@mui/material/FormControl"
2
+ import InputLabel from "@mui/material/InputLabel"
3
+ import Select, { type SelectProps } from "@mui/material/Select"
4
+ import { styled } from "@mui/material/styles"
9
5
  const AdornedFormControl = styled(FormControl)(({ theme }) => ({
10
6
  "&.MuiFormControl-root": {
11
7
  ".MuiSelect-select": {
@@ -1,7 +1,11 @@
1
- import { Alert, AlertTitle, Backdrop, Button, Stack } from "@mui/material"
1
+ import Alert from "@mui/material/Alert"
2
+ import AlertTitle from "@mui/material/AlertTitle"
3
+ import Backdrop from "@mui/material/Backdrop"
4
+ import Button from "@mui/material/Button"
5
+ import Stack from "@mui/material/Stack"
2
6
  import { observer } from "mobx-react-lite"
3
7
  import { useTranslation } from "react-i18next"
4
- import { type JoggingStore } from "./JoggingStore"
8
+ import type { JoggingStore } from "./JoggingStore"
5
9
 
6
10
  export const JoggingBlocked = observer(({ store }: { store: JoggingStore }) => {
7
11
  const { t } = useTranslation()
@@ -1,4 +1,6 @@
1
- import { IconButton, Typography, useTheme } from "@mui/material"
1
+ import { useTheme } from "@mui/material/styles"
2
+ import IconButton from "@mui/material/IconButton"
3
+ import Typography from "@mui/material/Typography"
2
4
  import Stack from "@mui/material/Stack"
3
5
  import { observer } from "mobx-react-lite"
4
6
  import React, { useEffect, useRef, useState, type ReactNode } from "react"
@@ -46,6 +48,7 @@ export const JoggingCartesianAxisControl = externalizeComponent(
46
48
  useState<JoggingDirection | null>(null)
47
49
 
48
50
  // Trigger pointer "release" events because e.g. firefox does not trigger pointer events as soon as a component is disabled
51
+ // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code
49
52
  useEffect(() => {
50
53
  if (!disabled) {
51
54
  return
@@ -137,12 +140,7 @@ export const JoggingCartesianAxisControl = externalizeComponent(
137
140
  }
138
141
 
139
142
  return (
140
- <Stack
141
- height="64px"
142
- direction="row"
143
- justifyContent="center"
144
- {...rest}
145
- >
143
+ <Stack height="64px" direction="row" justifyContent="center" {...rest}>
146
144
  <IconButton
147
145
  disabled={disabled}
148
146
  disableRipple
@@ -1,11 +1,8 @@
1
- import {
2
- Divider,
3
- Stack,
4
- ToggleButton,
5
- Typography,
6
- useTheme,
7
- type Theme,
8
- } from "@mui/material"
1
+ import { useTheme, type Theme } from "@mui/material/styles"
2
+ import Divider from "@mui/material/Divider"
3
+ import Stack from "@mui/material/Stack"
4
+ import ToggleButton from "@mui/material/ToggleButton"
5
+ import Typography from "@mui/material/Typography"
9
6
  import {
10
7
  degreesToRadians,
11
8
  radiansToDegrees,
@@ -65,6 +62,7 @@ export const JoggingCartesianTab = observer(
65
62
  ),
66
63
  )
67
64
  },
65
+ // biome-ignore lint/suspicious/noExplicitAny: pre-biome code
68
66
  { fireImmediately: true } as any,
69
67
  )
70
68
 
@@ -1,5 +1,4 @@
1
- import { Stack } from "@mui/material"
2
-
1
+ import Stack from "@mui/material/Stack"
3
2
  export const JoggingFreedriveTab = () => {
4
3
  return (
5
4
  <Stack height={"300px"} alignItems={"center"} justifyContent={"center"}>
@@ -1,4 +1,4 @@
1
- import { Typography } from "@mui/material"
1
+ import Typography from "@mui/material/Typography"
2
2
  import { observer } from "mobx-react-lite"
3
3
  import isEqual from "lodash-es/isEqual"
4
4
  import { useRef, useState } from "react"
@@ -10,50 +10,48 @@ import type { JoggingStore } from "./JoggingStore"
10
10
  * Monitors the active robot motion state and displays a message if
11
11
  * any joint limits are reached.
12
12
  */
13
- export const JoggingJointLimitDetector = observer(({
14
- store,
15
- }: {
16
- store: JoggingStore
17
- }) => {
18
- const { t } = useTranslation()
13
+ export const JoggingJointLimitDetector = observer(
14
+ ({ store }: { store: JoggingStore }) => {
15
+ const { t } = useTranslation()
19
16
 
20
- const [jointLimitsReached, setJointLimitsReached] = useState(
21
- store.jogger.motionStream.rapidlyChangingMotionState
22
- .joint_limit_reached.limit_reached,
23
- )
24
- const jointLimitsReachedRef = useRef(jointLimitsReached)
17
+ const [jointLimitsReached, setJointLimitsReached] = useState(
18
+ store.jogger.motionStream.rapidlyChangingMotionState.joint_limit_reached
19
+ .limit_reached,
20
+ )
21
+ const jointLimitsReachedRef = useRef(jointLimitsReached)
25
22
 
26
- useAnimationFrame(() => {
27
- const newLimitsReached =
28
- store.jogger.motionStream.rapidlyChangingMotionState
29
- .joint_limit_reached.limit_reached
23
+ useAnimationFrame(() => {
24
+ const newLimitsReached =
25
+ store.jogger.motionStream.rapidlyChangingMotionState.joint_limit_reached
26
+ .limit_reached
30
27
 
31
- if (!isEqual(jointLimitsReachedRef.current, newLimitsReached)) {
32
- jointLimitsReachedRef.current = newLimitsReached
33
- setJointLimitsReached(newLimitsReached)
34
- }
35
- })
28
+ if (!isEqual(jointLimitsReachedRef.current, newLimitsReached)) {
29
+ jointLimitsReachedRef.current = newLimitsReached
30
+ setJointLimitsReached(newLimitsReached)
31
+ }
32
+ })
36
33
 
37
- const jointLimitReachedIndices: number[] = []
38
- for (const [index, limitReached] of jointLimitsReached.entries()) {
39
- if (limitReached) jointLimitReachedIndices.push(index)
40
- }
34
+ const jointLimitReachedIndices: number[] = []
35
+ for (const [index, limitReached] of jointLimitsReached.entries()) {
36
+ if (limitReached) jointLimitReachedIndices.push(index)
37
+ }
41
38
 
42
- return (
43
- <Typography
44
- data-testid="jogging-joint-limit-detector"
45
- aria-label="jogging-joint-limit-detector"
46
- color="error"
47
- sx={{
48
- margin: "0.5rem 1rem",
49
- textAlign: "center",
50
- minHeight: "1.5rem",
51
- visibility: jointLimitReachedIndices.length ? "visible" : "hidden",
52
- }}
53
- >
54
- {t("Jogging.JointLimitsReached.lb", {
55
- jointNumbers: jointLimitReachedIndices.map((i) => i + 1).join(", "),
56
- })}
57
- </Typography>
58
- )
59
- })
39
+ return (
40
+ <Typography
41
+ data-testid="jogging-joint-limit-detector"
42
+ aria-label="jogging-joint-limit-detector"
43
+ color="error"
44
+ sx={{
45
+ margin: "0.5rem 1rem",
46
+ textAlign: "center",
47
+ minHeight: "1.5rem",
48
+ visibility: jointLimitReachedIndices.length ? "visible" : "hidden",
49
+ }}
50
+ >
51
+ {t("Jogging.JointLimitsReached.lb", {
52
+ jointNumbers: jointLimitReachedIndices.map((i) => i + 1).join(", "),
53
+ })}
54
+ </Typography>
55
+ )
56
+ },
57
+ )
@@ -1,19 +1,21 @@
1
- import { Divider, Stack, Typography, useTheme } from "@mui/material"
1
+ import { useTheme } from "@mui/material/styles"
2
+ import Divider from "@mui/material/Divider"
3
+ import Stack from "@mui/material/Stack"
4
+ import Typography from "@mui/material/Typography"
5
+ import { JointTypeEnum } from "@wandelbots/nova-js/v2"
2
6
  import { observer } from "mobx-react-lite"
3
7
  import type { ReactNode } from "react"
4
8
  import { JoggingJointLimitDetector } from "./JoggingJointLimitDetector"
5
9
  import { JoggingJointValueControl } from "./JoggingJointValueControl"
6
- import { type JoggingStore } from "./JoggingStore"
10
+ import type { JoggingStore } from "./JoggingStore"
7
11
  import { JoggingVelocitySlider } from "./JoggingVelocitySlider"
8
- import { JointTypeEnum } from "@wandelbots/nova-js/v2"
9
-
10
12
 
11
13
  export const JoggingJointTab = observer(
12
- ({ store, children }: { store: JoggingStore; children: ReactNode }) => {
14
+ ({ store, children }: { store: JoggingStore; children?: ReactNode }) => {
13
15
  const theme = useTheme()
14
16
  async function startJointJogging(opts: {
15
17
  joint: number
16
- direction: "-" | "+",
18
+ direction: "-" | "+"
17
19
  }) {
18
20
  await store.activate()
19
21
 
@@ -21,14 +23,11 @@ export const JoggingJointTab = observer(
21
23
  joint: opts.joint,
22
24
  direction: opts.direction,
23
25
  velocityUnit:
24
- store.jointType === JointTypeEnum.PrismaticJoint
25
- ? "mm/s"
26
- : "rad/s",
26
+ store.jointType === JointTypeEnum.PrismaticJoint ? "mm/s" : "rad/s",
27
27
  velocityValue:
28
28
  store.jointType === JointTypeEnum.PrismaticJoint
29
29
  ? store.translationVelocityMmPerSec
30
30
  : store.rotationVelocityRadsPerSec,
31
-
32
31
  })
33
32
  }
34
33
 
@@ -47,9 +46,7 @@ export const JoggingJointTab = observer(
47
46
  >
48
47
  <JoggingVelocitySlider
49
48
  store={store}
50
- useDegree={
51
- store.jointType === JointTypeEnum.RevoluteJoint
52
- }
49
+ useDegree={store.jointType === JointTypeEnum.RevoluteJoint}
53
50
  />
54
51
 
55
52
  <Divider />
@@ -97,17 +94,12 @@ export const JoggingJointTab = observer(
97
94
  disabled={store.isLocked}
98
95
  lowerLimit={jointLimits?.lower_limit}
99
96
  upperLimit={jointLimits?.upper_limit}
100
- useDegree={
101
- store.jointType === JointTypeEnum.RevoluteJoint
102
- }
103
-
97
+ useDegree={store.jointType === JointTypeEnum.RevoluteJoint}
104
98
  getValue={() => {
105
99
  const value =
106
100
  store.jogger.motionStream.rapidlyChangingMotionState
107
101
  .joint_position[joint.index]
108
- return value !== undefined
109
- ? value
110
- : undefined
102
+ return value !== undefined ? value : undefined
111
103
  }}
112
104
  startJogging={(direction: "-" | "+") =>
113
105
  startJointJogging({
@@ -1,8 +1,11 @@
1
1
  import ChevronLeft from "@mui/icons-material/ChevronLeft"
2
2
  import ChevronRight from "@mui/icons-material/ChevronRight"
3
- import { radiansToDegrees } from "@wandelbots/nova-js"
4
- import { IconButton, Slider, Typography, useTheme } from "@mui/material"
3
+ import { useTheme } from "@mui/material/styles"
4
+ import IconButton from "@mui/material/IconButton"
5
+ import Slider from "@mui/material/Slider"
6
+ import Typography from "@mui/material/Typography"
5
7
  import Stack from "@mui/material/Stack"
8
+ import { radiansToDegrees } from "@wandelbots/nova-js"
6
9
  import throttle from "lodash-es/throttle"
7
10
  import { observer, useLocalObservable } from "mobx-react-lite"
8
11
  import { useState } from "react"
@@ -24,15 +27,15 @@ type JoggingJointValueControlProps = {
24
27
  export const JoggingJointValueControl = externalizeComponent(
25
28
  observer(
26
29
  ({
27
- startJogging,
28
- stopJogging,
29
- lowerLimit,
30
- upperLimit,
31
- useDegree,
32
- getValue,
33
- disabled,
34
- ...rest
35
- }: JoggingJointValueControlProps) => {
30
+ startJogging,
31
+ stopJogging,
32
+ lowerLimit,
33
+ upperLimit,
34
+ useDegree,
35
+ getValue,
36
+ disabled,
37
+ ...rest
38
+ }: JoggingJointValueControlProps) => {
36
39
  const { t } = useTranslation()
37
40
  const [currentValue, setCurrentValue] = useState<number | undefined>()
38
41
  const theme = useTheme()
@@ -57,19 +60,23 @@ export const JoggingJointValueControl = externalizeComponent(
57
60
  }))
58
61
 
59
62
  const updateValue = throttle(() => {
60
- const newValue =useDegree ? convertToDegree(getValue()) : getValue();
61
- if(newValue === undefined || currentValue === undefined || Math.abs(currentValue - newValue) > 1e-9) {
63
+ const newValue = useDegree ? convertToDegree(getValue()) : getValue()
64
+ if (
65
+ newValue === undefined ||
66
+ currentValue === undefined ||
67
+ Math.abs(currentValue - newValue) > 1e-9
68
+ ) {
62
69
  setCurrentValue(newValue)
63
70
  }
64
71
  }, 50)
65
72
 
66
73
  useAnimationFrame(updateValue)
67
74
 
68
- function convertToDegree(value: number| undefined){
69
- if (value == undefined){
70
- return undefined;
75
+ function convertToDegree(value: number | undefined) {
76
+ if (value === undefined) {
77
+ return undefined
71
78
  }
72
- return radiansToDegrees(value);
79
+ return radiansToDegrees(value)
73
80
  }
74
81
 
75
82
  function onPointerDownMinus(ev: React.PointerEvent) {
@@ -90,7 +97,7 @@ export const JoggingJointValueControl = externalizeComponent(
90
97
  }
91
98
 
92
99
  function formatDegrees(value: number | undefined, precision = 1) {
93
- if (value === undefined || isNaN(value)) return ""
100
+ if (value === undefined || Number.isNaN(value)) return ""
94
101
 
95
102
  const output = t("General.degree.variable", {
96
103
  amount: value.toFixed(precision),
@@ -103,7 +110,7 @@ export const JoggingJointValueControl = externalizeComponent(
103
110
  }
104
111
  }
105
112
  function formatMm(value: number | undefined, precision = 1) {
106
- if (value === undefined || isNaN(value)) return ""
113
+ if (value === undefined || Number.isNaN(value)) return ""
107
114
 
108
115
  const output = t("General.mm.variable", {
109
116
  amount: value.toFixed(precision),
@@ -116,7 +123,6 @@ export const JoggingJointValueControl = externalizeComponent(
116
123
  }
117
124
  }
118
125
 
119
-
120
126
  return (
121
127
  <Stack
122
128
  height="64px"
@@ -164,8 +170,8 @@ export const JoggingJointValueControl = externalizeComponent(
164
170
  sx={{
165
171
  pointerEvents: "none",
166
172
  color:
167
- theme.componentsExt?.JoggingPanel?.JoggingJoint?.Joint
168
- ?.arrowColor,
173
+ theme.componentsExt?.JoggingPanel?.JoggingJoint?.Joint
174
+ ?.arrowColor,
169
175
  }}
170
176
  />
171
177
  </IconButton>
@@ -206,8 +212,8 @@ export const JoggingJointValueControl = externalizeComponent(
206
212
  <Slider
207
213
  disabled
208
214
  aria-label="Joint position"
209
- min={ useDegree ? convertToDegree(lowerLimit) : lowerLimit}
210
- max={ useDegree ? convertToDegree(upperLimit) : upperLimit}
215
+ min={useDegree ? convertToDegree(lowerLimit) : lowerLimit}
216
+ max={useDegree ? convertToDegree(upperLimit) : upperLimit}
211
217
  value={currentValue || 0}
212
218
  track={false}
213
219
  sx={{
@@ -238,12 +244,20 @@ export const JoggingJointValueControl = externalizeComponent(
238
244
  lowerLimit !== undefined &&
239
245
  upperLimit !== undefined && [
240
246
  {
241
- value: (useDegree ? convertToDegree(lowerLimit) : lowerLimit) as number,
242
- label: useDegree ? formatDegrees(convertToDegree(lowerLimit),0) : formatMm(lowerLimit),
247
+ value: (useDegree
248
+ ? convertToDegree(lowerLimit)
249
+ : lowerLimit) as number,
250
+ label: useDegree
251
+ ? formatDegrees(convertToDegree(lowerLimit), 0)
252
+ : formatMm(lowerLimit),
243
253
  },
244
254
  {
245
- value: (useDegree ? convertToDegree(upperLimit) : upperLimit) as number,
246
- label: useDegree ? formatDegrees(convertToDegree(upperLimit),0) : formatMm(upperLimit),
255
+ value: (useDegree
256
+ ? convertToDegree(upperLimit)
257
+ : upperLimit) as number,
258
+ label: useDegree
259
+ ? formatDegrees(convertToDegree(upperLimit), 0)
260
+ : formatMm(upperLimit),
247
261
  },
248
262
  ]
249
263
  }
@@ -265,8 +279,8 @@ export const JoggingJointValueControl = externalizeComponent(
265
279
  sx={{
266
280
  pointerEvents: "none",
267
281
  color:
268
- theme.componentsExt?.JoggingPanel?.JoggingJoint?.Joint
269
- ?.arrowColor,
282
+ theme.componentsExt?.JoggingPanel?.JoggingJoint?.Joint
283
+ ?.arrowColor,
270
284
  }}
271
285
  />
272
286
  </IconButton>