@wandelbots/wandelbots-js-react-components 5.5.1-pr.fix-standardize-output.591.60112ee → 5.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d.cjs +2 -1
- package/dist/3d.cjs.map +1 -0
- package/dist/3d.d.ts +1 -0
- package/dist/3d.d.ts.map +1 -0
- package/dist/3d.js +1 -0
- package/dist/3d.js.map +1 -0
- package/dist/Setup.d.ts +1 -0
- package/dist/Setup.d.ts.map +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.js +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -1
- package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
- package/dist/components/AppHeader.cjs +2 -1
- package/dist/components/AppHeader.cjs.map +1 -0
- package/dist/components/AppHeader.d.ts +1 -0
- package/dist/components/AppHeader.d.ts.map +1 -0
- package/dist/components/AppHeader.js +34 -40
- package/dist/components/AppHeader.js.map +1 -0
- package/dist/components/ConsoleFilter.cjs +1 -0
- package/dist/components/ConsoleFilter.cjs.map +1 -0
- package/dist/components/ConsoleFilter.d.ts +1 -0
- package/dist/components/ConsoleFilter.d.ts.map +1 -0
- package/dist/components/ConsoleFilter.js +1 -0
- package/dist/components/ConsoleFilter.js.map +1 -0
- package/dist/components/CopyableText.cjs +1 -0
- package/dist/components/CopyableText.cjs.map +1 -0
- package/dist/components/CopyableText.d.ts +1 -0
- package/dist/components/CopyableText.d.ts.map +1 -0
- package/dist/components/CopyableText.js +1 -0
- package/dist/components/CopyableText.js.map +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.cjs +2 -1
- package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.d.ts +1 -0
- package/dist/components/CycleTimer/DefaultVariant.d.ts.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.d.ts +1 -0
- package/dist/components/CycleTimer/SmallVariant.d.ts.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.js +1 -0
- package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
- package/dist/components/CycleTimer/index.cjs +2 -1
- package/dist/components/CycleTimer/index.cjs.map +1 -0
- package/dist/components/CycleTimer/index.d.ts +1 -0
- package/dist/components/CycleTimer/index.d.ts.map +1 -0
- package/dist/components/CycleTimer/index.js +2 -1
- package/dist/components/CycleTimer/index.js.map +1 -0
- package/dist/components/CycleTimer/types.d.ts +1 -0
- package/dist/components/CycleTimer/types.d.ts.map +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
- package/dist/components/CycleTimer/useAnimations.d.ts +1 -0
- package/dist/components/CycleTimer/useAnimations.d.ts.map +1 -0
- package/dist/components/CycleTimer/useAnimations.js +2 -9
- package/dist/components/CycleTimer/useAnimations.js.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.cjs +2 -1
- package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.d.ts +1 -0
- package/dist/components/CycleTimer/useTimerLogic.d.ts.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
- package/dist/components/CycleTimer/utils.cjs +2 -1
- package/dist/components/CycleTimer/utils.cjs.map +1 -0
- package/dist/components/CycleTimer/utils.d.ts +1 -0
- package/dist/components/CycleTimer/utils.d.ts.map +1 -0
- package/dist/components/CycleTimer/utils.js +11 -19
- package/dist/components/CycleTimer/utils.js.map +1 -0
- package/dist/components/CycleTimer.cjs +1 -0
- package/dist/components/CycleTimer.cjs.map +1 -0
- package/dist/components/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer.d.ts.map +1 -0
- package/dist/components/CycleTimer.js +1 -0
- package/dist/components/CycleTimer.js.map +1 -0
- package/dist/components/DataGrid.cjs +2 -1
- package/dist/components/DataGrid.cjs.map +1 -0
- package/dist/components/DataGrid.d.ts +1 -0
- package/dist/components/DataGrid.d.ts.map +1 -0
- package/dist/components/DataGrid.js +2 -1
- package/dist/components/DataGrid.js.map +1 -0
- package/dist/components/LoadingCover.cjs +2 -1
- package/dist/components/LoadingCover.cjs.map +1 -0
- package/dist/components/LoadingCover.d.ts +1 -0
- package/dist/components/LoadingCover.d.ts.map +1 -0
- package/dist/components/LoadingCover.js +1 -0
- package/dist/components/LoadingCover.js.map +1 -0
- package/dist/components/LogPanel.cjs +2 -1
- package/dist/components/LogPanel.cjs.map +1 -0
- package/dist/components/LogPanel.d.ts +1 -0
- package/dist/components/LogPanel.d.ts.map +1 -0
- package/dist/components/LogPanel.js +2 -1
- package/dist/components/LogPanel.js.map +1 -0
- package/dist/components/LogStore.cjs +1 -0
- package/dist/components/LogStore.cjs.map +1 -0
- package/dist/components/LogStore.d.ts +1 -0
- package/dist/components/LogStore.d.ts.map +1 -0
- package/dist/components/LogStore.js +1 -0
- package/dist/components/LogStore.js.map +1 -0
- package/dist/components/LogViewer.cjs +2 -1
- package/dist/components/LogViewer.cjs.map +1 -0
- package/dist/components/LogViewer.d.ts +1 -0
- package/dist/components/LogViewer.d.ts.map +1 -0
- package/dist/components/LogViewer.js +2 -1
- package/dist/components/LogViewer.js.map +1 -0
- package/dist/components/ProgramControl.cjs +2 -1
- package/dist/components/ProgramControl.cjs.map +1 -0
- package/dist/components/ProgramControl.d.ts +1 -0
- package/dist/components/ProgramControl.d.ts.map +1 -0
- package/dist/components/ProgramControl.js +7 -6
- package/dist/components/ProgramControl.js.map +1 -0
- package/dist/components/ProgramStateIndicator.cjs +2 -1
- package/dist/components/ProgramStateIndicator.cjs.map +1 -0
- package/dist/components/ProgramStateIndicator.d.ts +1 -0
- package/dist/components/ProgramStateIndicator.d.ts.map +1 -0
- package/dist/components/ProgramStateIndicator.js +29 -28
- package/dist/components/ProgramStateIndicator.js.map +1 -0
- package/dist/components/RobotCard.cjs +2 -1
- package/dist/components/RobotCard.cjs.map +1 -0
- package/dist/components/RobotCard.d.ts +1 -0
- package/dist/components/RobotCard.d.ts.map +1 -0
- package/dist/components/RobotCard.js +2 -1
- package/dist/components/RobotCard.js.map +1 -0
- package/dist/components/RobotListItem.cjs +2 -1
- package/dist/components/RobotListItem.cjs.map +1 -0
- package/dist/components/RobotListItem.d.ts +1 -0
- package/dist/components/RobotListItem.d.ts.map +1 -0
- package/dist/components/RobotListItem.js +26 -25
- package/dist/components/RobotListItem.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.cjs +2 -1
- package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.js +2 -1
- package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts +2 -0
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts.map +1 -0
- package/dist/components/SelectableFab.cjs +1 -0
- package/dist/components/SelectableFab.cjs.map +1 -0
- package/dist/components/SelectableFab.d.ts +1 -0
- package/dist/components/SelectableFab.d.ts.map +1 -0
- package/dist/components/SelectableFab.js +1 -0
- package/dist/components/SelectableFab.js.map +1 -0
- package/dist/components/TabBar.cjs +2 -1
- package/dist/components/TabBar.cjs.map +1 -0
- package/dist/components/TabBar.d.ts +1 -0
- package/dist/components/TabBar.d.ts.map +1 -0
- package/dist/components/TabBar.js +2 -1
- package/dist/components/TabBar.js.map +1 -0
- package/dist/components/ThemeSelect.d.ts +1 -0
- package/dist/components/ThemeSelect.d.ts.map +1 -0
- package/dist/components/Timer/Timer.d.ts +1 -0
- package/dist/components/Timer/Timer.d.ts.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs +1 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.d.ts +1 -0
- package/dist/components/Timer/TimerDefaultVariant.d.ts.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.d.ts +1 -0
- package/dist/components/Timer/TimerSmallVariant.d.ts.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.js +1 -0
- package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
- package/dist/components/Timer/index.cjs +2 -1
- package/dist/components/Timer/index.cjs.map +1 -0
- package/dist/components/Timer/index.d.ts +1 -0
- package/dist/components/Timer/index.d.ts.map +1 -0
- package/dist/components/Timer/index.js +12 -11
- package/dist/components/Timer/index.js.map +1 -0
- package/dist/components/Timer/types.d.ts +1 -0
- package/dist/components/Timer/types.d.ts.map +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
- package/dist/components/Timer/useTimerAnimations.d.ts +1 -0
- package/dist/components/Timer/useTimerAnimations.d.ts.map +1 -0
- package/dist/components/Timer/useTimerAnimations.js +2 -5
- package/dist/components/Timer/useTimerAnimations.js.map +1 -0
- package/dist/components/Timer/useTimerLogic.cjs +1 -0
- package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
- package/dist/components/Timer/useTimerLogic.d.ts +1 -0
- package/dist/components/Timer/useTimerLogic.d.ts.map +1 -0
- package/dist/components/Timer/useTimerLogic.js +1 -0
- package/dist/components/Timer/useTimerLogic.js.map +1 -0
- package/dist/components/Timer/utils.cjs +2 -1
- package/dist/components/Timer/utils.cjs.map +1 -0
- package/dist/components/Timer/utils.d.ts +1 -0
- package/dist/components/Timer/utils.d.ts.map +1 -0
- package/dist/components/Timer/utils.js +10 -10
- package/dist/components/Timer/utils.js.map +1 -0
- package/dist/components/Timer.cjs +1 -0
- package/dist/components/Timer.cjs.map +1 -0
- package/dist/components/Timer.d.ts +1 -0
- package/dist/components/Timer.d.ts.map +1 -0
- package/dist/components/Timer.js +1 -0
- package/dist/components/Timer.js.map +1 -0
- package/dist/components/TransparentOverlay.d.ts +1 -0
- package/dist/components/TransparentOverlay.d.ts.map +1 -0
- package/dist/components/VelocitySlider.cjs +1 -0
- package/dist/components/VelocitySlider.cjs.map +1 -0
- package/dist/components/VelocitySlider.d.ts +1 -0
- package/dist/components/VelocitySlider.d.ts.map +1 -0
- package/dist/components/VelocitySlider.js +1 -0
- package/dist/components/VelocitySlider.js.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.d.ts +1 -0
- package/dist/components/experimental/utils/AdornedSelect.d.ts.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
- package/dist/components/jogging/JoggingBlocked.d.ts +1 -0
- package/dist/components/jogging/JoggingBlocked.d.ts.map +1 -0
- package/dist/components/jogging/JoggingBlocked.js +1 -0
- package/dist/components/jogging/JoggingBlocked.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.js +20 -18
- package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.cjs +2 -1
- package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.js +41 -37
- package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
- package/dist/components/jogging/JoggingJointTab.cjs +2 -1
- package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointTab.d.ts +1 -0
- package/dist/components/jogging/JoggingJointTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointTab.js +1 -0
- package/dist/components/jogging/JoggingJointTab.js.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.cjs +2 -1
- package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.js +2 -1
- package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
- package/dist/components/jogging/JoggingOptions.cjs +2 -1
- package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
- package/dist/components/jogging/JoggingOptions.d.ts +1 -0
- package/dist/components/jogging/JoggingOptions.d.ts.map +1 -0
- package/dist/components/jogging/JoggingOptions.js +1 -0
- package/dist/components/jogging/JoggingOptions.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.cjs +2 -1
- package/dist/components/jogging/JoggingPanel.cjs.map +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts.map +1 -0
- package/dist/components/jogging/JoggingPanel.js +119 -21
- package/dist/components/jogging/JoggingPanel.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.test.d.ts +2 -0
- package/dist/components/jogging/JoggingPanel.test.d.ts.map +1 -0
- package/dist/components/jogging/JoggingStore.cjs +1 -0
- package/dist/components/jogging/JoggingStore.cjs.map +1 -0
- package/dist/components/jogging/JoggingStore.d.ts +1 -0
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -0
- package/dist/components/jogging/JoggingStore.js +1 -0
- package/dist/components/jogging/JoggingStore.js.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.cjs +2 -1
- package/dist/components/jogging/PoseCartesianValues.cjs.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.js +5 -4
- package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
- package/dist/components/jogging/PoseJointValues.cjs +2 -1
- package/dist/components/jogging/PoseJointValues.cjs.map +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts.map +1 -0
- package/dist/components/jogging/PoseJointValues.js +2 -1
- package/dist/components/jogging/PoseJointValues.js.map +1 -0
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts +11 -0
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.js +1 -0
- package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
- package/dist/components/robots/AxisConfig.cjs +1 -0
- package/dist/components/robots/AxisConfig.cjs.map +1 -0
- package/dist/components/robots/AxisConfig.d.ts +1 -0
- package/dist/components/robots/AxisConfig.d.ts.map +1 -0
- package/dist/components/robots/AxisConfig.js +1 -0
- package/dist/components/robots/AxisConfig.js.map +1 -0
- package/dist/components/robots/DHLinearAxis.cjs +2 -1
- package/dist/components/robots/DHLinearAxis.cjs.map +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts.map +1 -0
- package/dist/components/robots/DHLinearAxis.js +1 -0
- package/dist/components/robots/DHLinearAxis.js.map +1 -0
- package/dist/components/robots/DHRobot.cjs +2 -1
- package/dist/components/robots/DHRobot.cjs.map +1 -0
- package/dist/components/robots/DHRobot.d.ts +1 -0
- package/dist/components/robots/DHRobot.d.ts.map +1 -0
- package/dist/components/robots/DHRobot.js +1 -0
- package/dist/components/robots/DHRobot.js.map +1 -0
- package/dist/components/robots/GenericRobot.cjs +1 -0
- package/dist/components/robots/GenericRobot.cjs.map +1 -0
- package/dist/components/robots/GenericRobot.d.ts +1 -0
- package/dist/components/robots/GenericRobot.d.ts.map +1 -0
- package/dist/components/robots/GenericRobot.js +1 -0
- package/dist/components/robots/GenericRobot.js.map +1 -0
- package/dist/components/robots/LinearAxis.cjs +2 -1
- package/dist/components/robots/LinearAxis.cjs.map +1 -0
- package/dist/components/robots/LinearAxis.d.ts +1 -0
- package/dist/components/robots/LinearAxis.d.ts.map +1 -0
- package/dist/components/robots/LinearAxis.js +1 -0
- package/dist/components/robots/LinearAxis.js.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.cjs +2 -1
- package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.d.ts +1 -0
- package/dist/components/robots/LinearAxisAnimator.d.ts.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.js +1 -0
- package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.cjs +2 -1
- package/dist/components/robots/MotionGroupVisualizer.cjs.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.js +5 -4
- package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
- package/dist/components/robots/Robot.cjs +2 -1
- package/dist/components/robots/Robot.cjs.map +1 -0
- package/dist/components/robots/Robot.d.ts +1 -0
- package/dist/components/robots/Robot.d.ts.map +1 -0
- package/dist/components/robots/Robot.js +1 -0
- package/dist/components/robots/Robot.js.map +1 -0
- package/dist/components/robots/RobotAnimator.cjs +2 -1
- package/dist/components/robots/RobotAnimator.cjs.map +1 -0
- package/dist/components/robots/RobotAnimator.d.ts +1 -0
- package/dist/components/robots/RobotAnimator.d.ts.map +1 -0
- package/dist/components/robots/RobotAnimator.js +1 -0
- package/dist/components/robots/RobotAnimator.js.map +1 -0
- package/dist/components/robots/RobotAnimator.test.d.ts +2 -0
- package/dist/components/robots/RobotAnimator.test.d.ts.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.cjs +2 -1
- package/dist/components/robots/SupportedLinearAxis.cjs.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.js +8 -7
- package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
- package/dist/components/robots/SupportedRobot.cjs +2 -1
- package/dist/components/robots/SupportedRobot.cjs.map +1 -0
- package/dist/components/robots/SupportedRobot.d.ts +1 -0
- package/dist/components/robots/SupportedRobot.d.ts.map +1 -0
- package/dist/components/robots/SupportedRobot.js +7 -6
- package/dist/components/robots/SupportedRobot.js.map +1 -0
- package/dist/components/robots/ghostStyle.cjs +1 -0
- package/dist/components/robots/ghostStyle.cjs.map +1 -0
- package/dist/components/robots/ghostStyle.d.ts +1 -0
- package/dist/components/robots/ghostStyle.d.ts.map +1 -0
- package/dist/components/robots/ghostStyle.js +1 -0
- package/dist/components/robots/ghostStyle.js.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.d.ts +1 -0
- package/dist/components/robots/manufacturerHomePositions.d.ts.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.js +1 -0
- package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
- package/dist/components/robots/robotModelLogic.cjs +2 -1
- package/dist/components/robots/robotModelLogic.cjs.map +1 -0
- package/dist/components/robots/robotModelLogic.d.ts +1 -0
- package/dist/components/robots/robotModelLogic.d.ts.map +1 -0
- package/dist/components/robots/robotModelLogic.js +34 -58
- package/dist/components/robots/robotModelLogic.js.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.js +12 -10
- package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -1
- package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.js +24 -21
- package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
- package/dist/components/safetyBar/SafetyBar.cjs +2 -1
- package/dist/components/safetyBar/SafetyBar.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -0
- package/dist/components/safetyBar/SafetyBar.js +16 -15
- package/dist/components/safetyBar/SafetyBar.js.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -1
- package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.js +30 -25
- package/dist/components/safetyBar/SafetyStateIndicator.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +3 -0
- package/dist/{chunks/controller-type-virtual-CWOoMRfl.js → components/safetyBar/icons/controller-type-physical.svg.js} +6 -10
- package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +11 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/index.d.ts +1 -0
- package/dist/components/safetyBar/icons/index.d.ts.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +1 -0
- package/dist/components/utils/converters.cjs +2 -1
- package/dist/components/utils/converters.cjs.map +1 -0
- package/dist/components/utils/converters.d.ts +1 -0
- package/dist/components/utils/converters.d.ts.map +1 -0
- package/dist/components/utils/converters.js +11 -26
- package/dist/components/utils/converters.js.map +1 -0
- package/dist/components/utils/errorHandling.cjs +2 -1
- package/dist/components/utils/errorHandling.cjs.map +1 -0
- package/dist/components/utils/errorHandling.d.ts +1 -0
- package/dist/components/utils/errorHandling.d.ts.map +1 -0
- package/dist/components/utils/errorHandling.js +9 -17
- package/dist/components/utils/errorHandling.js.map +1 -0
- package/dist/components/utils/errorHandling.test.d.ts +2 -0
- package/dist/components/utils/errorHandling.test.d.ts.map +1 -0
- package/dist/components/utils/hooks.cjs +1 -0
- package/dist/components/utils/hooks.cjs.map +1 -0
- package/dist/components/utils/hooks.d.ts +1 -0
- package/dist/components/utils/hooks.d.ts.map +1 -0
- package/dist/components/utils/hooks.js +4 -3
- package/dist/components/utils/hooks.js.map +1 -0
- package/dist/components/utils/interpolation.cjs +1 -0
- package/dist/components/utils/interpolation.cjs.map +1 -0
- package/dist/components/utils/interpolation.d.ts +1 -0
- package/dist/components/utils/interpolation.d.ts.map +1 -0
- package/dist/components/utils/interpolation.js +1 -0
- package/dist/components/utils/interpolation.js.map +1 -0
- package/dist/components/utils/interpolation.test.d.ts +2 -0
- package/dist/components/utils/interpolation.test.d.ts.map +1 -0
- package/dist/core.cjs +2 -1
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.ts +1 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +75 -70
- package/dist/core.js.map +1 -0
- package/dist/externalizeComponent.cjs +2 -0
- package/dist/externalizeComponent.cjs.map +1 -0
- package/dist/externalizeComponent.d.ts +1 -0
- package/dist/externalizeComponent.d.ts.map +1 -0
- package/dist/externalizeComponent.js +13 -0
- package/dist/externalizeComponent.js.map +1 -0
- package/dist/i18n/config.cjs +2 -0
- package/dist/i18n/config.cjs.map +1 -0
- package/dist/i18n/config.d.ts +1 -0
- package/dist/i18n/config.d.ts.map +1 -0
- package/dist/i18n/config.js +25 -0
- package/dist/i18n/config.js.map +1 -0
- package/dist/i18n/locales/de/translations.json.cjs +3 -0
- package/dist/i18n/locales/de/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/de/translations.json.js +94 -0
- package/dist/i18n/locales/de/translations.json.js.map +1 -0
- package/dist/i18n/locales/en/translations.json.cjs +2 -0
- package/dist/i18n/locales/en/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/en/translations.json.js +94 -0
- package/dist/i18n/locales/en/translations.json.js.map +1 -0
- package/dist/icons/DropdownArrowIcon.cjs +2 -0
- package/dist/icons/DropdownArrowIcon.cjs.map +1 -0
- package/dist/icons/DropdownArrowIcon.d.ts +1 -0
- package/dist/icons/DropdownArrowIcon.d.ts.map +1 -0
- package/dist/icons/DropdownArrowIcon.js +14 -0
- package/dist/icons/DropdownArrowIcon.js.map +1 -0
- package/dist/icons/axis-x.svg.cjs +2 -0
- package/dist/icons/axis-x.svg.cjs.map +1 -0
- package/dist/icons/axis-x.svg.d.ts +3 -0
- package/dist/icons/axis-x.svg.js +11 -0
- package/dist/icons/axis-x.svg.js.map +1 -0
- package/dist/icons/axis-y.svg.cjs +2 -0
- package/dist/icons/axis-y.svg.cjs.map +1 -0
- package/dist/icons/axis-y.svg.d.ts +3 -0
- package/dist/icons/axis-y.svg.js +11 -0
- package/dist/icons/axis-y.svg.js.map +1 -0
- package/dist/icons/axis-z.svg.cjs +2 -0
- package/dist/icons/axis-z.svg.cjs.map +1 -0
- package/dist/icons/axis-z.svg.d.ts +3 -0
- package/dist/icons/axis-z.svg.js +11 -0
- package/dist/icons/axis-z.svg.js.map +1 -0
- package/dist/icons/home.svg.cjs +2 -0
- package/dist/icons/home.svg.cjs.map +1 -0
- package/dist/icons/home.svg.d.ts +3 -0
- package/dist/icons/home.svg.js +11 -0
- package/dist/icons/home.svg.js.map +1 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/jog-minus.svg.cjs +2 -0
- package/dist/icons/jog-minus.svg.cjs.map +1 -0
- package/dist/icons/jog-minus.svg.d.ts +3 -0
- package/dist/icons/jog-minus.svg.js +11 -0
- package/dist/icons/jog-minus.svg.js.map +1 -0
- package/dist/icons/jog-plus.svg.cjs +2 -0
- package/dist/icons/jog-plus.svg.cjs.map +1 -0
- package/dist/icons/jog-plus.svg.d.ts +3 -0
- package/dist/icons/jog-plus.svg.js +11 -0
- package/dist/icons/jog-plus.svg.js.map +1 -0
- package/dist/icons/jogging.svg.cjs +2 -0
- package/dist/icons/jogging.svg.cjs.map +1 -0
- package/dist/icons/jogging.svg.d.ts +3 -0
- package/dist/icons/jogging.svg.js +11 -0
- package/dist/icons/jogging.svg.js.map +1 -0
- package/dist/icons/orientation-coord-system.svg.cjs +2 -0
- package/dist/icons/orientation-coord-system.svg.cjs.map +1 -0
- package/dist/icons/orientation-coord-system.svg.d.ts +3 -0
- package/dist/icons/orientation-coord-system.svg.js +11 -0
- package/dist/icons/orientation-coord-system.svg.js.map +1 -0
- package/dist/icons/orientation-tool.svg.cjs +2 -0
- package/dist/icons/orientation-tool.svg.cjs.map +1 -0
- package/dist/icons/orientation-tool.svg.d.ts +3 -0
- package/dist/icons/orientation-tool.svg.js +11 -0
- package/dist/icons/orientation-tool.svg.js.map +1 -0
- package/dist/icons/robot.svg.cjs +2 -0
- package/dist/icons/robot.svg.cjs.map +1 -0
- package/dist/icons/robot.svg.d.ts +3 -0
- package/dist/{chunks/robot-D97QEl_l.js → icons/robot.svg.js} +3 -2
- package/dist/icons/robot.svg.js.map +1 -0
- package/dist/icons/rotation.svg.cjs +2 -0
- package/dist/icons/rotation.svg.cjs.map +1 -0
- package/dist/icons/rotation.svg.d.ts +3 -0
- package/dist/icons/rotation.svg.js +11 -0
- package/dist/icons/rotation.svg.js.map +1 -0
- package/dist/icons/wbLogo.svg.cjs +2 -0
- package/dist/icons/wbLogo.svg.cjs.map +1 -0
- package/dist/icons/wbLogo.svg.d.ts +3 -0
- package/dist/icons/wbLogo.svg.js +11 -0
- package/dist/icons/wbLogo.svg.js.map +1 -0
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +140 -120
- package/dist/index.js.map +1 -0
- package/dist/lib/ConnectedMotionGroup.cjs +4 -0
- package/dist/lib/ConnectedMotionGroup.cjs.map +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -0
- package/dist/lib/ConnectedMotionGroup.js +250 -0
- package/dist/lib/ConnectedMotionGroup.js.map +1 -0
- package/dist/lib/JoggerConnection.cjs +2 -0
- package/dist/lib/JoggerConnection.cjs.map +1 -0
- package/dist/lib/JoggerConnection.d.ts +1 -0
- package/dist/lib/JoggerConnection.d.ts.map +1 -0
- package/dist/lib/JoggerConnection.js +342 -0
- package/dist/lib/JoggerConnection.js.map +1 -0
- package/dist/lib/JoggerConnection.test.d.ts +2 -0
- package/dist/lib/JoggerConnection.test.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.cjs +3 -0
- package/dist/lib/MotionStreamConnection.cjs.map +1 -0
- package/dist/lib/MotionStreamConnection.d.ts +1 -0
- package/dist/lib/MotionStreamConnection.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.js +94 -0
- package/dist/lib/MotionStreamConnection.js.map +1 -0
- package/dist/lib/MotionStreamConnection.test.d.ts +2 -0
- package/dist/lib/MotionStreamConnection.test.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.cjs +2 -0
- package/dist/lib/motionStateUpdate.cjs.map +1 -0
- package/dist/lib/motionStateUpdate.d.ts +1 -0
- package/dist/lib/motionStateUpdate.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.js +49 -0
- package/dist/lib/motionStateUpdate.js.map +1 -0
- package/dist/lib/motionStateUpdate.test.d.ts +2 -0
- package/dist/lib/motionStateUpdate.test.d.ts.map +1 -0
- package/dist/test/consumer.test.d.ts +2 -0
- package/dist/test/consumer.test.d.ts.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.cjs +2 -0
- package/dist/themes/createDarkTheme.cjs.map +1 -0
- package/dist/themes/createDarkTheme.d.ts +1 -0
- package/dist/themes/createDarkTheme.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.js +344 -0
- package/dist/themes/createDarkTheme.js.map +1 -0
- package/dist/themes/createLightTheme.cjs +2 -0
- package/dist/themes/createLightTheme.cjs.map +1 -0
- package/dist/themes/createLightTheme.d.ts +1 -0
- package/dist/themes/createLightTheme.d.ts.map +1 -0
- package/dist/themes/createLightTheme.js +9 -0
- package/dist/themes/createLightTheme.js.map +1 -0
- package/dist/themes/themeTypes.d.ts +1 -0
- package/dist/themes/themeTypes.d.ts.map +1 -0
- package/dist/themes/theming.cjs +2 -0
- package/dist/themes/theming.cjs.map +1 -0
- package/dist/themes/theming.d.ts +1 -0
- package/dist/themes/theming.d.ts.map +1 -0
- package/dist/themes/theming.js +14 -0
- package/dist/themes/theming.js.map +1 -0
- package/dist/wb-icons.cjs +2 -1
- package/dist/wb-icons.cjs.map +1 -0
- package/dist/wb-icons.d.ts +1 -0
- package/dist/wb-icons.d.ts.map +1 -0
- package/dist/wb-icons.js +44 -28
- package/dist/wb-icons.js.map +1 -0
- package/package.json +6 -5
- package/src/3d.ts +18 -0
- package/src/Setup.tsx +33 -0
- package/src/components/3d-viewport/CoordinateSystemTransform.tsx +57 -0
- package/src/components/3d-viewport/PresetEnvironment.tsx +81 -0
- package/src/components/3d-viewport/SafetyZonesRenderer.tsx +198 -0
- package/src/components/3d-viewport/TrajectoryRenderer.tsx +41 -0
- package/src/components/3d-viewport/collider/ColliderCollection.tsx +35 -0
- package/src/components/3d-viewport/collider/ColliderElement.tsx +36 -0
- package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +26 -0
- package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +48 -0
- package/src/components/AppHeader.md +84 -0
- package/src/components/AppHeader.tsx +197 -0
- package/src/components/ConsoleFilter.tsx +24 -0
- package/src/components/CopyableText.tsx +89 -0
- package/src/components/CycleTimer/CycleTimer.ts +8 -0
- package/src/components/CycleTimer/DefaultVariant.tsx +326 -0
- package/src/components/CycleTimer/SmallVariant.tsx +229 -0
- package/src/components/CycleTimer/index.tsx +158 -0
- package/src/components/CycleTimer/types.ts +58 -0
- package/src/components/CycleTimer/useAnimations.ts +202 -0
- package/src/components/CycleTimer/useTimerLogic.ts +330 -0
- package/src/components/CycleTimer/utils.ts +122 -0
- package/src/components/CycleTimer.tsx +8 -0
- package/src/components/DataGrid.tsx +664 -0
- package/src/components/LoadingCover.tsx +91 -0
- package/src/components/LogPanel.tsx +71 -0
- package/src/components/LogStore.ts +46 -0
- package/src/components/LogViewer.tsx +368 -0
- package/src/components/ProgramControl.tsx +267 -0
- package/src/components/ProgramStateIndicator.tsx +195 -0
- package/src/components/RobotCard.tsx +495 -0
- package/src/components/RobotListItem.tsx +155 -0
- package/src/components/RobotSetupReadinessIndicator.test.tsx +60 -0
- package/src/components/RobotSetupReadinessIndicator.tsx +161 -0
- package/src/components/SelectableFab.tsx +52 -0
- package/src/components/TabBar.tsx +325 -0
- package/src/components/ThemeSelect.tsx +51 -0
- package/src/components/Timer/Timer.ts +4 -0
- package/src/components/Timer/TimerDefaultVariant.tsx +143 -0
- package/src/components/Timer/TimerSmallVariant.tsx +141 -0
- package/src/components/Timer/index.tsx +103 -0
- package/src/components/Timer/types.ts +38 -0
- package/src/components/Timer/useTimerAnimations.ts +94 -0
- package/src/components/Timer/useTimerLogic.ts +214 -0
- package/src/components/Timer/utils.ts +87 -0
- package/src/components/Timer.ts +4 -0
- package/src/components/TransparentOverlay.tsx +28 -0
- package/src/components/VelocitySlider.tsx +117 -0
- package/src/components/experimental/utils/AdornedSelect.tsx +38 -0
- package/src/components/jogging/JoggingBlocked.tsx +43 -0
- package/src/components/jogging/JoggingCartesianAxisControl.tsx +237 -0
- package/src/components/jogging/JoggingCartesianTab.tsx +349 -0
- package/src/components/jogging/JoggingFreedriveTab.tsx +8 -0
- package/src/components/jogging/JoggingJointLimitDetector.tsx +57 -0
- package/src/components/jogging/JoggingJointTab.tsx +126 -0
- package/src/components/jogging/JoggingJointValueControl.tsx +293 -0
- package/src/components/jogging/JoggingOptions.tsx +163 -0
- package/src/components/jogging/JoggingPanel.test.tsx +645 -0
- package/src/components/jogging/JoggingPanel.tsx +204 -0
- package/src/components/jogging/JoggingStore.ts +485 -0
- package/src/components/jogging/JoggingToggleButtonGroup.tsx +25 -0
- package/src/components/jogging/JoggingVelocitySlider.tsx +39 -0
- package/src/components/jogging/PoseCartesianValues.tsx +55 -0
- package/src/components/jogging/PoseJointValues.tsx +54 -0
- package/src/components/jogging/__fixtures__/motionStreamMockData.ts +136 -0
- package/src/components/modal/NoMotionGroupModal.tsx +91 -0
- package/src/components/robots/AxisConfig.ts +3 -0
- package/src/components/robots/DHLinearAxis.tsx +147 -0
- package/src/components/robots/DHRobot.tsx +152 -0
- package/src/components/robots/GenericRobot.tsx +137 -0
- package/src/components/robots/LinearAxis.tsx +74 -0
- package/src/components/robots/LinearAxisAnimator.tsx +118 -0
- package/src/components/robots/MotionGroupVisualizer.tsx +73 -0
- package/src/components/robots/Robot.tsx +57 -0
- package/src/components/robots/RobotAnimator.test.tsx +98 -0
- package/src/components/robots/RobotAnimator.tsx +116 -0
- package/src/components/robots/SupportedLinearAxis.tsx +110 -0
- package/src/components/robots/SupportedRobot.tsx +111 -0
- package/src/components/robots/ghostStyle.ts +71 -0
- package/src/components/robots/manufacturerHomePositions.ts +76 -0
- package/src/components/robots/robotModelLogic.ts +158 -0
- package/src/components/safetyBar/ControllerTypeIndicator.tsx +79 -0
- package/src/components/safetyBar/IndicatorWithExplanation.tsx +137 -0
- package/src/components/safetyBar/OperationModeIndicator.tsx +98 -0
- package/src/components/safetyBar/SafetyBar.tsx +72 -0
- package/src/components/safetyBar/SafetyStateIndicator.tsx +163 -0
- package/src/components/safetyBar/icons/controller-type-physical.svg +1 -0
- package/src/components/safetyBar/icons/controller-type-virtual.svg +1 -0
- package/src/components/safetyBar/icons/index.ts +10 -0
- package/src/components/safetyBar/icons/operation-mode-automatic.svg +1 -0
- package/src/components/safetyBar/icons/operation-mode-error.svg +1 -0
- package/src/components/safetyBar/icons/operation-mode-manual.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-error.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-estop.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-manual-action-required.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-normal.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-stop.svg +1 -0
- package/src/components/utils/converters.ts +90 -0
- package/src/components/utils/errorHandling.test.ts +41 -0
- package/src/components/utils/errorHandling.ts +38 -0
- package/src/components/utils/hooks.tsx +55 -0
- package/src/components/utils/interpolation.test.ts +1138 -0
- package/src/components/utils/interpolation.ts +380 -0
- package/src/core.ts +33 -0
- package/src/declarations.d.ts +10 -0
- package/src/env.d.ts +3 -0
- package/src/externalizeComponent.tsx +28 -0
- package/src/i18n/config.ts +26 -0
- package/src/i18n/locales/de/translations.json +89 -0
- package/src/i18n/locales/en/translations.json +90 -0
- package/src/icons/DropdownArrowIcon.tsx +12 -0
- package/src/icons/axis-x.svg +1 -0
- package/src/icons/axis-y.svg +1 -0
- package/src/icons/axis-z.svg +1 -0
- package/src/icons/home.svg +1 -0
- package/src/icons/index.ts +12 -0
- package/src/icons/jog-minus.svg +5 -0
- package/src/icons/jog-plus.svg +9 -0
- package/src/icons/jogging.svg +1 -0
- package/src/icons/orientation-coord-system.svg +1 -0
- package/src/icons/orientation-tool.svg +1 -0
- package/src/icons/robot.svg +1 -0
- package/src/icons/rotation.svg +3 -0
- package/src/icons/wbLogo.svg +1 -0
- package/src/index.ts +4 -0
- package/src/lib/ConnectedMotionGroup.ts +441 -0
- package/src/lib/JoggerConnection.test.ts +122 -0
- package/src/lib/JoggerConnection.ts +694 -0
- package/src/lib/MotionStreamConnection.test.ts +23 -0
- package/src/lib/MotionStreamConnection.ts +186 -0
- package/src/lib/motionStateUpdate.test.ts +28 -0
- package/src/lib/motionStateUpdate.ts +117 -0
- package/src/test/consumer.test.ts +257 -0
- package/src/test/setup.ts +111 -0
- package/src/themes/createDarkTheme.ts +343 -0
- package/src/themes/createLightTheme.ts +8 -0
- package/src/themes/themeTypes.ts +96 -0
- package/src/themes/theming.ts +29 -0
- package/src/wb-icons.ts +3 -0
- package/dist/chunks/JoggingPanel-CQH_oXTB.js +0 -586
- package/dist/chunks/JoggingPanel-DZN2Y39k.cjs +0 -2
- package/dist/chunks/controller-type-virtual-BuJWQOvV.cjs +0 -1
- package/dist/chunks/externalizeComponent-DOwkaDcw.cjs +0 -2
- package/dist/chunks/externalizeComponent-eiCc5DIh.js +0 -209
- package/dist/chunks/jog-plus-CAUurv4S.js +0 -15
- package/dist/chunks/jog-plus-Dy1r7-r5.cjs +0 -1
- package/dist/chunks/operation-mode-manual-Di4Z1KM1.js +0 -20
- package/dist/chunks/operation-mode-manual-eHwVILeI.cjs +0 -1
- package/dist/chunks/robot-CrNbCELh.cjs +0 -1
- package/dist/chunks/rotation-CIOAnn9q.cjs +0 -1
- package/dist/chunks/rotation-Dm5YL3NM.js +0 -25
- package/dist/chunks/safety-state-stop-Bg0VUsM4.js +0 -30
- package/dist/chunks/safety-state-stop-CNxVYiap.cjs +0 -1
- package/dist/chunks/theming-Chx_tewl.cjs +0 -3
- package/dist/chunks/theming-Cw6qwBM7.js +0 -600
- package/dist/chunks/wbLogo-CObCmqTw.js +0 -30
- package/dist/chunks/wbLogo-G_IfZ03l.cjs +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.cjs +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.js +0 -37
- package/dist/components/CycleTimer/CycleTimer.cjs +0 -1
- package/dist/components/CycleTimer/CycleTimer.js +0 -5
- package/dist/components/CycleTimer/types.cjs +0 -1
- package/dist/components/CycleTimer/types.js +0 -1
- package/dist/components/ThemeSelect.cjs +0 -1
- package/dist/components/ThemeSelect.js +0 -38
- package/dist/components/Timer/Timer.cjs +0 -1
- package/dist/components/Timer/Timer.js +0 -5
- package/dist/components/Timer/types.cjs +0 -1
- package/dist/components/Timer/types.js +0 -1
- package/dist/components/TransparentOverlay.cjs +0 -1
- package/dist/components/TransparentOverlay.js +0 -26
- package/dist/components/jogging/JoggingFreedriveTab.cjs +0 -1
- package/dist/components/jogging/JoggingFreedriveTab.js +0 -6
- package/dist/components/safetyBar/icons/index.cjs +0 -1
- package/dist/components/safetyBar/icons/index.js +0 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Robot.js","sources":["../../../src/components/robots/Robot.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\n\nimport type { Group } from \"three\"\nimport type { ConnectedMotionGroup } from \"../../lib/ConnectedMotionGroup\"\nimport { defaultGetModel } from \"./robotModelLogic\"\nimport { SupportedRobot } from \"./SupportedRobot\"\n\nexport type RobotProps = {\n connectedMotionGroup: ConnectedMotionGroup\n getModel?: (modelFromController: string) => Promise<string>\n flangeRef?: React.Ref<Group>\n transparentColor?: string\n postModelRender?: () => void\n} & ThreeElements[\"group\"]\n\n/**\n * The Robot component is a wrapper around the SupportedRobot component\n * for usage with @wandelbots/nova-js ConnectedMotionGroup object.\n *\n * @param {RobotProps} props - The properties for the Robot component.\n * @param {ConnectedMotionGroup} props.connectedMotionGroup - The connected motion group containing motion state and parameters.\n * @param {Function} [props.getModel=defaultGetModel] - Optional function to get the model URL. Defaults to defaultGetModel.\n * @param {Object} props - Additional properties passed to the SupportedRobot component.\n *\n * @returns {JSX.Element} The rendered SupportedRobot component.\n */\nexport function Robot({\n connectedMotionGroup,\n getModel = defaultGetModel,\n flangeRef,\n transparentColor,\n postModelRender,\n ...props\n}: RobotProps) {\n if (!connectedMotionGroup.dhParameters) {\n return null\n }\n\n return (\n <SupportedRobot\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n modelFromController={connectedMotionGroup.modelFromController || \"\"}\n dhParameters={connectedMotionGroup.dhParameters}\n getModel={getModel}\n flangeRef={flangeRef}\n transparentColor={transparentColor}\n postModelRender={postModelRender}\n {...props}\n />\n )\n}\n\nexport { defaultGetModel }\n\nexport default Robot\n"],"names":["Robot","connectedMotionGroup","getModel","defaultGetModel","flangeRef","transparentColor","postModelRender","props","jsx","SupportedRobot"],"mappings":";;;AA0BO,SAASA,EAAM;AAAA,EACpB,sBAAAC;AAAA,EACA,UAAAC,IAAWC;AAAA,EACX,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,GAAe;AACb,SAAKN,EAAqB,eAKxB,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACER,EAAqB;AAAA,MAEvB,qBAAqBA,EAAqB,uBAAuB;AAAA,MACjE,cAAcA,EAAqB;AAAA,MACnC,UAAAC;AAAA,MACA,WAAAE;AAAA,MACA,kBAAAC;AAAA,MACA,iBAAAC;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA,IAdC;AAiBX;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const V=require("react/jsx-runtime"),d=require("@react-three/fiber"),o=require("react"),_=require("../utils/hooks.cjs"),J=require("../utils/interpolation.cjs"),x=require("./robotModelLogic.cjs");function A({rapidlyChangingMotionState:n,dhParameters:j,onRotationChanged:c,children:b}){const m=o.useRef([]),u=o.useRef([]),r=o.useRef(null),{invalidate:f}=d.useThree();o.useEffect(()=>{const t=n.joint_position.filter(e=>e!==void 0);return r.current=new J.ValueInterpolator(t,{tension:120,friction:20,threshold:.001}),()=>{var e;(e=r.current)==null||e.destroy()}},[]),d.useFrame((t,e)=>{if(r.current){const s=r.current.update(e);l(),s||f()}});function p(t){t&&(u.current=x.collectJoints(t),l(),f())}function l(){var e;const t=((e=r.current)==null?void 0:e.getCurrentValues())||[];if(c)c(u.current,t);else for(const[s,R]of u.current.entries()){const a=j[s],q=a.theta||0,v=a.reverse_rotation_direction?-1:1;R.rotation.y=v*(t[s]||0)+q}}const i=o.useCallback(()=>{const t=n.joint_position.filter(e=>e!==void 0);requestAnimationFrame(()=>{var e;m.current=t,(e=r.current)==null||e.setTarget(t)})},[n]);return o.useEffect(()=>{i()},[n,i]),_.useAutorun(()=>{i()}),V.jsx("group",{ref:p,children:b})}exports.default=A;
|
|
2
|
+
//# sourceMappingURL=RobotAnimator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RobotAnimator.cjs","sources":["../../../src/components/robots/RobotAnimator.tsx"],"sourcesContent":["import { useFrame, useThree } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useRef } from \"react\"\nimport type { Group, Object3D } from \"three\"\nimport { useAutorun } from \"../utils/hooks\"\nimport { ValueInterpolator } from \"../utils/interpolation\"\nimport { collectJoints } from \"./robotModelLogic\"\n\ntype RobotAnimatorProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: DHParameter[]\n onRotationChanged?: (joints: Object3D[], jointValues: number[]) => void\n children: React.ReactNode\n}\n\nexport default function RobotAnimator({\n rapidlyChangingMotionState,\n dhParameters,\n onRotationChanged,\n children,\n}: RobotAnimatorProps) {\n const jointValues = useRef<number[]>([])\n const jointObjects = useRef<Object3D[]>([])\n const interpolatorRef = useRef<ValueInterpolator | null>(null)\n const { invalidate } = useThree()\n\n // Initialize interpolator\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n const initialJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n interpolatorRef.current = new ValueInterpolator(initialJointValues, {\n tension: 120, // Controls spring stiffness - higher values create faster, more responsive motion\n friction: 20, // Controls damping - higher values reduce oscillation and create smoother settling\n threshold: 0.001,\n })\n\n return () => {\n interpolatorRef.current?.destroy()\n }\n }, [])\n\n // Animation loop that runs at the display's refresh rate\n useFrame((state, delta) => {\n if (interpolatorRef.current) {\n const isComplete = interpolatorRef.current.update(delta)\n setRotation()\n\n // Trigger a re-render only if the animation is still running\n if (!isComplete) {\n invalidate()\n }\n }\n })\n\n function setGroupRef(group: Group | null) {\n if (!group) return\n\n jointObjects.current = collectJoints(group)\n\n // Set initial position\n setRotation()\n invalidate()\n }\n\n function setRotation() {\n const updatedJointValues = interpolatorRef.current?.getCurrentValues() || []\n\n if (onRotationChanged) {\n onRotationChanged(jointObjects.current, updatedJointValues)\n } else {\n for (const [index, object] of jointObjects.current.entries()) {\n const dhParam = dhParameters[index]\n const rotationOffset = dhParam.theta || 0\n const rotationSign = dhParam.reverse_rotation_direction ? -1 : 1\n\n object.rotation.y =\n rotationSign * (updatedJointValues[index] || 0) + rotationOffset\n }\n }\n }\n\n const updateJoints = useCallback(() => {\n const newJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n requestAnimationFrame(() => {\n jointValues.current = newJointValues\n interpolatorRef.current?.setTarget(newJointValues)\n })\n }, [rapidlyChangingMotionState])\n\n /**\n * Fire an update joints call on every motion state change.\n * requestAnimationFrame used to avoid blocking main thread\n */\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n updateJoints()\n }, [rapidlyChangingMotionState, updateJoints])\n\n /**\n * As some consumer applications (eg. storybook) deliver\n * mobx observable for rapidlyChangingMotionState, we need to\n * register the watcher to get the newest value updates\n */\n useAutorun(() => {\n updateJoints()\n })\n\n return <group ref={setGroupRef}>{children}</group>\n}\n"],"names":["RobotAnimator","rapidlyChangingMotionState","dhParameters","onRotationChanged","children","jointValues","useRef","jointObjects","interpolatorRef","invalidate","useThree","useEffect","initialJointValues","item","ValueInterpolator","_a","useFrame","state","delta","isComplete","setRotation","setGroupRef","group","collectJoints","updatedJointValues","index","object","dhParam","rotationOffset","rotationSign","updateJoints","useCallback","newJointValues","useAutorun","jsx"],"mappings":"+SAgBA,SAAwBA,EAAc,CACpC,2BAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,SAAAC,CACF,EAAuB,CACrB,MAAMC,EAAcC,EAAAA,OAAiB,EAAE,EACjCC,EAAeD,EAAAA,OAAmB,EAAE,EACpCE,EAAkBF,EAAAA,OAAiC,IAAI,EACvD,CAAE,WAAAG,CAAA,EAAeC,WAAA,EAIvBC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAqBX,EAA2B,eAAe,OAClEY,GAASA,IAAS,MAAA,EAGrB,OAAAL,EAAgB,QAAU,IAAIM,EAAAA,kBAAkBF,EAAoB,CAClE,QAAS,IACT,SAAU,GACV,UAAW,IAAA,CACZ,EAEM,IAAM,QACXG,EAAAP,EAAgB,UAAhB,MAAAO,EAAyB,SAC3B,CACF,EAAG,CAAA,CAAE,EAGLC,WAAS,CAACC,EAAOC,IAAU,CACzB,GAAIV,EAAgB,QAAS,CAC3B,MAAMW,EAAaX,EAAgB,QAAQ,OAAOU,CAAK,EACvDE,EAAA,EAGKD,GACHV,EAAA,CAEJ,CACF,CAAC,EAED,SAASY,EAAYC,EAAqB,CACnCA,IAELf,EAAa,QAAUgB,EAAAA,cAAcD,CAAK,EAG1CF,EAAA,EACAX,EAAA,EACF,CAEA,SAASW,GAAc,OACrB,MAAMI,IAAqBT,EAAAP,EAAgB,UAAhB,YAAAO,EAAyB,qBAAsB,CAAA,EAE1E,GAAIZ,EACFA,EAAkBI,EAAa,QAASiB,CAAkB,MAE1D,UAAW,CAACC,EAAOC,CAAM,IAAKnB,EAAa,QAAQ,UAAW,CAC5D,MAAMoB,EAAUzB,EAAauB,CAAK,EAC5BG,EAAiBD,EAAQ,OAAS,EAClCE,EAAeF,EAAQ,2BAA6B,GAAK,EAE/DD,EAAO,SAAS,EACdG,GAAgBL,EAAmBC,CAAK,GAAK,GAAKG,CACtD,CAEJ,CAEA,MAAME,EAAeC,EAAAA,YAAY,IAAM,CACrC,MAAMC,EAAiB/B,EAA2B,eAAe,OAC9DY,GAASA,IAAS,MAAA,EAGrB,sBAAsB,IAAM,OAC1BR,EAAY,QAAU2B,GACtBjB,EAAAP,EAAgB,UAAhB,MAAAO,EAAyB,UAAUiB,EACrC,CAAC,CACH,EAAG,CAAC/B,CAA0B,CAAC,EAO/BU,OAAAA,EAAAA,UAAU,IAAM,CACdmB,EAAA,CACF,EAAG,CAAC7B,EAA4B6B,CAAY,CAAC,EAO7CG,EAAAA,WAAW,IAAM,CACfH,EAAA,CACF,CAAC,EAEMI,EAAAA,IAAC,QAAA,CAAM,IAAKb,EAAc,SAAAjB,CAAA,CAAS,CAC5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RobotAnimator.d.ts","sourceRoot":"","sources":["../../../src/components/robots/RobotAnimator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,OAAO,CAAA;AAK5C,KAAK,kBAAkB,GAAG;IACxB,0BAA0B,EAAE,gBAAgB,CAAA;IAC5C,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACvE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,0BAA0B,EAC1B,YAAY,EACZ,iBAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,2CA8FpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RobotAnimator.js","sources":["../../../src/components/robots/RobotAnimator.tsx"],"sourcesContent":["import { useFrame, useThree } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useRef } from \"react\"\nimport type { Group, Object3D } from \"three\"\nimport { useAutorun } from \"../utils/hooks\"\nimport { ValueInterpolator } from \"../utils/interpolation\"\nimport { collectJoints } from \"./robotModelLogic\"\n\ntype RobotAnimatorProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: DHParameter[]\n onRotationChanged?: (joints: Object3D[], jointValues: number[]) => void\n children: React.ReactNode\n}\n\nexport default function RobotAnimator({\n rapidlyChangingMotionState,\n dhParameters,\n onRotationChanged,\n children,\n}: RobotAnimatorProps) {\n const jointValues = useRef<number[]>([])\n const jointObjects = useRef<Object3D[]>([])\n const interpolatorRef = useRef<ValueInterpolator | null>(null)\n const { invalidate } = useThree()\n\n // Initialize interpolator\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n const initialJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n interpolatorRef.current = new ValueInterpolator(initialJointValues, {\n tension: 120, // Controls spring stiffness - higher values create faster, more responsive motion\n friction: 20, // Controls damping - higher values reduce oscillation and create smoother settling\n threshold: 0.001,\n })\n\n return () => {\n interpolatorRef.current?.destroy()\n }\n }, [])\n\n // Animation loop that runs at the display's refresh rate\n useFrame((state, delta) => {\n if (interpolatorRef.current) {\n const isComplete = interpolatorRef.current.update(delta)\n setRotation()\n\n // Trigger a re-render only if the animation is still running\n if (!isComplete) {\n invalidate()\n }\n }\n })\n\n function setGroupRef(group: Group | null) {\n if (!group) return\n\n jointObjects.current = collectJoints(group)\n\n // Set initial position\n setRotation()\n invalidate()\n }\n\n function setRotation() {\n const updatedJointValues = interpolatorRef.current?.getCurrentValues() || []\n\n if (onRotationChanged) {\n onRotationChanged(jointObjects.current, updatedJointValues)\n } else {\n for (const [index, object] of jointObjects.current.entries()) {\n const dhParam = dhParameters[index]\n const rotationOffset = dhParam.theta || 0\n const rotationSign = dhParam.reverse_rotation_direction ? -1 : 1\n\n object.rotation.y =\n rotationSign * (updatedJointValues[index] || 0) + rotationOffset\n }\n }\n }\n\n const updateJoints = useCallback(() => {\n const newJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n requestAnimationFrame(() => {\n jointValues.current = newJointValues\n interpolatorRef.current?.setTarget(newJointValues)\n })\n }, [rapidlyChangingMotionState])\n\n /**\n * Fire an update joints call on every motion state change.\n * requestAnimationFrame used to avoid blocking main thread\n */\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n updateJoints()\n }, [rapidlyChangingMotionState, updateJoints])\n\n /**\n * As some consumer applications (eg. storybook) deliver\n * mobx observable for rapidlyChangingMotionState, we need to\n * register the watcher to get the newest value updates\n */\n useAutorun(() => {\n updateJoints()\n })\n\n return <group ref={setGroupRef}>{children}</group>\n}\n"],"names":["RobotAnimator","rapidlyChangingMotionState","dhParameters","onRotationChanged","children","jointValues","useRef","jointObjects","interpolatorRef","invalidate","useThree","useEffect","initialJointValues","item","ValueInterpolator","_a","useFrame","state","delta","isComplete","setRotation","setGroupRef","group","collectJoints","updatedJointValues","index","object","dhParam","rotationOffset","rotationSign","updateJoints","useCallback","newJointValues","useAutorun","jsx"],"mappings":";;;;;;AAgBA,SAAwBA,EAAc;AAAA,EACpC,4BAAAC;AAAA,EACA,cAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,UAAAC;AACF,GAAuB;AACrB,QAAMC,IAAcC,EAAiB,EAAE,GACjCC,IAAeD,EAAmB,EAAE,GACpCE,IAAkBF,EAAiC,IAAI,GACvD,EAAE,YAAAG,EAAA,IAAeC,EAAA;AAIvB,EAAAC,EAAU,MAAM;AACd,UAAMC,IAAqBX,EAA2B,eAAe;AAAA,MACnE,CAACY,MAASA,MAAS;AAAA,IAAA;AAGrB,WAAAL,EAAgB,UAAU,IAAIM,EAAkBF,GAAoB;AAAA,MAClE,SAAS;AAAA;AAAA,MACT,UAAU;AAAA;AAAA,MACV,WAAW;AAAA,IAAA,CACZ,GAEM,MAAM;;AACX,OAAAG,IAAAP,EAAgB,YAAhB,QAAAO,EAAyB;AAAA,IAC3B;AAAA,EACF,GAAG,CAAA,CAAE,GAGLC,EAAS,CAACC,GAAOC,MAAU;AACzB,QAAIV,EAAgB,SAAS;AAC3B,YAAMW,IAAaX,EAAgB,QAAQ,OAAOU,CAAK;AACvD,MAAAE,EAAA,GAGKD,KACHV,EAAA;AAAA,IAEJ;AAAA,EACF,CAAC;AAED,WAASY,EAAYC,GAAqB;AACxC,IAAKA,MAELf,EAAa,UAAUgB,EAAcD,CAAK,GAG1CF,EAAA,GACAX,EAAA;AAAA,EACF;AAEA,WAASW,IAAc;;AACrB,UAAMI,MAAqBT,IAAAP,EAAgB,YAAhB,gBAAAO,EAAyB,uBAAsB,CAAA;AAE1E,QAAIZ;AACF,MAAAA,EAAkBI,EAAa,SAASiB,CAAkB;AAAA;AAE1D,iBAAW,CAACC,GAAOC,CAAM,KAAKnB,EAAa,QAAQ,WAAW;AAC5D,cAAMoB,IAAUzB,EAAauB,CAAK,GAC5BG,IAAiBD,EAAQ,SAAS,GAClCE,IAAeF,EAAQ,6BAA6B,KAAK;AAE/D,QAAAD,EAAO,SAAS,IACdG,KAAgBL,EAAmBC,CAAK,KAAK,KAAKG;AAAA,MACtD;AAAA,EAEJ;AAEA,QAAME,IAAeC,EAAY,MAAM;AACrC,UAAMC,IAAiB/B,EAA2B,eAAe;AAAA,MAC/D,CAACY,MAASA,MAAS;AAAA,IAAA;AAGrB,0BAAsB,MAAM;;AAC1B,MAAAR,EAAY,UAAU2B,IACtBjB,IAAAP,EAAgB,YAAhB,QAAAO,EAAyB,UAAUiB;AAAA,IACrC,CAAC;AAAA,EACH,GAAG,CAAC/B,CAA0B,CAAC;AAO/B,SAAAU,EAAU,MAAM;AACd,IAAAmB,EAAA;AAAA,EACF,GAAG,CAAC7B,GAA4B6B,CAAY,CAAC,GAO7CG,EAAW,MAAM;AACf,IAAAH,EAAA;AAAA,EACF,CAAC,GAEM,gBAAAI,EAAC,SAAA,EAAM,KAAKb,GAAc,UAAAjB,EAAA,CAAS;AAC5C;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RobotAnimator.test.d.ts","sourceRoot":"","sources":["../../../src/components/robots/RobotAnimator.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),t=require("react"),R=require("react-error-boundary"),m=require("../../externalizeComponent.cjs"),S=require("../ConsoleFilter.cjs"),A=require("./DHLinearAxis.cjs"),G=require("./GenericRobot.cjs"),g=require("./LinearAxisAnimator.cjs"),a=require("./ghostStyle.cjs"),h=require("./robotModelLogic.cjs"),d=m.externalizeComponent(({rapidlyChangingMotionState:n,modelFromController:i,dhParameters:l,getModel:b=h.defaultGetModel,flangeRef:f,postModelRender:x,transparentColor:s,instanceUrl:j,...u})=>{const[o,p]=t.useState(null),q=t.useCallback(r=>{p(r)},[]);t.useEffect(()=>{o&&(s?a.applyGhostStyle(o,s):a.removeGhostStyle(o))},[o,s]);const c=e.jsx(A.DHLinearAxis,{rapidlyChangingMotionState:n,dhParameters:l,...u});return e.jsxs(R.ErrorBoundary,{fallback:c,onError:r=>{console.warn(r)},children:[e.jsx(t.Suspense,{fallback:c,children:e.jsx("group",{ref:q,children:e.jsx(g.default,{rapidlyChangingMotionState:n,dhParameters:l,children:e.jsx(G.GenericRobot,{modelURL:(()=>{const r=b(i,j);if(!r){const y=new Blob([],{type:"model/gltf-binary"}),L=new File([y],`${i}.glb`,{type:"model/gltf-binary"});return Promise.resolve(URL.createObjectURL(L))}return r})(),postModelRender:x,flangeRef:f,...u})})})}),e.jsx(S.default,{})]})});exports.SupportedLinearAxis=d;exports.default=d;
|
|
2
|
+
//# sourceMappingURL=SupportedLinearAxis.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupportedLinearAxis.cjs","sources":["../../../src/components/robots/SupportedLinearAxis.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport { Suspense, useCallback, useEffect, useState } from \"react\"\nimport { ErrorBoundary } from \"react-error-boundary\"\nimport type * as THREE from \"three\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport ConsoleFilter from \"../ConsoleFilter\"\nimport { DHLinearAxis } from \"./DHLinearAxis\"\nimport { GenericRobot } from \"./GenericRobot\"\nimport LinearAxisAnimator from \"./LinearAxisAnimator\"\nimport { applyGhostStyle, removeGhostStyle } from \"./ghostStyle\"\nimport { defaultGetModel } from \"./robotModelLogic\"\n\nexport type DHLinearAxisProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: Array<DHParameter>\n} & ThreeElements[\"group\"]\n\nexport type SupportedLinearAxisProps = {\n rapidlyChangingMotionState: MotionGroupState\n modelFromController: string\n dhParameters: DHParameter[]\n flangeRef?: React.Ref<THREE.Group>\n instanceUrl?: string\n getModel?: (\n modelFromController: string,\n instanceUrl?: string,\n ) => Promise<string> | undefined\n postModelRender?: () => void\n transparentColor?: string\n} & ThreeElements[\"group\"]\n\nexport const SupportedLinearAxis = externalizeComponent(\n ({\n rapidlyChangingMotionState,\n modelFromController,\n dhParameters,\n getModel = defaultGetModel,\n flangeRef,\n postModelRender,\n transparentColor,\n instanceUrl,\n ...props\n }: SupportedLinearAxisProps) => {\n const [robotGroup, setRobotGroup] = useState<THREE.Group | null>(null)\n\n const setRobotRef = useCallback((instance: THREE.Group | null) => {\n setRobotGroup(instance)\n }, [])\n\n useEffect(() => {\n if (!robotGroup) return\n\n if (transparentColor) {\n applyGhostStyle(robotGroup, transparentColor)\n } else {\n removeGhostStyle(robotGroup)\n }\n }, [robotGroup, transparentColor])\n\n const dhLinearAxis = (\n <DHLinearAxis\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n {...props}\n />\n )\n\n return (\n <ErrorBoundary\n fallback={dhLinearAxis}\n onError={(err) => {\n // Missing model; show the fallback for now\n console.warn(err)\n }}\n >\n <Suspense fallback={dhLinearAxis}>\n <group ref={setRobotRef}>\n <LinearAxisAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n >\n <GenericRobot\n modelURL={(() => {\n const result = getModel(modelFromController, instanceUrl)\n if (!result) {\n const mockBlob = new Blob([], { type: \"model/gltf-binary\" })\n const mockFile = new File(\n [mockBlob],\n `${modelFromController}.glb`,\n { type: \"model/gltf-binary\" },\n )\n return Promise.resolve(URL.createObjectURL(mockFile))\n }\n return result\n })()}\n postModelRender={postModelRender}\n flangeRef={flangeRef}\n {...props}\n />\n </LinearAxisAnimator>\n </group>\n </Suspense>\n <ConsoleFilter />\n </ErrorBoundary>\n )\n },\n)\n\nexport default SupportedLinearAxis\n"],"names":["SupportedLinearAxis","externalizeComponent","rapidlyChangingMotionState","modelFromController","dhParameters","getModel","defaultGetModel","flangeRef","postModelRender","transparentColor","instanceUrl","props","robotGroup","setRobotGroup","useState","setRobotRef","useCallback","instance","useEffect","applyGhostStyle","removeGhostStyle","dhLinearAxis","jsx","DHLinearAxis","jsxs","ErrorBoundary","err","Suspense","LinearAxisAnimator","GenericRobot","result","mockBlob","mockFile","ConsoleFilter"],"mappings":"2bAgCaA,EAAsBC,EAAAA,qBACjC,CAAC,CACC,2BAAAC,EACA,oBAAAC,EACA,aAAAC,EACA,SAAAC,EAAWC,EAAAA,gBACX,UAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,GAAGC,CAAA,IAC2B,CAC9B,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAAA,SAA6B,IAAI,EAE/DC,EAAcC,cAAaC,GAAiC,CAChEJ,EAAcI,CAAQ,CACxB,EAAG,CAAA,CAAE,EAELC,EAAAA,UAAU,IAAM,CACTN,IAEDH,EACFU,EAAAA,gBAAgBP,EAAYH,CAAgB,EAE5CW,EAAAA,iBAAiBR,CAAU,EAE/B,EAAG,CAACA,EAAYH,CAAgB,CAAC,EAEjC,MAAMY,EACJC,EAAAA,IAACC,EAAAA,aAAA,CACC,2BAAArB,EACA,aAAAE,EACC,GAAGO,CAAA,CAAA,EAIR,OACEa,EAAAA,KAACC,EAAAA,cAAA,CACC,SAAUJ,EACV,QAAUK,GAAQ,CAEhB,QAAQ,KAAKA,CAAG,CAClB,EAEA,SAAA,CAAAJ,EAAAA,IAACK,EAAAA,UAAS,SAAUN,EAClB,SAAAC,MAAC,QAAA,CAAM,IAAKP,EACV,SAAAO,EAAAA,IAACM,EAAAA,QAAA,CACC,2BAAA1B,EACA,aAAAE,EAEA,SAAAkB,EAAAA,IAACO,EAAAA,aAAA,CACC,UAAW,IAAM,CACf,MAAMC,EAASzB,EAASF,EAAqBO,CAAW,EACxD,GAAI,CAACoB,EAAQ,CACX,MAAMC,EAAW,IAAI,KAAK,CAAA,EAAI,CAAE,KAAM,oBAAqB,EACrDC,EAAW,IAAI,KACnB,CAACD,CAAQ,EACT,GAAG5B,CAAmB,OACtB,CAAE,KAAM,mBAAA,CAAoB,EAE9B,OAAO,QAAQ,QAAQ,IAAI,gBAAgB6B,CAAQ,CAAC,CACtD,CACA,OAAOF,CACT,GAAA,EACA,gBAAAtB,EACA,UAAAD,EACC,GAAGI,CAAA,CAAA,CACN,CAAA,EAEJ,CAAA,CACF,QACCsB,EAAAA,QAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAGrB,CACF"}
|
|
@@ -17,3 +17,4 @@ export type SupportedLinearAxisProps = {
|
|
|
17
17
|
} & ThreeElements["group"];
|
|
18
18
|
export declare const SupportedLinearAxis: ({ rapidlyChangingMotionState, modelFromController, dhParameters, getModel, flangeRef, postModelRender, transparentColor, instanceUrl, ...props }: SupportedLinearAxisProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
19
|
export default SupportedLinearAxis;
|
|
20
|
+
//# sourceMappingURL=SupportedLinearAxis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupportedLinearAxis.d.ts","sourceRoot":"","sources":["../../../src/components/robots/SupportedLinearAxis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAG3E,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AASnC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,0BAA0B,EAAE,gBAAgB,CAAA;IAC5C,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;CACjC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B,MAAM,MAAM,wBAAwB,GAAG;IACrC,0BAA0B,EAAE,gBAAgB,CAAA;IAC5C,mBAAmB,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,CACT,mBAAmB,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B,eAAO,MAAM,mBAAmB,qJAW3B,wBAAwB,4CAgE5B,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as o, jsxs as y } from "react/jsx-runtime";
|
|
2
2
|
import { useState as L, useCallback as R, useEffect as G, Suspense as h } from "react";
|
|
3
3
|
import { ErrorBoundary as k } from "react-error-boundary";
|
|
4
|
-
import {
|
|
4
|
+
import { externalizeComponent as A } from "../../externalizeComponent.js";
|
|
5
5
|
import S from "../ConsoleFilter.js";
|
|
6
6
|
import { DHLinearAxis as j } from "./DHLinearAxis.js";
|
|
7
7
|
import { GenericRobot as w } from "./GenericRobot.js";
|
|
@@ -18,7 +18,7 @@ const K = A(
|
|
|
18
18
|
postModelRender: p,
|
|
19
19
|
transparentColor: t,
|
|
20
20
|
instanceUrl: u,
|
|
21
|
-
...
|
|
21
|
+
...m
|
|
22
22
|
}) => {
|
|
23
23
|
const [r, a] = L(null), b = R((e) => {
|
|
24
24
|
a(e);
|
|
@@ -26,23 +26,23 @@ const K = A(
|
|
|
26
26
|
G(() => {
|
|
27
27
|
r && (t ? E(r, t) : U(r));
|
|
28
28
|
}, [r, t]);
|
|
29
|
-
const
|
|
29
|
+
const s = /* @__PURE__ */ o(
|
|
30
30
|
j,
|
|
31
31
|
{
|
|
32
32
|
rapidlyChangingMotionState: i,
|
|
33
33
|
dhParameters: n,
|
|
34
|
-
...
|
|
34
|
+
...m
|
|
35
35
|
}
|
|
36
36
|
);
|
|
37
37
|
return /* @__PURE__ */ y(
|
|
38
38
|
k,
|
|
39
39
|
{
|
|
40
|
-
fallback:
|
|
40
|
+
fallback: s,
|
|
41
41
|
onError: (e) => {
|
|
42
42
|
console.warn(e);
|
|
43
43
|
},
|
|
44
44
|
children: [
|
|
45
|
-
/* @__PURE__ */ o(h, { fallback:
|
|
45
|
+
/* @__PURE__ */ o(h, { fallback: s, children: /* @__PURE__ */ o("group", { ref: b, children: /* @__PURE__ */ o(
|
|
46
46
|
B,
|
|
47
47
|
{
|
|
48
48
|
rapidlyChangingMotionState: i,
|
|
@@ -64,7 +64,7 @@ const K = A(
|
|
|
64
64
|
})(),
|
|
65
65
|
postModelRender: p,
|
|
66
66
|
flangeRef: c,
|
|
67
|
-
...
|
|
67
|
+
...m
|
|
68
68
|
}
|
|
69
69
|
)
|
|
70
70
|
}
|
|
@@ -79,3 +79,4 @@ export {
|
|
|
79
79
|
K as SupportedLinearAxis,
|
|
80
80
|
K as default
|
|
81
81
|
};
|
|
82
|
+
//# sourceMappingURL=SupportedLinearAxis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupportedLinearAxis.js","sources":["../../../src/components/robots/SupportedLinearAxis.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport { Suspense, useCallback, useEffect, useState } from \"react\"\nimport { ErrorBoundary } from \"react-error-boundary\"\nimport type * as THREE from \"three\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport ConsoleFilter from \"../ConsoleFilter\"\nimport { DHLinearAxis } from \"./DHLinearAxis\"\nimport { GenericRobot } from \"./GenericRobot\"\nimport LinearAxisAnimator from \"./LinearAxisAnimator\"\nimport { applyGhostStyle, removeGhostStyle } from \"./ghostStyle\"\nimport { defaultGetModel } from \"./robotModelLogic\"\n\nexport type DHLinearAxisProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: Array<DHParameter>\n} & ThreeElements[\"group\"]\n\nexport type SupportedLinearAxisProps = {\n rapidlyChangingMotionState: MotionGroupState\n modelFromController: string\n dhParameters: DHParameter[]\n flangeRef?: React.Ref<THREE.Group>\n instanceUrl?: string\n getModel?: (\n modelFromController: string,\n instanceUrl?: string,\n ) => Promise<string> | undefined\n postModelRender?: () => void\n transparentColor?: string\n} & ThreeElements[\"group\"]\n\nexport const SupportedLinearAxis = externalizeComponent(\n ({\n rapidlyChangingMotionState,\n modelFromController,\n dhParameters,\n getModel = defaultGetModel,\n flangeRef,\n postModelRender,\n transparentColor,\n instanceUrl,\n ...props\n }: SupportedLinearAxisProps) => {\n const [robotGroup, setRobotGroup] = useState<THREE.Group | null>(null)\n\n const setRobotRef = useCallback((instance: THREE.Group | null) => {\n setRobotGroup(instance)\n }, [])\n\n useEffect(() => {\n if (!robotGroup) return\n\n if (transparentColor) {\n applyGhostStyle(robotGroup, transparentColor)\n } else {\n removeGhostStyle(robotGroup)\n }\n }, [robotGroup, transparentColor])\n\n const dhLinearAxis = (\n <DHLinearAxis\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n {...props}\n />\n )\n\n return (\n <ErrorBoundary\n fallback={dhLinearAxis}\n onError={(err) => {\n // Missing model; show the fallback for now\n console.warn(err)\n }}\n >\n <Suspense fallback={dhLinearAxis}>\n <group ref={setRobotRef}>\n <LinearAxisAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n >\n <GenericRobot\n modelURL={(() => {\n const result = getModel(modelFromController, instanceUrl)\n if (!result) {\n const mockBlob = new Blob([], { type: \"model/gltf-binary\" })\n const mockFile = new File(\n [mockBlob],\n `${modelFromController}.glb`,\n { type: \"model/gltf-binary\" },\n )\n return Promise.resolve(URL.createObjectURL(mockFile))\n }\n return result\n })()}\n postModelRender={postModelRender}\n flangeRef={flangeRef}\n {...props}\n />\n </LinearAxisAnimator>\n </group>\n </Suspense>\n <ConsoleFilter />\n </ErrorBoundary>\n )\n },\n)\n\nexport default SupportedLinearAxis\n"],"names":["SupportedLinearAxis","externalizeComponent","rapidlyChangingMotionState","modelFromController","dhParameters","getModel","defaultGetModel","flangeRef","postModelRender","transparentColor","instanceUrl","props","robotGroup","setRobotGroup","useState","setRobotRef","useCallback","instance","useEffect","applyGhostStyle","removeGhostStyle","dhLinearAxis","jsx","DHLinearAxis","jsxs","ErrorBoundary","err","Suspense","LinearAxisAnimator","GenericRobot","result","mockBlob","mockFile","ConsoleFilter"],"mappings":";;;;;;;;;;AAgCO,MAAMA,IAAsBC;AAAA,EACjC,CAAC;AAAA,IACC,4BAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC,IAAWC;AAAA,IACX,WAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,MAC2B;AAC9B,UAAM,CAACC,GAAYC,CAAa,IAAIC,EAA6B,IAAI,GAE/DC,IAAcC,EAAY,CAACC,MAAiC;AAChE,MAAAJ,EAAcI,CAAQ;AAAA,IACxB,GAAG,CAAA,CAAE;AAEL,IAAAC,EAAU,MAAM;AACd,MAAKN,MAEDH,IACFU,EAAgBP,GAAYH,CAAgB,IAE5CW,EAAiBR,CAAU;AAAA,IAE/B,GAAG,CAACA,GAAYH,CAAgB,CAAC;AAEjC,UAAMY,IACJ,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,4BAAArB;AAAA,QACA,cAAAE;AAAA,QACC,GAAGO;AAAA,MAAA;AAAA,IAAA;AAIR,WACE,gBAAAa;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAUJ;AAAA,QACV,SAAS,CAACK,MAAQ;AAEhB,kBAAQ,KAAKA,CAAG;AAAA,QAClB;AAAA,QAEA,UAAA;AAAA,UAAA,gBAAAJ,EAACK,KAAS,UAAUN,GAClB,UAAA,gBAAAC,EAAC,SAAA,EAAM,KAAKP,GACV,UAAA,gBAAAO;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,4BAAA1B;AAAA,cACA,cAAAE;AAAA,cAEA,UAAA,gBAAAkB;AAAA,gBAACO;AAAA,gBAAA;AAAA,kBACC,WAAW,MAAM;AACf,0BAAMC,IAASzB,EAASF,GAAqBO,CAAW;AACxD,wBAAI,CAACoB,GAAQ;AACX,4BAAMC,IAAW,IAAI,KAAK,CAAA,GAAI,EAAE,MAAM,qBAAqB,GACrDC,IAAW,IAAI;AAAA,wBACnB,CAACD,CAAQ;AAAA,wBACT,GAAG5B,CAAmB;AAAA,wBACtB,EAAE,MAAM,oBAAA;AAAA,sBAAoB;AAE9B,6BAAO,QAAQ,QAAQ,IAAI,gBAAgB6B,CAAQ,CAAC;AAAA,oBACtD;AACA,2BAAOF;AAAA,kBACT,GAAA;AAAA,kBACA,iBAAAtB;AAAA,kBACA,WAAAD;AAAA,kBACC,GAAGI;AAAA,gBAAA;AAAA,cAAA;AAAA,YACN;AAAA,UAAA,GAEJ,EAAA,CACF;AAAA,4BACCsB,GAAA,CAAA,CAAc;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGrB;AACF;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),r=require("react"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),r=require("react"),m=require("./DHRobot.cjs"),S=require("react-error-boundary"),G=require("../../externalizeComponent.cjs"),g=require("../ConsoleFilter.cjs"),h=require("./GenericRobot.cjs"),k=require("./RobotAnimator.cjs"),b=require("./ghostStyle.cjs"),v=require("./robotModelLogic.cjs"),d=G.externalizeComponent(({rapidlyChangingMotionState:n,modelFromController:l,dhParameters:u,getModel:a=v.defaultGetModel,flangeRef:f,postModelRender:R,transparentColor:s,instanceUrl:j,...c})=>{const[t,p]=r.useState(null),q=r.useCallback(o=>{p(o)},[]);r.useEffect(()=>{t&&(s?b.applyGhostStyle(t,s):b.removeGhostStyle(t))},[t,s]);const i=e.jsx(m.DHRobot,{rapidlyChangingMotionState:n,dhParameters:u,...c});return e.jsxs(S.ErrorBoundary,{fallback:i,onError:o=>{console.warn(o)},children:[e.jsx(r.Suspense,{fallback:i,children:e.jsx("group",{ref:q,children:e.jsx(k.default,{rapidlyChangingMotionState:n,dhParameters:u,children:e.jsx(h.GenericRobot,{modelURL:(()=>{const o=a(l,j);if(!o){const x=new Blob([],{type:"model/gltf-binary"}),y=new File([x],`${l}.glb`,{type:"model/gltf-binary"});return Promise.resolve(URL.createObjectURL(y))}return o})(),postModelRender:R,flangeRef:f,...c})})})}),e.jsx(g.default,{})]})});exports.SupportedRobot=d;exports.default=d;
|
|
2
|
+
//# sourceMappingURL=SupportedRobot.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupportedRobot.cjs","sources":["../../../src/components/robots/SupportedRobot.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport { Suspense, useCallback, useEffect, useState } from \"react\"\nimport { DHRobot } from \"./DHRobot\"\n\nimport { ErrorBoundary } from \"react-error-boundary\"\nimport type * as THREE from \"three\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport ConsoleFilter from \"../ConsoleFilter\"\nimport { GenericRobot } from \"./GenericRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport { applyGhostStyle, removeGhostStyle } from \"./ghostStyle\"\nimport { defaultGetModel } from \"./robotModelLogic\"\n\nexport type DHRobotProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: Array<DHParameter>\n} & ThreeElements[\"group\"]\n\nexport type SupportedRobotProps = {\n rapidlyChangingMotionState: MotionGroupState\n modelFromController: string\n dhParameters: DHParameter[]\n flangeRef?: React.Ref<THREE.Group>\n instanceUrl?: string\n getModel?: (\n modelFromController: string,\n instanceUrl?: string,\n ) => Promise<string> | undefined\n postModelRender?: () => void\n transparentColor?: string\n} & ThreeElements[\"group\"]\n\nexport const SupportedRobot = externalizeComponent(\n ({\n rapidlyChangingMotionState,\n modelFromController,\n dhParameters,\n getModel = defaultGetModel,\n flangeRef,\n postModelRender,\n transparentColor,\n instanceUrl,\n ...props\n }: SupportedRobotProps) => {\n const [robotGroup, setRobotGroup] = useState<THREE.Group | null>(null)\n\n const setRobotRef = useCallback((instance: THREE.Group | null) => {\n setRobotGroup(instance)\n }, [])\n\n useEffect(() => {\n if (!robotGroup) return\n\n if (transparentColor) {\n applyGhostStyle(robotGroup, transparentColor)\n } else {\n removeGhostStyle(robotGroup)\n }\n }, [robotGroup, transparentColor])\n\n const dhrobot = (\n <DHRobot\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n {...props}\n />\n )\n\n return (\n <ErrorBoundary\n fallback={dhrobot}\n onError={(err) => {\n // Missing model; show the fallback for now\n console.warn(err)\n }}\n >\n <Suspense fallback={dhrobot}>\n <group ref={setRobotRef}>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n >\n <GenericRobot\n modelURL={(() => {\n const result = getModel(modelFromController, instanceUrl)\n if (!result) {\n const mockBlob = new Blob([], { type: \"model/gltf-binary\" })\n const mockFile = new File(\n [mockBlob],\n `${modelFromController}.glb`,\n { type: \"model/gltf-binary\" },\n )\n return Promise.resolve(URL.createObjectURL(mockFile))\n }\n return result\n })()}\n postModelRender={postModelRender}\n flangeRef={flangeRef}\n {...props}\n />\n </RobotAnimator>\n </group>\n </Suspense>\n <ConsoleFilter />\n </ErrorBoundary>\n )\n },\n)\n\nexport default SupportedRobot\n"],"names":["SupportedRobot","externalizeComponent","rapidlyChangingMotionState","modelFromController","dhParameters","getModel","defaultGetModel","flangeRef","postModelRender","transparentColor","instanceUrl","props","robotGroup","setRobotGroup","useState","setRobotRef","useCallback","instance","useEffect","applyGhostStyle","removeGhostStyle","dhrobot","jsx","DHRobot","jsxs","ErrorBoundary","err","Suspense","RobotAnimator","GenericRobot","result","mockBlob","mockFile","ConsoleFilter"],"mappings":"ibAiCaA,EAAiBC,EAAAA,qBAC5B,CAAC,CACC,2BAAAC,EACA,oBAAAC,EACA,aAAAC,EACA,SAAAC,EAAWC,EAAAA,gBACX,UAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,GAAGC,CAAA,IACsB,CACzB,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAAA,SAA6B,IAAI,EAE/DC,EAAcC,cAAaC,GAAiC,CAChEJ,EAAcI,CAAQ,CACxB,EAAG,CAAA,CAAE,EAELC,EAAAA,UAAU,IAAM,CACTN,IAEDH,EACFU,EAAAA,gBAAgBP,EAAYH,CAAgB,EAE5CW,EAAAA,iBAAiBR,CAAU,EAE/B,EAAG,CAACA,EAAYH,CAAgB,CAAC,EAEjC,MAAMY,EACJC,EAAAA,IAACC,EAAAA,QAAA,CACC,2BAAArB,EACA,aAAAE,EACC,GAAGO,CAAA,CAAA,EAIR,OACEa,EAAAA,KAACC,EAAAA,cAAA,CACC,SAAUJ,EACV,QAAUK,GAAQ,CAEhB,QAAQ,KAAKA,CAAG,CAClB,EAEA,SAAA,CAAAJ,EAAAA,IAACK,EAAAA,UAAS,SAAUN,EAClB,SAAAC,MAAC,QAAA,CAAM,IAAKP,EACV,SAAAO,EAAAA,IAACM,EAAAA,QAAA,CACC,2BAAA1B,EACA,aAAAE,EAEA,SAAAkB,EAAAA,IAACO,EAAAA,aAAA,CACC,UAAW,IAAM,CACf,MAAMC,EAASzB,EAASF,EAAqBO,CAAW,EACxD,GAAI,CAACoB,EAAQ,CACX,MAAMC,EAAW,IAAI,KAAK,CAAA,EAAI,CAAE,KAAM,oBAAqB,EACrDC,EAAW,IAAI,KACnB,CAACD,CAAQ,EACT,GAAG5B,CAAmB,OACtB,CAAE,KAAM,mBAAA,CAAoB,EAE9B,OAAO,QAAQ,QAAQ,IAAI,gBAAgB6B,CAAQ,CAAC,CACtD,CACA,OAAOF,CACT,GAAA,EACA,gBAAAtB,EACA,UAAAD,EACC,GAAGI,CAAA,CAAA,CACN,CAAA,EAEJ,CAAA,CACF,QACCsB,EAAAA,QAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAGrB,CACF"}
|
|
@@ -17,3 +17,4 @@ export type SupportedRobotProps = {
|
|
|
17
17
|
} & ThreeElements["group"];
|
|
18
18
|
export declare const SupportedRobot: ({ rapidlyChangingMotionState, modelFromController, dhParameters, getModel, flangeRef, postModelRender, transparentColor, instanceUrl, ...props }: SupportedRobotProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
19
|
export default SupportedRobot;
|
|
20
|
+
//# sourceMappingURL=SupportedRobot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupportedRobot.d.ts","sourceRoot":"","sources":["../../../src/components/robots/SupportedRobot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAK3E,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AAQnC,MAAM,MAAM,YAAY,GAAG;IACzB,0BAA0B,EAAE,gBAAgB,CAAA;IAC5C,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;CACjC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B,EAAE,gBAAgB,CAAA;IAC5C,mBAAmB,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,CACT,mBAAmB,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B,eAAO,MAAM,cAAc,qJAWtB,mBAAmB,4CAgEvB,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as y } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState as G, useCallback as h, useEffect as k, Suspense as x } from "react";
|
|
3
3
|
import { DHRobot as S } from "./DHRobot.js";
|
|
4
4
|
import { ErrorBoundary as j } from "react-error-boundary";
|
|
5
|
-
import {
|
|
5
|
+
import { externalizeComponent as w } from "../../externalizeComponent.js";
|
|
6
6
|
import B from "../ConsoleFilter.js";
|
|
7
7
|
import { GenericRobot as E } from "./GenericRobot.js";
|
|
8
8
|
import L from "./RobotAnimator.js";
|
|
@@ -20,7 +20,7 @@ const K = w(
|
|
|
20
20
|
instanceUrl: p,
|
|
21
21
|
...i
|
|
22
22
|
}) => {
|
|
23
|
-
const [r, u] = G(null),
|
|
23
|
+
const [r, u] = G(null), d = h((o) => {
|
|
24
24
|
u(o);
|
|
25
25
|
}, []);
|
|
26
26
|
k(() => {
|
|
@@ -42,7 +42,7 @@ const K = w(
|
|
|
42
42
|
console.warn(o);
|
|
43
43
|
},
|
|
44
44
|
children: [
|
|
45
|
-
/* @__PURE__ */ e(x, { fallback: n, children: /* @__PURE__ */ e("group", { ref:
|
|
45
|
+
/* @__PURE__ */ e(x, { fallback: n, children: /* @__PURE__ */ e("group", { ref: d, children: /* @__PURE__ */ e(
|
|
46
46
|
L,
|
|
47
47
|
{
|
|
48
48
|
rapidlyChangingMotionState: l,
|
|
@@ -53,12 +53,12 @@ const K = w(
|
|
|
53
53
|
modelURL: (() => {
|
|
54
54
|
const o = s(m, p);
|
|
55
55
|
if (!o) {
|
|
56
|
-
const
|
|
57
|
-
[
|
|
56
|
+
const R = new Blob([], { type: "model/gltf-binary" }), a = new File(
|
|
57
|
+
[R],
|
|
58
58
|
`${m}.glb`,
|
|
59
59
|
{ type: "model/gltf-binary" }
|
|
60
60
|
);
|
|
61
|
-
return Promise.resolve(URL.createObjectURL(
|
|
61
|
+
return Promise.resolve(URL.createObjectURL(a));
|
|
62
62
|
}
|
|
63
63
|
return o;
|
|
64
64
|
})(),
|
|
@@ -79,3 +79,4 @@ export {
|
|
|
79
79
|
K as SupportedRobot,
|
|
80
80
|
K as default
|
|
81
81
|
};
|
|
82
|
+
//# sourceMappingURL=SupportedRobot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupportedRobot.js","sources":["../../../src/components/robots/SupportedRobot.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport { Suspense, useCallback, useEffect, useState } from \"react\"\nimport { DHRobot } from \"./DHRobot\"\n\nimport { ErrorBoundary } from \"react-error-boundary\"\nimport type * as THREE from \"three\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport ConsoleFilter from \"../ConsoleFilter\"\nimport { GenericRobot } from \"./GenericRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport { applyGhostStyle, removeGhostStyle } from \"./ghostStyle\"\nimport { defaultGetModel } from \"./robotModelLogic\"\n\nexport type DHRobotProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: Array<DHParameter>\n} & ThreeElements[\"group\"]\n\nexport type SupportedRobotProps = {\n rapidlyChangingMotionState: MotionGroupState\n modelFromController: string\n dhParameters: DHParameter[]\n flangeRef?: React.Ref<THREE.Group>\n instanceUrl?: string\n getModel?: (\n modelFromController: string,\n instanceUrl?: string,\n ) => Promise<string> | undefined\n postModelRender?: () => void\n transparentColor?: string\n} & ThreeElements[\"group\"]\n\nexport const SupportedRobot = externalizeComponent(\n ({\n rapidlyChangingMotionState,\n modelFromController,\n dhParameters,\n getModel = defaultGetModel,\n flangeRef,\n postModelRender,\n transparentColor,\n instanceUrl,\n ...props\n }: SupportedRobotProps) => {\n const [robotGroup, setRobotGroup] = useState<THREE.Group | null>(null)\n\n const setRobotRef = useCallback((instance: THREE.Group | null) => {\n setRobotGroup(instance)\n }, [])\n\n useEffect(() => {\n if (!robotGroup) return\n\n if (transparentColor) {\n applyGhostStyle(robotGroup, transparentColor)\n } else {\n removeGhostStyle(robotGroup)\n }\n }, [robotGroup, transparentColor])\n\n const dhrobot = (\n <DHRobot\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n {...props}\n />\n )\n\n return (\n <ErrorBoundary\n fallback={dhrobot}\n onError={(err) => {\n // Missing model; show the fallback for now\n console.warn(err)\n }}\n >\n <Suspense fallback={dhrobot}>\n <group ref={setRobotRef}>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n >\n <GenericRobot\n modelURL={(() => {\n const result = getModel(modelFromController, instanceUrl)\n if (!result) {\n const mockBlob = new Blob([], { type: \"model/gltf-binary\" })\n const mockFile = new File(\n [mockBlob],\n `${modelFromController}.glb`,\n { type: \"model/gltf-binary\" },\n )\n return Promise.resolve(URL.createObjectURL(mockFile))\n }\n return result\n })()}\n postModelRender={postModelRender}\n flangeRef={flangeRef}\n {...props}\n />\n </RobotAnimator>\n </group>\n </Suspense>\n <ConsoleFilter />\n </ErrorBoundary>\n )\n },\n)\n\nexport default SupportedRobot\n"],"names":["SupportedRobot","externalizeComponent","rapidlyChangingMotionState","modelFromController","dhParameters","getModel","defaultGetModel","flangeRef","postModelRender","transparentColor","instanceUrl","props","robotGroup","setRobotGroup","useState","setRobotRef","useCallback","instance","useEffect","applyGhostStyle","removeGhostStyle","dhrobot","jsx","DHRobot","jsxs","ErrorBoundary","err","Suspense","RobotAnimator","GenericRobot","result","mockBlob","mockFile","ConsoleFilter"],"mappings":";;;;;;;;;;AAiCO,MAAMA,IAAiBC;AAAA,EAC5B,CAAC;AAAA,IACC,4BAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC,IAAWC;AAAA,IACX,WAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,MACsB;AACzB,UAAM,CAACC,GAAYC,CAAa,IAAIC,EAA6B,IAAI,GAE/DC,IAAcC,EAAY,CAACC,MAAiC;AAChE,MAAAJ,EAAcI,CAAQ;AAAA,IACxB,GAAG,CAAA,CAAE;AAEL,IAAAC,EAAU,MAAM;AACd,MAAKN,MAEDH,IACFU,EAAgBP,GAAYH,CAAgB,IAE5CW,EAAiBR,CAAU;AAAA,IAE/B,GAAG,CAACA,GAAYH,CAAgB,CAAC;AAEjC,UAAMY,IACJ,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,4BAAArB;AAAA,QACA,cAAAE;AAAA,QACC,GAAGO;AAAA,MAAA;AAAA,IAAA;AAIR,WACE,gBAAAa;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAUJ;AAAA,QACV,SAAS,CAACK,MAAQ;AAEhB,kBAAQ,KAAKA,CAAG;AAAA,QAClB;AAAA,QAEA,UAAA;AAAA,UAAA,gBAAAJ,EAACK,KAAS,UAAUN,GAClB,UAAA,gBAAAC,EAAC,SAAA,EAAM,KAAKP,GACV,UAAA,gBAAAO;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,4BAAA1B;AAAA,cACA,cAAAE;AAAA,cAEA,UAAA,gBAAAkB;AAAA,gBAACO;AAAA,gBAAA;AAAA,kBACC,WAAW,MAAM;AACf,0BAAMC,IAASzB,EAASF,GAAqBO,CAAW;AACxD,wBAAI,CAACoB,GAAQ;AACX,4BAAMC,IAAW,IAAI,KAAK,CAAA,GAAI,EAAE,MAAM,qBAAqB,GACrDC,IAAW,IAAI;AAAA,wBACnB,CAACD,CAAQ;AAAA,wBACT,GAAG5B,CAAmB;AAAA,wBACtB,EAAE,MAAM,oBAAA;AAAA,sBAAoB;AAE9B,6BAAO,QAAQ,QAAQ,IAAI,gBAAgB6B,CAAQ,CAAC;AAAA,oBACtD;AACA,2BAAOF;AAAA,kBACT,GAAA;AAAA,kBACA,iBAAAtB;AAAA,kBACA,WAAAD;AAAA,kBACC,GAAGI;AAAA,gBAAA;AAAA,cAAA;AAAA,YACN;AAAA,UAAA,GAEJ,EAAA,CACF;AAAA,4BACCsB,GAAA,CAAA,CAAc;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGrB;AACF;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("three");function o(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const a=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,a.get?a:{enumerable:!0,get:()=>t[e]})}}return r.default=t,Object.freeze(r)}const s=o(n),l=(t,r)=>{t.userData.isGhost||(t.traverse(e=>{if(e instanceof s.Mesh){e.material instanceof s.Material&&(e.material.colorWrite=!1);const a=e.clone(),i=e.clone();a.material=new s.MeshStandardMaterial({depthTest:!0,depthWrite:!0,colorWrite:!1,polygonOffset:!0,polygonOffsetFactor:-1,side:s.DoubleSide}),a.userData.isGhost=!0,i.material=new s.MeshStandardMaterial({color:r,opacity:.3,depthTest:!0,depthWrite:!1,transparent:!0,polygonOffset:!0,polygonOffsetFactor:-2,side:s.DoubleSide}),i.userData.isGhost=!0,e.parent&&(e.parent.add(a),e.parent.add(i))}}),t.userData.isGhost=!0)},f=t=>{if(!t.userData.isGhost)return;const r=[];t.traverse(e=>{var a;e instanceof s.Mesh&&((a=e.userData)!=null&&a.isGhost?r.push(e):e.material instanceof s.Material&&(e.material.colorWrite=!0))}),r.forEach(e=>{e.parent&&e.parent.remove(e)}),t.userData.isGhost=!1};exports.applyGhostStyle=l;exports.removeGhostStyle=f;
|
|
2
|
+
//# sourceMappingURL=ghostStyle.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghostStyle.cjs","sources":["../../../src/components/robots/ghostStyle.ts"],"sourcesContent":["import * as THREE from \"three\"\n\nexport const applyGhostStyle = (robot: THREE.Group, color: string) => {\n if (robot.userData.isGhost) return\n\n robot.traverse((obj) => {\n if (obj instanceof THREE.Mesh) {\n if (obj.material instanceof THREE.Material) {\n obj.material.colorWrite = false\n }\n\n // Create a clone of the mesh\n const depth = obj.clone()\n const ghost = obj.clone()\n\n depth.material = new THREE.MeshStandardMaterial({\n depthTest: true,\n depthWrite: true,\n colorWrite: false,\n polygonOffset: true,\n polygonOffsetFactor: -1,\n side: THREE.DoubleSide,\n })\n depth.userData.isGhost = true\n\n // Set the material for the ghost mesh\n ghost.material = new THREE.MeshStandardMaterial({\n color: color,\n opacity: 0.3,\n depthTest: true,\n depthWrite: false,\n transparent: true,\n polygonOffset: true,\n polygonOffsetFactor: -2,\n side: THREE.DoubleSide,\n })\n ghost.userData.isGhost = true\n\n if (obj.parent) {\n obj.parent.add(depth)\n obj.parent.add(ghost)\n }\n }\n })\n\n robot.userData.isGhost = true\n}\n\nexport const removeGhostStyle = (robot: THREE.Group) => {\n if (!robot.userData.isGhost) return\n\n const objectsToRemove: THREE.Object3D[] = []\n\n robot.traverse((obj) => {\n if (obj instanceof THREE.Mesh) {\n if (obj.userData?.isGhost) {\n objectsToRemove.push(obj)\n } else if (obj.material instanceof THREE.Material) {\n obj.material.colorWrite = true\n }\n }\n })\n\n objectsToRemove.forEach((obj) => {\n if (obj.parent) {\n obj.parent.remove(obj)\n }\n })\n\n robot.userData.isGhost = false\n}\n"],"names":["applyGhostStyle","robot","color","obj","THREE","depth","ghost","removeGhostStyle","objectsToRemove","_a"],"mappings":"mYAEaA,EAAkB,CAACC,EAAoBC,IAAkB,CAChED,EAAM,SAAS,UAEnBA,EAAM,SAAUE,GAAQ,CACtB,GAAIA,aAAeC,EAAM,KAAM,CACzBD,EAAI,oBAAoBC,EAAM,WAChCD,EAAI,SAAS,WAAa,IAI5B,MAAME,EAAQF,EAAI,MAAA,EACZG,EAAQH,EAAI,MAAA,EAElBE,EAAM,SAAW,IAAID,EAAM,qBAAqB,CAC9C,UAAW,GACX,WAAY,GACZ,WAAY,GACZ,cAAe,GACf,oBAAqB,GACrB,KAAMA,EAAM,UAAA,CACb,EACDC,EAAM,SAAS,QAAU,GAGzBC,EAAM,SAAW,IAAIF,EAAM,qBAAqB,CAC9C,MAAAF,EACA,QAAS,GACT,UAAW,GACX,WAAY,GACZ,YAAa,GACb,cAAe,GACf,oBAAqB,GACrB,KAAME,EAAM,UAAA,CACb,EACDE,EAAM,SAAS,QAAU,GAErBH,EAAI,SACNA,EAAI,OAAO,IAAIE,CAAK,EACpBF,EAAI,OAAO,IAAIG,CAAK,EAExB,CACF,CAAC,EAEDL,EAAM,SAAS,QAAU,GAC3B,EAEaM,EAAoBN,GAAuB,CACtD,GAAI,CAACA,EAAM,SAAS,QAAS,OAE7B,MAAMO,EAAoC,CAAA,EAE1CP,EAAM,SAAUE,GAAQ,OAClBA,aAAeC,EAAM,QACnBK,EAAAN,EAAI,WAAJ,MAAAM,EAAc,QAChBD,EAAgB,KAAKL,CAAG,EACfA,EAAI,oBAAoBC,EAAM,WACvCD,EAAI,SAAS,WAAa,IAGhC,CAAC,EAEDK,EAAgB,QAASL,GAAQ,CAC3BA,EAAI,QACNA,EAAI,OAAO,OAAOA,CAAG,CAEzB,CAAC,EAEDF,EAAM,SAAS,QAAU,EAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghostStyle.d.ts","sourceRoot":"","sources":["../../../src/components/robots/ghostStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,CAAC,KAAK,EAAE,OAAO,MAAM,SA4ChE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,CAAC,KAAK,SAsBlD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghostStyle.js","sources":["../../../src/components/robots/ghostStyle.ts"],"sourcesContent":["import * as THREE from \"three\"\n\nexport const applyGhostStyle = (robot: THREE.Group, color: string) => {\n if (robot.userData.isGhost) return\n\n robot.traverse((obj) => {\n if (obj instanceof THREE.Mesh) {\n if (obj.material instanceof THREE.Material) {\n obj.material.colorWrite = false\n }\n\n // Create a clone of the mesh\n const depth = obj.clone()\n const ghost = obj.clone()\n\n depth.material = new THREE.MeshStandardMaterial({\n depthTest: true,\n depthWrite: true,\n colorWrite: false,\n polygonOffset: true,\n polygonOffsetFactor: -1,\n side: THREE.DoubleSide,\n })\n depth.userData.isGhost = true\n\n // Set the material for the ghost mesh\n ghost.material = new THREE.MeshStandardMaterial({\n color: color,\n opacity: 0.3,\n depthTest: true,\n depthWrite: false,\n transparent: true,\n polygonOffset: true,\n polygonOffsetFactor: -2,\n side: THREE.DoubleSide,\n })\n ghost.userData.isGhost = true\n\n if (obj.parent) {\n obj.parent.add(depth)\n obj.parent.add(ghost)\n }\n }\n })\n\n robot.userData.isGhost = true\n}\n\nexport const removeGhostStyle = (robot: THREE.Group) => {\n if (!robot.userData.isGhost) return\n\n const objectsToRemove: THREE.Object3D[] = []\n\n robot.traverse((obj) => {\n if (obj instanceof THREE.Mesh) {\n if (obj.userData?.isGhost) {\n objectsToRemove.push(obj)\n } else if (obj.material instanceof THREE.Material) {\n obj.material.colorWrite = true\n }\n }\n })\n\n objectsToRemove.forEach((obj) => {\n if (obj.parent) {\n obj.parent.remove(obj)\n }\n })\n\n robot.userData.isGhost = false\n}\n"],"names":["applyGhostStyle","robot","color","obj","THREE","depth","ghost","removeGhostStyle","objectsToRemove","_a"],"mappings":";AAEO,MAAMA,IAAkB,CAACC,GAAoBC,MAAkB;AACpE,EAAID,EAAM,SAAS,YAEnBA,EAAM,SAAS,CAACE,MAAQ;AACtB,QAAIA,aAAeC,EAAM,MAAM;AAC7B,MAAID,EAAI,oBAAoBC,EAAM,aAChCD,EAAI,SAAS,aAAa;AAI5B,YAAME,IAAQF,EAAI,MAAA,GACZG,IAAQH,EAAI,MAAA;AAElB,MAAAE,EAAM,WAAW,IAAID,EAAM,qBAAqB;AAAA,QAC9C,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,MAAMA,EAAM;AAAA,MAAA,CACb,GACDC,EAAM,SAAS,UAAU,IAGzBC,EAAM,WAAW,IAAIF,EAAM,qBAAqB;AAAA,QAC9C,OAAAF;AAAA,QACA,SAAS;AAAA,QACT,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,MAAME,EAAM;AAAA,MAAA,CACb,GACDE,EAAM,SAAS,UAAU,IAErBH,EAAI,WACNA,EAAI,OAAO,IAAIE,CAAK,GACpBF,EAAI,OAAO,IAAIG,CAAK;AAAA,IAExB;AAAA,EACF,CAAC,GAEDL,EAAM,SAAS,UAAU;AAC3B,GAEaM,IAAmB,CAACN,MAAuB;AACtD,MAAI,CAACA,EAAM,SAAS,QAAS;AAE7B,QAAMO,IAAoC,CAAA;AAE1C,EAAAP,EAAM,SAAS,CAACE,MAAQ;;AACtB,IAAIA,aAAeC,EAAM,UACnBK,IAAAN,EAAI,aAAJ,QAAAM,EAAc,UAChBD,EAAgB,KAAKL,CAAG,IACfA,EAAI,oBAAoBC,EAAM,aACvCD,EAAI,SAAS,aAAa;AAAA,EAGhC,CAAC,GAEDK,EAAgB,QAAQ,CAACL,MAAQ;AAC/B,IAAIA,EAAI,UACNA,EAAI,OAAO,OAAOA,CAAG;AAAA,EAEzB,CAAC,GAEDF,EAAM,SAAS,UAAU;AAC3B;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@wandelbots/nova-js/v2"),e={[a.Manufacturer.Abb]:[0,0,0,0,Math.PI/2,0,0],[a.Manufacturer.Fanuc]:[0,0,0,0,-Math.PI/2,0,0],[a.Manufacturer.Yaskawa]:[0,0,0,0,-Math.PI/2,0,0],[a.Manufacturer.Kuka]:[0,-Math.PI/2,Math.PI/2,0,Math.PI/2,0,0],[a.Manufacturer.Universalrobots]:[0,-Math.PI/2,-Math.PI/2,-Math.PI/2,Math.PI/2,-Math.PI/2,0]};function n(t){const[r]=t.split("_");switch(r){case"ABB":return a.Manufacturer.Abb;case"FANUC":return a.Manufacturer.Fanuc;case"YASKAWA":return a.Manufacturer.Yaskawa;case"KUKA":return a.Manufacturer.Kuka;case"UniversalRobots":return a.Manufacturer.Universalrobots;default:return null}}function c(t,r){const u=n(t);return u&&u in e?e[u]:r||null}exports.MANUFACTURER_HOME_CONFIGS=e;exports.extractManufacturer=n;exports.getDefaultHomeConfig=c;
|
|
2
|
+
//# sourceMappingURL=manufacturerHomePositions.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manufacturerHomePositions.cjs","sources":["../../../src/components/robots/manufacturerHomePositions.ts"],"sourcesContent":["import { Manufacturer } from \"@wandelbots/nova-js/v2\"\n\n/**\n * Default home configs for different robot manufacturers.\n * These joint configurations represent safe home configs for each manufacturer's robots.\n * All angles are in radians.\n */\nexport const MANUFACTURER_HOME_CONFIGS: Record<Manufacturer, number[]> = {\n [Manufacturer.Abb]: [0.0, 0.0, 0.0, 0.0, Math.PI / 2, 0.0, 0.0],\n [Manufacturer.Fanuc]: [0.0, 0.0, 0.0, 0.0, -Math.PI / 2, 0.0, 0.0],\n [Manufacturer.Yaskawa]: [0.0, 0.0, 0.0, 0.0, -Math.PI / 2, 0.0, 0.0],\n [Manufacturer.Kuka]: [\n 0.0,\n -Math.PI / 2,\n Math.PI / 2,\n 0.0,\n Math.PI / 2,\n 0.0,\n 0.0,\n ],\n [Manufacturer.Universalrobots]: [\n 0.0,\n -Math.PI / 2,\n -Math.PI / 2,\n -Math.PI / 2,\n Math.PI / 2,\n -Math.PI / 2,\n 0.0,\n ],\n}\n\n/**\n * Extracts manufacturer from modelFromController string.\n * @param modelFromController - String in format \"Manufacturer_ModelName\"\n * @returns Manufacturer enum value or null if not recognized\n */\nexport function extractManufacturer(\n modelFromController: string,\n): Manufacturer | null {\n const [manufacturerString] = modelFromController.split(\"_\")\n\n // Handle the mapping from string to enum\n switch (manufacturerString) {\n case \"ABB\":\n return Manufacturer.Abb\n case \"FANUC\":\n return Manufacturer.Fanuc\n case \"YASKAWA\":\n return Manufacturer.Yaskawa\n case \"KUKA\":\n return Manufacturer.Kuka\n case \"UniversalRobots\":\n return Manufacturer.Universalrobots\n default:\n return null\n }\n}\n\n/**\n * Gets the default home config for a robot based on its model identifier.\n * @param modelFromController - String in format \"Manufacturer_ModelName\"\n * @param defaultJointConfig - Optional custom default configuration to use if manufacturer not found\n * @returns Array of joint positions in radians, or null if no configuration available\n */\nexport function getDefaultHomeConfig(\n modelFromController: string,\n defaultJointConfig?: number[],\n): number[] | null {\n const manufacturer = extractManufacturer(modelFromController)\n\n if (manufacturer && manufacturer in MANUFACTURER_HOME_CONFIGS) {\n return MANUFACTURER_HOME_CONFIGS[manufacturer]\n }\n\n return defaultJointConfig || null\n}\n"],"names":["MANUFACTURER_HOME_CONFIGS","Manufacturer","extractManufacturer","modelFromController","manufacturerString","getDefaultHomeConfig","defaultJointConfig","manufacturer"],"mappings":"0HAOaA,EAA4D,CACvE,CAACC,eAAa,GAAG,EAAG,CAAC,EAAK,EAAK,EAAK,EAAK,KAAK,GAAK,EAAG,EAAK,CAAG,EAC9D,CAACA,EAAAA,aAAa,KAAK,EAAG,CAAC,EAAK,EAAK,EAAK,EAAK,CAAC,KAAK,GAAK,EAAG,EAAK,CAAG,EACjE,CAACA,EAAAA,aAAa,OAAO,EAAG,CAAC,EAAK,EAAK,EAAK,EAAK,CAAC,KAAK,GAAK,EAAG,EAAK,CAAG,EACnE,CAACA,EAAAA,aAAa,IAAI,EAAG,CACnB,EACA,CAAC,KAAK,GAAK,EACX,KAAK,GAAK,EACV,EACA,KAAK,GAAK,EACV,EACA,CAAA,EAEF,CAACA,EAAAA,aAAa,eAAe,EAAG,CAC9B,EACA,CAAC,KAAK,GAAK,EACX,CAAC,KAAK,GAAK,EACX,CAAC,KAAK,GAAK,EACX,KAAK,GAAK,EACV,CAAC,KAAK,GAAK,EACX,CAAA,CAEJ,EAOO,SAASC,EACdC,EACqB,CACrB,KAAM,CAACC,CAAkB,EAAID,EAAoB,MAAM,GAAG,EAG1D,OAAQC,EAAA,CACN,IAAK,MACH,OAAOH,EAAAA,aAAa,IACtB,IAAK,QACH,OAAOA,EAAAA,aAAa,MACtB,IAAK,UACH,OAAOA,EAAAA,aAAa,QACtB,IAAK,OACH,OAAOA,EAAAA,aAAa,KACtB,IAAK,kBACH,OAAOA,EAAAA,aAAa,gBACtB,QACE,OAAO,IAAA,CAEb,CAQO,SAASI,EACdF,EACAG,EACiB,CACjB,MAAMC,EAAeL,EAAoBC,CAAmB,EAE5D,OAAII,GAAgBA,KAAgBP,EAC3BA,EAA0BO,CAAY,EAGxCD,GAAsB,IAC/B"}
|
|
@@ -18,3 +18,4 @@ export declare function extractManufacturer(modelFromController: string): Manufa
|
|
|
18
18
|
* @returns Array of joint positions in radians, or null if no configuration available
|
|
19
19
|
*/
|
|
20
20
|
export declare function getDefaultHomeConfig(modelFromController: string, defaultJointConfig?: number[]): number[] | null;
|
|
21
|
+
//# sourceMappingURL=manufacturerHomePositions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manufacturerHomePositions.d.ts","sourceRoot":"","sources":["../../../src/components/robots/manufacturerHomePositions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAsBpE,CAAA;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,MAAM,GAC1B,YAAY,GAAG,IAAI,CAkBrB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,MAAM,EAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC5B,MAAM,EAAE,GAAG,IAAI,CAQjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manufacturerHomePositions.js","sources":["../../../src/components/robots/manufacturerHomePositions.ts"],"sourcesContent":["import { Manufacturer } from \"@wandelbots/nova-js/v2\"\n\n/**\n * Default home configs for different robot manufacturers.\n * These joint configurations represent safe home configs for each manufacturer's robots.\n * All angles are in radians.\n */\nexport const MANUFACTURER_HOME_CONFIGS: Record<Manufacturer, number[]> = {\n [Manufacturer.Abb]: [0.0, 0.0, 0.0, 0.0, Math.PI / 2, 0.0, 0.0],\n [Manufacturer.Fanuc]: [0.0, 0.0, 0.0, 0.0, -Math.PI / 2, 0.0, 0.0],\n [Manufacturer.Yaskawa]: [0.0, 0.0, 0.0, 0.0, -Math.PI / 2, 0.0, 0.0],\n [Manufacturer.Kuka]: [\n 0.0,\n -Math.PI / 2,\n Math.PI / 2,\n 0.0,\n Math.PI / 2,\n 0.0,\n 0.0,\n ],\n [Manufacturer.Universalrobots]: [\n 0.0,\n -Math.PI / 2,\n -Math.PI / 2,\n -Math.PI / 2,\n Math.PI / 2,\n -Math.PI / 2,\n 0.0,\n ],\n}\n\n/**\n * Extracts manufacturer from modelFromController string.\n * @param modelFromController - String in format \"Manufacturer_ModelName\"\n * @returns Manufacturer enum value or null if not recognized\n */\nexport function extractManufacturer(\n modelFromController: string,\n): Manufacturer | null {\n const [manufacturerString] = modelFromController.split(\"_\")\n\n // Handle the mapping from string to enum\n switch (manufacturerString) {\n case \"ABB\":\n return Manufacturer.Abb\n case \"FANUC\":\n return Manufacturer.Fanuc\n case \"YASKAWA\":\n return Manufacturer.Yaskawa\n case \"KUKA\":\n return Manufacturer.Kuka\n case \"UniversalRobots\":\n return Manufacturer.Universalrobots\n default:\n return null\n }\n}\n\n/**\n * Gets the default home config for a robot based on its model identifier.\n * @param modelFromController - String in format \"Manufacturer_ModelName\"\n * @param defaultJointConfig - Optional custom default configuration to use if manufacturer not found\n * @returns Array of joint positions in radians, or null if no configuration available\n */\nexport function getDefaultHomeConfig(\n modelFromController: string,\n defaultJointConfig?: number[],\n): number[] | null {\n const manufacturer = extractManufacturer(modelFromController)\n\n if (manufacturer && manufacturer in MANUFACTURER_HOME_CONFIGS) {\n return MANUFACTURER_HOME_CONFIGS[manufacturer]\n }\n\n return defaultJointConfig || null\n}\n"],"names":["MANUFACTURER_HOME_CONFIGS","Manufacturer","extractManufacturer","modelFromController","manufacturerString","getDefaultHomeConfig","defaultJointConfig","manufacturer"],"mappings":";AAOO,MAAMA,IAA4D;AAAA,EACvE,CAACC,EAAa,GAAG,GAAG,CAAC,GAAK,GAAK,GAAK,GAAK,KAAK,KAAK,GAAG,GAAK,CAAG;AAAA,EAC9D,CAACA,EAAa,KAAK,GAAG,CAAC,GAAK,GAAK,GAAK,GAAK,CAAC,KAAK,KAAK,GAAG,GAAK,CAAG;AAAA,EACjE,CAACA,EAAa,OAAO,GAAG,CAAC,GAAK,GAAK,GAAK,GAAK,CAAC,KAAK,KAAK,GAAG,GAAK,CAAG;AAAA,EACnE,CAACA,EAAa,IAAI,GAAG;AAAA,IACnB;AAAA,IACA,CAAC,KAAK,KAAK;AAAA,IACX,KAAK,KAAK;AAAA,IACV;AAAA,IACA,KAAK,KAAK;AAAA,IACV;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,CAACA,EAAa,eAAe,GAAG;AAAA,IAC9B;AAAA,IACA,CAAC,KAAK,KAAK;AAAA,IACX,CAAC,KAAK,KAAK;AAAA,IACX,CAAC,KAAK,KAAK;AAAA,IACX,KAAK,KAAK;AAAA,IACV,CAAC,KAAK,KAAK;AAAA,IACX;AAAA,EAAA;AAEJ;AAOO,SAASC,EACdC,GACqB;AACrB,QAAM,CAACC,CAAkB,IAAID,EAAoB,MAAM,GAAG;AAG1D,UAAQC,GAAA;AAAA,IACN,KAAK;AACH,aAAOH,EAAa;AAAA,IACtB,KAAK;AACH,aAAOA,EAAa;AAAA,IACtB,KAAK;AACH,aAAOA,EAAa;AAAA,IACtB,KAAK;AACH,aAAOA,EAAa;AAAA,IACtB,KAAK;AACH,aAAOA,EAAa;AAAA,IACtB;AACE,aAAO;AAAA,EAAA;AAEb;AAQO,SAASI,EACdF,GACAG,GACiB;AACjB,QAAMC,IAAeL,EAAoBC,CAAmB;AAE5D,SAAII,KAAgBA,KAAgBP,IAC3BA,EAA0BO,CAAY,IAGxCD,KAAsB;AAC/B;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@wandelbots/nova-js/v2"),l=new Map;async function p(t
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@wandelbots/nova-js/v2"),l=new Map;async function p(t,r){if(l.has(t))return l.get(t);const e=(async()=>{var c;const i=r||"",n=new d.NovaClient({instanceUrl:i}),u=n.api.motionGroupModels;(c=u.axios)!=null&&c.interceptors&&u.axios.interceptors.request.use(o=>{var s;return(s=o.url)!=null&&s.includes("/glb")&&(o.responseType="blob"),o});try{const o=await n.api.motionGroupModels.getMotionGroupGlbModel(t);return URL.createObjectURL(o)}catch(o){throw console.error("Failed to fetch model:",o),o}})();return l.set(t,e),e}function g(t){function r(e){return e.children.length===0?[e]:[e,...e.children.flatMap(i=>r(i))]}return r(t).filter(e=>a(e))}function f(t){return t.name.endsWith("_FLG")}function a(t){return/_J[0-9]+$/.test(t.name)}function h(t,r){let e;function i(n){if(f(n)){if(e)throw Error(`Found multiple flange groups in robot model ${r}; first ${e.name} then ${n.name}. Only one _FLG group is allowed.`);e=n}a(n),n.children.map(i)}if(i(t.scene),!e)throw Error(`No flange group found in robot model ${r}. Flange must be identified with a name ending in _FLG.`);return{gltf:t}}exports.collectJoints=g;exports.defaultGetModel=p;exports.isFlange=f;exports.isJoint=a;exports.parseRobotModel=h;
|
|
2
|
+
//# sourceMappingURL=robotModelLogic.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robotModelLogic.cjs","sources":["../../../src/components/robots/robotModelLogic.ts"],"sourcesContent":["import { NovaClient } from \"@wandelbots/nova-js/v2\"\nimport type { Object3D } from \"three\"\nimport type { GLTF } from \"three-stdlib\"\n\nconst modelCache = new Map<string, Promise<string>>()\n\n/**\n * Revoke a cached model's object URL to prevent memory leaks.\n * Call this when a component unmounts or no longer needs the model.\n */\nexport async function revokeModelUrl(\n modelFromController: string,\n): Promise<void> {\n const urlPromise = modelCache.get(modelFromController)\n if (!urlPromise) return\n\n try {\n const url = await urlPromise\n URL.revokeObjectURL(url)\n } catch (e) {\n // Ignore errors - URL may already be revoked\n }\n modelCache.delete(modelFromController)\n}\n\n/**\n * Revoke all cached model object URLs and clear the cache.\n * Useful for cleanup on app teardown.\n */\nexport async function revokeAllModelUrls(): Promise<void> {\n const entries = Array.from(modelCache.entries())\n await Promise.allSettled(\n entries.map(async ([key, urlPromise]) => {\n try {\n const url = await urlPromise\n URL.revokeObjectURL(url)\n } catch (e) {\n // Ignore errors\n }\n }),\n )\n modelCache.clear()\n}\n\nexport async function defaultGetModel(\n modelFromController: string,\n instanceUrlProp?: string,\n): Promise<string> {\n // Check cache first\n if (modelCache.has(modelFromController)) {\n // biome-ignore lint/style/noNonNullAssertion: pre-biome code\n return modelCache.get(modelFromController)!\n }\n\n // Create the promise and cache it immediately to prevent duplicate calls\n const modelPromise = (async () => {\n const instanceUrl = instanceUrlProp || import.meta.env.WANDELAPI_BASE_URL\n const nova = new NovaClient({ instanceUrl })\n\n // Configure axios to handle binary responses for GLB files\n // biome-ignore lint/suspicious/noExplicitAny: pre-biome code\n const apiInstance = nova.api.motionGroupModels as any\n if (apiInstance.axios?.interceptors) {\n // biome-ignore lint/suspicious/noExplicitAny: pre-biome code\n apiInstance.axios.interceptors.request.use((config: any) => {\n if (config.url?.includes(\"/glb\")) {\n config.responseType = \"blob\"\n }\n return config\n })\n }\n\n try {\n const file =\n await nova.api.motionGroupModels.getMotionGroupGlbModel(\n modelFromController,\n )\n\n // Create object URL from the file and return it\n const url = URL.createObjectURL(file)\n return url\n } catch (error) {\n console.error(\"Failed to fetch model:\", error)\n throw error\n }\n })()\n\n // Cache the promise\n modelCache.set(modelFromController, modelPromise)\n return modelPromise\n}\n\n/**\n * Finds all the joint groups in a GLTF tree, as identified\n * by the _Jxx name ending convention.\n */\nexport function collectJoints(rootObject: Object3D): Object3D[] {\n function getAllObjects(root: Object3D): Object3D[] {\n if (root.children.length === 0) {\n return [root]\n }\n return [root, ...root.children.flatMap((child) => getAllObjects(child))]\n }\n\n return getAllObjects(rootObject).filter((o) => isJoint(o))\n}\n\n/**\n * Checks if a specified threejs object represents the flange of a\n * robot, based on the _FLG name ending convention.\n */\nexport function isFlange(node: Object3D) {\n return node.name.endsWith(\"_FLG\")\n}\n\n/**\n * Checks if a specified threejs object represents a joint of a\n * robot, based on the _Jxx name ending convention.\n */\nexport function isJoint(node: Object3D) {\n return /_J[0-9]+$/.test(node.name)\n}\n\n/**\n * Validates that the loaded GLTF file has six joints and a flange group.\n */\nexport function parseRobotModel(gltf: GLTF, filename: string): { gltf: GLTF } {\n let flange: Object3D | undefined\n const joints: Object3D[] = []\n\n function parseNode(node: Object3D) {\n if (isFlange(node)) {\n if (flange) {\n throw Error(\n `Found multiple flange groups in robot model ${filename}; first ${flange.name} then ${node.name}. Only one _FLG group is allowed.`,\n )\n }\n\n flange = node\n }\n\n if (isJoint(node)) {\n joints.push(node)\n }\n\n node.children.map(parseNode)\n }\n\n parseNode(gltf.scene)\n\n if (!flange) {\n throw Error(\n `No flange group found in robot model ${filename}. Flange must be identified with a name ending in _FLG.`,\n )\n }\n\n return { gltf }\n}\n"],"names":["modelCache","defaultGetModel","modelFromController","instanceUrlProp","modelPromise","instanceUrl","nova","NovaClient","apiInstance","_a","config","file","error","collectJoints","rootObject","getAllObjects","root","child","o","isJoint","isFlange","node","parseRobotModel","gltf","filename","flange","parseNode"],"mappings":"0HAIMA,MAAiB,IAwCvB,eAAsBC,EACpBC,EACAC,EACiB,CAEjB,GAAIH,EAAW,IAAIE,CAAmB,EAEpC,OAAOF,EAAW,IAAIE,CAAmB,EAI3C,MAAME,GAAgB,SAAY,OAChC,MAAMC,EAAcF,GAAmB,GACjCG,EAAO,IAAIC,aAAW,CAAE,YAAAF,EAAa,EAIrCG,EAAcF,EAAK,IAAI,mBACzBG,EAAAD,EAAY,QAAZ,MAAAC,EAAmB,cAErBD,EAAY,MAAM,aAAa,QAAQ,IAAKE,GAAgB,OAC1D,OAAID,EAAAC,EAAO,MAAP,MAAAD,EAAY,SAAS,UACvBC,EAAO,aAAe,QAEjBA,CACT,CAAC,EAGH,GAAI,CACF,MAAMC,EACJ,MAAML,EAAK,IAAI,kBAAkB,uBAC/BJ,CAAA,EAKJ,OADY,IAAI,gBAAgBS,CAAI,CAEtC,OAASC,EAAO,CACd,cAAQ,MAAM,yBAA0BA,CAAK,EACvCA,CACR,CACF,GAAA,EAGA,OAAAZ,EAAW,IAAIE,EAAqBE,CAAY,EACzCA,CACT,CAMO,SAASS,EAAcC,EAAkC,CAC9D,SAASC,EAAcC,EAA4B,CACjD,OAAIA,EAAK,SAAS,SAAW,EACpB,CAACA,CAAI,EAEP,CAACA,EAAM,GAAGA,EAAK,SAAS,QAASC,GAAUF,EAAcE,CAAK,CAAC,CAAC,CACzE,CAEA,OAAOF,EAAcD,CAAU,EAAE,OAAQI,GAAMC,EAAQD,CAAC,CAAC,CAC3D,CAMO,SAASE,EAASC,EAAgB,CACvC,OAAOA,EAAK,KAAK,SAAS,MAAM,CAClC,CAMO,SAASF,EAAQE,EAAgB,CACtC,MAAO,YAAY,KAAKA,EAAK,IAAI,CACnC,CAKO,SAASC,EAAgBC,EAAYC,EAAkC,CAC5E,IAAIC,EAGJ,SAASC,EAAUL,EAAgB,CACjC,GAAID,EAASC,CAAI,EAAG,CAClB,GAAII,EACF,MAAM,MACJ,+CAA+CD,CAAQ,WAAWC,EAAO,IAAI,SAASJ,EAAK,IAAI,mCAAA,EAInGI,EAASJ,CACX,CAEIF,EAAQE,CAAI,EAIhBA,EAAK,SAAS,IAAIK,CAAS,CAC7B,CAIA,GAFAA,EAAUH,EAAK,KAAK,EAEhB,CAACE,EACH,MAAM,MACJ,wCAAwCD,CAAQ,yDAAA,EAIpD,MAAO,CAAE,KAAAD,CAAA,CACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robotModelLogic.d.ts","sourceRoot":"","sources":["../../../src/components/robots/robotModelLogic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAIxC;;;GAGG;AACH,wBAAsB,cAAc,CAClC,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAaxD;AAED,wBAAsB,eAAe,CACnC,mBAAmB,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAS9D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,WAEtC;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,WAErC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CA+B5E"}
|
|
@@ -1,85 +1,61 @@
|
|
|
1
1
|
import { NovaClient as f } from "@wandelbots/nova-js/v2";
|
|
2
2
|
const a = /* @__PURE__ */ new Map();
|
|
3
|
-
async function h(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
try {
|
|
7
|
-
const e = await n;
|
|
8
|
-
URL.revokeObjectURL(e);
|
|
9
|
-
} catch {
|
|
10
|
-
}
|
|
11
|
-
a.delete(t);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
async function m() {
|
|
15
|
-
const t = Array.from(a.entries());
|
|
16
|
-
await Promise.allSettled(
|
|
17
|
-
t.map(async ([n, e]) => {
|
|
18
|
-
try {
|
|
19
|
-
const r = await e;
|
|
20
|
-
URL.revokeObjectURL(r);
|
|
21
|
-
} catch {
|
|
22
|
-
}
|
|
23
|
-
})
|
|
24
|
-
), a.clear();
|
|
25
|
-
}
|
|
26
|
-
async function b(t, n) {
|
|
27
|
-
if (a.has(t))
|
|
28
|
-
return a.get(t);
|
|
3
|
+
async function h(n, i) {
|
|
4
|
+
if (a.has(n))
|
|
5
|
+
return a.get(n);
|
|
29
6
|
const e = (async () => {
|
|
30
|
-
var
|
|
31
|
-
const
|
|
32
|
-
(
|
|
7
|
+
var c;
|
|
8
|
+
const o = i || "", t = new f({ instanceUrl: o }), u = t.api.motionGroupModels;
|
|
9
|
+
(c = u.axios) != null && c.interceptors && u.axios.interceptors.request.use((r) => {
|
|
33
10
|
var s;
|
|
34
|
-
return (s =
|
|
11
|
+
return (s = r.url) != null && s.includes("/glb") && (r.responseType = "blob"), r;
|
|
35
12
|
});
|
|
36
13
|
try {
|
|
37
|
-
const
|
|
38
|
-
|
|
14
|
+
const r = await t.api.motionGroupModels.getMotionGroupGlbModel(
|
|
15
|
+
n
|
|
39
16
|
);
|
|
40
|
-
return URL.createObjectURL(
|
|
41
|
-
} catch (
|
|
42
|
-
throw console.error("Failed to fetch model:",
|
|
17
|
+
return URL.createObjectURL(r);
|
|
18
|
+
} catch (r) {
|
|
19
|
+
throw console.error("Failed to fetch model:", r), r;
|
|
43
20
|
}
|
|
44
21
|
})();
|
|
45
|
-
return a.set(
|
|
22
|
+
return a.set(n, e), e;
|
|
46
23
|
}
|
|
47
|
-
function g(
|
|
48
|
-
function
|
|
49
|
-
return e.children.length === 0 ? [e] : [e, ...e.children.flatMap((
|
|
24
|
+
function g(n) {
|
|
25
|
+
function i(e) {
|
|
26
|
+
return e.children.length === 0 ? [e] : [e, ...e.children.flatMap((o) => i(o))];
|
|
50
27
|
}
|
|
51
|
-
return n
|
|
28
|
+
return i(n).filter((e) => l(e));
|
|
52
29
|
}
|
|
53
|
-
function p(
|
|
54
|
-
return
|
|
30
|
+
function p(n) {
|
|
31
|
+
return n.name.endsWith("_FLG");
|
|
55
32
|
}
|
|
56
|
-
function
|
|
57
|
-
return /_J[0-9]+$/.test(
|
|
33
|
+
function l(n) {
|
|
34
|
+
return /_J[0-9]+$/.test(n.name);
|
|
58
35
|
}
|
|
59
|
-
function
|
|
36
|
+
function m(n, i) {
|
|
60
37
|
let e;
|
|
61
|
-
function
|
|
62
|
-
if (p(
|
|
38
|
+
function o(t) {
|
|
39
|
+
if (p(t)) {
|
|
63
40
|
if (e)
|
|
64
41
|
throw Error(
|
|
65
|
-
`Found multiple flange groups in robot model ${
|
|
42
|
+
`Found multiple flange groups in robot model ${i}; first ${e.name} then ${t.name}. Only one _FLG group is allowed.`
|
|
66
43
|
);
|
|
67
|
-
e =
|
|
44
|
+
e = t;
|
|
68
45
|
}
|
|
69
|
-
|
|
46
|
+
l(t), t.children.map(o);
|
|
70
47
|
}
|
|
71
|
-
if (
|
|
48
|
+
if (o(n.scene), !e)
|
|
72
49
|
throw Error(
|
|
73
|
-
`No flange group found in robot model ${
|
|
50
|
+
`No flange group found in robot model ${i}. Flange must be identified with a name ending in _FLG.`
|
|
74
51
|
);
|
|
75
|
-
return { gltf:
|
|
52
|
+
return { gltf: n };
|
|
76
53
|
}
|
|
77
54
|
export {
|
|
78
55
|
g as collectJoints,
|
|
79
|
-
|
|
56
|
+
h as defaultGetModel,
|
|
80
57
|
p as isFlange,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
m as revokeAllModelUrls,
|
|
84
|
-
h as revokeModelUrl
|
|
58
|
+
l as isJoint,
|
|
59
|
+
m as parseRobotModel
|
|
85
60
|
};
|
|
61
|
+
//# sourceMappingURL=robotModelLogic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robotModelLogic.js","sources":["../../../src/components/robots/robotModelLogic.ts"],"sourcesContent":["import { NovaClient } from \"@wandelbots/nova-js/v2\"\nimport type { Object3D } from \"three\"\nimport type { GLTF } from \"three-stdlib\"\n\nconst modelCache = new Map<string, Promise<string>>()\n\n/**\n * Revoke a cached model's object URL to prevent memory leaks.\n * Call this when a component unmounts or no longer needs the model.\n */\nexport async function revokeModelUrl(\n modelFromController: string,\n): Promise<void> {\n const urlPromise = modelCache.get(modelFromController)\n if (!urlPromise) return\n\n try {\n const url = await urlPromise\n URL.revokeObjectURL(url)\n } catch (e) {\n // Ignore errors - URL may already be revoked\n }\n modelCache.delete(modelFromController)\n}\n\n/**\n * Revoke all cached model object URLs and clear the cache.\n * Useful for cleanup on app teardown.\n */\nexport async function revokeAllModelUrls(): Promise<void> {\n const entries = Array.from(modelCache.entries())\n await Promise.allSettled(\n entries.map(async ([key, urlPromise]) => {\n try {\n const url = await urlPromise\n URL.revokeObjectURL(url)\n } catch (e) {\n // Ignore errors\n }\n }),\n )\n modelCache.clear()\n}\n\nexport async function defaultGetModel(\n modelFromController: string,\n instanceUrlProp?: string,\n): Promise<string> {\n // Check cache first\n if (modelCache.has(modelFromController)) {\n // biome-ignore lint/style/noNonNullAssertion: pre-biome code\n return modelCache.get(modelFromController)!\n }\n\n // Create the promise and cache it immediately to prevent duplicate calls\n const modelPromise = (async () => {\n const instanceUrl = instanceUrlProp || import.meta.env.WANDELAPI_BASE_URL\n const nova = new NovaClient({ instanceUrl })\n\n // Configure axios to handle binary responses for GLB files\n // biome-ignore lint/suspicious/noExplicitAny: pre-biome code\n const apiInstance = nova.api.motionGroupModels as any\n if (apiInstance.axios?.interceptors) {\n // biome-ignore lint/suspicious/noExplicitAny: pre-biome code\n apiInstance.axios.interceptors.request.use((config: any) => {\n if (config.url?.includes(\"/glb\")) {\n config.responseType = \"blob\"\n }\n return config\n })\n }\n\n try {\n const file =\n await nova.api.motionGroupModels.getMotionGroupGlbModel(\n modelFromController,\n )\n\n // Create object URL from the file and return it\n const url = URL.createObjectURL(file)\n return url\n } catch (error) {\n console.error(\"Failed to fetch model:\", error)\n throw error\n }\n })()\n\n // Cache the promise\n modelCache.set(modelFromController, modelPromise)\n return modelPromise\n}\n\n/**\n * Finds all the joint groups in a GLTF tree, as identified\n * by the _Jxx name ending convention.\n */\nexport function collectJoints(rootObject: Object3D): Object3D[] {\n function getAllObjects(root: Object3D): Object3D[] {\n if (root.children.length === 0) {\n return [root]\n }\n return [root, ...root.children.flatMap((child) => getAllObjects(child))]\n }\n\n return getAllObjects(rootObject).filter((o) => isJoint(o))\n}\n\n/**\n * Checks if a specified threejs object represents the flange of a\n * robot, based on the _FLG name ending convention.\n */\nexport function isFlange(node: Object3D) {\n return node.name.endsWith(\"_FLG\")\n}\n\n/**\n * Checks if a specified threejs object represents a joint of a\n * robot, based on the _Jxx name ending convention.\n */\nexport function isJoint(node: Object3D) {\n return /_J[0-9]+$/.test(node.name)\n}\n\n/**\n * Validates that the loaded GLTF file has six joints and a flange group.\n */\nexport function parseRobotModel(gltf: GLTF, filename: string): { gltf: GLTF } {\n let flange: Object3D | undefined\n const joints: Object3D[] = []\n\n function parseNode(node: Object3D) {\n if (isFlange(node)) {\n if (flange) {\n throw Error(\n `Found multiple flange groups in robot model ${filename}; first ${flange.name} then ${node.name}. Only one _FLG group is allowed.`,\n )\n }\n\n flange = node\n }\n\n if (isJoint(node)) {\n joints.push(node)\n }\n\n node.children.map(parseNode)\n }\n\n parseNode(gltf.scene)\n\n if (!flange) {\n throw Error(\n `No flange group found in robot model ${filename}. Flange must be identified with a name ending in _FLG.`,\n )\n }\n\n return { gltf }\n}\n"],"names":["modelCache","defaultGetModel","modelFromController","instanceUrlProp","modelPromise","instanceUrl","nova","NovaClient","apiInstance","_a","config","file","error","collectJoints","rootObject","getAllObjects","root","child","o","isJoint","isFlange","node","parseRobotModel","gltf","filename","flange","parseNode"],"mappings":";AAIA,MAAMA,wBAAiB,IAAA;AAwCvB,eAAsBC,EACpBC,GACAC,GACiB;AAEjB,MAAIH,EAAW,IAAIE,CAAmB;AAEpC,WAAOF,EAAW,IAAIE,CAAmB;AAI3C,QAAME,KAAgB,YAAY;;AAChC,UAAMC,IAAcF,KAAmB,IACjCG,IAAO,IAAIC,EAAW,EAAE,aAAAF,GAAa,GAIrCG,IAAcF,EAAK,IAAI;AAC7B,KAAIG,IAAAD,EAAY,UAAZ,QAAAC,EAAmB,gBAErBD,EAAY,MAAM,aAAa,QAAQ,IAAI,CAACE,MAAgB;;AAC1D,cAAID,IAAAC,EAAO,QAAP,QAAAD,EAAY,SAAS,YACvBC,EAAO,eAAe,SAEjBA;AAAA,IACT,CAAC;AAGH,QAAI;AACF,YAAMC,IACJ,MAAML,EAAK,IAAI,kBAAkB;AAAA,QAC/BJ;AAAA,MAAA;AAKJ,aADY,IAAI,gBAAgBS,CAAI;AAAA,IAEtC,SAASC,GAAO;AACd,oBAAQ,MAAM,0BAA0BA,CAAK,GACvCA;AAAA,IACR;AAAA,EACF,GAAA;AAGA,SAAAZ,EAAW,IAAIE,GAAqBE,CAAY,GACzCA;AACT;AAMO,SAASS,EAAcC,GAAkC;AAC9D,WAASC,EAAcC,GAA4B;AACjD,WAAIA,EAAK,SAAS,WAAW,IACpB,CAACA,CAAI,IAEP,CAACA,GAAM,GAAGA,EAAK,SAAS,QAAQ,CAACC,MAAUF,EAAcE,CAAK,CAAC,CAAC;AAAA,EACzE;AAEA,SAAOF,EAAcD,CAAU,EAAE,OAAO,CAACI,MAAMC,EAAQD,CAAC,CAAC;AAC3D;AAMO,SAASE,EAASC,GAAgB;AACvC,SAAOA,EAAK,KAAK,SAAS,MAAM;AAClC;AAMO,SAASF,EAAQE,GAAgB;AACtC,SAAO,YAAY,KAAKA,EAAK,IAAI;AACnC;AAKO,SAASC,EAAgBC,GAAYC,GAAkC;AAC5E,MAAIC;AAGJ,WAASC,EAAUL,GAAgB;AACjC,QAAID,EAASC,CAAI,GAAG;AAClB,UAAII;AACF,cAAM;AAAA,UACJ,+CAA+CD,CAAQ,WAAWC,EAAO,IAAI,SAASJ,EAAK,IAAI;AAAA,QAAA;AAInG,MAAAI,IAASJ;AAAA,IACX;AAEA,IAAIF,EAAQE,CAAI,GAIhBA,EAAK,SAAS,IAAIK,CAAS;AAAA,EAC7B;AAIA,MAFAA,EAAUH,EAAK,KAAK,GAEhB,CAACE;AACH,UAAM;AAAA,MACJ,wCAAwCD,CAAQ;AAAA,IAAA;AAIpD,SAAO,EAAE,MAAAD,EAAA;AACX;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),y=require("@mui/material/styles"),d=require("mobx-react-lite"),x=require("react"),o=require("react-i18next"),b=require("./icons/controller-type-physical.svg.cjs"),h=require("./icons/controller-type-virtual.svg.cjs"),c=require("./IndicatorWithExplanation.cjs"),u=d.observer(({isVirtual:p,motionGroupId:r,anchorOrigin:a,transformOrigin:n,compact:l})=>{const i=y.useTheme(),s=x.useId(),{t}=o.useTranslation();return p?e.jsx(c.IndicatorWithExplanation,{id:`motion-group-virtual-${s}`,icon:h.default,color:i.palette.tertiary.main,name:t("SafetyBar.ControllerType.Virtual.lb"),label:l?null:t("SafetyBar.ControllerType.Virtual.lb"),explanation:e.jsxs(o.Trans,{i18nKey:"SafetyBar.MotionGroup.Virtual.Explanation.lb",values:{motionGroupId:r},children:["Motion group ",e.jsx("code",{children:r})," refers to a virtual robot with no physical counterpart. It can be freely manipulated without special safety precautions."]}),anchorOrigin:a,transformOrigin:n}):e.jsx(c.IndicatorWithExplanation,{id:`motion-group-physical-${s}`,icon:b.default,color:i.palette.primary.main,name:t("SafetyBar.ControllerType.Physical.lb"),label:l?null:t("SafetyBar.ControllerType.Physical.lb"),explanation:e.jsx(o.Trans,{i18nKey:"SafetyBar.MotionGroup.Physical.Explanation.lb",values:{motionGroupId:r},components:{code:e.jsx("code",{}),strong:e.jsx("strong",{})}}),anchorOrigin:a,transformOrigin:n})});exports.ControllerTypeIndicator=u;exports.default=u;
|
|
2
|
+
//# sourceMappingURL=ControllerTypeIndicator.cjs.map
|