@wandelbots/wandelbots-js-react-components 5.4.2 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d.cjs +2 -0
- package/dist/3d.cjs.map +1 -0
- package/dist/3d.js +31 -0
- package/dist/3d.js.map +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -1
- package/dist/components/3d-viewport/PresetEnvironment.cjs +2 -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 -1
- package/dist/components/3d-viewport/PresetEnvironment.js +81 -0
- package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -0
- 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 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.js +131 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs +2 -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 -1
- package/dist/components/3d-viewport/TrajectoryRenderer.js +31 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js +22 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -0
- package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js +29 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +19 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +2 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +43 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
- package/dist/components/AppHeader.cjs +2 -0
- package/dist/components/AppHeader.cjs.map +1 -0
- package/dist/components/AppHeader.d.ts +1 -0
- package/dist/components/AppHeader.d.ts.map +1 -1
- package/dist/components/AppHeader.js +139 -0
- package/dist/components/AppHeader.js.map +1 -0
- package/dist/components/ConsoleFilter.cjs +2 -0
- package/dist/components/ConsoleFilter.cjs.map +1 -0
- package/dist/components/ConsoleFilter.js +13 -0
- package/dist/components/ConsoleFilter.js.map +1 -0
- package/dist/components/CopyableText.cjs +2 -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 -1
- package/dist/components/CopyableText.js +71 -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 -1
- package/dist/components/CycleTimer/DefaultVariant.cjs +2 -0
- package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js +301 -0
- package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs +2 -0
- package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.js +150 -0
- package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
- package/dist/components/CycleTimer/index.cjs +2 -0
- 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 -1
- package/dist/components/CycleTimer/index.js +86 -0
- package/dist/components/CycleTimer/index.js.map +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs +2 -0
- package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
- package/dist/components/CycleTimer/useAnimations.js +105 -0
- package/dist/components/CycleTimer/useAnimations.js.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.cjs +2 -0
- package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js +191 -0
- package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
- package/dist/components/CycleTimer/utils.cjs +2 -0
- package/dist/components/CycleTimer/utils.cjs.map +1 -0
- package/dist/components/CycleTimer/utils.js +20 -0
- package/dist/components/CycleTimer/utils.js.map +1 -0
- package/dist/components/CycleTimer.cjs +2 -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 -1
- package/dist/components/CycleTimer.js +6 -0
- package/dist/components/CycleTimer.js.map +1 -0
- package/dist/components/DataGrid.cjs +2 -0
- package/dist/components/DataGrid.cjs.map +1 -0
- package/dist/components/DataGrid.d.ts +1 -0
- package/dist/components/DataGrid.d.ts.map +1 -1
- package/dist/components/DataGrid.js +535 -0
- package/dist/components/DataGrid.js.map +1 -0
- package/dist/components/LoadingCover.cjs +2 -0
- package/dist/components/LoadingCover.cjs.map +1 -0
- package/dist/components/LoadingCover.d.ts +1 -0
- package/dist/components/LoadingCover.d.ts.map +1 -1
- package/dist/components/LoadingCover.js +77 -0
- package/dist/components/LoadingCover.js.map +1 -0
- package/dist/components/LogPanel.cjs +2 -0
- package/dist/components/LogPanel.cjs.map +1 -0
- package/dist/components/LogPanel.d.ts +1 -0
- package/dist/components/LogPanel.d.ts.map +1 -1
- package/dist/components/LogPanel.js +34 -0
- package/dist/components/LogPanel.js.map +1 -0
- package/dist/components/LogStore.cjs +2 -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 -1
- package/dist/components/LogStore.js +33 -0
- package/dist/components/LogStore.js.map +1 -0
- package/dist/components/LogViewer.cjs +2 -0
- package/dist/components/LogViewer.cjs.map +1 -0
- package/dist/components/LogViewer.d.ts +1 -0
- package/dist/components/LogViewer.d.ts.map +1 -1
- package/dist/components/LogViewer.js +299 -0
- package/dist/components/LogViewer.js.map +1 -0
- package/dist/components/ProgramControl.cjs +2 -0
- package/dist/components/ProgramControl.cjs.map +1 -0
- package/dist/components/ProgramControl.d.ts +1 -0
- package/dist/components/ProgramControl.d.ts.map +1 -1
- package/dist/components/ProgramControl.js +147 -0
- package/dist/components/ProgramControl.js.map +1 -0
- package/dist/components/ProgramStateIndicator.cjs +2 -0
- package/dist/components/ProgramStateIndicator.cjs.map +1 -0
- package/dist/components/ProgramStateIndicator.d.ts +1 -0
- package/dist/components/ProgramStateIndicator.d.ts.map +1 -1
- package/dist/components/ProgramStateIndicator.js +140 -0
- package/dist/components/ProgramStateIndicator.js.map +1 -0
- package/dist/components/RobotCard.cjs +2 -0
- package/dist/components/RobotCard.cjs.map +1 -0
- package/dist/components/RobotCard.d.ts +1 -0
- package/dist/components/RobotCard.d.ts.map +1 -1
- package/dist/components/RobotCard.js +360 -0
- package/dist/components/RobotCard.js.map +1 -0
- package/dist/components/RobotListItem.cjs +2 -0
- package/dist/components/RobotListItem.cjs.map +1 -0
- package/dist/components/RobotListItem.d.ts +1 -0
- package/dist/components/RobotListItem.d.ts.map +1 -1
- package/dist/components/RobotListItem.js +122 -0
- package/dist/components/RobotListItem.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.cjs +2 -0
- package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -1
- package/dist/components/RobotSetupReadinessIndicator.js +122 -0
- package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
- package/dist/components/SelectableFab.cjs +2 -0
- package/dist/components/SelectableFab.cjs.map +1 -0
- package/dist/components/SelectableFab.d.ts +1 -1
- package/dist/components/SelectableFab.d.ts.map +1 -1
- package/dist/components/SelectableFab.js +51 -0
- package/dist/components/SelectableFab.js.map +1 -0
- package/dist/components/TabBar.cjs +2 -0
- package/dist/components/TabBar.cjs.map +1 -0
- package/dist/components/TabBar.d.ts +1 -0
- package/dist/components/TabBar.d.ts.map +1 -1
- package/dist/components/TabBar.js +212 -0
- package/dist/components/TabBar.js.map +1 -0
- package/dist/components/ThemeSelect.d.ts +1 -1
- package/dist/components/ThemeSelect.d.ts.map +1 -1
- package/dist/components/Timer/Timer.d.ts +1 -0
- package/dist/components/Timer/Timer.d.ts.map +1 -1
- package/dist/components/Timer/TimerDefaultVariant.cjs +2 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js +136 -0
- package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs +2 -0
- package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.js +128 -0
- package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
- package/dist/components/Timer/index.cjs +2 -0
- 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 -1
- package/dist/components/Timer/index.js +68 -0
- package/dist/components/Timer/index.js.map +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs +2 -0
- package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
- package/dist/components/Timer/useTimerAnimations.js +48 -0
- package/dist/components/Timer/useTimerAnimations.js.map +1 -0
- package/dist/components/Timer/useTimerLogic.cjs +2 -0
- package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
- package/dist/components/Timer/useTimerLogic.js +113 -0
- package/dist/components/Timer/useTimerLogic.js.map +1 -0
- package/dist/components/Timer/utils.cjs +2 -0
- package/dist/components/Timer/utils.cjs.map +1 -0
- package/dist/components/Timer/utils.js +19 -0
- package/dist/components/Timer/utils.js.map +1 -0
- package/dist/components/Timer.cjs +2 -0
- package/dist/components/Timer.cjs.map +1 -0
- package/dist/components/Timer.d.ts +4 -0
- package/dist/components/Timer.d.ts.map +1 -0
- package/dist/components/Timer.js +6 -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 -1
- package/dist/components/VelocitySlider.cjs +2 -0
- package/dist/components/VelocitySlider.cjs.map +1 -0
- package/dist/components/VelocitySlider.d.ts +1 -1
- package/dist/components/VelocitySlider.d.ts.map +1 -1
- package/dist/components/VelocitySlider.js +97 -0
- package/dist/components/VelocitySlider.js.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs +2 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js +35 -0
- package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs +2 -0
- package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
- package/dist/components/jogging/JoggingBlocked.js +46 -0
- package/dist/components/jogging/JoggingBlocked.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.js +186 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.cjs +2 -0
- package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.js +267 -0
- package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs +2 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js +42 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
- package/dist/components/jogging/JoggingJointTab.cjs +2 -0
- package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointTab.js +114 -0
- package/dist/components/jogging/JoggingJointTab.js.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.cjs +2 -0
- package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -1
- package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -1
- package/dist/components/jogging/JoggingJointValueControl.js +240 -0
- package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
- package/dist/components/jogging/JoggingOptions.cjs +2 -0
- package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
- package/dist/components/jogging/JoggingOptions.js +117 -0
- package/dist/components/jogging/JoggingOptions.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.cjs +2 -0
- 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 -1
- package/dist/components/jogging/JoggingPanel.js +121 -0
- package/dist/components/jogging/JoggingPanel.js.map +1 -0
- package/dist/components/jogging/JoggingStore.cjs +2 -0
- package/dist/components/jogging/JoggingStore.cjs.map +1 -0
- package/dist/components/jogging/JoggingStore.d.ts +1 -1
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
- package/dist/components/jogging/JoggingStore.js +219 -0
- package/dist/components/jogging/JoggingStore.js.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs +2 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js +29 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs +2 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js +40 -0
- package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.cjs +2 -0
- 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 -1
- package/dist/components/jogging/PoseCartesianValues.js +48 -0
- package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
- package/dist/components/jogging/PoseJointValues.cjs +2 -0
- 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 -1
- package/dist/components/jogging/PoseJointValues.js +47 -0
- package/dist/components/jogging/PoseJointValues.js.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs +2 -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 -1
- package/dist/components/modal/NoMotionGroupModal.js +92 -0
- package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
- package/dist/components/robots/AxisConfig.cjs +2 -0
- package/dist/components/robots/AxisConfig.cjs.map +1 -0
- package/dist/components/robots/AxisConfig.js +5 -0
- package/dist/components/robots/AxisConfig.js.map +1 -0
- package/dist/components/robots/DHLinearAxis.cjs +2 -0
- 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 -1
- package/dist/components/robots/DHLinearAxis.js +92 -0
- package/dist/components/robots/DHLinearAxis.js.map +1 -0
- package/dist/components/robots/DHRobot.cjs +2 -0
- 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 -1
- package/dist/components/robots/DHRobot.js +94 -0
- package/dist/components/robots/DHRobot.js.map +1 -0
- package/dist/components/robots/GenericRobot.cjs +2 -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 -1
- package/dist/components/robots/GenericRobot.js +91 -0
- package/dist/components/robots/GenericRobot.js.map +1 -0
- package/dist/components/robots/LinearAxis.cjs +2 -0
- 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 -1
- package/dist/components/robots/LinearAxis.js +42 -0
- package/dist/components/robots/LinearAxis.js.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.cjs +2 -0
- package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.js +66 -0
- package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.cjs +2 -0
- 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 -1
- package/dist/components/robots/MotionGroupVisualizer.js +21 -0
- package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
- package/dist/components/robots/Robot.cjs +2 -0
- 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 -1
- package/dist/components/robots/Robot.js +31 -0
- package/dist/components/robots/Robot.js.map +1 -0
- package/dist/components/robots/RobotAnimator.cjs +2 -0
- package/dist/components/robots/RobotAnimator.cjs.map +1 -0
- package/dist/components/robots/RobotAnimator.js +66 -0
- package/dist/components/robots/RobotAnimator.js.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.cjs +2 -0
- 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 -1
- package/dist/components/robots/SupportedLinearAxis.js +82 -0
- package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
- package/dist/components/robots/SupportedRobot.cjs +2 -0
- 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 -1
- package/dist/components/robots/SupportedRobot.js +82 -0
- package/dist/components/robots/SupportedRobot.js.map +1 -0
- package/dist/components/robots/ghostStyle.cjs +2 -0
- package/dist/components/robots/ghostStyle.cjs.map +1 -0
- package/dist/components/robots/ghostStyle.js +40 -0
- package/dist/components/robots/ghostStyle.js.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs +2 -0
- package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.js +51 -0
- package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
- package/dist/components/robots/robotModelLogic.cjs +2 -0
- package/dist/components/robots/robotModelLogic.cjs.map +1 -0
- package/dist/components/robots/robotModelLogic.js +61 -0
- package/dist/components/robots/robotModelLogic.js.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.js +71 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs +2 -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 -1
- package/dist/components/safetyBar/IndicatorWithExplanation.js +123 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -0
- package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -1
- package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -1
- package/dist/components/safetyBar/OperationModeIndicator.js +75 -0
- package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
- package/dist/components/safetyBar/SafetyBar.cjs +2 -0
- 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 -1
- package/dist/components/safetyBar/SafetyBar.js +66 -0
- package/dist/components/safetyBar/SafetyBar.js.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -0
- package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -1
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -1
- package/dist/components/safetyBar/SafetyStateIndicator.js +126 -0
- 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/components/safetyBar/icons/controller-type-physical.svg.js +11 -0
- 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/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 -0
- package/dist/components/utils/converters.cjs.map +1 -0
- package/dist/components/utils/converters.js +40 -0
- package/dist/components/utils/converters.js.map +1 -0
- package/dist/components/utils/errorHandling.cjs +2 -0
- package/dist/components/utils/errorHandling.cjs.map +1 -0
- package/dist/components/utils/errorHandling.js +14 -0
- package/dist/components/utils/errorHandling.js.map +1 -0
- package/dist/components/utils/hooks.cjs +2 -0
- package/dist/components/utils/hooks.cjs.map +1 -0
- package/dist/components/utils/hooks.js +29 -0
- package/dist/components/utils/hooks.js.map +1 -0
- package/dist/components/utils/interpolation.cjs +2 -0
- package/dist/components/utils/interpolation.cjs.map +1 -0
- package/dist/components/utils/interpolation.js +138 -0
- package/dist/components/utils/interpolation.js.map +1 -0
- package/dist/core.cjs +2 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.js +81 -0
- package/dist/core.js.map +1 -0
- package/dist/externalizeComponent.cjs +2 -0
- package/dist/externalizeComponent.cjs.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.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.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/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/icons/robot.svg.js +11 -0
- 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 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +153 -0
- 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 -1
- 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 -1
- package/dist/lib/JoggerConnection.js +342 -0
- package/dist/lib/JoggerConnection.js.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 -1
- package/dist/lib/MotionStreamConnection.js +94 -0
- package/dist/lib/MotionStreamConnection.js.map +1 -0
- package/dist/lib/motionStateUpdate.cjs +2 -0
- package/dist/lib/motionStateUpdate.cjs.map +1 -0
- package/dist/lib/motionStateUpdate.js +49 -0
- package/dist/lib/motionStateUpdate.js.map +1 -0
- package/dist/test/consumer.test.d.ts +2 -0
- package/dist/test/consumer.test.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.cjs +2 -0
- package/dist/themes/createDarkTheme.cjs.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.js +9 -0
- package/dist/themes/createLightTheme.js.map +1 -0
- package/dist/themes/theming.cjs +2 -0
- package/dist/themes/theming.cjs.map +1 -0
- package/dist/themes/theming.js +14 -0
- package/dist/themes/theming.js.map +1 -0
- package/dist/wb-icons.cjs +2 -0
- package/dist/wb-icons.cjs.map +1 -0
- package/dist/wb-icons.js +47 -0
- package/dist/wb-icons.js.map +1 -0
- package/package.json +20 -9
- package/src/components/3d-viewport/CoordinateSystemTransform.tsx +2 -0
- package/src/components/3d-viewport/PresetEnvironment.tsx +2 -0
- package/src/components/3d-viewport/SafetyZonesRenderer.tsx +2 -0
- package/src/components/3d-viewport/TrajectoryRenderer.tsx +2 -0
- package/src/components/AppHeader.tsx +2 -0
- package/src/components/CopyableText.tsx +2 -0
- package/src/components/CycleTimer/CycleTimer.ts +2 -0
- package/src/components/CycleTimer/index.tsx +2 -0
- package/src/components/CycleTimer.tsx +2 -0
- package/src/components/DataGrid.tsx +2 -0
- package/src/components/LoadingCover.tsx +2 -0
- package/src/components/LogPanel.tsx +2 -0
- package/src/components/LogStore.ts +2 -0
- package/src/components/LogViewer.tsx +2 -0
- package/src/components/ProgramControl.tsx +2 -0
- package/src/components/ProgramStateIndicator.tsx +2 -0
- package/src/components/RobotCard.tsx +2 -0
- package/src/components/RobotListItem.tsx +2 -0
- package/src/components/RobotSetupReadinessIndicator.tsx +2 -0
- package/src/components/SelectableFab.tsx +2 -0
- package/src/components/TabBar.tsx +2 -0
- package/src/components/ThemeSelect.tsx +2 -0
- package/src/components/Timer/Timer.ts +2 -0
- package/src/components/Timer/index.tsx +2 -0
- package/src/components/Timer.ts +4 -0
- package/src/components/TransparentOverlay.tsx +2 -0
- package/src/components/VelocitySlider.tsx +2 -0
- package/src/components/jogging/JoggingCartesianAxisControl.tsx +2 -0
- package/src/components/jogging/JoggingJointValueControl.tsx +2 -0
- package/src/components/jogging/JoggingPanel.tsx +2 -0
- package/src/components/jogging/JoggingStore.ts +2 -0
- package/src/components/jogging/PoseCartesianValues.tsx +2 -0
- package/src/components/jogging/PoseJointValues.tsx +2 -0
- package/src/components/modal/NoMotionGroupModal.tsx +2 -0
- package/src/components/robots/DHLinearAxis.tsx +2 -0
- package/src/components/robots/DHRobot.tsx +2 -0
- package/src/components/robots/GenericRobot.tsx +2 -0
- package/src/components/robots/LinearAxis.tsx +2 -0
- package/src/components/robots/MotionGroupVisualizer.tsx +2 -0
- package/src/components/robots/Robot.tsx +2 -0
- package/src/components/robots/SupportedLinearAxis.tsx +2 -0
- package/src/components/robots/SupportedRobot.tsx +2 -0
- package/src/components/safetyBar/ControllerTypeIndicator.tsx +2 -0
- package/src/components/safetyBar/IndicatorWithExplanation.tsx +2 -0
- package/src/components/safetyBar/OperationModeIndicator.tsx +2 -0
- package/src/components/safetyBar/SafetyBar.tsx +2 -0
- package/src/components/safetyBar/SafetyStateIndicator.tsx +2 -0
- package/src/lib/ConnectedMotionGroup.ts +2 -0
- package/src/lib/JoggerConnection.ts +2 -0
- package/src/lib/MotionStreamConnection.ts +2 -0
- package/src/test/consumer.test.ts +230 -0
- package/dist/3d.cjs.js +0 -2
- package/dist/3d.cjs.js.map +0 -1
- package/dist/3d.es.js +0 -19
- package/dist/3d.es.js.map +0 -1
- package/dist/MotionGroupVisualizer-B-e22qXF.cjs +0 -2
- package/dist/MotionGroupVisualizer-B-e22qXF.cjs.map +0 -1
- package/dist/MotionGroupVisualizer-CIASsBC6.js +0 -1433
- package/dist/MotionGroupVisualizer-CIASsBC6.js.map +0 -1
- package/dist/auth0-spa-js.production.esm-CVEdrQ4-.cjs +0 -5
- package/dist/auth0-spa-js.production.esm-CVEdrQ4-.cjs.map +0 -1
- package/dist/auth0-spa-js.production.esm-Cr9w0sUa.js +0 -4217
- package/dist/auth0-spa-js.production.esm-Cr9w0sUa.js.map +0 -1
- package/dist/core.cjs.js +0 -2
- package/dist/core.cjs.js.map +0 -1
- package/dist/core.es.js +0 -52
- package/dist/core.es.js.map +0 -1
- package/dist/index.cjs.js +0 -2
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.es.js +0 -92
- package/dist/index.es.js.map +0 -1
- package/dist/interpolation-BIB6FC35.cjs +0 -198
- package/dist/interpolation-BIB6FC35.cjs.map +0 -1
- package/dist/interpolation-lSTX6ZXZ.js +0 -14559
- package/dist/interpolation-lSTX6ZXZ.js.map +0 -1
- package/dist/safety-state-stop-ClWLVLMl.cjs +0 -2
- package/dist/safety-state-stop-ClWLVLMl.cjs.map +0 -1
- package/dist/safety-state-stop-DuMBCxN5.js +0 -91
- package/dist/safety-state-stop-DuMBCxN5.js.map +0 -1
- package/dist/theming-D_pShDEg.js +0 -32236
- package/dist/theming-D_pShDEg.js.map +0 -1
- package/dist/theming-L5E8VSae.cjs +0 -84
- package/dist/theming-L5E8VSae.cjs.map +0 -1
- package/dist/wb-icons.cjs.js +0 -2
- package/dist/wb-icons.cjs.js.map +0 -1
- package/dist/wb-icons.es.js +0 -27
- package/dist/wb-icons.es.js.map +0 -1
- package/dist/wbLogo-CObCmqTw.js +0 -31
- package/dist/wbLogo-CObCmqTw.js.map +0 -1
- package/dist/wbLogo-G_IfZ03l.cjs +0 -2
- package/dist/wbLogo-G_IfZ03l.cjs.map +0 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsxs as s, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import l from "@mui/material/Button";
|
|
3
|
+
import p from "@mui/material/Stack";
|
|
4
|
+
import { observer as m } from "mobx-react-lite";
|
|
5
|
+
import { useState as c } from "react";
|
|
6
|
+
import { externalizeComponent as d } from "../../externalizeComponent.js";
|
|
7
|
+
import { CopyableText as f } from "../CopyableText.js";
|
|
8
|
+
const j = d(
|
|
9
|
+
m(({ joints: i, showCopyButton: a = !1 }) => {
|
|
10
|
+
const [o, e] = c(null), t = `[${i.map((n) => parseFloat(n.toFixed(4))).join(", ")}]`;
|
|
11
|
+
return /* @__PURE__ */ s(
|
|
12
|
+
p,
|
|
13
|
+
{
|
|
14
|
+
direction: "row",
|
|
15
|
+
alignItems: "center",
|
|
16
|
+
spacing: 1,
|
|
17
|
+
sx: { flexGrow: 1, minWidth: 0, overflow: "hidden" },
|
|
18
|
+
"data-testid": "pose-joint-values",
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ r(f, { value: t }),
|
|
21
|
+
a && /* @__PURE__ */ r(
|
|
22
|
+
l,
|
|
23
|
+
{
|
|
24
|
+
variant: "contained",
|
|
25
|
+
color: "secondary",
|
|
26
|
+
size: "small",
|
|
27
|
+
onClick: async () => {
|
|
28
|
+
try {
|
|
29
|
+
await navigator.clipboard.writeText(t), e("Copied!"), setTimeout(() => e(null), 2e3);
|
|
30
|
+
} catch {
|
|
31
|
+
e("Copy failed"), setTimeout(() => e(null), 2e3);
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
sx: { flexShrink: 0 },
|
|
35
|
+
children: o || "Copy"
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
})
|
|
42
|
+
);
|
|
43
|
+
export {
|
|
44
|
+
j as PoseJointValues,
|
|
45
|
+
j as default
|
|
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,2 @@
|
|
|
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"}
|
|
@@ -2,4 +2,5 @@ export type NoMotionGroupModalProps = {
|
|
|
2
2
|
baseUrl: string;
|
|
3
3
|
};
|
|
4
4
|
export declare function NoMotionGroupModal({ baseUrl, ...props }: NoMotionGroupModalProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export default NoMotionGroupModal;
|
|
5
6
|
//# sourceMappingURL=NoMotionGroupModal.d.ts.map
|
|
@@ -1 +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"}
|
|
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,92 @@
|
|
|
1
|
+
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import e from "@mui/material/Button";
|
|
3
|
+
import n from "@mui/material/Dialog";
|
|
4
|
+
import a from "@mui/material/DialogActions";
|
|
5
|
+
import d from "@mui/material/DialogContent";
|
|
6
|
+
import l from "@mui/material/DialogTitle";
|
|
7
|
+
import m from "@mui/material/Stack";
|
|
8
|
+
import i from "@mui/material/Typography";
|
|
9
|
+
function c() {
|
|
10
|
+
const o = window.location.href;
|
|
11
|
+
return o.substring(
|
|
12
|
+
0,
|
|
13
|
+
o.indexOf("/", o.indexOf("//") + 2)
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
function k({
|
|
17
|
+
baseUrl: o = c(),
|
|
18
|
+
...p
|
|
19
|
+
}) {
|
|
20
|
+
return /* @__PURE__ */ t(
|
|
21
|
+
n,
|
|
22
|
+
{
|
|
23
|
+
"aria-labelledby": "no-motion-group-modal-title",
|
|
24
|
+
open: !0,
|
|
25
|
+
fullWidth: !0,
|
|
26
|
+
sx: {
|
|
27
|
+
"& .MuiModal-backdrop": {
|
|
28
|
+
backdropFilter: "blur(10px)"
|
|
29
|
+
},
|
|
30
|
+
"& .MuiDialog-paper": {
|
|
31
|
+
"::before": {
|
|
32
|
+
content: '""',
|
|
33
|
+
height: "8px",
|
|
34
|
+
width: "100%",
|
|
35
|
+
background: "linear-gradient(90deg, #FF0E65 0%, #47D3FF 100%)"
|
|
36
|
+
},
|
|
37
|
+
background: "#101629"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
children: [
|
|
41
|
+
/* @__PURE__ */ r(l, { id: "no-motion-group-modal-title", children: "No motion group found" }),
|
|
42
|
+
/* @__PURE__ */ t(
|
|
43
|
+
d,
|
|
44
|
+
{
|
|
45
|
+
sx: {
|
|
46
|
+
marginTop: "3rem",
|
|
47
|
+
marginBottom: "1.5rem",
|
|
48
|
+
textAlign: "center"
|
|
49
|
+
},
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ r(i, { color: "#fff", children: "Found no devices to connect to." }),
|
|
52
|
+
/* @__PURE__ */ r(i, { color: "#fff", children: "Please ensure a motion group has been created." })
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
),
|
|
56
|
+
/* @__PURE__ */ r(a, { children: /* @__PURE__ */ t(m, { width: "100%", maxWidth: "300px", margin: "auto", marginBottom: "2rem", children: [
|
|
57
|
+
/* @__PURE__ */ r(
|
|
58
|
+
e,
|
|
59
|
+
{
|
|
60
|
+
href: `${o}/settings`,
|
|
61
|
+
variant: "contained",
|
|
62
|
+
sx: {
|
|
63
|
+
borderRadius: "8px",
|
|
64
|
+
width: "100%"
|
|
65
|
+
},
|
|
66
|
+
children: "Go to settings app"
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
/* @__PURE__ */ r(
|
|
70
|
+
e,
|
|
71
|
+
{
|
|
72
|
+
href: `${o}`,
|
|
73
|
+
variant: "text",
|
|
74
|
+
sx: {
|
|
75
|
+
marginTop: "1rem",
|
|
76
|
+
color: "#fff",
|
|
77
|
+
textDecoration: "underline",
|
|
78
|
+
fontSize: "0.75rem"
|
|
79
|
+
},
|
|
80
|
+
children: "Back to Homescreen"
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
] }) })
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
export {
|
|
89
|
+
k as NoMotionGroupModal,
|
|
90
|
+
k as default
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=NoMotionGroupModal.js.map
|
|
@@ -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.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;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
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
|
+
export default DHLinearAxis;
|
|
3
4
|
//# sourceMappingURL=DHLinearAxis.d.ts.map
|
|
@@ -1 +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"}
|
|
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,92 @@
|
|
|
1
|
+
import { jsx as r, jsxs as h } from "react/jsx-runtime";
|
|
2
|
+
import { Line as _ } from "@react-three/drei";
|
|
3
|
+
import { useRef as T } from "react";
|
|
4
|
+
import { Matrix4 as n, Vector3 as s, Quaternion as j } from "three";
|
|
5
|
+
import L from "./LinearAxisAnimator.js";
|
|
6
|
+
function P({
|
|
7
|
+
rapidlyChangingMotionState: w,
|
|
8
|
+
dhParameters: a,
|
|
9
|
+
...R
|
|
10
|
+
}) {
|
|
11
|
+
const m = new n(), p = T(null), u = T(null);
|
|
12
|
+
function g(y) {
|
|
13
|
+
const c = new n();
|
|
14
|
+
for (let i = 0; i < a.length; i++) {
|
|
15
|
+
const t = a[i], d = y[i] ?? 0, o = new n().makeRotationY(t.theta).multiply(
|
|
16
|
+
new n().makeTranslation(
|
|
17
|
+
t.a / 1e3,
|
|
18
|
+
(t.d + d * (t.reverse_rotation_direction ? -1 : 1)) / 1e3,
|
|
19
|
+
0
|
|
20
|
+
)
|
|
21
|
+
).multiply(new n().makeRotationX(t.alpha));
|
|
22
|
+
c.multiply(o);
|
|
23
|
+
}
|
|
24
|
+
const e = new s(), l = new j(), f = new s();
|
|
25
|
+
return c.decompose(e, l, f), e;
|
|
26
|
+
}
|
|
27
|
+
const x = g(
|
|
28
|
+
w.joint_position
|
|
29
|
+
);
|
|
30
|
+
function k(y, c) {
|
|
31
|
+
m.identity();
|
|
32
|
+
let e = new s();
|
|
33
|
+
for (let t = 0; t < a.length; t++) {
|
|
34
|
+
const d = c[t] ?? 0, o = a[t], M = new n().makeRotationY(o.theta).multiply(
|
|
35
|
+
new n().makeTranslation(
|
|
36
|
+
o.a / 1e3,
|
|
37
|
+
(o.d + d * (o.reverse_rotation_direction ? -1 : 1)) / 1e3,
|
|
38
|
+
0
|
|
39
|
+
)
|
|
40
|
+
).multiply(new n().makeRotationX(o.alpha));
|
|
41
|
+
m.multiply(M);
|
|
42
|
+
}
|
|
43
|
+
const l = new s(), f = new j(), i = new s();
|
|
44
|
+
if (m.decompose(l, f, i), e = l, p.current && p.current.position.set(
|
|
45
|
+
e.x,
|
|
46
|
+
e.y,
|
|
47
|
+
e.z
|
|
48
|
+
), u.current) {
|
|
49
|
+
const t = u.current.geometry;
|
|
50
|
+
t != null && t.setPositions && t.setPositions([
|
|
51
|
+
0,
|
|
52
|
+
0,
|
|
53
|
+
0,
|
|
54
|
+
e.x,
|
|
55
|
+
e.y,
|
|
56
|
+
e.z
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return /* @__PURE__ */ r(
|
|
61
|
+
L,
|
|
62
|
+
{
|
|
63
|
+
rapidlyChangingMotionState: w,
|
|
64
|
+
dhParameters: a,
|
|
65
|
+
onTranslationChanged: k,
|
|
66
|
+
children: /* @__PURE__ */ h("group", { ...R, name: "Scene", children: [
|
|
67
|
+
/* @__PURE__ */ h("mesh", { name: "Base", position: [0, 0, 0], children: [
|
|
68
|
+
/* @__PURE__ */ r("sphereGeometry", { args: [0.02, 32, 32] }),
|
|
69
|
+
/* @__PURE__ */ r("meshStandardMaterial", { color: "green", depthTest: !0 })
|
|
70
|
+
] }),
|
|
71
|
+
/* @__PURE__ */ r(
|
|
72
|
+
_,
|
|
73
|
+
{
|
|
74
|
+
ref: u,
|
|
75
|
+
points: [new s(0, 0, 0), x],
|
|
76
|
+
color: "White",
|
|
77
|
+
lineWidth: 5
|
|
78
|
+
}
|
|
79
|
+
),
|
|
80
|
+
/* @__PURE__ */ h("mesh", { ref: p, name: "TCP", position: x, children: [
|
|
81
|
+
/* @__PURE__ */ r("sphereGeometry", { args: [0.025, 32, 32] }),
|
|
82
|
+
/* @__PURE__ */ r("meshStandardMaterial", { color: "red", depthTest: !0 })
|
|
83
|
+
] })
|
|
84
|
+
] })
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
export {
|
|
89
|
+
P as DHLinearAxis,
|
|
90
|
+
P as default
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=DHLinearAxis.js.map
|
|
@@ -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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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
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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"}
|
|
@@ -1 +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"}
|
|
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,94 @@
|
|
|
1
|
+
import { jsx as s, jsxs as a } from "react/jsx-runtime";
|
|
2
|
+
import { Line as k } from "@react-three/drei";
|
|
3
|
+
import L, { useRef as w } from "react";
|
|
4
|
+
import { Matrix4 as u, Vector3 as R, Quaternion as d } from "three";
|
|
5
|
+
import A from "./RobotAnimator.js";
|
|
6
|
+
const M = "line", j = "mesh";
|
|
7
|
+
function E({
|
|
8
|
+
rapidlyChangingMotionState: h,
|
|
9
|
+
dhParameters: r,
|
|
10
|
+
...g
|
|
11
|
+
}) {
|
|
12
|
+
const m = new u(), p = w([]), f = w([]);
|
|
13
|
+
L.useEffect(() => {
|
|
14
|
+
p.current = new Array(r.length).fill(null), f.current = new Array(r.length).fill(null);
|
|
15
|
+
}, [r.length]);
|
|
16
|
+
function y(o, n) {
|
|
17
|
+
const t = new R(), i = new d(), e = new R();
|
|
18
|
+
m.decompose(t, i, e);
|
|
19
|
+
const c = t.clone(), l = new u().makeRotationY(
|
|
20
|
+
o.theta + n * (o.reverse_rotation_direction ? -1 : 1)
|
|
21
|
+
).multiply(new u().makeTranslation(0, o.d / 1e3, 0)).multiply(new u().makeTranslation(o.a / 1e3, 0, 0)).multiply(new u().makeRotationX(o.alpha));
|
|
22
|
+
return m.multiply(l), m.decompose(t, i, e), { a: c, b: t };
|
|
23
|
+
}
|
|
24
|
+
function _(o, n, t, i) {
|
|
25
|
+
if (!r)
|
|
26
|
+
return;
|
|
27
|
+
const e = r[o];
|
|
28
|
+
if (!e)
|
|
29
|
+
return;
|
|
30
|
+
const { a: c, b: l } = y(e, i);
|
|
31
|
+
n.geometry.setPositions([c.toArray(), l.toArray()].flat()), t.position.set(l.x, l.y, l.z);
|
|
32
|
+
}
|
|
33
|
+
function b(o, n) {
|
|
34
|
+
m.identity();
|
|
35
|
+
for (let t = 0; t < Math.min(o.length, n.length); t++) {
|
|
36
|
+
const i = p.current[t], e = f.current[t];
|
|
37
|
+
i && e && _(t, i, e, n[t]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return /* @__PURE__ */ s(
|
|
41
|
+
A,
|
|
42
|
+
{
|
|
43
|
+
rapidlyChangingMotionState: h,
|
|
44
|
+
dhParameters: r,
|
|
45
|
+
onRotationChanged: b,
|
|
46
|
+
children: /* @__PURE__ */ a("group", { ...g, name: "Scene", children: [
|
|
47
|
+
/* @__PURE__ */ a("mesh", { children: [
|
|
48
|
+
/* @__PURE__ */ s("sphereGeometry", { args: [0.01, 32, 32] }),
|
|
49
|
+
/* @__PURE__ */ s("meshStandardMaterial", { color: "black", depthTest: !0 })
|
|
50
|
+
] }),
|
|
51
|
+
r == null ? void 0 : r.map((o, n) => {
|
|
52
|
+
const { a: t, b: i } = y(
|
|
53
|
+
o,
|
|
54
|
+
h.joint_position[n] ?? 0
|
|
55
|
+
), e = `dhrobot_J0${n}`;
|
|
56
|
+
return /* @__PURE__ */ a("group", { name: e, children: [
|
|
57
|
+
/* @__PURE__ */ s(
|
|
58
|
+
k,
|
|
59
|
+
{
|
|
60
|
+
ref: (c) => {
|
|
61
|
+
p.current[n] = c;
|
|
62
|
+
},
|
|
63
|
+
name: M,
|
|
64
|
+
points: [t, i],
|
|
65
|
+
color: "white",
|
|
66
|
+
lineWidth: 5
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
/* @__PURE__ */ a(
|
|
70
|
+
"mesh",
|
|
71
|
+
{
|
|
72
|
+
ref: (c) => {
|
|
73
|
+
f.current[n] = c;
|
|
74
|
+
},
|
|
75
|
+
name: j,
|
|
76
|
+
position: i,
|
|
77
|
+
children: [
|
|
78
|
+
/* @__PURE__ */ s("sphereGeometry", { args: [0.01, 32, 32] }),
|
|
79
|
+
/* @__PURE__ */ s("meshStandardMaterial", { color: "black", depthTest: !0 })
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
`mesh_${n}`
|
|
83
|
+
)
|
|
84
|
+
] }, e);
|
|
85
|
+
})
|
|
86
|
+
] })
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
export {
|
|
91
|
+
E as DHRobot,
|
|
92
|
+
E as default
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=DHRobot.js.map
|
|
@@ -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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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
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"}
|
|
@@ -11,4 +11,5 @@ export type RobotModelProps = {
|
|
|
11
11
|
flangeRef?: React.Ref<Group>;
|
|
12
12
|
} & ThreeElements["group"];
|
|
13
13
|
export declare function GenericRobot({ modelURL, flangeRef, postModelRender, ...props }: RobotModelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
14
|
+
export default GenericRobot;
|
|
14
15
|
//# sourceMappingURL=GenericRobot.d.ts.map
|
|
@@ -1 +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"}
|
|
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"}
|