@wandelbots/wandelbots-js-react-components 5.5.1-pr.fix-standardize-output.591.60112ee → 5.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d.cjs +2 -1
- package/dist/3d.cjs.map +1 -0
- package/dist/3d.d.ts +1 -0
- package/dist/3d.d.ts.map +1 -0
- package/dist/3d.js +1 -0
- package/dist/3d.js.map +1 -0
- package/dist/Setup.d.ts +1 -0
- package/dist/Setup.d.ts.map +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.js +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -1
- package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
- package/dist/components/AppHeader.cjs +2 -1
- package/dist/components/AppHeader.cjs.map +1 -0
- package/dist/components/AppHeader.d.ts +1 -0
- package/dist/components/AppHeader.d.ts.map +1 -0
- package/dist/components/AppHeader.js +34 -40
- package/dist/components/AppHeader.js.map +1 -0
- package/dist/components/ConsoleFilter.cjs +1 -0
- package/dist/components/ConsoleFilter.cjs.map +1 -0
- package/dist/components/ConsoleFilter.d.ts +1 -0
- package/dist/components/ConsoleFilter.d.ts.map +1 -0
- package/dist/components/ConsoleFilter.js +1 -0
- package/dist/components/ConsoleFilter.js.map +1 -0
- package/dist/components/CopyableText.cjs +1 -0
- package/dist/components/CopyableText.cjs.map +1 -0
- package/dist/components/CopyableText.d.ts +1 -0
- package/dist/components/CopyableText.d.ts.map +1 -0
- package/dist/components/CopyableText.js +1 -0
- package/dist/components/CopyableText.js.map +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.cjs +2 -1
- package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.d.ts +1 -0
- package/dist/components/CycleTimer/DefaultVariant.d.ts.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.d.ts +1 -0
- package/dist/components/CycleTimer/SmallVariant.d.ts.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.js +1 -0
- package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
- package/dist/components/CycleTimer/index.cjs +2 -1
- package/dist/components/CycleTimer/index.cjs.map +1 -0
- package/dist/components/CycleTimer/index.d.ts +1 -0
- package/dist/components/CycleTimer/index.d.ts.map +1 -0
- package/dist/components/CycleTimer/index.js +2 -1
- package/dist/components/CycleTimer/index.js.map +1 -0
- package/dist/components/CycleTimer/types.d.ts +1 -0
- package/dist/components/CycleTimer/types.d.ts.map +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
- package/dist/components/CycleTimer/useAnimations.d.ts +1 -0
- package/dist/components/CycleTimer/useAnimations.d.ts.map +1 -0
- package/dist/components/CycleTimer/useAnimations.js +2 -9
- package/dist/components/CycleTimer/useAnimations.js.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.cjs +2 -1
- package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.d.ts +1 -0
- package/dist/components/CycleTimer/useTimerLogic.d.ts.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
- package/dist/components/CycleTimer/utils.cjs +2 -1
- package/dist/components/CycleTimer/utils.cjs.map +1 -0
- package/dist/components/CycleTimer/utils.d.ts +1 -0
- package/dist/components/CycleTimer/utils.d.ts.map +1 -0
- package/dist/components/CycleTimer/utils.js +11 -19
- package/dist/components/CycleTimer/utils.js.map +1 -0
- package/dist/components/CycleTimer.cjs +1 -0
- package/dist/components/CycleTimer.cjs.map +1 -0
- package/dist/components/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer.d.ts.map +1 -0
- package/dist/components/CycleTimer.js +1 -0
- package/dist/components/CycleTimer.js.map +1 -0
- package/dist/components/DataGrid.cjs +2 -1
- package/dist/components/DataGrid.cjs.map +1 -0
- package/dist/components/DataGrid.d.ts +1 -0
- package/dist/components/DataGrid.d.ts.map +1 -0
- package/dist/components/DataGrid.js +2 -1
- package/dist/components/DataGrid.js.map +1 -0
- package/dist/components/LoadingCover.cjs +2 -1
- package/dist/components/LoadingCover.cjs.map +1 -0
- package/dist/components/LoadingCover.d.ts +1 -0
- package/dist/components/LoadingCover.d.ts.map +1 -0
- package/dist/components/LoadingCover.js +1 -0
- package/dist/components/LoadingCover.js.map +1 -0
- package/dist/components/LogPanel.cjs +2 -1
- package/dist/components/LogPanel.cjs.map +1 -0
- package/dist/components/LogPanel.d.ts +1 -0
- package/dist/components/LogPanel.d.ts.map +1 -0
- package/dist/components/LogPanel.js +2 -1
- package/dist/components/LogPanel.js.map +1 -0
- package/dist/components/LogStore.cjs +1 -0
- package/dist/components/LogStore.cjs.map +1 -0
- package/dist/components/LogStore.d.ts +1 -0
- package/dist/components/LogStore.d.ts.map +1 -0
- package/dist/components/LogStore.js +1 -0
- package/dist/components/LogStore.js.map +1 -0
- package/dist/components/LogViewer.cjs +2 -1
- package/dist/components/LogViewer.cjs.map +1 -0
- package/dist/components/LogViewer.d.ts +1 -0
- package/dist/components/LogViewer.d.ts.map +1 -0
- package/dist/components/LogViewer.js +2 -1
- package/dist/components/LogViewer.js.map +1 -0
- package/dist/components/ProgramControl.cjs +2 -1
- package/dist/components/ProgramControl.cjs.map +1 -0
- package/dist/components/ProgramControl.d.ts +1 -0
- package/dist/components/ProgramControl.d.ts.map +1 -0
- package/dist/components/ProgramControl.js +7 -6
- package/dist/components/ProgramControl.js.map +1 -0
- package/dist/components/ProgramStateIndicator.cjs +2 -1
- package/dist/components/ProgramStateIndicator.cjs.map +1 -0
- package/dist/components/ProgramStateIndicator.d.ts +1 -0
- package/dist/components/ProgramStateIndicator.d.ts.map +1 -0
- package/dist/components/ProgramStateIndicator.js +29 -28
- package/dist/components/ProgramStateIndicator.js.map +1 -0
- package/dist/components/RobotCard.cjs +2 -1
- package/dist/components/RobotCard.cjs.map +1 -0
- package/dist/components/RobotCard.d.ts +1 -0
- package/dist/components/RobotCard.d.ts.map +1 -0
- package/dist/components/RobotCard.js +2 -1
- package/dist/components/RobotCard.js.map +1 -0
- package/dist/components/RobotListItem.cjs +2 -1
- package/dist/components/RobotListItem.cjs.map +1 -0
- package/dist/components/RobotListItem.d.ts +1 -0
- package/dist/components/RobotListItem.d.ts.map +1 -0
- package/dist/components/RobotListItem.js +26 -25
- package/dist/components/RobotListItem.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.cjs +2 -1
- package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.js +2 -1
- package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts +2 -0
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts.map +1 -0
- package/dist/components/SelectableFab.cjs +1 -0
- package/dist/components/SelectableFab.cjs.map +1 -0
- package/dist/components/SelectableFab.d.ts +1 -0
- package/dist/components/SelectableFab.d.ts.map +1 -0
- package/dist/components/SelectableFab.js +1 -0
- package/dist/components/SelectableFab.js.map +1 -0
- package/dist/components/TabBar.cjs +2 -1
- package/dist/components/TabBar.cjs.map +1 -0
- package/dist/components/TabBar.d.ts +1 -0
- package/dist/components/TabBar.d.ts.map +1 -0
- package/dist/components/TabBar.js +2 -1
- package/dist/components/TabBar.js.map +1 -0
- package/dist/components/ThemeSelect.d.ts +1 -0
- package/dist/components/ThemeSelect.d.ts.map +1 -0
- package/dist/components/Timer/Timer.d.ts +1 -0
- package/dist/components/Timer/Timer.d.ts.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs +1 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.d.ts +1 -0
- package/dist/components/Timer/TimerDefaultVariant.d.ts.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.d.ts +1 -0
- package/dist/components/Timer/TimerSmallVariant.d.ts.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.js +1 -0
- package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
- package/dist/components/Timer/index.cjs +2 -1
- package/dist/components/Timer/index.cjs.map +1 -0
- package/dist/components/Timer/index.d.ts +1 -0
- package/dist/components/Timer/index.d.ts.map +1 -0
- package/dist/components/Timer/index.js +12 -11
- package/dist/components/Timer/index.js.map +1 -0
- package/dist/components/Timer/types.d.ts +1 -0
- package/dist/components/Timer/types.d.ts.map +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
- package/dist/components/Timer/useTimerAnimations.d.ts +1 -0
- package/dist/components/Timer/useTimerAnimations.d.ts.map +1 -0
- package/dist/components/Timer/useTimerAnimations.js +2 -5
- package/dist/components/Timer/useTimerAnimations.js.map +1 -0
- package/dist/components/Timer/useTimerLogic.cjs +1 -0
- package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
- package/dist/components/Timer/useTimerLogic.d.ts +1 -0
- package/dist/components/Timer/useTimerLogic.d.ts.map +1 -0
- package/dist/components/Timer/useTimerLogic.js +1 -0
- package/dist/components/Timer/useTimerLogic.js.map +1 -0
- package/dist/components/Timer/utils.cjs +2 -1
- package/dist/components/Timer/utils.cjs.map +1 -0
- package/dist/components/Timer/utils.d.ts +1 -0
- package/dist/components/Timer/utils.d.ts.map +1 -0
- package/dist/components/Timer/utils.js +10 -10
- package/dist/components/Timer/utils.js.map +1 -0
- package/dist/components/Timer.cjs +1 -0
- package/dist/components/Timer.cjs.map +1 -0
- package/dist/components/Timer.d.ts +1 -0
- package/dist/components/Timer.d.ts.map +1 -0
- package/dist/components/Timer.js +1 -0
- package/dist/components/Timer.js.map +1 -0
- package/dist/components/TransparentOverlay.d.ts +1 -0
- package/dist/components/TransparentOverlay.d.ts.map +1 -0
- package/dist/components/VelocitySlider.cjs +1 -0
- package/dist/components/VelocitySlider.cjs.map +1 -0
- package/dist/components/VelocitySlider.d.ts +1 -0
- package/dist/components/VelocitySlider.d.ts.map +1 -0
- package/dist/components/VelocitySlider.js +1 -0
- package/dist/components/VelocitySlider.js.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.d.ts +1 -0
- package/dist/components/experimental/utils/AdornedSelect.d.ts.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
- package/dist/components/jogging/JoggingBlocked.d.ts +1 -0
- package/dist/components/jogging/JoggingBlocked.d.ts.map +1 -0
- package/dist/components/jogging/JoggingBlocked.js +1 -0
- package/dist/components/jogging/JoggingBlocked.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.js +20 -18
- package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.cjs +2 -1
- package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.js +41 -37
- package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
- package/dist/components/jogging/JoggingJointTab.cjs +2 -1
- package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointTab.d.ts +1 -0
- package/dist/components/jogging/JoggingJointTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointTab.js +1 -0
- package/dist/components/jogging/JoggingJointTab.js.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.cjs +2 -1
- package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.js +2 -1
- package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
- package/dist/components/jogging/JoggingOptions.cjs +2 -1
- package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
- package/dist/components/jogging/JoggingOptions.d.ts +1 -0
- package/dist/components/jogging/JoggingOptions.d.ts.map +1 -0
- package/dist/components/jogging/JoggingOptions.js +1 -0
- package/dist/components/jogging/JoggingOptions.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.cjs +2 -1
- package/dist/components/jogging/JoggingPanel.cjs.map +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts.map +1 -0
- package/dist/components/jogging/JoggingPanel.js +119 -21
- package/dist/components/jogging/JoggingPanel.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.test.d.ts +2 -0
- package/dist/components/jogging/JoggingPanel.test.d.ts.map +1 -0
- package/dist/components/jogging/JoggingStore.cjs +1 -0
- package/dist/components/jogging/JoggingStore.cjs.map +1 -0
- package/dist/components/jogging/JoggingStore.d.ts +1 -0
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -0
- package/dist/components/jogging/JoggingStore.js +1 -0
- package/dist/components/jogging/JoggingStore.js.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.cjs +2 -1
- package/dist/components/jogging/PoseCartesianValues.cjs.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.js +5 -4
- package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
- package/dist/components/jogging/PoseJointValues.cjs +2 -1
- package/dist/components/jogging/PoseJointValues.cjs.map +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts.map +1 -0
- package/dist/components/jogging/PoseJointValues.js +2 -1
- package/dist/components/jogging/PoseJointValues.js.map +1 -0
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts +11 -0
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.js +1 -0
- package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
- package/dist/components/robots/AxisConfig.cjs +1 -0
- package/dist/components/robots/AxisConfig.cjs.map +1 -0
- package/dist/components/robots/AxisConfig.d.ts +1 -0
- package/dist/components/robots/AxisConfig.d.ts.map +1 -0
- package/dist/components/robots/AxisConfig.js +1 -0
- package/dist/components/robots/AxisConfig.js.map +1 -0
- package/dist/components/robots/DHLinearAxis.cjs +2 -1
- package/dist/components/robots/DHLinearAxis.cjs.map +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts.map +1 -0
- package/dist/components/robots/DHLinearAxis.js +1 -0
- package/dist/components/robots/DHLinearAxis.js.map +1 -0
- package/dist/components/robots/DHRobot.cjs +2 -1
- package/dist/components/robots/DHRobot.cjs.map +1 -0
- package/dist/components/robots/DHRobot.d.ts +1 -0
- package/dist/components/robots/DHRobot.d.ts.map +1 -0
- package/dist/components/robots/DHRobot.js +1 -0
- package/dist/components/robots/DHRobot.js.map +1 -0
- package/dist/components/robots/GenericRobot.cjs +1 -0
- package/dist/components/robots/GenericRobot.cjs.map +1 -0
- package/dist/components/robots/GenericRobot.d.ts +1 -0
- package/dist/components/robots/GenericRobot.d.ts.map +1 -0
- package/dist/components/robots/GenericRobot.js +1 -0
- package/dist/components/robots/GenericRobot.js.map +1 -0
- package/dist/components/robots/LinearAxis.cjs +2 -1
- package/dist/components/robots/LinearAxis.cjs.map +1 -0
- package/dist/components/robots/LinearAxis.d.ts +1 -0
- package/dist/components/robots/LinearAxis.d.ts.map +1 -0
- package/dist/components/robots/LinearAxis.js +1 -0
- package/dist/components/robots/LinearAxis.js.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.cjs +2 -1
- package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.d.ts +1 -0
- package/dist/components/robots/LinearAxisAnimator.d.ts.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.js +1 -0
- package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.cjs +2 -1
- package/dist/components/robots/MotionGroupVisualizer.cjs.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.js +5 -4
- package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
- package/dist/components/robots/Robot.cjs +2 -1
- package/dist/components/robots/Robot.cjs.map +1 -0
- package/dist/components/robots/Robot.d.ts +1 -0
- package/dist/components/robots/Robot.d.ts.map +1 -0
- package/dist/components/robots/Robot.js +1 -0
- package/dist/components/robots/Robot.js.map +1 -0
- package/dist/components/robots/RobotAnimator.cjs +2 -1
- package/dist/components/robots/RobotAnimator.cjs.map +1 -0
- package/dist/components/robots/RobotAnimator.d.ts +1 -0
- package/dist/components/robots/RobotAnimator.d.ts.map +1 -0
- package/dist/components/robots/RobotAnimator.js +1 -0
- package/dist/components/robots/RobotAnimator.js.map +1 -0
- package/dist/components/robots/RobotAnimator.test.d.ts +2 -0
- package/dist/components/robots/RobotAnimator.test.d.ts.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.cjs +2 -1
- package/dist/components/robots/SupportedLinearAxis.cjs.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.js +8 -7
- package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
- package/dist/components/robots/SupportedRobot.cjs +2 -1
- package/dist/components/robots/SupportedRobot.cjs.map +1 -0
- package/dist/components/robots/SupportedRobot.d.ts +1 -0
- package/dist/components/robots/SupportedRobot.d.ts.map +1 -0
- package/dist/components/robots/SupportedRobot.js +7 -6
- package/dist/components/robots/SupportedRobot.js.map +1 -0
- package/dist/components/robots/ghostStyle.cjs +1 -0
- package/dist/components/robots/ghostStyle.cjs.map +1 -0
- package/dist/components/robots/ghostStyle.d.ts +1 -0
- package/dist/components/robots/ghostStyle.d.ts.map +1 -0
- package/dist/components/robots/ghostStyle.js +1 -0
- package/dist/components/robots/ghostStyle.js.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.d.ts +1 -0
- package/dist/components/robots/manufacturerHomePositions.d.ts.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.js +1 -0
- package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
- package/dist/components/robots/robotModelLogic.cjs +2 -1
- package/dist/components/robots/robotModelLogic.cjs.map +1 -0
- package/dist/components/robots/robotModelLogic.d.ts +1 -0
- package/dist/components/robots/robotModelLogic.d.ts.map +1 -0
- package/dist/components/robots/robotModelLogic.js +34 -58
- package/dist/components/robots/robotModelLogic.js.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.js +12 -10
- package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -1
- package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.js +24 -21
- package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
- package/dist/components/safetyBar/SafetyBar.cjs +2 -1
- package/dist/components/safetyBar/SafetyBar.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -0
- package/dist/components/safetyBar/SafetyBar.js +16 -15
- package/dist/components/safetyBar/SafetyBar.js.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -1
- package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.js +30 -25
- package/dist/components/safetyBar/SafetyStateIndicator.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +3 -0
- package/dist/{chunks/controller-type-virtual-CWOoMRfl.js → components/safetyBar/icons/controller-type-physical.svg.js} +6 -10
- package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +11 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/index.d.ts +1 -0
- package/dist/components/safetyBar/icons/index.d.ts.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +1 -0
- package/dist/components/utils/converters.cjs +2 -1
- package/dist/components/utils/converters.cjs.map +1 -0
- package/dist/components/utils/converters.d.ts +1 -0
- package/dist/components/utils/converters.d.ts.map +1 -0
- package/dist/components/utils/converters.js +11 -26
- package/dist/components/utils/converters.js.map +1 -0
- package/dist/components/utils/errorHandling.cjs +2 -1
- package/dist/components/utils/errorHandling.cjs.map +1 -0
- package/dist/components/utils/errorHandling.d.ts +1 -0
- package/dist/components/utils/errorHandling.d.ts.map +1 -0
- package/dist/components/utils/errorHandling.js +9 -17
- package/dist/components/utils/errorHandling.js.map +1 -0
- package/dist/components/utils/errorHandling.test.d.ts +2 -0
- package/dist/components/utils/errorHandling.test.d.ts.map +1 -0
- package/dist/components/utils/hooks.cjs +1 -0
- package/dist/components/utils/hooks.cjs.map +1 -0
- package/dist/components/utils/hooks.d.ts +1 -0
- package/dist/components/utils/hooks.d.ts.map +1 -0
- package/dist/components/utils/hooks.js +4 -3
- package/dist/components/utils/hooks.js.map +1 -0
- package/dist/components/utils/interpolation.cjs +1 -0
- package/dist/components/utils/interpolation.cjs.map +1 -0
- package/dist/components/utils/interpolation.d.ts +1 -0
- package/dist/components/utils/interpolation.d.ts.map +1 -0
- package/dist/components/utils/interpolation.js +1 -0
- package/dist/components/utils/interpolation.js.map +1 -0
- package/dist/components/utils/interpolation.test.d.ts +2 -0
- package/dist/components/utils/interpolation.test.d.ts.map +1 -0
- package/dist/core.cjs +2 -1
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.ts +1 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +75 -70
- package/dist/core.js.map +1 -0
- package/dist/externalizeComponent.cjs +2 -0
- package/dist/externalizeComponent.cjs.map +1 -0
- package/dist/externalizeComponent.d.ts +1 -0
- package/dist/externalizeComponent.d.ts.map +1 -0
- package/dist/externalizeComponent.js +13 -0
- package/dist/externalizeComponent.js.map +1 -0
- package/dist/i18n/config.cjs +2 -0
- package/dist/i18n/config.cjs.map +1 -0
- package/dist/i18n/config.d.ts +1 -0
- package/dist/i18n/config.d.ts.map +1 -0
- package/dist/i18n/config.js +25 -0
- package/dist/i18n/config.js.map +1 -0
- package/dist/i18n/locales/de/translations.json.cjs +3 -0
- package/dist/i18n/locales/de/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/de/translations.json.js +94 -0
- package/dist/i18n/locales/de/translations.json.js.map +1 -0
- package/dist/i18n/locales/en/translations.json.cjs +2 -0
- package/dist/i18n/locales/en/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/en/translations.json.js +94 -0
- package/dist/i18n/locales/en/translations.json.js.map +1 -0
- package/dist/icons/DropdownArrowIcon.cjs +2 -0
- package/dist/icons/DropdownArrowIcon.cjs.map +1 -0
- package/dist/icons/DropdownArrowIcon.d.ts +1 -0
- package/dist/icons/DropdownArrowIcon.d.ts.map +1 -0
- package/dist/icons/DropdownArrowIcon.js +14 -0
- package/dist/icons/DropdownArrowIcon.js.map +1 -0
- package/dist/icons/axis-x.svg.cjs +2 -0
- package/dist/icons/axis-x.svg.cjs.map +1 -0
- package/dist/icons/axis-x.svg.d.ts +3 -0
- package/dist/icons/axis-x.svg.js +11 -0
- package/dist/icons/axis-x.svg.js.map +1 -0
- package/dist/icons/axis-y.svg.cjs +2 -0
- package/dist/icons/axis-y.svg.cjs.map +1 -0
- package/dist/icons/axis-y.svg.d.ts +3 -0
- package/dist/icons/axis-y.svg.js +11 -0
- package/dist/icons/axis-y.svg.js.map +1 -0
- package/dist/icons/axis-z.svg.cjs +2 -0
- package/dist/icons/axis-z.svg.cjs.map +1 -0
- package/dist/icons/axis-z.svg.d.ts +3 -0
- package/dist/icons/axis-z.svg.js +11 -0
- package/dist/icons/axis-z.svg.js.map +1 -0
- package/dist/icons/home.svg.cjs +2 -0
- package/dist/icons/home.svg.cjs.map +1 -0
- package/dist/icons/home.svg.d.ts +3 -0
- package/dist/icons/home.svg.js +11 -0
- package/dist/icons/home.svg.js.map +1 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/jog-minus.svg.cjs +2 -0
- package/dist/icons/jog-minus.svg.cjs.map +1 -0
- package/dist/icons/jog-minus.svg.d.ts +3 -0
- package/dist/icons/jog-minus.svg.js +11 -0
- package/dist/icons/jog-minus.svg.js.map +1 -0
- package/dist/icons/jog-plus.svg.cjs +2 -0
- package/dist/icons/jog-plus.svg.cjs.map +1 -0
- package/dist/icons/jog-plus.svg.d.ts +3 -0
- package/dist/icons/jog-plus.svg.js +11 -0
- package/dist/icons/jog-plus.svg.js.map +1 -0
- package/dist/icons/jogging.svg.cjs +2 -0
- package/dist/icons/jogging.svg.cjs.map +1 -0
- package/dist/icons/jogging.svg.d.ts +3 -0
- package/dist/icons/jogging.svg.js +11 -0
- package/dist/icons/jogging.svg.js.map +1 -0
- package/dist/icons/orientation-coord-system.svg.cjs +2 -0
- package/dist/icons/orientation-coord-system.svg.cjs.map +1 -0
- package/dist/icons/orientation-coord-system.svg.d.ts +3 -0
- package/dist/icons/orientation-coord-system.svg.js +11 -0
- package/dist/icons/orientation-coord-system.svg.js.map +1 -0
- package/dist/icons/orientation-tool.svg.cjs +2 -0
- package/dist/icons/orientation-tool.svg.cjs.map +1 -0
- package/dist/icons/orientation-tool.svg.d.ts +3 -0
- package/dist/icons/orientation-tool.svg.js +11 -0
- package/dist/icons/orientation-tool.svg.js.map +1 -0
- package/dist/icons/robot.svg.cjs +2 -0
- package/dist/icons/robot.svg.cjs.map +1 -0
- package/dist/icons/robot.svg.d.ts +3 -0
- package/dist/{chunks/robot-D97QEl_l.js → icons/robot.svg.js} +3 -2
- package/dist/icons/robot.svg.js.map +1 -0
- package/dist/icons/rotation.svg.cjs +2 -0
- package/dist/icons/rotation.svg.cjs.map +1 -0
- package/dist/icons/rotation.svg.d.ts +3 -0
- package/dist/icons/rotation.svg.js +11 -0
- package/dist/icons/rotation.svg.js.map +1 -0
- package/dist/icons/wbLogo.svg.cjs +2 -0
- package/dist/icons/wbLogo.svg.cjs.map +1 -0
- package/dist/icons/wbLogo.svg.d.ts +3 -0
- package/dist/icons/wbLogo.svg.js +11 -0
- package/dist/icons/wbLogo.svg.js.map +1 -0
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +140 -120
- package/dist/index.js.map +1 -0
- package/dist/lib/ConnectedMotionGroup.cjs +4 -0
- package/dist/lib/ConnectedMotionGroup.cjs.map +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -0
- package/dist/lib/ConnectedMotionGroup.js +250 -0
- package/dist/lib/ConnectedMotionGroup.js.map +1 -0
- package/dist/lib/JoggerConnection.cjs +2 -0
- package/dist/lib/JoggerConnection.cjs.map +1 -0
- package/dist/lib/JoggerConnection.d.ts +1 -0
- package/dist/lib/JoggerConnection.d.ts.map +1 -0
- package/dist/lib/JoggerConnection.js +342 -0
- package/dist/lib/JoggerConnection.js.map +1 -0
- package/dist/lib/JoggerConnection.test.d.ts +2 -0
- package/dist/lib/JoggerConnection.test.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.cjs +3 -0
- package/dist/lib/MotionStreamConnection.cjs.map +1 -0
- package/dist/lib/MotionStreamConnection.d.ts +1 -0
- package/dist/lib/MotionStreamConnection.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.js +94 -0
- package/dist/lib/MotionStreamConnection.js.map +1 -0
- package/dist/lib/MotionStreamConnection.test.d.ts +2 -0
- package/dist/lib/MotionStreamConnection.test.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.cjs +2 -0
- package/dist/lib/motionStateUpdate.cjs.map +1 -0
- package/dist/lib/motionStateUpdate.d.ts +1 -0
- package/dist/lib/motionStateUpdate.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.js +49 -0
- package/dist/lib/motionStateUpdate.js.map +1 -0
- package/dist/lib/motionStateUpdate.test.d.ts +2 -0
- package/dist/lib/motionStateUpdate.test.d.ts.map +1 -0
- package/dist/test/consumer.test.d.ts +2 -0
- package/dist/test/consumer.test.d.ts.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.cjs +2 -0
- package/dist/themes/createDarkTheme.cjs.map +1 -0
- package/dist/themes/createDarkTheme.d.ts +1 -0
- package/dist/themes/createDarkTheme.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.js +344 -0
- package/dist/themes/createDarkTheme.js.map +1 -0
- package/dist/themes/createLightTheme.cjs +2 -0
- package/dist/themes/createLightTheme.cjs.map +1 -0
- package/dist/themes/createLightTheme.d.ts +1 -0
- package/dist/themes/createLightTheme.d.ts.map +1 -0
- package/dist/themes/createLightTheme.js +9 -0
- package/dist/themes/createLightTheme.js.map +1 -0
- package/dist/themes/themeTypes.d.ts +1 -0
- package/dist/themes/themeTypes.d.ts.map +1 -0
- package/dist/themes/theming.cjs +2 -0
- package/dist/themes/theming.cjs.map +1 -0
- package/dist/themes/theming.d.ts +1 -0
- package/dist/themes/theming.d.ts.map +1 -0
- package/dist/themes/theming.js +14 -0
- package/dist/themes/theming.js.map +1 -0
- package/dist/wb-icons.cjs +2 -1
- package/dist/wb-icons.cjs.map +1 -0
- package/dist/wb-icons.d.ts +1 -0
- package/dist/wb-icons.d.ts.map +1 -0
- package/dist/wb-icons.js +44 -28
- package/dist/wb-icons.js.map +1 -0
- package/package.json +6 -5
- package/src/3d.ts +18 -0
- package/src/Setup.tsx +33 -0
- package/src/components/3d-viewport/CoordinateSystemTransform.tsx +57 -0
- package/src/components/3d-viewport/PresetEnvironment.tsx +81 -0
- package/src/components/3d-viewport/SafetyZonesRenderer.tsx +198 -0
- package/src/components/3d-viewport/TrajectoryRenderer.tsx +41 -0
- package/src/components/3d-viewport/collider/ColliderCollection.tsx +35 -0
- package/src/components/3d-viewport/collider/ColliderElement.tsx +36 -0
- package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +26 -0
- package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +48 -0
- package/src/components/AppHeader.md +84 -0
- package/src/components/AppHeader.tsx +197 -0
- package/src/components/ConsoleFilter.tsx +24 -0
- package/src/components/CopyableText.tsx +89 -0
- package/src/components/CycleTimer/CycleTimer.ts +8 -0
- package/src/components/CycleTimer/DefaultVariant.tsx +326 -0
- package/src/components/CycleTimer/SmallVariant.tsx +229 -0
- package/src/components/CycleTimer/index.tsx +158 -0
- package/src/components/CycleTimer/types.ts +58 -0
- package/src/components/CycleTimer/useAnimations.ts +202 -0
- package/src/components/CycleTimer/useTimerLogic.ts +330 -0
- package/src/components/CycleTimer/utils.ts +122 -0
- package/src/components/CycleTimer.tsx +8 -0
- package/src/components/DataGrid.tsx +664 -0
- package/src/components/LoadingCover.tsx +91 -0
- package/src/components/LogPanel.tsx +71 -0
- package/src/components/LogStore.ts +46 -0
- package/src/components/LogViewer.tsx +368 -0
- package/src/components/ProgramControl.tsx +267 -0
- package/src/components/ProgramStateIndicator.tsx +195 -0
- package/src/components/RobotCard.tsx +495 -0
- package/src/components/RobotListItem.tsx +155 -0
- package/src/components/RobotSetupReadinessIndicator.test.tsx +60 -0
- package/src/components/RobotSetupReadinessIndicator.tsx +161 -0
- package/src/components/SelectableFab.tsx +52 -0
- package/src/components/TabBar.tsx +325 -0
- package/src/components/ThemeSelect.tsx +51 -0
- package/src/components/Timer/Timer.ts +4 -0
- package/src/components/Timer/TimerDefaultVariant.tsx +143 -0
- package/src/components/Timer/TimerSmallVariant.tsx +141 -0
- package/src/components/Timer/index.tsx +103 -0
- package/src/components/Timer/types.ts +38 -0
- package/src/components/Timer/useTimerAnimations.ts +94 -0
- package/src/components/Timer/useTimerLogic.ts +214 -0
- package/src/components/Timer/utils.ts +87 -0
- package/src/components/Timer.ts +4 -0
- package/src/components/TransparentOverlay.tsx +28 -0
- package/src/components/VelocitySlider.tsx +117 -0
- package/src/components/experimental/utils/AdornedSelect.tsx +38 -0
- package/src/components/jogging/JoggingBlocked.tsx +43 -0
- package/src/components/jogging/JoggingCartesianAxisControl.tsx +237 -0
- package/src/components/jogging/JoggingCartesianTab.tsx +349 -0
- package/src/components/jogging/JoggingFreedriveTab.tsx +8 -0
- package/src/components/jogging/JoggingJointLimitDetector.tsx +57 -0
- package/src/components/jogging/JoggingJointTab.tsx +126 -0
- package/src/components/jogging/JoggingJointValueControl.tsx +293 -0
- package/src/components/jogging/JoggingOptions.tsx +163 -0
- package/src/components/jogging/JoggingPanel.test.tsx +645 -0
- package/src/components/jogging/JoggingPanel.tsx +204 -0
- package/src/components/jogging/JoggingStore.ts +485 -0
- package/src/components/jogging/JoggingToggleButtonGroup.tsx +25 -0
- package/src/components/jogging/JoggingVelocitySlider.tsx +39 -0
- package/src/components/jogging/PoseCartesianValues.tsx +55 -0
- package/src/components/jogging/PoseJointValues.tsx +54 -0
- package/src/components/jogging/__fixtures__/motionStreamMockData.ts +136 -0
- package/src/components/modal/NoMotionGroupModal.tsx +91 -0
- package/src/components/robots/AxisConfig.ts +3 -0
- package/src/components/robots/DHLinearAxis.tsx +147 -0
- package/src/components/robots/DHRobot.tsx +152 -0
- package/src/components/robots/GenericRobot.tsx +137 -0
- package/src/components/robots/LinearAxis.tsx +74 -0
- package/src/components/robots/LinearAxisAnimator.tsx +118 -0
- package/src/components/robots/MotionGroupVisualizer.tsx +73 -0
- package/src/components/robots/Robot.tsx +57 -0
- package/src/components/robots/RobotAnimator.test.tsx +98 -0
- package/src/components/robots/RobotAnimator.tsx +116 -0
- package/src/components/robots/SupportedLinearAxis.tsx +110 -0
- package/src/components/robots/SupportedRobot.tsx +111 -0
- package/src/components/robots/ghostStyle.ts +71 -0
- package/src/components/robots/manufacturerHomePositions.ts +76 -0
- package/src/components/robots/robotModelLogic.ts +158 -0
- package/src/components/safetyBar/ControllerTypeIndicator.tsx +79 -0
- package/src/components/safetyBar/IndicatorWithExplanation.tsx +137 -0
- package/src/components/safetyBar/OperationModeIndicator.tsx +98 -0
- package/src/components/safetyBar/SafetyBar.tsx +72 -0
- package/src/components/safetyBar/SafetyStateIndicator.tsx +163 -0
- package/src/components/safetyBar/icons/controller-type-physical.svg +1 -0
- package/src/components/safetyBar/icons/controller-type-virtual.svg +1 -0
- package/src/components/safetyBar/icons/index.ts +10 -0
- package/src/components/safetyBar/icons/operation-mode-automatic.svg +1 -0
- package/src/components/safetyBar/icons/operation-mode-error.svg +1 -0
- package/src/components/safetyBar/icons/operation-mode-manual.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-error.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-estop.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-manual-action-required.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-normal.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-stop.svg +1 -0
- package/src/components/utils/converters.ts +90 -0
- package/src/components/utils/errorHandling.test.ts +41 -0
- package/src/components/utils/errorHandling.ts +38 -0
- package/src/components/utils/hooks.tsx +55 -0
- package/src/components/utils/interpolation.test.ts +1138 -0
- package/src/components/utils/interpolation.ts +380 -0
- package/src/core.ts +33 -0
- package/src/declarations.d.ts +10 -0
- package/src/env.d.ts +3 -0
- package/src/externalizeComponent.tsx +28 -0
- package/src/i18n/config.ts +26 -0
- package/src/i18n/locales/de/translations.json +89 -0
- package/src/i18n/locales/en/translations.json +90 -0
- package/src/icons/DropdownArrowIcon.tsx +12 -0
- package/src/icons/axis-x.svg +1 -0
- package/src/icons/axis-y.svg +1 -0
- package/src/icons/axis-z.svg +1 -0
- package/src/icons/home.svg +1 -0
- package/src/icons/index.ts +12 -0
- package/src/icons/jog-minus.svg +5 -0
- package/src/icons/jog-plus.svg +9 -0
- package/src/icons/jogging.svg +1 -0
- package/src/icons/orientation-coord-system.svg +1 -0
- package/src/icons/orientation-tool.svg +1 -0
- package/src/icons/robot.svg +1 -0
- package/src/icons/rotation.svg +3 -0
- package/src/icons/wbLogo.svg +1 -0
- package/src/index.ts +4 -0
- package/src/lib/ConnectedMotionGroup.ts +441 -0
- package/src/lib/JoggerConnection.test.ts +122 -0
- package/src/lib/JoggerConnection.ts +694 -0
- package/src/lib/MotionStreamConnection.test.ts +23 -0
- package/src/lib/MotionStreamConnection.ts +186 -0
- package/src/lib/motionStateUpdate.test.ts +28 -0
- package/src/lib/motionStateUpdate.ts +117 -0
- package/src/test/consumer.test.ts +257 -0
- package/src/test/setup.ts +111 -0
- package/src/themes/createDarkTheme.ts +343 -0
- package/src/themes/createLightTheme.ts +8 -0
- package/src/themes/themeTypes.ts +96 -0
- package/src/themes/theming.ts +29 -0
- package/src/wb-icons.ts +3 -0
- package/dist/chunks/JoggingPanel-CQH_oXTB.js +0 -586
- package/dist/chunks/JoggingPanel-DZN2Y39k.cjs +0 -2
- package/dist/chunks/controller-type-virtual-BuJWQOvV.cjs +0 -1
- package/dist/chunks/externalizeComponent-DOwkaDcw.cjs +0 -2
- package/dist/chunks/externalizeComponent-eiCc5DIh.js +0 -209
- package/dist/chunks/jog-plus-CAUurv4S.js +0 -15
- package/dist/chunks/jog-plus-Dy1r7-r5.cjs +0 -1
- package/dist/chunks/operation-mode-manual-Di4Z1KM1.js +0 -20
- package/dist/chunks/operation-mode-manual-eHwVILeI.cjs +0 -1
- package/dist/chunks/robot-CrNbCELh.cjs +0 -1
- package/dist/chunks/rotation-CIOAnn9q.cjs +0 -1
- package/dist/chunks/rotation-Dm5YL3NM.js +0 -25
- package/dist/chunks/safety-state-stop-Bg0VUsM4.js +0 -30
- package/dist/chunks/safety-state-stop-CNxVYiap.cjs +0 -1
- package/dist/chunks/theming-Chx_tewl.cjs +0 -3
- package/dist/chunks/theming-Cw6qwBM7.js +0 -600
- package/dist/chunks/wbLogo-CObCmqTw.js +0 -30
- package/dist/chunks/wbLogo-G_IfZ03l.cjs +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.cjs +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.js +0 -37
- package/dist/components/CycleTimer/CycleTimer.cjs +0 -1
- package/dist/components/CycleTimer/CycleTimer.js +0 -5
- package/dist/components/CycleTimer/types.cjs +0 -1
- package/dist/components/CycleTimer/types.js +0 -1
- package/dist/components/ThemeSelect.cjs +0 -1
- package/dist/components/ThemeSelect.js +0 -38
- package/dist/components/Timer/Timer.cjs +0 -1
- package/dist/components/Timer/Timer.js +0 -5
- package/dist/components/Timer/types.cjs +0 -1
- package/dist/components/Timer/types.js +0 -1
- package/dist/components/TransparentOverlay.cjs +0 -1
- package/dist/components/TransparentOverlay.js +0 -26
- package/dist/components/jogging/JoggingFreedriveTab.cjs +0 -1
- package/dist/components/jogging/JoggingFreedriveTab.js +0 -6
- package/dist/components/safetyBar/icons/index.cjs +0 -1
- package/dist/components/safetyBar/icons/index.js +0 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoseJointValues.cjs","sources":["../../../src/components/jogging/PoseJointValues.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Stack from \"@mui/material/Stack\"\nimport { observer } from \"mobx-react-lite\"\nimport { useState } from \"react\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { CopyableText } from \"../CopyableText\"\n\nexport type PoseJointValuesProps = {\n joints: Array<number>\n showCopyButton?: boolean\n}\n\nexport const PoseJointValues = externalizeComponent(\n observer(({ joints, showCopyButton = false }: PoseJointValuesProps) => {\n const [copyMessage, setCopyMessage] = useState<string | null>(null)\n const poseString = `[${joints.map((j: number) => parseFloat(j.toFixed(4))).join(\", \")}]`\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(poseString)\n setCopyMessage(\"Copied!\")\n setTimeout(() => setCopyMessage(null), 2000)\n } catch {\n setCopyMessage(\"Copy failed\")\n setTimeout(() => setCopyMessage(null), 2000)\n }\n }\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n spacing={1}\n sx={{ flexGrow: 1, minWidth: 0, overflow: \"hidden\" }}\n data-testid=\"pose-joint-values\"\n >\n <CopyableText value={poseString} />\n {showCopyButton && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={handleCopy}\n sx={{ flexShrink: 0 }}\n >\n {copyMessage ? copyMessage : \"Copy\"}\n </Button>\n )}\n </Stack>\n )\n }),\n)\n\nexport default PoseJointValues\n"],"names":["PoseJointValues","externalizeComponent","observer","joints","showCopyButton","copyMessage","setCopyMessage","useState","poseString","j","handleCopy","jsxs","Stack","jsx","CopyableText","Button"],"mappings":"iVAYaA,EAAkBC,EAAAA,qBAC7BC,EAAAA,SAAS,CAAC,CAAE,OAAAC,EAAQ,eAAAC,EAAiB,MAAkC,CACrE,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAAwB,IAAI,EAC5DC,EAAa,IAAIL,EAAO,IAAKM,GAAc,WAAWA,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAE/EC,EAAa,SAAY,CAC7B,GAAI,CACF,MAAM,UAAU,UAAU,UAAUF,CAAU,EAC9CF,EAAe,SAAS,EACxB,WAAW,IAAMA,EAAe,IAAI,EAAG,GAAI,CAC7C,MAAQ,CACNA,EAAe,aAAa,EAC5B,WAAW,IAAMA,EAAe,IAAI,EAAG,GAAI,CAC7C,CACF,EAEA,OACEK,EAAAA,KAACC,EAAA,CACC,UAAU,MACV,WAAW,SACX,QAAS,EACT,GAAI,CAAE,SAAU,EAAG,SAAU,EAAG,SAAU,QAAA,EAC1C,cAAY,oBAEZ,SAAA,CAAAC,EAAAA,IAACC,EAAAA,aAAA,CAAa,MAAON,CAAA,CAAY,EAChCJ,GACCS,EAAAA,IAACE,EAAA,CACC,QAAQ,YACR,MAAM,YACN,KAAK,QACL,QAASL,EACT,GAAI,CAAE,WAAY,CAAA,EAEjB,YAA4B,MAAA,CAAA,CAC/B,CAAA,CAAA,CAIR,CAAC,CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoseJointValues.d.ts","sourceRoot":"","sources":["../../../src/components/jogging/PoseJointValues.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,eAAe,gCACoB,oBAAoB;;CAsCnE,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -3,7 +3,7 @@ import l from "@mui/material/Button";
|
|
|
3
3
|
import p from "@mui/material/Stack";
|
|
4
4
|
import { observer as m } from "mobx-react-lite";
|
|
5
5
|
import { useState as c } from "react";
|
|
6
|
-
import {
|
|
6
|
+
import { externalizeComponent as d } from "../../externalizeComponent.js";
|
|
7
7
|
import { CopyableText as f } from "../CopyableText.js";
|
|
8
8
|
const j = d(
|
|
9
9
|
m(({ joints: i, showCopyButton: a = !1 }) => {
|
|
@@ -44,3 +44,4 @@ export {
|
|
|
44
44
|
j as PoseJointValues,
|
|
45
45
|
j as default
|
|
46
46
|
};
|
|
47
|
+
//# sourceMappingURL=PoseJointValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoseJointValues.js","sources":["../../../src/components/jogging/PoseJointValues.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Stack from \"@mui/material/Stack\"\nimport { observer } from \"mobx-react-lite\"\nimport { useState } from \"react\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { CopyableText } from \"../CopyableText\"\n\nexport type PoseJointValuesProps = {\n joints: Array<number>\n showCopyButton?: boolean\n}\n\nexport const PoseJointValues = externalizeComponent(\n observer(({ joints, showCopyButton = false }: PoseJointValuesProps) => {\n const [copyMessage, setCopyMessage] = useState<string | null>(null)\n const poseString = `[${joints.map((j: number) => parseFloat(j.toFixed(4))).join(\", \")}]`\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(poseString)\n setCopyMessage(\"Copied!\")\n setTimeout(() => setCopyMessage(null), 2000)\n } catch {\n setCopyMessage(\"Copy failed\")\n setTimeout(() => setCopyMessage(null), 2000)\n }\n }\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n spacing={1}\n sx={{ flexGrow: 1, minWidth: 0, overflow: \"hidden\" }}\n data-testid=\"pose-joint-values\"\n >\n <CopyableText value={poseString} />\n {showCopyButton && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={handleCopy}\n sx={{ flexShrink: 0 }}\n >\n {copyMessage ? copyMessage : \"Copy\"}\n </Button>\n )}\n </Stack>\n )\n }),\n)\n\nexport default PoseJointValues\n"],"names":["PoseJointValues","externalizeComponent","observer","joints","showCopyButton","copyMessage","setCopyMessage","useState","poseString","j","jsxs","Stack","jsx","CopyableText","Button"],"mappings":";;;;;;;AAYO,MAAMA,IAAkBC;AAAA,EAC7BC,EAAS,CAAC,EAAE,QAAAC,GAAQ,gBAAAC,IAAiB,SAAkC;AACrE,UAAM,CAACC,GAAaC,CAAc,IAAIC,EAAwB,IAAI,GAC5DC,IAAa,IAAIL,EAAO,IAAI,CAACM,MAAc,WAAWA,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;AAarF,WACE,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,YAAW;AAAA,QACX,SAAS;AAAA,QACT,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,SAAA;AAAA,QAC1C,eAAY;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAC,EAACC,GAAA,EAAa,OAAOL,EAAA,CAAY;AAAA,UAChCJ,KACC,gBAAAQ;AAAA,YAACE;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,MAAK;AAAA,cACL,SAzBW,YAAY;AAC7B,oBAAI;AACF,wBAAM,UAAU,UAAU,UAAUN,CAAU,GAC9CF,EAAe,SAAS,GACxB,WAAW,MAAMA,EAAe,IAAI,GAAG,GAAI;AAAA,gBAC7C,QAAQ;AACN,kBAAAA,EAAe,aAAa,GAC5B,WAAW,MAAMA,EAAe,IAAI,GAAG,GAAI;AAAA,gBAC7C;AAAA,cACF;AAAA,cAiBQ,IAAI,EAAE,YAAY,EAAA;AAAA,cAEjB,eAA4B;AAAA,YAAA;AAAA,UAAA;AAAA,QAC/B;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR,CAAC;AACH;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MotionGroupState, MotionGroupDescription, DHParameter } from "@wandelbots/nova-js/v2";
|
|
2
|
+
export declare const ur5eMotionGroupState: MotionGroupState;
|
|
3
|
+
export declare const ur5eDhParameters: DHParameter[];
|
|
4
|
+
export declare const ur5eDescription: MotionGroupDescription;
|
|
5
|
+
export declare const turnMockMotionGroupState: MotionGroupState;
|
|
6
|
+
export declare const turnMockDhParameters: DHParameter[];
|
|
7
|
+
export declare const turnMockDescription: MotionGroupDescription;
|
|
8
|
+
export declare const linearAxisMotionGroupState: MotionGroupState;
|
|
9
|
+
export declare const linearAxisDhParameters: DHParameter[];
|
|
10
|
+
export declare const linearAxisDescription: MotionGroupDescription;
|
|
11
|
+
//# sourceMappingURL=motionStreamMockData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motionStreamMockData.d.ts","sourceRoot":"","sources":["../../../../src/components/jogging/__fixtures__/motionStreamMockData.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACZ,MAAM,wBAAwB,CAAA;AAM/B,eAAO,MAAM,oBAAoB,EAAE,gBA4BlC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAAW,EAGzC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,sBAMQ,CAAA;AAMtC,eAAO,MAAM,wBAAwB,EAAE,gBAqBtC,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,WAAW,EAG7C,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,sBAMI,CAAA;AAMtC,eAAO,MAAM,0BAA0B,EAAE,gBAqBxC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,WAAW,EAE/C,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,sBAME,CAAA"}
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),r=require("@mui/material/Button"),i=require("@mui/material/Dialog"),a=require("@mui/material/DialogActions"),l=require("@mui/material/DialogContent"),s=require("@mui/material/DialogTitle"),c=require("@mui/material/Stack"),t=require("@mui/material/Typography");function u(){const o=window.location.href;return o.substring(0,o.indexOf("/",o.indexOf("//")+2))}function n({baseUrl:o=u(),...d}){return e.jsxs(i,{"aria-labelledby":"no-motion-group-modal-title",open:!0,fullWidth:!0,sx:{"& .MuiModal-backdrop":{backdropFilter:"blur(10px)"},"& .MuiDialog-paper":{"::before":{content:'""',height:"8px",width:"100%",background:"linear-gradient(90deg, #FF0E65 0%, #47D3FF 100%)"},background:"#101629"}},children:[e.jsx(s,{id:"no-motion-group-modal-title",children:"No motion group found"}),e.jsxs(l,{sx:{marginTop:"3rem",marginBottom:"1.5rem",textAlign:"center"},children:[e.jsx(t,{color:"#fff",children:"Found no devices to connect to."}),e.jsx(t,{color:"#fff",children:"Please ensure a motion group has been created."})]}),e.jsx(a,{children:e.jsxs(c,{width:"100%",maxWidth:"300px",margin:"auto",marginBottom:"2rem",children:[e.jsx(r,{href:`${o}/settings`,variant:"contained",sx:{borderRadius:"8px",width:"100%"},children:"Go to settings app"}),e.jsx(r,{href:`${o}`,variant:"text",sx:{marginTop:"1rem",color:"#fff",textDecoration:"underline",fontSize:"0.75rem"},children:"Back to Homescreen"})]})})]})}exports.NoMotionGroupModal=n;exports.default=n;
|
|
2
|
+
//# sourceMappingURL=NoMotionGroupModal.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoMotionGroupModal.cjs","sources":["../../../src/components/modal/NoMotionGroupModal.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Dialog from \"@mui/material/Dialog\"\nimport DialogActions from \"@mui/material/DialogActions\"\nimport DialogContent from \"@mui/material/DialogContent\"\nimport DialogTitle from \"@mui/material/DialogTitle\"\nimport Stack from \"@mui/material/Stack\"\nimport Typography from \"@mui/material/Typography\"\nfunction getBaseUrl(): string {\n const currentUrl = window.location.href\n return currentUrl.substring(\n 0,\n currentUrl.indexOf(\"/\", currentUrl.indexOf(\"//\") + 2),\n )\n}\n\nexport type NoMotionGroupModalProps = {\n baseUrl: string\n}\n\nexport function NoMotionGroupModal({\n baseUrl = getBaseUrl(),\n ...props\n}: NoMotionGroupModalProps) {\n return (\n <Dialog\n aria-labelledby=\"no-motion-group-modal-title\"\n open={true}\n fullWidth\n sx={{\n \"& .MuiModal-backdrop\": {\n backdropFilter: \"blur(10px)\",\n },\n \"& .MuiDialog-paper\": {\n \"::before\": {\n content: '\"\"',\n height: \"8px\",\n width: \"100%\",\n background: \"linear-gradient(90deg, #FF0E65 0%, #47D3FF 100%)\",\n },\n background: \"#101629\",\n },\n }}\n >\n <DialogTitle id=\"no-motion-group-modal-title\">\n No motion group found\n </DialogTitle>\n\n <DialogContent\n sx={{\n marginTop: \"3rem\",\n marginBottom: \"1.5rem\",\n textAlign: \"center\",\n }}\n >\n <Typography color=\"#fff\">Found no devices to connect to.</Typography>\n <Typography color=\"#fff\">\n Please ensure a motion group has been created.\n </Typography>\n </DialogContent>\n\n <DialogActions>\n <Stack width=\"100%\" maxWidth=\"300px\" margin=\"auto\" marginBottom=\"2rem\">\n <Button\n href={`${baseUrl}/settings`}\n variant=\"contained\"\n sx={{\n borderRadius: \"8px\",\n width: \"100%\",\n }}\n >\n Go to settings app\n </Button>\n <Button\n href={`${baseUrl}`}\n variant=\"text\"\n sx={{\n marginTop: \"1rem\",\n color: \"#fff\",\n textDecoration: \"underline\",\n fontSize: \"0.75rem\",\n }}\n >\n Back to Homescreen\n </Button>\n </Stack>\n </DialogActions>\n </Dialog>\n )\n}\n\nexport default NoMotionGroupModal\n"],"names":["getBaseUrl","currentUrl","NoMotionGroupModal","baseUrl","props","jsxs","Dialog","jsx","DialogTitle","DialogContent","Typography","DialogActions","Stack","Button"],"mappings":"qZAOA,SAASA,GAAqB,CAC5B,MAAMC,EAAa,OAAO,SAAS,KACnC,OAAOA,EAAW,UAChB,EACAA,EAAW,QAAQ,IAAKA,EAAW,QAAQ,IAAI,EAAI,CAAC,CAAA,CAExD,CAMO,SAASC,EAAmB,CACjC,QAAAC,EAAUH,EAAA,EACV,GAAGI,CACL,EAA4B,CAC1B,OACEC,EAAAA,KAACC,EAAA,CACC,kBAAgB,8BAChB,KAAM,GACN,UAAS,GACT,GAAI,CACF,uBAAwB,CACtB,eAAgB,YAAA,EAElB,qBAAsB,CACpB,WAAY,CACV,QAAS,KACT,OAAQ,MACR,MAAO,OACP,WAAY,kDAAA,EAEd,WAAY,SAAA,CACd,EAGF,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAY,GAAG,8BAA8B,SAAA,wBAE9C,EAEAH,EAAAA,KAACI,EAAA,CACC,GAAI,CACF,UAAW,OACX,aAAc,SACd,UAAW,QAAA,EAGb,SAAA,CAAAF,EAAAA,IAACG,EAAA,CAAW,MAAM,OAAO,SAAA,kCAA+B,EACxDH,EAAAA,IAACG,EAAA,CAAW,MAAM,OAAO,SAAA,gDAAA,CAEzB,CAAA,CAAA,CAAA,EAGFH,EAAAA,IAACI,EAAA,CACC,SAAAN,EAAAA,KAACO,EAAA,CAAM,MAAM,OAAO,SAAS,QAAQ,OAAO,OAAO,aAAa,OAC9D,SAAA,CAAAL,EAAAA,IAACM,EAAA,CACC,KAAM,GAAGV,CAAO,YAChB,QAAQ,YACR,GAAI,CACF,aAAc,MACd,MAAO,MAAA,EAEV,SAAA,oBAAA,CAAA,EAGDI,EAAAA,IAACM,EAAA,CACC,KAAM,GAAGV,CAAO,GAChB,QAAQ,OACR,GAAI,CACF,UAAW,OACX,MAAO,OACP,eAAgB,YAChB,SAAU,SAAA,EAEb,SAAA,oBAAA,CAAA,CAED,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAAA,CAGN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoMotionGroupModal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/NoMotionGroupModal.tsx"],"names":[],"mappings":"AAeA,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAsB,EACtB,GAAG,KAAK,EACT,EAAE,uBAAuB,2CAkEzB;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoMotionGroupModal.js","sources":["../../../src/components/modal/NoMotionGroupModal.tsx"],"sourcesContent":["import Button from \"@mui/material/Button\"\nimport Dialog from \"@mui/material/Dialog\"\nimport DialogActions from \"@mui/material/DialogActions\"\nimport DialogContent from \"@mui/material/DialogContent\"\nimport DialogTitle from \"@mui/material/DialogTitle\"\nimport Stack from \"@mui/material/Stack\"\nimport Typography from \"@mui/material/Typography\"\nfunction getBaseUrl(): string {\n const currentUrl = window.location.href\n return currentUrl.substring(\n 0,\n currentUrl.indexOf(\"/\", currentUrl.indexOf(\"//\") + 2),\n )\n}\n\nexport type NoMotionGroupModalProps = {\n baseUrl: string\n}\n\nexport function NoMotionGroupModal({\n baseUrl = getBaseUrl(),\n ...props\n}: NoMotionGroupModalProps) {\n return (\n <Dialog\n aria-labelledby=\"no-motion-group-modal-title\"\n open={true}\n fullWidth\n sx={{\n \"& .MuiModal-backdrop\": {\n backdropFilter: \"blur(10px)\",\n },\n \"& .MuiDialog-paper\": {\n \"::before\": {\n content: '\"\"',\n height: \"8px\",\n width: \"100%\",\n background: \"linear-gradient(90deg, #FF0E65 0%, #47D3FF 100%)\",\n },\n background: \"#101629\",\n },\n }}\n >\n <DialogTitle id=\"no-motion-group-modal-title\">\n No motion group found\n </DialogTitle>\n\n <DialogContent\n sx={{\n marginTop: \"3rem\",\n marginBottom: \"1.5rem\",\n textAlign: \"center\",\n }}\n >\n <Typography color=\"#fff\">Found no devices to connect to.</Typography>\n <Typography color=\"#fff\">\n Please ensure a motion group has been created.\n </Typography>\n </DialogContent>\n\n <DialogActions>\n <Stack width=\"100%\" maxWidth=\"300px\" margin=\"auto\" marginBottom=\"2rem\">\n <Button\n href={`${baseUrl}/settings`}\n variant=\"contained\"\n sx={{\n borderRadius: \"8px\",\n width: \"100%\",\n }}\n >\n Go to settings app\n </Button>\n <Button\n href={`${baseUrl}`}\n variant=\"text\"\n sx={{\n marginTop: \"1rem\",\n color: \"#fff\",\n textDecoration: \"underline\",\n fontSize: \"0.75rem\",\n }}\n >\n Back to Homescreen\n </Button>\n </Stack>\n </DialogActions>\n </Dialog>\n )\n}\n\nexport default NoMotionGroupModal\n"],"names":["getBaseUrl","currentUrl","NoMotionGroupModal","baseUrl","props","jsxs","Dialog","jsx","DialogTitle","DialogContent","Typography","DialogActions","Stack","Button"],"mappings":";;;;;;;;AAOA,SAASA,IAAqB;AAC5B,QAAMC,IAAa,OAAO,SAAS;AACnC,SAAOA,EAAW;AAAA,IAChB;AAAA,IACAA,EAAW,QAAQ,KAAKA,EAAW,QAAQ,IAAI,IAAI,CAAC;AAAA,EAAA;AAExD;AAMO,SAASC,EAAmB;AAAA,EACjC,SAAAC,IAAUH,EAAA;AAAA,EACV,GAAGI;AACL,GAA4B;AAC1B,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,mBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,WAAS;AAAA,MACT,IAAI;AAAA,QACF,wBAAwB;AAAA,UACtB,gBAAgB;AAAA,QAAA;AAAA,QAElB,sBAAsB;AAAA,UACpB,YAAY;AAAA,YACV,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,UAEd,YAAY;AAAA,QAAA;AAAA,MACd;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAC,EAACC,GAAA,EAAY,IAAG,+BAA8B,UAAA,yBAE9C;AAAA,QAEA,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,WAAW;AAAA,cACX,cAAc;AAAA,cACd,WAAW;AAAA,YAAA;AAAA,YAGb,UAAA;AAAA,cAAA,gBAAAF,EAACG,GAAA,EAAW,OAAM,QAAO,UAAA,mCAA+B;AAAA,cACxD,gBAAAH,EAACG,GAAA,EAAW,OAAM,QAAO,UAAA,iDAAA,CAEzB;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,gBAAAH,EAACI,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,EAAM,OAAM,QAAO,UAAS,SAAQ,QAAO,QAAO,cAAa,QAC9D,UAAA;AAAA,UAAA,gBAAAL;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,MAAM,GAAGV,CAAO;AAAA,cAChB,SAAQ;AAAA,cACR,IAAI;AAAA,gBACF,cAAc;AAAA,gBACd,OAAO;AAAA,cAAA;AAAA,cAEV,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAGD,gBAAAI;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,MAAM,GAAGV,CAAO;AAAA,cAChB,SAAQ;AAAA,cACR,IAAI;AAAA,gBACF,WAAW;AAAA,gBACX,OAAO;AAAA,gBACP,gBAAgB;AAAA,gBAChB,UAAU;AAAA,cAAA;AAAA,cAEb,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,EAAA,CACF,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxisConfig.cjs","sources":["../../../src/components/robots/AxisConfig.ts"],"sourcesContent":["export type AxisConfig = number[]\n\nexport const defaultAxisConfig: AxisConfig = Array(6).fill(2 * Math.PI)\n"],"names":["defaultAxisConfig"],"mappings":"gFAEO,MAAMA,EAAgC,MAAM,CAAC,EAAE,KAAK,EAAI,KAAK,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxisConfig.d.ts","sourceRoot":"","sources":["../../../src/components/robots/AxisConfig.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,EAAE,CAAA;AAEjC,eAAO,MAAM,iBAAiB,EAAE,UAAuC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxisConfig.js","sources":["../../../src/components/robots/AxisConfig.ts"],"sourcesContent":["export type AxisConfig = number[]\n\nexport const defaultAxisConfig: AxisConfig = Array(6).fill(2 * Math.PI)\n"],"names":["defaultAxisConfig"],"mappings":"AAEO,MAAMA,IAAgC,MAAM,CAAC,EAAE,KAAK,IAAI,KAAK,EAAE;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),g=require("@react-three/drei"),j=require("react"),e=require("three"),V=require("./LinearAxisAnimator.cjs");function w({rapidlyChangingMotionState:d,dhParameters:s,...M}){const l=new e.Matrix4,u=j.useRef(null),p=j.useRef(null);function y(h){const a=new e.Matrix4;for(let r=0;r<s.length;r++){const t=s[r],x=h[r]??0,i=new e.Matrix4().makeRotationY(t.theta).multiply(new e.Matrix4().makeTranslation(t.a/1e3,(t.d+x*(t.reverse_rotation_direction?-1:1))/1e3,0)).multiply(new e.Matrix4().makeRotationX(t.alpha));a.multiply(i)}const n=new e.Vector3,c=new e.Quaternion,m=new e.Vector3;return a.decompose(n,c,m),n}const f=y(d.joint_position);function R(h,a){l.identity();let n=new e.Vector3;for(let t=0;t<s.length;t++){const x=a[t]??0,i=s[t],T=new e.Matrix4().makeRotationY(i.theta).multiply(new e.Matrix4().makeTranslation(i.a/1e3,(i.d+x*(i.reverse_rotation_direction?-1:1))/1e3,0)).multiply(new e.Matrix4().makeRotationX(i.alpha));l.multiply(T)}const c=new e.Vector3,m=new e.Quaternion,r=new e.Vector3;if(l.decompose(c,m,r),n=c,u.current&&u.current.position.set(n.x,n.y,n.z),p.current){const t=p.current.geometry;t!=null&&t.setPositions&&t.setPositions([0,0,0,n.x,n.y,n.z])}}return o.jsx(V.default,{rapidlyChangingMotionState:d,dhParameters:s,onTranslationChanged:R,children:o.jsxs("group",{...M,name:"Scene",children:[o.jsxs("mesh",{name:"Base",position:[0,0,0],children:[o.jsx("sphereGeometry",{args:[.02,32,32]}),o.jsx("meshStandardMaterial",{color:"green",depthTest:!0})]}),o.jsx(g.Line,{ref:p,points:[new e.Vector3(0,0,0),f],color:"White",lineWidth:5}),o.jsxs("mesh",{ref:u,name:"TCP",position:f,children:[o.jsx("sphereGeometry",{args:[.025,32,32]}),o.jsx("meshStandardMaterial",{color:"red",depthTest:!0})]})]})})}exports.DHLinearAxis=w;exports.default=w;
|
|
2
|
+
//# sourceMappingURL=DHLinearAxis.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DHLinearAxis.cjs","sources":["../../../src/components/robots/DHLinearAxis.tsx"],"sourcesContent":["/* biome-ignore-all lint/style/noNonNullAssertion: pre-biome code */\n/* biome-ignore-all lint/suspicious/noExplicitAny: pre-biome code */\n\nimport { Line } from \"@react-three/drei\"\nimport { useRef } from \"react\"\nimport type * as THREE from \"three\"\nimport { Matrix4, Quaternion, Vector3 } from \"three\"\nimport LinearAxisAnimator from \"./LinearAxisAnimator\"\nimport type { DHLinearAxisProps } from \"./SupportedLinearAxis\"\n\nexport function DHLinearAxis({\n rapidlyChangingMotionState,\n dhParameters,\n ...props\n}: DHLinearAxisProps) {\n // reused in every update\n const accumulatedMatrix = new Matrix4()\n\n const tcpMeshRef = useRef<THREE.Mesh | null>(null)\n const tcpLineRef = useRef<any>(null)\n\n // Calculate initial TCP position\n function calculateTcpPosition(jointValues: number[]): Vector3 {\n const tempMatrix = new Matrix4()\n\n for (let i = 0; i < dhParameters.length; i++) {\n const param = dhParameters[i]\n const jointValue = jointValues[i] ?? 0\n\n const matrix = new Matrix4()\n .makeRotationY(param.theta!) // Base rotation (if any)\n .multiply(\n new Matrix4().makeTranslation(\n param.a! / 1000,\n (param.d! +\n jointValue * (param.reverse_rotation_direction ? -1 : 1)) /\n 1000,\n 0,\n ),\n ) // Translate along X by a, and Y by d + joint_position\n .multiply(new Matrix4().makeRotationX(param.alpha!)) // Rotate around X\n\n tempMatrix.multiply(matrix)\n }\n\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n tempMatrix.decompose(position, quaternion, scale)\n return position\n }\n\n // Calculate initial TCP position for rendering\n const initialTcpPosition = calculateTcpPosition(\n rapidlyChangingMotionState.joint_position,\n )\n\n function setTranslation(joints: THREE.Object3D[], jointValues: number[]) {\n accumulatedMatrix.identity()\n\n let tcpPosition = new Vector3()\n\n // Process all joints based on dhParameters length, not joints array\n // Since we're using DHLinearAxis directly without a model, we don't have joint objects\n for (let jointIndex = 0; jointIndex < dhParameters.length; jointIndex++) {\n const jointValue = jointValues[jointIndex] ?? 0\n const param = dhParameters[jointIndex]\n\n // Calculate and accumulate transformation\n const matrix = new Matrix4()\n .makeRotationY(param.theta!) // Base rotation (if any)\n .multiply(\n new Matrix4().makeTranslation(\n param.a! / 1000,\n (param.d! +\n jointValue * (param.reverse_rotation_direction ? -1 : 1)) /\n 1000,\n 0,\n ),\n )\n .multiply(new Matrix4().makeRotationX(param.alpha!))\n\n accumulatedMatrix.multiply(matrix)\n }\n\n // Get final TCP position from accumulated matrix\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n accumulatedMatrix.decompose(position, quaternion, scale)\n tcpPosition = position\n\n // Update TCP marker\n if (tcpMeshRef.current) {\n tcpMeshRef.current.position.set(\n tcpPosition.x,\n tcpPosition.y,\n tcpPosition.z,\n )\n }\n\n // Update TCP line\n if (tcpLineRef.current) {\n const lineGeometry = tcpLineRef.current.geometry\n if (lineGeometry?.setPositions) {\n lineGeometry.setPositions([\n 0,\n 0,\n 0,\n tcpPosition.x,\n tcpPosition.y,\n tcpPosition.z,\n ])\n }\n }\n }\n\n return (\n <LinearAxisAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n onTranslationChanged={setTranslation}\n >\n <group {...props} name=\"Scene\">\n {/* Base (origin) - Green sphere representing initial previous position */}\n <mesh name=\"Base\" position={[0, 0, 0]}>\n <sphereGeometry args={[0.02, 32, 32]} />\n <meshStandardMaterial color={\"green\"} depthTest={true} />\n </mesh>\n {/* Line from Base to TCP */}\n <Line\n ref={tcpLineRef}\n points={[new Vector3(0, 0, 0), initialTcpPosition]}\n color={\"White\"}\n lineWidth={5}\n />\n {/* TCP (Tool Center Point) - Red sphere that shows final position */}\n <mesh ref={tcpMeshRef} name=\"TCP\" position={initialTcpPosition}>\n <sphereGeometry args={[0.025, 32, 32]} />\n <meshStandardMaterial color={\"red\"} depthTest={true} />\n </mesh>\n </group>\n </LinearAxisAnimator>\n )\n}\n\nexport default DHLinearAxis\n"],"names":["DHLinearAxis","rapidlyChangingMotionState","dhParameters","props","accumulatedMatrix","Matrix4","tcpMeshRef","useRef","tcpLineRef","calculateTcpPosition","jointValues","tempMatrix","i","param","jointValue","matrix","position","Vector3","quaternion","Quaternion","scale","initialTcpPosition","setTranslation","joints","tcpPosition","jointIndex","lineGeometry","jsx","LinearAxisAnimator","jsxs","Line"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { DHLinearAxisProps } from "./SupportedLinearAxis";
|
|
2
2
|
export declare function DHLinearAxis({ rapidlyChangingMotionState, dhParameters, ...props }: DHLinearAxisProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default DHLinearAxis;
|
|
4
|
+
//# sourceMappingURL=DHLinearAxis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DHLinearAxis.d.ts","sourceRoot":"","sources":["../../../src/components/robots/DHLinearAxis.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,wBAAgB,YAAY,CAAC,EAC3B,0BAA0B,EAC1B,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAkInB;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DHLinearAxis.js","sources":["../../../src/components/robots/DHLinearAxis.tsx"],"sourcesContent":["/* biome-ignore-all lint/style/noNonNullAssertion: pre-biome code */\n/* biome-ignore-all lint/suspicious/noExplicitAny: pre-biome code */\n\nimport { Line } from \"@react-three/drei\"\nimport { useRef } from \"react\"\nimport type * as THREE from \"three\"\nimport { Matrix4, Quaternion, Vector3 } from \"three\"\nimport LinearAxisAnimator from \"./LinearAxisAnimator\"\nimport type { DHLinearAxisProps } from \"./SupportedLinearAxis\"\n\nexport function DHLinearAxis({\n rapidlyChangingMotionState,\n dhParameters,\n ...props\n}: DHLinearAxisProps) {\n // reused in every update\n const accumulatedMatrix = new Matrix4()\n\n const tcpMeshRef = useRef<THREE.Mesh | null>(null)\n const tcpLineRef = useRef<any>(null)\n\n // Calculate initial TCP position\n function calculateTcpPosition(jointValues: number[]): Vector3 {\n const tempMatrix = new Matrix4()\n\n for (let i = 0; i < dhParameters.length; i++) {\n const param = dhParameters[i]\n const jointValue = jointValues[i] ?? 0\n\n const matrix = new Matrix4()\n .makeRotationY(param.theta!) // Base rotation (if any)\n .multiply(\n new Matrix4().makeTranslation(\n param.a! / 1000,\n (param.d! +\n jointValue * (param.reverse_rotation_direction ? -1 : 1)) /\n 1000,\n 0,\n ),\n ) // Translate along X by a, and Y by d + joint_position\n .multiply(new Matrix4().makeRotationX(param.alpha!)) // Rotate around X\n\n tempMatrix.multiply(matrix)\n }\n\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n tempMatrix.decompose(position, quaternion, scale)\n return position\n }\n\n // Calculate initial TCP position for rendering\n const initialTcpPosition = calculateTcpPosition(\n rapidlyChangingMotionState.joint_position,\n )\n\n function setTranslation(joints: THREE.Object3D[], jointValues: number[]) {\n accumulatedMatrix.identity()\n\n let tcpPosition = new Vector3()\n\n // Process all joints based on dhParameters length, not joints array\n // Since we're using DHLinearAxis directly without a model, we don't have joint objects\n for (let jointIndex = 0; jointIndex < dhParameters.length; jointIndex++) {\n const jointValue = jointValues[jointIndex] ?? 0\n const param = dhParameters[jointIndex]\n\n // Calculate and accumulate transformation\n const matrix = new Matrix4()\n .makeRotationY(param.theta!) // Base rotation (if any)\n .multiply(\n new Matrix4().makeTranslation(\n param.a! / 1000,\n (param.d! +\n jointValue * (param.reverse_rotation_direction ? -1 : 1)) /\n 1000,\n 0,\n ),\n )\n .multiply(new Matrix4().makeRotationX(param.alpha!))\n\n accumulatedMatrix.multiply(matrix)\n }\n\n // Get final TCP position from accumulated matrix\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n accumulatedMatrix.decompose(position, quaternion, scale)\n tcpPosition = position\n\n // Update TCP marker\n if (tcpMeshRef.current) {\n tcpMeshRef.current.position.set(\n tcpPosition.x,\n tcpPosition.y,\n tcpPosition.z,\n )\n }\n\n // Update TCP line\n if (tcpLineRef.current) {\n const lineGeometry = tcpLineRef.current.geometry\n if (lineGeometry?.setPositions) {\n lineGeometry.setPositions([\n 0,\n 0,\n 0,\n tcpPosition.x,\n tcpPosition.y,\n tcpPosition.z,\n ])\n }\n }\n }\n\n return (\n <LinearAxisAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n onTranslationChanged={setTranslation}\n >\n <group {...props} name=\"Scene\">\n {/* Base (origin) - Green sphere representing initial previous position */}\n <mesh name=\"Base\" position={[0, 0, 0]}>\n <sphereGeometry args={[0.02, 32, 32]} />\n <meshStandardMaterial color={\"green\"} depthTest={true} />\n </mesh>\n {/* Line from Base to TCP */}\n <Line\n ref={tcpLineRef}\n points={[new Vector3(0, 0, 0), initialTcpPosition]}\n color={\"White\"}\n lineWidth={5}\n />\n {/* TCP (Tool Center Point) - Red sphere that shows final position */}\n <mesh ref={tcpMeshRef} name=\"TCP\" position={initialTcpPosition}>\n <sphereGeometry args={[0.025, 32, 32]} />\n <meshStandardMaterial color={\"red\"} depthTest={true} />\n </mesh>\n </group>\n </LinearAxisAnimator>\n )\n}\n\nexport default DHLinearAxis\n"],"names":["DHLinearAxis","rapidlyChangingMotionState","dhParameters","props","accumulatedMatrix","Matrix4","tcpMeshRef","useRef","tcpLineRef","calculateTcpPosition","jointValues","tempMatrix","param","jointValue","matrix","position","Vector3","quaternion","Quaternion","scale","initialTcpPosition","setTranslation","joints","tcpPosition","jointIndex","lineGeometry","jsx","LinearAxisAnimator","jsxs","Line"],"mappings":"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"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react/jsx-runtime"),b=require("@react-three/drei"),p=require("react"),c=require("three"),w=require("./RobotAnimator.cjs"),M="line",_="mesh";function y({rapidlyChangingMotionState:x,dhParameters:r,...R}){const a=new c.Matrix4,f=p.useRef([]),m=p.useRef([]);p.useEffect(()=>{f.current=new Array(r.length).fill(null),m.current=new Array(r.length).fill(null)},[r.length]);function h(n,e){const t=new c.Vector3,i=new c.Quaternion,o=new c.Vector3;a.decompose(t,i,o);const l=t.clone(),u=new c.Matrix4().makeRotationY(n.theta+e*(n.reverse_rotation_direction?-1:1)).multiply(new c.Matrix4().makeTranslation(0,n.d/1e3,0)).multiply(new c.Matrix4().makeTranslation(n.a/1e3,0,0)).multiply(new c.Matrix4().makeRotationX(n.alpha));return a.multiply(u),a.decompose(t,i,o),{a:l,b:t}}function j(n,e,t,i){if(!r)return;const o=r[n];if(!o)return;const{a:l,b:u}=h(o,i);e.geometry.setPositions([l.toArray(),u.toArray()].flat()),t.position.set(u.x,u.y,u.z)}function g(n,e){a.identity();for(let t=0;t<Math.min(n.length,e.length);t++){const i=f.current[t],o=m.current[t];i&&o&&j(t,i,o,e[t])}}return s.jsx(w.default,{rapidlyChangingMotionState:x,dhParameters:r,onRotationChanged:g,children:s.jsxs("group",{...R,name:"Scene",children:[s.jsxs("mesh",{children:[s.jsx("sphereGeometry",{args:[.01,32,32]}),s.jsx("meshStandardMaterial",{color:"black",depthTest:!0})]}),r==null?void 0:r.map((n,e)=>{const{a:t,b:i}=h(n,x.joint_position[e]??0),o=`dhrobot_J0${e}`;return s.jsxs("group",{name:o,children:[s.jsx(b.Line,{ref:l=>{f.current[e]=l},name:M,points:[t,i],color:"white",lineWidth:5}),s.jsxs("mesh",{ref:l=>{m.current[e]=l},name:_,position:i,children:[s.jsx("sphereGeometry",{args:[.01,32,32]}),s.jsx("meshStandardMaterial",{color:"black",depthTest:!0})]},`mesh_${e}`)]},o)})]})})}exports.DHRobot=y;exports.default=y;
|
|
2
|
+
//# sourceMappingURL=DHRobot.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DHRobot.cjs","sources":["../../../src/components/robots/DHRobot.tsx"],"sourcesContent":["/* biome-ignore-all lint/style/noNonNullAssertion: pre-biome code */\n/* biome-ignore-all lint/suspicious/noExplicitAny: pre-biome code */\n\nimport { Line } from \"@react-three/drei\"\nimport type { DHParameter } from \"@wandelbots/nova-js/v2\"\nimport React, { useRef } from \"react\"\nimport type * as THREE from \"three\"\nimport { Matrix4, Quaternion, Vector3 } from \"three\"\nimport type { LineGeometry } from \"three/examples/jsm/lines/LineGeometry.js\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport type { DHRobotProps } from \"./SupportedRobot\"\n\nconst CHILD_LINE = \"line\"\nconst CHILD_MESH = \"mesh\"\n\nexport function DHRobot({\n rapidlyChangingMotionState,\n dhParameters,\n ...props\n}: DHRobotProps) {\n // reused in every update\n const accumulatedMatrix = new Matrix4()\n\n // Store direct references to avoid searching by name\n const lineRefs = useRef<any[]>([])\n const meshRefs = useRef<(THREE.Mesh | null)[]>([])\n\n // Initialize refs array when dhParameters change\n React.useEffect(() => {\n lineRefs.current = new Array(dhParameters.length).fill(null)\n meshRefs.current = new Array(dhParameters.length).fill(null)\n }, [dhParameters.length])\n\n // Updates accumulatedMatrix with every execution\n // Reset the matrix to identity if you start a new position update\n function getLinePoints(\n dhParameter: DHParameter,\n jointRotation: number,\n ): {\n a: THREE.Vector3\n b: THREE.Vector3\n } {\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n accumulatedMatrix.decompose(position, quaternion, scale)\n const prevPosition = position.clone() // Update the previous position\n\n const matrix = new Matrix4()\n .makeRotationY(\n dhParameter.theta! +\n jointRotation * (dhParameter.reverse_rotation_direction ? -1 : 1),\n ) // Rotate around Z\n .multiply(new Matrix4().makeTranslation(0, dhParameter.d! / 1000, 0)) // Translate along Z\n .multiply(new Matrix4().makeTranslation(dhParameter.a! / 1000, 0, 0)) // Translate along X\n .multiply(new Matrix4().makeRotationX(dhParameter.alpha!)) // Rotate around X\n\n // Accumulate transformations\n accumulatedMatrix.multiply(matrix)\n accumulatedMatrix.decompose(position, quaternion, scale)\n return { a: prevPosition, b: position }\n }\n\n function setJointLineRotation(\n jointIndex: number,\n line: any, // Use any for drei Line component\n mesh: THREE.Mesh,\n jointValue: number,\n ) {\n if (!dhParameters) {\n return\n }\n\n const dh_parameter = dhParameters[jointIndex]\n if (!dh_parameter) {\n return\n }\n\n const { a, b } = getLinePoints(dh_parameter, jointValue)\n const lineGeometry = line.geometry as LineGeometry\n lineGeometry.setPositions([a.toArray(), b.toArray()].flat())\n\n mesh.position.set(b.x, b.y, b.z)\n }\n\n function setRotation(joints: THREE.Object3D[], jointValues: number[]) {\n accumulatedMatrix.identity()\n\n // Use direct refs instead of searching by name\n for (\n let jointIndex = 0;\n jointIndex < Math.min(joints.length, jointValues.length);\n jointIndex++\n ) {\n const line = lineRefs.current[jointIndex]\n const mesh = meshRefs.current[jointIndex]\n\n if (line && mesh) {\n setJointLineRotation(jointIndex, line, mesh, jointValues[jointIndex]!)\n }\n }\n }\n\n return (\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n onRotationChanged={setRotation}\n >\n <group {...props} name=\"Scene\">\n <mesh>\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n {dhParameters?.map((param, index) => {\n const { a, b } = getLinePoints(\n param,\n rapidlyChangingMotionState.joint_position[index] ?? 0,\n )\n const jointName = `dhrobot_J0${index}`\n return (\n <group name={jointName} key={jointName}>\n <Line\n ref={(ref) => {\n lineRefs.current[index] = ref\n }}\n name={CHILD_LINE}\n points={[a, b]}\n color={\"white\"}\n lineWidth={5}\n />\n <mesh\n ref={(ref) => {\n meshRefs.current[index] = ref\n }}\n name={CHILD_MESH}\n // biome-ignore lint/suspicious/noArrayIndexKey: pre-biome code\n key={`mesh_${index}`}\n position={b}\n >\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n </group>\n )\n })}\n </group>\n </RobotAnimator>\n )\n}\n\nexport default DHRobot\n"],"names":["CHILD_LINE","CHILD_MESH","DHRobot","rapidlyChangingMotionState","dhParameters","props","accumulatedMatrix","Matrix4","lineRefs","useRef","meshRefs","React","getLinePoints","dhParameter","jointRotation","position","Vector3","quaternion","Quaternion","scale","prevPosition","matrix","setJointLineRotation","jointIndex","line","mesh","jointValue","dh_parameter","a","b","setRotation","joints","jointValues","jsx","RobotAnimator","jsxs","param","index","jointName","Line","ref"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DHRobot.d.ts","sourceRoot":"","sources":["../../../src/components/robots/DHRobot.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAKpD,wBAAgB,OAAO,CAAC,EACtB,0BAA0B,EAC1B,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,YAAY,2CAkId;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DHRobot.js","sources":["../../../src/components/robots/DHRobot.tsx"],"sourcesContent":["/* biome-ignore-all lint/style/noNonNullAssertion: pre-biome code */\n/* biome-ignore-all lint/suspicious/noExplicitAny: pre-biome code */\n\nimport { Line } from \"@react-three/drei\"\nimport type { DHParameter } from \"@wandelbots/nova-js/v2\"\nimport React, { useRef } from \"react\"\nimport type * as THREE from \"three\"\nimport { Matrix4, Quaternion, Vector3 } from \"three\"\nimport type { LineGeometry } from \"three/examples/jsm/lines/LineGeometry.js\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport type { DHRobotProps } from \"./SupportedRobot\"\n\nconst CHILD_LINE = \"line\"\nconst CHILD_MESH = \"mesh\"\n\nexport function DHRobot({\n rapidlyChangingMotionState,\n dhParameters,\n ...props\n}: DHRobotProps) {\n // reused in every update\n const accumulatedMatrix = new Matrix4()\n\n // Store direct references to avoid searching by name\n const lineRefs = useRef<any[]>([])\n const meshRefs = useRef<(THREE.Mesh | null)[]>([])\n\n // Initialize refs array when dhParameters change\n React.useEffect(() => {\n lineRefs.current = new Array(dhParameters.length).fill(null)\n meshRefs.current = new Array(dhParameters.length).fill(null)\n }, [dhParameters.length])\n\n // Updates accumulatedMatrix with every execution\n // Reset the matrix to identity if you start a new position update\n function getLinePoints(\n dhParameter: DHParameter,\n jointRotation: number,\n ): {\n a: THREE.Vector3\n b: THREE.Vector3\n } {\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n accumulatedMatrix.decompose(position, quaternion, scale)\n const prevPosition = position.clone() // Update the previous position\n\n const matrix = new Matrix4()\n .makeRotationY(\n dhParameter.theta! +\n jointRotation * (dhParameter.reverse_rotation_direction ? -1 : 1),\n ) // Rotate around Z\n .multiply(new Matrix4().makeTranslation(0, dhParameter.d! / 1000, 0)) // Translate along Z\n .multiply(new Matrix4().makeTranslation(dhParameter.a! / 1000, 0, 0)) // Translate along X\n .multiply(new Matrix4().makeRotationX(dhParameter.alpha!)) // Rotate around X\n\n // Accumulate transformations\n accumulatedMatrix.multiply(matrix)\n accumulatedMatrix.decompose(position, quaternion, scale)\n return { a: prevPosition, b: position }\n }\n\n function setJointLineRotation(\n jointIndex: number,\n line: any, // Use any for drei Line component\n mesh: THREE.Mesh,\n jointValue: number,\n ) {\n if (!dhParameters) {\n return\n }\n\n const dh_parameter = dhParameters[jointIndex]\n if (!dh_parameter) {\n return\n }\n\n const { a, b } = getLinePoints(dh_parameter, jointValue)\n const lineGeometry = line.geometry as LineGeometry\n lineGeometry.setPositions([a.toArray(), b.toArray()].flat())\n\n mesh.position.set(b.x, b.y, b.z)\n }\n\n function setRotation(joints: THREE.Object3D[], jointValues: number[]) {\n accumulatedMatrix.identity()\n\n // Use direct refs instead of searching by name\n for (\n let jointIndex = 0;\n jointIndex < Math.min(joints.length, jointValues.length);\n jointIndex++\n ) {\n const line = lineRefs.current[jointIndex]\n const mesh = meshRefs.current[jointIndex]\n\n if (line && mesh) {\n setJointLineRotation(jointIndex, line, mesh, jointValues[jointIndex]!)\n }\n }\n }\n\n return (\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n onRotationChanged={setRotation}\n >\n <group {...props} name=\"Scene\">\n <mesh>\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n {dhParameters?.map((param, index) => {\n const { a, b } = getLinePoints(\n param,\n rapidlyChangingMotionState.joint_position[index] ?? 0,\n )\n const jointName = `dhrobot_J0${index}`\n return (\n <group name={jointName} key={jointName}>\n <Line\n ref={(ref) => {\n lineRefs.current[index] = ref\n }}\n name={CHILD_LINE}\n points={[a, b]}\n color={\"white\"}\n lineWidth={5}\n />\n <mesh\n ref={(ref) => {\n meshRefs.current[index] = ref\n }}\n name={CHILD_MESH}\n // biome-ignore lint/suspicious/noArrayIndexKey: pre-biome code\n key={`mesh_${index}`}\n position={b}\n >\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n </group>\n )\n })}\n </group>\n </RobotAnimator>\n )\n}\n\nexport default DHRobot\n"],"names":["CHILD_LINE","CHILD_MESH","DHRobot","rapidlyChangingMotionState","dhParameters","props","accumulatedMatrix","Matrix4","lineRefs","useRef","meshRefs","React","getLinePoints","dhParameter","jointRotation","position","Vector3","quaternion","Quaternion","scale","prevPosition","matrix","setJointLineRotation","jointIndex","line","mesh","jointValue","dh_parameter","a","b","setRotation","joints","jointValues","jsx","RobotAnimator","jsxs","param","index","jointName","Line","ref"],"mappings":"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"}
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),b=require("@react-three/drei"),l=require("react"),g=require("./robotModelLogic.cjs");function y(r){return r.type==="Mesh"}function R({url:r,flangeRef:n,postModelRender:t,...u}){const s=b.useGLTF(r),c=g.parseRobotModel(s,"robot.glb").gltf,o=l.useCallback(e=>{e&&t&&t()},[t]);function f(e){try{return y(e)?e.geometry?i.jsx("mesh",{name:e.name,geometry:e.geometry,material:e.material,position:e.position,rotation:e.rotation},e.uuid):i.jsx("group",{name:e.name,position:e.position,rotation:e.rotation},e.uuid):i.jsx("group",{name:e.name,position:e.position,rotation:e.rotation,ref:g.isFlange(e)?n:void 0,children:e.children.map(f)},e.uuid)}catch(m){return console.warn("Error rendering node",e.name,m),null}}return i.jsx("group",{...u,dispose:null,ref:o,children:f(c.scene)})}function p({modelURL:r,flangeRef:n,postModelRender:t,...u}){const[s,a]=l.useState(null);return l.useEffect(()=>{(async()=>{try{if(typeof r=="string")a(r);else{const o=await r;a(o)}}catch(o){console.error("Failed to resolve model URL:",o)}})()},[r]),s?i.jsx(R,{url:s,flangeRef:n,postModelRender:t,...u}):null}exports.GenericRobot=p;exports.default=p;
|
|
2
|
+
//# sourceMappingURL=GenericRobot.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericRobot.cjs","sources":["../../../src/components/robots/GenericRobot.tsx"],"sourcesContent":["import { useGLTF } from \"@react-three/drei\"\nimport type { ThreeElements } from \"@react-three/fiber\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useState } from \"react\"\nimport type { Group, Mesh, Object3D } from \"three\"\nimport { isFlange, parseRobotModel } from \"./robotModelLogic\"\n\nexport type RobotModelProps = {\n modelURL: string | Promise<string>\n /**\n * Called after a robot model has been loaded and\n * rendered into the threejs scene\n */\n postModelRender?: () => void\n flangeRef?: React.Ref<Group>\n} & ThreeElements[\"group\"]\n\nfunction isMesh(node: Object3D): node is Mesh {\n return node.type === \"Mesh\"\n}\n\n// Separate component that only renders when we have a valid URL\nfunction LoadedRobotModel({\n url,\n flangeRef,\n postModelRender,\n ...props\n}: {\n url: string\n flangeRef?: React.Ref<Group>\n postModelRender?: () => void\n} & ThreeElements[\"group\"]) {\n const gltfResult = useGLTF(url)\n const parsed = parseRobotModel(gltfResult, \"robot.glb\")\n const gltf = parsed.gltf\n\n const groupRef: React.RefCallback<Group> = useCallback(\n (group) => {\n if (group && postModelRender) {\n postModelRender()\n }\n },\n [postModelRender],\n )\n\n function renderNode(node: Object3D): React.ReactNode {\n try {\n if (isMesh(node)) {\n // Defensive: only render mesh if geometry exists\n if ((node as Mesh).geometry) {\n return (\n <mesh\n name={node.name}\n key={node.uuid}\n geometry={(node as Mesh).geometry}\n material={(node as Mesh).material}\n position={node.position}\n rotation={node.rotation}\n />\n )\n }\n // Fallback to empty group if geometry is missing\n return (\n <group\n name={node.name}\n key={node.uuid}\n position={node.position}\n rotation={node.rotation}\n />\n )\n } else {\n return (\n <group\n name={node.name}\n key={node.uuid}\n position={node.position}\n rotation={node.rotation}\n ref={isFlange(node) ? flangeRef : undefined}\n >\n {node.children.map(renderNode)}\n </group>\n )\n }\n } catch (e) {\n console.warn(\"Error rendering node\", node.name, e)\n return null\n }\n }\n\n return (\n <group {...props} dispose={null} ref={groupRef}>\n {renderNode(gltf.scene)}\n </group>\n )\n}\n\nexport function GenericRobot({\n modelURL,\n flangeRef,\n postModelRender,\n ...props\n}: RobotModelProps) {\n const [resolvedURL, setResolvedURL] = useState<string | null>(null)\n\n useEffect(() => {\n const resolveURL = async () => {\n try {\n if (typeof modelURL === \"string\") {\n setResolvedURL(modelURL)\n } else {\n const url = await modelURL\n setResolvedURL(url)\n }\n } catch (error) {\n console.error(\"Failed to resolve model URL:\", error)\n }\n }\n\n resolveURL()\n }, [modelURL])\n\n // Don't render until we have a resolved URL\n if (!resolvedURL) {\n return null // Loading state\n }\n\n return (\n <LoadedRobotModel\n url={resolvedURL}\n flangeRef={flangeRef}\n postModelRender={postModelRender}\n {...props}\n />\n )\n}\n\nexport default GenericRobot\n"],"names":["isMesh","node","LoadedRobotModel","url","flangeRef","postModelRender","props","gltfResult","useGLTF","gltf","parseRobotModel","groupRef","useCallback","group","renderNode","jsx","isFlange","e","GenericRobot","modelURL","resolvedURL","setResolvedURL","useState","useEffect","error"],"mappings":"sOAiBA,SAASA,EAAOC,EAA8B,CAC5C,OAAOA,EAAK,OAAS,MACvB,CAGA,SAASC,EAAiB,CACxB,IAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,GAAGC,CACL,EAI4B,CAC1B,MAAMC,EAAaC,EAAAA,QAAQL,CAAG,EAExBM,EADSC,EAAAA,gBAAgBH,EAAY,WAAW,EAClC,KAEdI,EAAqCC,EAAAA,YACxCC,GAAU,CACLA,GAASR,GACXA,EAAA,CAEJ,EACA,CAACA,CAAe,CAAA,EAGlB,SAASS,EAAWb,EAAiC,CACnD,GAAI,CACF,OAAID,EAAOC,CAAI,EAERA,EAAc,SAEfc,EAAAA,IAAC,OAAA,CACC,KAAMd,EAAK,KAEX,SAAWA,EAAc,SACzB,SAAWA,EAAc,SACzB,SAAUA,EAAK,SACf,SAAUA,EAAK,QAAA,EAJVA,EAAK,IAAA,EAUdc,EAAAA,IAAC,QAAA,CACC,KAAMd,EAAK,KAEX,SAAUA,EAAK,SACf,SAAUA,EAAK,QAAA,EAFVA,EAAK,IAAA,EAOZc,EAAAA,IAAC,QAAA,CACC,KAAMd,EAAK,KAEX,SAAUA,EAAK,SACf,SAAUA,EAAK,SACf,IAAKe,EAAAA,SAASf,CAAI,EAAIG,EAAY,OAEjC,SAAAH,EAAK,SAAS,IAAIa,CAAU,CAAA,EALxBb,EAAK,IAAA,CASlB,OAASgB,EAAG,CACV,eAAQ,KAAK,uBAAwBhB,EAAK,KAAMgB,CAAC,EAC1C,IACT,CACF,CAEA,OACEF,EAAAA,IAAC,QAAA,CAAO,GAAGT,EAAO,QAAS,KAAM,IAAKK,EACnC,SAAAG,EAAWL,EAAK,KAAK,CAAA,CACxB,CAEJ,CAEO,SAASS,EAAa,CAC3B,SAAAC,EACA,UAAAf,EACA,gBAAAC,EACA,GAAGC,CACL,EAAoB,CAClB,KAAM,CAACc,EAAaC,CAAc,EAAIC,EAAAA,SAAwB,IAAI,EAoBlE,OAlBAC,EAAAA,UAAU,IAAM,EACK,SAAY,CAC7B,GAAI,CACF,GAAI,OAAOJ,GAAa,SACtBE,EAAeF,CAAQ,MAClB,CACL,MAAMhB,EAAM,MAAMgB,EAClBE,EAAelB,CAAG,CACpB,CACF,OAASqB,EAAO,CACd,QAAQ,MAAM,+BAAgCA,CAAK,CACrD,CACF,GAEA,CACF,EAAG,CAACL,CAAQ,CAAC,EAGRC,EAKHL,EAAAA,IAACb,EAAA,CACC,IAAKkB,EACL,UAAAhB,EACA,gBAAAC,EACC,GAAGC,CAAA,CAAA,EARC,IAWX"}
|
|
@@ -12,3 +12,4 @@ export type RobotModelProps = {
|
|
|
12
12
|
} & ThreeElements["group"];
|
|
13
13
|
export declare function GenericRobot({ modelURL, flangeRef, postModelRender, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
14
14
|
export default GenericRobot;
|
|
15
|
+
//# sourceMappingURL=GenericRobot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericRobot.d.ts","sourceRoot":"","sources":["../../../src/components/robots/GenericRobot.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAGlD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAClC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;CAC7B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAiF1B,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,eAAe,EACf,GAAG,KAAK,EACT,EAAE,eAAe,kDAiCjB;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericRobot.js","sources":["../../../src/components/robots/GenericRobot.tsx"],"sourcesContent":["import { useGLTF } from \"@react-three/drei\"\nimport type { ThreeElements } from \"@react-three/fiber\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useState } from \"react\"\nimport type { Group, Mesh, Object3D } from \"three\"\nimport { isFlange, parseRobotModel } from \"./robotModelLogic\"\n\nexport type RobotModelProps = {\n modelURL: string | Promise<string>\n /**\n * Called after a robot model has been loaded and\n * rendered into the threejs scene\n */\n postModelRender?: () => void\n flangeRef?: React.Ref<Group>\n} & ThreeElements[\"group\"]\n\nfunction isMesh(node: Object3D): node is Mesh {\n return node.type === \"Mesh\"\n}\n\n// Separate component that only renders when we have a valid URL\nfunction LoadedRobotModel({\n url,\n flangeRef,\n postModelRender,\n ...props\n}: {\n url: string\n flangeRef?: React.Ref<Group>\n postModelRender?: () => void\n} & ThreeElements[\"group\"]) {\n const gltfResult = useGLTF(url)\n const parsed = parseRobotModel(gltfResult, \"robot.glb\")\n const gltf = parsed.gltf\n\n const groupRef: React.RefCallback<Group> = useCallback(\n (group) => {\n if (group && postModelRender) {\n postModelRender()\n }\n },\n [postModelRender],\n )\n\n function renderNode(node: Object3D): React.ReactNode {\n try {\n if (isMesh(node)) {\n // Defensive: only render mesh if geometry exists\n if ((node as Mesh).geometry) {\n return (\n <mesh\n name={node.name}\n key={node.uuid}\n geometry={(node as Mesh).geometry}\n material={(node as Mesh).material}\n position={node.position}\n rotation={node.rotation}\n />\n )\n }\n // Fallback to empty group if geometry is missing\n return (\n <group\n name={node.name}\n key={node.uuid}\n position={node.position}\n rotation={node.rotation}\n />\n )\n } else {\n return (\n <group\n name={node.name}\n key={node.uuid}\n position={node.position}\n rotation={node.rotation}\n ref={isFlange(node) ? flangeRef : undefined}\n >\n {node.children.map(renderNode)}\n </group>\n )\n }\n } catch (e) {\n console.warn(\"Error rendering node\", node.name, e)\n return null\n }\n }\n\n return (\n <group {...props} dispose={null} ref={groupRef}>\n {renderNode(gltf.scene)}\n </group>\n )\n}\n\nexport function GenericRobot({\n modelURL,\n flangeRef,\n postModelRender,\n ...props\n}: RobotModelProps) {\n const [resolvedURL, setResolvedURL] = useState<string | null>(null)\n\n useEffect(() => {\n const resolveURL = async () => {\n try {\n if (typeof modelURL === \"string\") {\n setResolvedURL(modelURL)\n } else {\n const url = await modelURL\n setResolvedURL(url)\n }\n } catch (error) {\n console.error(\"Failed to resolve model URL:\", error)\n }\n }\n\n resolveURL()\n }, [modelURL])\n\n // Don't render until we have a resolved URL\n if (!resolvedURL) {\n return null // Loading state\n }\n\n return (\n <LoadedRobotModel\n url={resolvedURL}\n flangeRef={flangeRef}\n postModelRender={postModelRender}\n {...props}\n />\n )\n}\n\nexport default GenericRobot\n"],"names":["isMesh","node","LoadedRobotModel","url","flangeRef","postModelRender","props","gltfResult","useGLTF","gltf","parseRobotModel","groupRef","useCallback","group","renderNode","jsx","isFlange","e","GenericRobot","modelURL","resolvedURL","setResolvedURL","useState","useEffect","error"],"mappings":";;;;AAiBA,SAASA,EAAOC,GAA8B;AAC5C,SAAOA,EAAK,SAAS;AACvB;AAGA,SAASC,EAAiB;AAAA,EACxB,KAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,GAI4B;AAC1B,QAAMC,IAAaC,EAAQL,CAAG,GAExBM,IADSC,EAAgBH,GAAY,WAAW,EAClC,MAEdI,IAAqCC;AAAA,IACzC,CAACC,MAAU;AACT,MAAIA,KAASR,KACXA,EAAA;AAAA,IAEJ;AAAA,IACA,CAACA,CAAe;AAAA,EAAA;AAGlB,WAASS,EAAWb,GAAiC;AACnD,QAAI;AACF,aAAID,EAAOC,CAAI,IAERA,EAAc,WAEf,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMd,EAAK;AAAA,UAEX,UAAWA,EAAc;AAAA,UACzB,UAAWA,EAAc;AAAA,UACzB,UAAUA,EAAK;AAAA,UACf,UAAUA,EAAK;AAAA,QAAA;AAAA,QAJVA,EAAK;AAAA,MAAA,IAUd,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMd,EAAK;AAAA,UAEX,UAAUA,EAAK;AAAA,UACf,UAAUA,EAAK;AAAA,QAAA;AAAA,QAFVA,EAAK;AAAA,MAAA,IAOZ,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMd,EAAK;AAAA,UAEX,UAAUA,EAAK;AAAA,UACf,UAAUA,EAAK;AAAA,UACf,KAAKe,EAASf,CAAI,IAAIG,IAAY;AAAA,UAEjC,UAAAH,EAAK,SAAS,IAAIa,CAAU;AAAA,QAAA;AAAA,QALxBb,EAAK;AAAA,MAAA;AAAA,IASlB,SAASgB,GAAG;AACV,qBAAQ,KAAK,wBAAwBhB,EAAK,MAAMgB,CAAC,GAC1C;AAAA,IACT;AAAA,EACF;AAEA,SACE,gBAAAF,EAAC,SAAA,EAAO,GAAGT,GAAO,SAAS,MAAM,KAAKK,GACnC,UAAAG,EAAWL,EAAK,KAAK,EAAA,CACxB;AAEJ;AAEO,SAASS,EAAa;AAAA,EAC3B,UAAAC;AAAA,EACA,WAAAf;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,GAAoB;AAClB,QAAM,CAACc,GAAaC,CAAc,IAAIC,EAAwB,IAAI;AAoBlE,SAlBAC,EAAU,MAAM;AAcd,KAbmB,YAAY;AAC7B,UAAI;AACF,YAAI,OAAOJ,KAAa;AACtB,UAAAE,EAAeF,CAAQ;AAAA,aAClB;AACL,gBAAMhB,IAAM,MAAMgB;AAClB,UAAAE,EAAelB,CAAG;AAAA,QACpB;AAAA,MACF,SAASqB,GAAO;AACd,gBAAQ,MAAM,gCAAgCA,CAAK;AAAA,MACrD;AAAA,IACF,GAEA;AAAA,EACF,GAAG,CAACL,CAAQ,CAAC,GAGRC,IAKH,gBAAAL;AAAA,IAACb;AAAA,IAAA;AAAA,MACC,KAAKkB;AAAA,MACL,WAAAhB;AAAA,MACA,iBAAAC;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA,IARC;AAWX;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),u=require("./DHLinearAxis.cjs"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),u=require("./DHLinearAxis.cjs"),l=require("./robotModelLogic.cjs"),h=require("./SupportedLinearAxis.cjs");function s({connectedMotionGroup:e,getModel:a=l.defaultGetModel,flangeRef:d,transparentColor:n,postModelRender:o,...t}){if(!e.dhParameters)return null;const r=e.modelFromController||"";return r&&a(r)?i.jsx(h.SupportedLinearAxis,{rapidlyChangingMotionState:e.rapidlyChangingMotionState,modelFromController:r,dhParameters:e.dhParameters,getModel:a,flangeRef:d,transparentColor:n,postModelRender:o,...t}):i.jsx(u.DHLinearAxis,{rapidlyChangingMotionState:e.rapidlyChangingMotionState,dhParameters:e.dhParameters,...t})}exports.defaultGetModel=l.defaultGetModel;exports.LinearAxis=s;exports.default=s;
|
|
2
|
+
//# sourceMappingURL=LinearAxis.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearAxis.cjs","sources":["../../../src/components/robots/LinearAxis.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\n\nimport type { Group } from \"three\"\nimport type { ConnectedMotionGroup } from \"../../lib/ConnectedMotionGroup\"\nimport { DHLinearAxis } from \"./DHLinearAxis\"\nimport { defaultGetModel } from \"./robotModelLogic\"\nimport { SupportedLinearAxis } from \"./SupportedLinearAxis\"\n\nexport type LinearAxisProps = {\n connectedMotionGroup: ConnectedMotionGroup\n getModel?: (modelFromController: string) => Promise<string>\n flangeRef?: React.Ref<Group>\n transparentColor?: string\n postModelRender?: () => void\n} & ThreeElements[\"group\"]\n\n/**\n * The LinearAxis component is a wrapper that renders SupportedLinearAxis if a model is available,\n * otherwise falls back to DHLinearAxis for usage with @wandelbots/nova-js ConnectedMotionGroup object.\n *\n * @param {LinearAxisProps} props - The properties for the LinearAxis component.\n * @param {ConnectedMotionGroup} props.connectedMotionGroup - The connected motion group containing motion state and parameters.\n * @param {Function} [props.getModel=defaultGetModel] - Optional function to get the model URL. Defaults to defaultGetModel.\n * @param {Object} props - Additional properties passed to the underlying component.\n *\n * @returns {JSX.Element} The rendered SupportedLinearAxis or DHLinearAxis component.\n */\nexport function LinearAxis({\n connectedMotionGroup,\n getModel = defaultGetModel,\n flangeRef,\n transparentColor,\n postModelRender,\n ...props\n}: LinearAxisProps) {\n if (!connectedMotionGroup.dhParameters) {\n return null\n }\n\n const modelFromController = connectedMotionGroup.modelFromController || \"\"\n const hasModel = modelFromController && getModel(modelFromController)\n\n // Use SupportedLinearAxis if model is available, otherwise fall back to DHLinearAxis\n if (hasModel) {\n return (\n <SupportedLinearAxis\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n modelFromController={modelFromController}\n dhParameters={connectedMotionGroup.dhParameters}\n getModel={getModel}\n flangeRef={flangeRef}\n transparentColor={transparentColor}\n postModelRender={postModelRender}\n {...props}\n />\n )\n }\n\n return (\n <DHLinearAxis\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n dhParameters={connectedMotionGroup.dhParameters}\n {...props}\n />\n )\n}\n\nexport { defaultGetModel }\n\nexport default LinearAxis\n"],"names":["LinearAxis","connectedMotionGroup","getModel","defaultGetModel","flangeRef","transparentColor","postModelRender","props","modelFromController","jsx","SupportedLinearAxis","DHLinearAxis"],"mappings":"2PA2BO,SAASA,EAAW,CACzB,qBAAAC,EACA,SAAAC,EAAWC,EAAAA,gBACX,UAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,GAAGC,CACL,EAAoB,CAClB,GAAI,CAACN,EAAqB,aACxB,OAAO,KAGT,MAAMO,EAAsBP,EAAqB,qBAAuB,GAIxE,OAHiBO,GAAuBN,EAASM,CAAmB,EAKhEC,EAAAA,IAACC,EAAAA,oBAAA,CACC,2BACET,EAAqB,2BAEvB,oBAAAO,EACA,aAAcP,EAAqB,aACnC,SAAAC,EACA,UAAAE,EACA,iBAAAC,EACA,gBAAAC,EACC,GAAGC,CAAA,CAAA,EAMRE,EAAAA,IAACE,EAAAA,aAAA,CACC,2BACEV,EAAqB,2BAEvB,aAAcA,EAAqB,aAClC,GAAGM,CAAA,CAAA,CAGV"}
|
|
@@ -23,3 +23,4 @@ export type LinearAxisProps = {
|
|
|
23
23
|
export declare function LinearAxis({ connectedMotionGroup, getModel, flangeRef, transparentColor, postModelRender, ...props }: LinearAxisProps): import("react/jsx-runtime").JSX.Element | null;
|
|
24
24
|
export { defaultGetModel };
|
|
25
25
|
export default LinearAxis;
|
|
26
|
+
//# sourceMappingURL=LinearAxis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearAxis.d.ts","sourceRoot":"","sources":["../../../src/components/robots/LinearAxis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,MAAM,MAAM,eAAe,GAAG;IAC5B,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC7B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EACzB,oBAAoB,EACpB,QAA0B,EAC1B,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,GAAG,KAAK,EACT,EAAE,eAAe,kDAmCjB;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearAxis.js","sources":["../../../src/components/robots/LinearAxis.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\n\nimport type { Group } from \"three\"\nimport type { ConnectedMotionGroup } from \"../../lib/ConnectedMotionGroup\"\nimport { DHLinearAxis } from \"./DHLinearAxis\"\nimport { defaultGetModel } from \"./robotModelLogic\"\nimport { SupportedLinearAxis } from \"./SupportedLinearAxis\"\n\nexport type LinearAxisProps = {\n connectedMotionGroup: ConnectedMotionGroup\n getModel?: (modelFromController: string) => Promise<string>\n flangeRef?: React.Ref<Group>\n transparentColor?: string\n postModelRender?: () => void\n} & ThreeElements[\"group\"]\n\n/**\n * The LinearAxis component is a wrapper that renders SupportedLinearAxis if a model is available,\n * otherwise falls back to DHLinearAxis for usage with @wandelbots/nova-js ConnectedMotionGroup object.\n *\n * @param {LinearAxisProps} props - The properties for the LinearAxis component.\n * @param {ConnectedMotionGroup} props.connectedMotionGroup - The connected motion group containing motion state and parameters.\n * @param {Function} [props.getModel=defaultGetModel] - Optional function to get the model URL. Defaults to defaultGetModel.\n * @param {Object} props - Additional properties passed to the underlying component.\n *\n * @returns {JSX.Element} The rendered SupportedLinearAxis or DHLinearAxis component.\n */\nexport function LinearAxis({\n connectedMotionGroup,\n getModel = defaultGetModel,\n flangeRef,\n transparentColor,\n postModelRender,\n ...props\n}: LinearAxisProps) {\n if (!connectedMotionGroup.dhParameters) {\n return null\n }\n\n const modelFromController = connectedMotionGroup.modelFromController || \"\"\n const hasModel = modelFromController && getModel(modelFromController)\n\n // Use SupportedLinearAxis if model is available, otherwise fall back to DHLinearAxis\n if (hasModel) {\n return (\n <SupportedLinearAxis\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n modelFromController={modelFromController}\n dhParameters={connectedMotionGroup.dhParameters}\n getModel={getModel}\n flangeRef={flangeRef}\n transparentColor={transparentColor}\n postModelRender={postModelRender}\n {...props}\n />\n )\n }\n\n return (\n <DHLinearAxis\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n dhParameters={connectedMotionGroup.dhParameters}\n {...props}\n />\n )\n}\n\nexport { defaultGetModel }\n\nexport default LinearAxis\n"],"names":["LinearAxis","connectedMotionGroup","getModel","defaultGetModel","flangeRef","transparentColor","postModelRender","props","modelFromController","jsx","SupportedLinearAxis","DHLinearAxis"],"mappings":";;;;AA2BO,SAASA,EAAW;AAAA,EACzB,sBAAAC;AAAA,EACA,UAAAC,IAAWC;AAAA,EACX,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,GAAoB;AAClB,MAAI,CAACN,EAAqB;AACxB,WAAO;AAGT,QAAMO,IAAsBP,EAAqB,uBAAuB;AAIxE,SAHiBO,KAAuBN,EAASM,CAAmB,IAKhE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACET,EAAqB;AAAA,MAEvB,qBAAAO;AAAA,MACA,cAAcP,EAAqB;AAAA,MACnC,UAAAC;AAAA,MACA,WAAAE;AAAA,MACA,kBAAAC;AAAA,MACA,iBAAAC;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA,IAMR,gBAAAE;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,4BACEV,EAAqB;AAAA,MAEvB,cAAcA,EAAqB;AAAA,MAClC,GAAGM;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const R=require("react/jsx-runtime"),f=require("@react-three/fiber"),n=require("react"),v=require("../utils/hooks.cjs"),V=require("../utils/interpolation.cjs"),_=require("./robotModelLogic.cjs");function J({rapidlyChangingMotionState:o,dhParameters:d,onTranslationChanged:c,children:j}){const m=n.useRef([]),i=n.useRef([]),r=n.useRef(null),{invalidate:l}=f.useThree();n.useEffect(()=>{const t=o.joint_position.filter(e=>e!==void 0);return r.current=new V.ValueInterpolator(t,{tension:120,friction:20,threshold:.001}),()=>{var e;(e=r.current)==null||e.destroy()}},[]),f.useFrame((t,e)=>{if(r.current){const s=r.current.update(e);a(),s||l()}});function p(t){t&&(i.current=_.collectJoints(t),a(),l())}function a(){var e;const t=((e=r.current)==null?void 0:e.getCurrentValues())||[];if(c)c(i.current,t);else for(const[s,b]of i.current.entries()){const q=d[s].reverse_rotation_direction?-1:1;b.position.y=q*(t[s]||0)/1e3}}const u=n.useCallback(()=>{const t=o.joint_position.filter(e=>e!==void 0);requestAnimationFrame(()=>{var e;m.current=t,(e=r.current)==null||e.setTarget(t)})},[o]);return n.useEffect(()=>{u()},[o,u]),v.useAutorun(()=>{u()}),R.jsx("group",{ref:p,children:j})}exports.default=J;
|
|
2
|
+
//# sourceMappingURL=LinearAxisAnimator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearAxisAnimator.cjs","sources":["../../../src/components/robots/LinearAxisAnimator.tsx"],"sourcesContent":["import { useFrame, useThree } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useRef } from \"react\"\nimport type { Group, Object3D } from \"three\"\nimport { useAutorun } from \"../utils/hooks\"\nimport { ValueInterpolator } from \"../utils/interpolation\"\nimport { collectJoints } from \"./robotModelLogic\"\n\ntype LinearAxisAnimatorProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: DHParameter[]\n onTranslationChanged?: (joints: Object3D[], jointValues: number[]) => void\n children: React.ReactNode\n}\n\nexport default function LinearAxisAnimator({\n rapidlyChangingMotionState,\n dhParameters,\n onTranslationChanged,\n children,\n}: LinearAxisAnimatorProps) {\n const jointValues = useRef<number[]>([])\n const jointObjects = useRef<Object3D[]>([])\n const interpolatorRef = useRef<ValueInterpolator | null>(null)\n const { invalidate } = useThree()\n\n // Initialize interpolator\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n const initialJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n interpolatorRef.current = new ValueInterpolator(initialJointValues, {\n tension: 120, // Controls spring stiffness - higher values create faster, more responsive motion\n friction: 20, // Controls damping - higher values reduce oscillation and create smoother settling\n threshold: 0.001,\n })\n\n return () => {\n interpolatorRef.current?.destroy()\n }\n }, [])\n\n // Animation loop that runs at the display's refresh rate\n useFrame((state, delta) => {\n if (interpolatorRef.current) {\n const isComplete = interpolatorRef.current.update(delta)\n setTranslation()\n\n // Trigger a re-render only if the animation is still running\n if (!isComplete) {\n invalidate()\n }\n }\n })\n\n function setGroupRef(group: Group | null) {\n if (!group) return\n\n jointObjects.current = collectJoints(group)\n\n // Set initial position\n setTranslation()\n invalidate()\n }\n\n function setTranslation() {\n const updatedJointValues = interpolatorRef.current?.getCurrentValues() || []\n\n if (onTranslationChanged) {\n onTranslationChanged(jointObjects.current, updatedJointValues)\n } else {\n // For linear axes, we apply translation instead of rotation\n for (const [index, object] of jointObjects.current.entries()) {\n const dhParam = dhParameters[index]\n const translationSign = dhParam.reverse_rotation_direction ? -1 : 1\n\n // Apply linear translation along Y axis\n // Convert from millimeters to meters\n object.position.y =\n (translationSign * (updatedJointValues[index] || 0)) / 1000\n }\n }\n }\n\n const updateJoints = useCallback(() => {\n const newJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n requestAnimationFrame(() => {\n jointValues.current = newJointValues\n interpolatorRef.current?.setTarget(newJointValues)\n })\n }, [rapidlyChangingMotionState])\n\n /**\n * Fire an update joints call on every motion state change.\n * requestAnimationFrame used to avoid blocking main thread\n */\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n updateJoints()\n }, [rapidlyChangingMotionState, updateJoints])\n\n /**\n * As some consumer applications (eg. storybook) deliver\n * mobx observable for rapidlyChangingMotionState, we need to\n * register the watcher to get the newest value updates\n */\n useAutorun(() => {\n updateJoints()\n })\n\n return <group ref={setGroupRef}>{children}</group>\n}\n"],"names":["LinearAxisAnimator","rapidlyChangingMotionState","dhParameters","onTranslationChanged","children","jointValues","useRef","jointObjects","interpolatorRef","invalidate","useThree","useEffect","initialJointValues","item","ValueInterpolator","_a","useFrame","state","delta","isComplete","setTranslation","setGroupRef","group","collectJoints","updatedJointValues","index","object","translationSign","updateJoints","useCallback","newJointValues","useAutorun","jsx"],"mappings":"+SAgBA,SAAwBA,EAAmB,CACzC,2BAAAC,EACA,aAAAC,EACA,qBAAAC,EACA,SAAAC,CACF,EAA4B,CAC1B,MAAMC,EAAcC,EAAAA,OAAiB,EAAE,EACjCC,EAAeD,EAAAA,OAAmB,EAAE,EACpCE,EAAkBF,EAAAA,OAAiC,IAAI,EACvD,CAAE,WAAAG,CAAA,EAAeC,WAAA,EAIvBC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAqBX,EAA2B,eAAe,OAClEY,GAASA,IAAS,MAAA,EAGrB,OAAAL,EAAgB,QAAU,IAAIM,EAAAA,kBAAkBF,EAAoB,CAClE,QAAS,IACT,SAAU,GACV,UAAW,IAAA,CACZ,EAEM,IAAM,QACXG,EAAAP,EAAgB,UAAhB,MAAAO,EAAyB,SAC3B,CACF,EAAG,CAAA,CAAE,EAGLC,WAAS,CAACC,EAAOC,IAAU,CACzB,GAAIV,EAAgB,QAAS,CAC3B,MAAMW,EAAaX,EAAgB,QAAQ,OAAOU,CAAK,EACvDE,EAAA,EAGKD,GACHV,EAAA,CAEJ,CACF,CAAC,EAED,SAASY,EAAYC,EAAqB,CACnCA,IAELf,EAAa,QAAUgB,EAAAA,cAAcD,CAAK,EAG1CF,EAAA,EACAX,EAAA,EACF,CAEA,SAASW,GAAiB,OACxB,MAAMI,IAAqBT,EAAAP,EAAgB,UAAhB,YAAAO,EAAyB,qBAAsB,CAAA,EAE1E,GAAIZ,EACFA,EAAqBI,EAAa,QAASiB,CAAkB,MAG7D,UAAW,CAACC,EAAOC,CAAM,IAAKnB,EAAa,QAAQ,UAAW,CAE5D,MAAMoB,EADUzB,EAAauB,CAAK,EACF,2BAA6B,GAAK,EAIlEC,EAAO,SAAS,EACbC,GAAmBH,EAAmBC,CAAK,GAAK,GAAM,GAC3D,CAEJ,CAEA,MAAMG,EAAeC,EAAAA,YAAY,IAAM,CACrC,MAAMC,EAAiB7B,EAA2B,eAAe,OAC9DY,GAASA,IAAS,MAAA,EAGrB,sBAAsB,IAAM,OAC1BR,EAAY,QAAUyB,GACtBf,EAAAP,EAAgB,UAAhB,MAAAO,EAAyB,UAAUe,EACrC,CAAC,CACH,EAAG,CAAC7B,CAA0B,CAAC,EAO/BU,OAAAA,EAAAA,UAAU,IAAM,CACdiB,EAAA,CACF,EAAG,CAAC3B,EAA4B2B,CAAY,CAAC,EAO7CG,EAAAA,WAAW,IAAM,CACfH,EAAA,CACF,CAAC,EAEMI,EAAAA,IAAC,QAAA,CAAM,IAAKX,EAAc,SAAAjB,CAAA,CAAS,CAC5C"}
|
|
@@ -9,3 +9,4 @@ type LinearAxisAnimatorProps = {
|
|
|
9
9
|
};
|
|
10
10
|
export default function LinearAxisAnimator({ rapidlyChangingMotionState, dhParameters, onTranslationChanged, children, }: LinearAxisAnimatorProps): import("react/jsx-runtime").JSX.Element;
|
|
11
11
|
export {};
|
|
12
|
+
//# sourceMappingURL=LinearAxisAnimator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearAxisAnimator.d.ts","sourceRoot":"","sources":["../../../src/components/robots/LinearAxisAnimator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,OAAO,CAAA;AAK5C,KAAK,uBAAuB,GAAG;IAC7B,0BAA0B,EAAE,gBAAgB,CAAA;IAC5C,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC1E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,0BAA0B,EAC1B,YAAY,EACZ,oBAAoB,EACpB,QAAQ,GACT,EAAE,uBAAuB,2CAgGzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearAxisAnimator.js","sources":["../../../src/components/robots/LinearAxisAnimator.tsx"],"sourcesContent":["import { useFrame, useThree } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useRef } from \"react\"\nimport type { Group, Object3D } from \"three\"\nimport { useAutorun } from \"../utils/hooks\"\nimport { ValueInterpolator } from \"../utils/interpolation\"\nimport { collectJoints } from \"./robotModelLogic\"\n\ntype LinearAxisAnimatorProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: DHParameter[]\n onTranslationChanged?: (joints: Object3D[], jointValues: number[]) => void\n children: React.ReactNode\n}\n\nexport default function LinearAxisAnimator({\n rapidlyChangingMotionState,\n dhParameters,\n onTranslationChanged,\n children,\n}: LinearAxisAnimatorProps) {\n const jointValues = useRef<number[]>([])\n const jointObjects = useRef<Object3D[]>([])\n const interpolatorRef = useRef<ValueInterpolator | null>(null)\n const { invalidate } = useThree()\n\n // Initialize interpolator\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n const initialJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n interpolatorRef.current = new ValueInterpolator(initialJointValues, {\n tension: 120, // Controls spring stiffness - higher values create faster, more responsive motion\n friction: 20, // Controls damping - higher values reduce oscillation and create smoother settling\n threshold: 0.001,\n })\n\n return () => {\n interpolatorRef.current?.destroy()\n }\n }, [])\n\n // Animation loop that runs at the display's refresh rate\n useFrame((state, delta) => {\n if (interpolatorRef.current) {\n const isComplete = interpolatorRef.current.update(delta)\n setTranslation()\n\n // Trigger a re-render only if the animation is still running\n if (!isComplete) {\n invalidate()\n }\n }\n })\n\n function setGroupRef(group: Group | null) {\n if (!group) return\n\n jointObjects.current = collectJoints(group)\n\n // Set initial position\n setTranslation()\n invalidate()\n }\n\n function setTranslation() {\n const updatedJointValues = interpolatorRef.current?.getCurrentValues() || []\n\n if (onTranslationChanged) {\n onTranslationChanged(jointObjects.current, updatedJointValues)\n } else {\n // For linear axes, we apply translation instead of rotation\n for (const [index, object] of jointObjects.current.entries()) {\n const dhParam = dhParameters[index]\n const translationSign = dhParam.reverse_rotation_direction ? -1 : 1\n\n // Apply linear translation along Y axis\n // Convert from millimeters to meters\n object.position.y =\n (translationSign * (updatedJointValues[index] || 0)) / 1000\n }\n }\n }\n\n const updateJoints = useCallback(() => {\n const newJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n requestAnimationFrame(() => {\n jointValues.current = newJointValues\n interpolatorRef.current?.setTarget(newJointValues)\n })\n }, [rapidlyChangingMotionState])\n\n /**\n * Fire an update joints call on every motion state change.\n * requestAnimationFrame used to avoid blocking main thread\n */\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n updateJoints()\n }, [rapidlyChangingMotionState, updateJoints])\n\n /**\n * As some consumer applications (eg. storybook) deliver\n * mobx observable for rapidlyChangingMotionState, we need to\n * register the watcher to get the newest value updates\n */\n useAutorun(() => {\n updateJoints()\n })\n\n return <group ref={setGroupRef}>{children}</group>\n}\n"],"names":["LinearAxisAnimator","rapidlyChangingMotionState","dhParameters","onTranslationChanged","children","jointValues","useRef","jointObjects","interpolatorRef","invalidate","useThree","useEffect","initialJointValues","item","ValueInterpolator","_a","useFrame","state","delta","isComplete","setTranslation","setGroupRef","group","collectJoints","updatedJointValues","index","object","translationSign","updateJoints","useCallback","newJointValues","useAutorun","jsx"],"mappings":";;;;;;AAgBA,SAAwBA,EAAmB;AAAA,EACzC,4BAAAC;AAAA,EACA,cAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,UAAAC;AACF,GAA4B;AAC1B,QAAMC,IAAcC,EAAiB,EAAE,GACjCC,IAAeD,EAAmB,EAAE,GACpCE,IAAkBF,EAAiC,IAAI,GACvD,EAAE,YAAAG,EAAA,IAAeC,EAAA;AAIvB,EAAAC,EAAU,MAAM;AACd,UAAMC,IAAqBX,EAA2B,eAAe;AAAA,MACnE,CAACY,MAASA,MAAS;AAAA,IAAA;AAGrB,WAAAL,EAAgB,UAAU,IAAIM,EAAkBF,GAAoB;AAAA,MAClE,SAAS;AAAA;AAAA,MACT,UAAU;AAAA;AAAA,MACV,WAAW;AAAA,IAAA,CACZ,GAEM,MAAM;;AACX,OAAAG,IAAAP,EAAgB,YAAhB,QAAAO,EAAyB;AAAA,IAC3B;AAAA,EACF,GAAG,CAAA,CAAE,GAGLC,EAAS,CAACC,GAAOC,MAAU;AACzB,QAAIV,EAAgB,SAAS;AAC3B,YAAMW,IAAaX,EAAgB,QAAQ,OAAOU,CAAK;AACvD,MAAAE,EAAA,GAGKD,KACHV,EAAA;AAAA,IAEJ;AAAA,EACF,CAAC;AAED,WAASY,EAAYC,GAAqB;AACxC,IAAKA,MAELf,EAAa,UAAUgB,EAAcD,CAAK,GAG1CF,EAAA,GACAX,EAAA;AAAA,EACF;AAEA,WAASW,IAAiB;;AACxB,UAAMI,MAAqBT,IAAAP,EAAgB,YAAhB,gBAAAO,EAAyB,uBAAsB,CAAA;AAE1E,QAAIZ;AACF,MAAAA,EAAqBI,EAAa,SAASiB,CAAkB;AAAA;AAG7D,iBAAW,CAACC,GAAOC,CAAM,KAAKnB,EAAa,QAAQ,WAAW;AAE5D,cAAMoB,IADUzB,EAAauB,CAAK,EACF,6BAA6B,KAAK;AAIlE,QAAAC,EAAO,SAAS,IACbC,KAAmBH,EAAmBC,CAAK,KAAK,KAAM;AAAA,MAC3D;AAAA,EAEJ;AAEA,QAAMG,IAAeC,EAAY,MAAM;AACrC,UAAMC,IAAiB7B,EAA2B,eAAe;AAAA,MAC/D,CAACY,MAASA,MAAS;AAAA,IAAA;AAGrB,0BAAsB,MAAM;;AAC1B,MAAAR,EAAY,UAAUyB,IACtBf,IAAAP,EAAgB,YAAhB,QAAAO,EAAyB,UAAUe;AAAA,IACrC,CAAC;AAAA,EACH,GAAG,CAAC7B,CAA0B,CAAC;AAO/B,SAAAU,EAAU,MAAM;AACd,IAAAiB,EAAA;AAAA,EACF,GAAG,CAAC3B,GAA4B2B,CAAY,CAAC,GAO7CG,EAAW,MAAM;AACf,IAAAH,EAAA;AAAA,EACF,CAAC,GAEM,gBAAAI,EAAC,SAAA,EAAM,KAAKX,GAAc,UAAAjB,EAAA,CAAS;AAC5C;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react/jsx-runtime"),r=require("@wandelbots/nova-js/v2"),o=require("react"),m=require("../../
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react/jsx-runtime"),r=require("@wandelbots/nova-js/v2"),o=require("react"),m=require("../../externalizeComponent.cjs"),d=require("./SupportedLinearAxis.cjs"),J=require("./SupportedRobot.cjs"),s=m.externalizeComponent(l=>{const{inverseSolver:e,dhParameters:t,...i}=l,[n,p]=o.useState(r.JointTypeEnum.RevoluteJoint);o.useEffect(()=>{t.length&&p(t[0].type??r.JointTypeEnum.RevoluteJoint)},[t]);const a=o.useMemo(()=>e===null&&n===r.JointTypeEnum.RevoluteJoint,[e,n]),c=o.useMemo(()=>e===null&&n===r.JointTypeEnum.PrismaticJoint,[e,n]);return o.useMemo(()=>!!e,[e])||a?u.jsx(J.SupportedRobot,{dhParameters:t,...i}):c?u.jsx(d.SupportedLinearAxis,{dhParameters:t,...i}):null});exports.MotionGroupVisualizer=s;exports.default=s;
|
|
2
|
+
//# sourceMappingURL=MotionGroupVisualizer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MotionGroupVisualizer.cjs","sources":["../../../src/components/robots/MotionGroupVisualizer.tsx"],"sourcesContent":["import { JointTypeEnum } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useEffect, useMemo, useState } from \"react\"\n\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport {\n SupportedLinearAxis,\n type SupportedLinearAxisProps,\n} from \"./SupportedLinearAxis\"\nimport { SupportedRobot, type SupportedRobotProps } from \"./SupportedRobot\"\n\nexport type MotionGroupVisualizerProps = {\n instanceUrl: string\n inverseSolver?: string | null\n} & (SupportedRobotProps | SupportedLinearAxisProps)\n\nexport const MotionGroupVisualizer: React.FC<MotionGroupVisualizerProps> =\n externalizeComponent((props: MotionGroupVisualizerProps) => {\n const { inverseSolver, dhParameters, ...rest } = props\n\n /**\n * Joint type to find out - in combination with inverseSolver - whether the\n * active robot is a turn table\n */\n const [jointType, setJointType] = useState<JointTypeEnum>(\n JointTypeEnum.RevoluteJoint,\n )\n\n /**\n * Sets the joint type according to delivered dh parameter type\n */\n useEffect(() => {\n if (dhParameters.length) {\n setJointType(dhParameters[0].type ?? JointTypeEnum.RevoluteJoint)\n }\n }, [dhParameters])\n\n /**\n * The turntable models return inverseSolver = null - however these models\n * should be rendered with SupportedRobot instead of SupportedLinearAxis\n */\n const isTurnTable = useMemo(() => {\n return inverseSolver === null && jointType === JointTypeEnum.RevoluteJoint\n }, [inverseSolver, jointType])\n\n /**\n * Linear axis check\n */\n const isLinearAxis = useMemo(() => {\n return (\n inverseSolver === null && jointType === JointTypeEnum.PrismaticJoint\n )\n }, [inverseSolver, jointType])\n\n /**\n * Robot differentiation for readability reasons\n */\n const isRobot = useMemo(() => {\n return !!inverseSolver\n }, [inverseSolver])\n\n if (isRobot || isTurnTable) {\n return <SupportedRobot dhParameters={dhParameters} {...rest} />\n }\n\n if (isLinearAxis) {\n return <SupportedLinearAxis dhParameters={dhParameters} {...rest} />\n }\n\n return null\n })\n\nexport default MotionGroupVisualizer\n"],"names":["MotionGroupVisualizer","externalizeComponent","props","inverseSolver","dhParameters","rest","jointType","setJointType","useState","JointTypeEnum","useEffect","isTurnTable","useMemo","isLinearAxis","jsx","SupportedRobot","SupportedLinearAxis"],"mappings":"6TAgBaA,EACXC,EAAAA,qBAAsBC,GAAsC,CAC1D,KAAM,CAAE,cAAAC,EAAe,aAAAC,EAAc,GAAGC,GAASH,EAM3C,CAACI,EAAWC,CAAY,EAAIC,EAAAA,SAChCC,gBAAc,aAAA,EAMhBC,EAAAA,UAAU,IAAM,CACVN,EAAa,QACfG,EAAaH,EAAa,CAAC,EAAE,MAAQK,EAAAA,cAAc,aAAa,CAEpE,EAAG,CAACL,CAAY,CAAC,EAMjB,MAAMO,EAAcC,EAAAA,QAAQ,IACnBT,IAAkB,MAAQG,IAAcG,EAAAA,cAAc,cAC5D,CAACN,EAAeG,CAAS,CAAC,EAKvBO,EAAeD,EAAAA,QAAQ,IAEzBT,IAAkB,MAAQG,IAAcG,EAAAA,cAAc,eAEvD,CAACN,EAAeG,CAAS,CAAC,EAS7B,OAJgBM,EAAAA,QAAQ,IACf,CAAC,CAACT,EACR,CAACA,CAAa,CAAC,GAEHQ,EACNG,EAAAA,IAACC,EAAAA,eAAA,CAAe,aAAAX,EAA6B,GAAGC,CAAA,CAAM,EAG3DQ,EACKC,EAAAA,IAACE,EAAAA,oBAAA,CAAoB,aAAAZ,EAA6B,GAAGC,CAAA,CAAM,EAG7D,IACT,CAAC"}
|
|
@@ -7,3 +7,4 @@ export type MotionGroupVisualizerProps = {
|
|
|
7
7
|
} & (SupportedRobotProps | SupportedLinearAxisProps);
|
|
8
8
|
export declare const MotionGroupVisualizer: React.FC<MotionGroupVisualizerProps>;
|
|
9
9
|
export default MotionGroupVisualizer;
|
|
10
|
+
//# sourceMappingURL=MotionGroupVisualizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MotionGroupVisualizer.d.ts","sourceRoot":"","sources":["../../../src/components/robots/MotionGroupVisualizer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3E,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B,GAAG,CAAC,mBAAmB,GAAG,wBAAwB,CAAC,CAAA;AAEpD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAsDnE,CAAA;AAEJ,eAAe,qBAAqB,CAAA"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx as s } from "react/jsx-runtime";
|
|
2
2
|
import { JointTypeEnum as r } from "@wandelbots/nova-js/v2";
|
|
3
|
-
import { useState as
|
|
4
|
-
import {
|
|
3
|
+
import { useState as f, useEffect as a, useMemo as n } from "react";
|
|
4
|
+
import { externalizeComponent as c } from "../../externalizeComponent.js";
|
|
5
5
|
import { SupportedLinearAxis as J } from "./SupportedLinearAxis.js";
|
|
6
6
|
import { SupportedRobot as R } from "./SupportedRobot.js";
|
|
7
7
|
const h = c((u) => {
|
|
8
|
-
const { inverseSolver: t, dhParameters: o, ...i } = u, [e, m] =
|
|
8
|
+
const { inverseSolver: t, dhParameters: o, ...i } = u, [e, m] = f(
|
|
9
9
|
r.RevoluteJoint
|
|
10
10
|
);
|
|
11
|
-
|
|
11
|
+
a(() => {
|
|
12
12
|
o.length && m(o[0].type ?? r.RevoluteJoint);
|
|
13
13
|
}, [o]);
|
|
14
14
|
const p = n(() => t === null && e === r.RevoluteJoint, [t, e]), l = n(() => t === null && e === r.PrismaticJoint, [t, e]);
|
|
@@ -18,3 +18,4 @@ export {
|
|
|
18
18
|
h as MotionGroupVisualizer,
|
|
19
19
|
h as default
|
|
20
20
|
};
|
|
21
|
+
//# sourceMappingURL=MotionGroupVisualizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MotionGroupVisualizer.js","sources":["../../../src/components/robots/MotionGroupVisualizer.tsx"],"sourcesContent":["import { JointTypeEnum } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useEffect, useMemo, useState } from \"react\"\n\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport {\n SupportedLinearAxis,\n type SupportedLinearAxisProps,\n} from \"./SupportedLinearAxis\"\nimport { SupportedRobot, type SupportedRobotProps } from \"./SupportedRobot\"\n\nexport type MotionGroupVisualizerProps = {\n instanceUrl: string\n inverseSolver?: string | null\n} & (SupportedRobotProps | SupportedLinearAxisProps)\n\nexport const MotionGroupVisualizer: React.FC<MotionGroupVisualizerProps> =\n externalizeComponent((props: MotionGroupVisualizerProps) => {\n const { inverseSolver, dhParameters, ...rest } = props\n\n /**\n * Joint type to find out - in combination with inverseSolver - whether the\n * active robot is a turn table\n */\n const [jointType, setJointType] = useState<JointTypeEnum>(\n JointTypeEnum.RevoluteJoint,\n )\n\n /**\n * Sets the joint type according to delivered dh parameter type\n */\n useEffect(() => {\n if (dhParameters.length) {\n setJointType(dhParameters[0].type ?? JointTypeEnum.RevoluteJoint)\n }\n }, [dhParameters])\n\n /**\n * The turntable models return inverseSolver = null - however these models\n * should be rendered with SupportedRobot instead of SupportedLinearAxis\n */\n const isTurnTable = useMemo(() => {\n return inverseSolver === null && jointType === JointTypeEnum.RevoluteJoint\n }, [inverseSolver, jointType])\n\n /**\n * Linear axis check\n */\n const isLinearAxis = useMemo(() => {\n return (\n inverseSolver === null && jointType === JointTypeEnum.PrismaticJoint\n )\n }, [inverseSolver, jointType])\n\n /**\n * Robot differentiation for readability reasons\n */\n const isRobot = useMemo(() => {\n return !!inverseSolver\n }, [inverseSolver])\n\n if (isRobot || isTurnTable) {\n return <SupportedRobot dhParameters={dhParameters} {...rest} />\n }\n\n if (isLinearAxis) {\n return <SupportedLinearAxis dhParameters={dhParameters} {...rest} />\n }\n\n return null\n })\n\nexport default MotionGroupVisualizer\n"],"names":["MotionGroupVisualizer","externalizeComponent","props","inverseSolver","dhParameters","rest","jointType","setJointType","useState","JointTypeEnum","useEffect","isTurnTable","useMemo","isLinearAxis","jsx","SupportedRobot","SupportedLinearAxis"],"mappings":";;;;;;AAgBO,MAAMA,IACXC,EAAqB,CAACC,MAAsC;AAC1D,QAAM,EAAE,eAAAC,GAAe,cAAAC,GAAc,GAAGC,MAASH,GAM3C,CAACI,GAAWC,CAAY,IAAIC;AAAA,IAChCC,EAAc;AAAA,EAAA;AAMhB,EAAAC,EAAU,MAAM;AACd,IAAIN,EAAa,UACfG,EAAaH,EAAa,CAAC,EAAE,QAAQK,EAAc,aAAa;AAAA,EAEpE,GAAG,CAACL,CAAY,CAAC;AAMjB,QAAMO,IAAcC,EAAQ,MACnBT,MAAkB,QAAQG,MAAcG,EAAc,eAC5D,CAACN,GAAeG,CAAS,CAAC,GAKvBO,IAAeD,EAAQ,MAEzBT,MAAkB,QAAQG,MAAcG,EAAc,gBAEvD,CAACN,GAAeG,CAAS,CAAC;AAS7B,SAJgBM,EAAQ,MACf,CAAC,CAACT,GACR,CAACA,CAAa,CAAC,KAEHQ,IACN,gBAAAG,EAACC,GAAA,EAAe,cAAAX,GAA6B,GAAGC,EAAA,CAAM,IAG3DQ,IACK,gBAAAC,EAACE,GAAA,EAAoB,cAAAZ,GAA6B,GAAGC,EAAA,CAAM,IAG7D;AACT,CAAC;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),t=require("./robotModelLogic.cjs"),s=require("./SupportedRobot.cjs");function r({connectedMotionGroup:e,getModel:o=t.defaultGetModel,flangeRef:l,transparentColor:a,postModelRender:d,...u}){return e.dhParameters?i.jsx(s.SupportedRobot,{rapidlyChangingMotionState:e.rapidlyChangingMotionState,modelFromController:e.modelFromController||"",dhParameters:e.dhParameters,getModel:o,flangeRef:l,transparentColor:a,postModelRender:d,...u}):null}exports.defaultGetModel=t.defaultGetModel;exports.Robot=r;exports.default=r;
|
|
2
|
+
//# sourceMappingURL=Robot.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Robot.cjs","sources":["../../../src/components/robots/Robot.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\n\nimport type { Group } from \"three\"\nimport type { ConnectedMotionGroup } from \"../../lib/ConnectedMotionGroup\"\nimport { defaultGetModel } from \"./robotModelLogic\"\nimport { SupportedRobot } from \"./SupportedRobot\"\n\nexport type RobotProps = {\n connectedMotionGroup: ConnectedMotionGroup\n getModel?: (modelFromController: string) => Promise<string>\n flangeRef?: React.Ref<Group>\n transparentColor?: string\n postModelRender?: () => void\n} & ThreeElements[\"group\"]\n\n/**\n * The Robot component is a wrapper around the SupportedRobot component\n * for usage with @wandelbots/nova-js ConnectedMotionGroup object.\n *\n * @param {RobotProps} props - The properties for the Robot component.\n * @param {ConnectedMotionGroup} props.connectedMotionGroup - The connected motion group containing motion state and parameters.\n * @param {Function} [props.getModel=defaultGetModel] - Optional function to get the model URL. Defaults to defaultGetModel.\n * @param {Object} props - Additional properties passed to the SupportedRobot component.\n *\n * @returns {JSX.Element} The rendered SupportedRobot component.\n */\nexport function Robot({\n connectedMotionGroup,\n getModel = defaultGetModel,\n flangeRef,\n transparentColor,\n postModelRender,\n ...props\n}: RobotProps) {\n if (!connectedMotionGroup.dhParameters) {\n return null\n }\n\n return (\n <SupportedRobot\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n modelFromController={connectedMotionGroup.modelFromController || \"\"}\n dhParameters={connectedMotionGroup.dhParameters}\n getModel={getModel}\n flangeRef={flangeRef}\n transparentColor={transparentColor}\n postModelRender={postModelRender}\n {...props}\n />\n )\n}\n\nexport { defaultGetModel }\n\nexport default Robot\n"],"names":["Robot","connectedMotionGroup","getModel","defaultGetModel","flangeRef","transparentColor","postModelRender","props","jsx","SupportedRobot"],"mappings":"sNA0BO,SAASA,EAAM,CACpB,qBAAAC,EACA,SAAAC,EAAWC,EAAAA,gBACX,UAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,GAAGC,CACL,EAAe,CACb,OAAKN,EAAqB,aAKxBO,EAAAA,IAACC,EAAAA,eAAA,CACC,2BACER,EAAqB,2BAEvB,oBAAqBA,EAAqB,qBAAuB,GACjE,aAAcA,EAAqB,aACnC,SAAAC,EACA,UAAAE,EACA,iBAAAC,EACA,gBAAAC,EACC,GAAGC,CAAA,CAAA,EAdC,IAiBX"}
|
|
@@ -23,3 +23,4 @@ export type RobotProps = {
|
|
|
23
23
|
export declare function Robot({ connectedMotionGroup, getModel, flangeRef, transparentColor, postModelRender, ...props }: RobotProps): import("react/jsx-runtime").JSX.Element | null;
|
|
24
24
|
export { defaultGetModel };
|
|
25
25
|
export default Robot;
|
|
26
|
+
//# sourceMappingURL=Robot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Robot.d.ts","sourceRoot":"","sources":["../../../src/components/robots/Robot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,MAAM,MAAM,UAAU,GAAG;IACvB,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC7B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,EACpB,oBAAoB,EACpB,QAA0B,EAC1B,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,GAAG,KAAK,EACT,EAAE,UAAU,kDAmBZ;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,eAAe,KAAK,CAAA"}
|