@wandelbots/wandelbots-js-react-components 5.5.0 → 5.5.1-pr.fix-standardize-output.591.0e6ee47
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 +1 -2
- package/dist/3d.d.ts +0 -1
- package/dist/3d.js +0 -1
- package/dist/Setup.d.ts +0 -1
- package/dist/chunks/JoggingPanel-CQH_oXTB.js +586 -0
- package/dist/chunks/JoggingPanel-DZN2Y39k.cjs +2 -0
- package/dist/chunks/controller-type-virtual-BuJWQOvV.cjs +1 -0
- package/dist/{components/safetyBar/icons/controller-type-physical.svg.js → chunks/controller-type-virtual-CWOoMRfl.js} +10 -6
- package/dist/chunks/externalizeComponent-DOwkaDcw.cjs +2 -0
- package/dist/chunks/externalizeComponent-eiCc5DIh.js +209 -0
- package/dist/chunks/jog-plus-CAUurv4S.js +15 -0
- package/dist/chunks/jog-plus-Dy1r7-r5.cjs +1 -0
- package/dist/chunks/operation-mode-manual-Di4Z1KM1.js +20 -0
- package/dist/chunks/operation-mode-manual-eHwVILeI.cjs +1 -0
- package/dist/chunks/robot-CrNbCELh.cjs +1 -0
- package/dist/{icons/robot.svg.js → chunks/robot-D97QEl_l.js} +2 -3
- package/dist/chunks/rotation-CIOAnn9q.cjs +1 -0
- package/dist/chunks/rotation-Dm5YL3NM.js +25 -0
- package/dist/chunks/safety-state-stop-Bg0VUsM4.js +30 -0
- package/dist/chunks/safety-state-stop-CNxVYiap.cjs +1 -0
- package/dist/chunks/theming-Chx_tewl.cjs +3 -0
- package/dist/chunks/theming-Cw6qwBM7.js +600 -0
- package/dist/chunks/wbLogo-CObCmqTw.js +30 -0
- package/dist/chunks/wbLogo-G_IfZ03l.cjs +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.cjs +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.js +37 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs +0 -1
- package/dist/components/3d-viewport/PresetEnvironment.d.ts +0 -1
- package/dist/components/3d-viewport/PresetEnvironment.js +0 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +1 -2
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +0 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.js +0 -1
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs +0 -1
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +0 -1
- package/dist/components/3d-viewport/TrajectoryRenderer.js +0 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs +1 -2
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +0 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.js +0 -1
- package/dist/components/3d-viewport/collider/ColliderElement.cjs +1 -2
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts +0 -1
- package/dist/components/3d-viewport/collider/ColliderElement.js +0 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +1 -2
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +0 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +0 -1
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +0 -1
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +0 -1
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +0 -1
- package/dist/components/AppHeader.cjs +1 -2
- package/dist/components/AppHeader.d.ts +0 -1
- package/dist/components/AppHeader.js +40 -34
- package/dist/components/ConsoleFilter.cjs +0 -1
- package/dist/components/ConsoleFilter.d.ts +0 -1
- package/dist/components/ConsoleFilter.js +0 -1
- package/dist/components/CopyableText.cjs +0 -1
- package/dist/components/CopyableText.d.ts +0 -1
- package/dist/components/CopyableText.js +0 -1
- package/dist/components/CycleTimer/CycleTimer.cjs +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts +0 -1
- package/dist/components/CycleTimer/CycleTimer.js +5 -0
- package/dist/components/CycleTimer/DefaultVariant.cjs +1 -2
- package/dist/components/CycleTimer/DefaultVariant.d.ts +0 -1
- package/dist/components/CycleTimer/DefaultVariant.js +0 -1
- package/dist/components/CycleTimer/SmallVariant.cjs +0 -1
- package/dist/components/CycleTimer/SmallVariant.d.ts +0 -1
- package/dist/components/CycleTimer/SmallVariant.js +0 -1
- package/dist/components/CycleTimer/index.cjs +1 -2
- package/dist/components/CycleTimer/index.d.ts +0 -1
- package/dist/components/CycleTimer/index.js +1 -2
- package/dist/components/CycleTimer/types.cjs +1 -0
- package/dist/components/CycleTimer/types.d.ts +0 -1
- package/dist/components/CycleTimer/types.js +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs +0 -1
- package/dist/components/CycleTimer/useAnimations.d.ts +0 -1
- package/dist/components/CycleTimer/useAnimations.js +9 -2
- package/dist/components/CycleTimer/useTimerLogic.cjs +1 -2
- package/dist/components/CycleTimer/useTimerLogic.d.ts +0 -1
- package/dist/components/CycleTimer/useTimerLogic.js +0 -1
- package/dist/components/CycleTimer/utils.cjs +1 -2
- package/dist/components/CycleTimer/utils.d.ts +0 -1
- package/dist/components/CycleTimer/utils.js +19 -11
- package/dist/components/CycleTimer.cjs +0 -1
- package/dist/components/CycleTimer.d.ts +0 -1
- package/dist/components/CycleTimer.js +0 -1
- package/dist/components/DataGrid.cjs +1 -2
- package/dist/components/DataGrid.d.ts +0 -1
- package/dist/components/DataGrid.js +1 -2
- package/dist/components/LoadingCover.cjs +1 -2
- package/dist/components/LoadingCover.d.ts +0 -1
- package/dist/components/LoadingCover.js +0 -1
- package/dist/components/LogPanel.cjs +1 -2
- package/dist/components/LogPanel.d.ts +0 -1
- package/dist/components/LogPanel.js +1 -2
- package/dist/components/LogStore.cjs +0 -1
- package/dist/components/LogStore.d.ts +0 -1
- package/dist/components/LogStore.js +0 -1
- package/dist/components/LogViewer.cjs +1 -2
- package/dist/components/LogViewer.d.ts +0 -1
- package/dist/components/LogViewer.js +1 -2
- package/dist/components/ProgramControl.cjs +1 -2
- package/dist/components/ProgramControl.d.ts +0 -1
- package/dist/components/ProgramControl.js +6 -7
- package/dist/components/ProgramStateIndicator.cjs +1 -2
- package/dist/components/ProgramStateIndicator.d.ts +0 -1
- package/dist/components/ProgramStateIndicator.js +28 -29
- package/dist/components/RobotCard.cjs +1 -2
- package/dist/components/RobotCard.d.ts +0 -1
- package/dist/components/RobotCard.js +1 -2
- package/dist/components/RobotListItem.cjs +1 -2
- package/dist/components/RobotListItem.d.ts +0 -1
- package/dist/components/RobotListItem.js +25 -26
- package/dist/components/RobotSetupReadinessIndicator.cjs +1 -2
- package/dist/components/RobotSetupReadinessIndicator.d.ts +0 -1
- package/dist/components/RobotSetupReadinessIndicator.js +1 -2
- package/dist/components/SelectableFab.cjs +0 -1
- package/dist/components/SelectableFab.d.ts +0 -1
- package/dist/components/SelectableFab.js +0 -1
- package/dist/components/TabBar.cjs +1 -2
- package/dist/components/TabBar.d.ts +0 -1
- package/dist/components/TabBar.js +1 -2
- package/dist/components/ThemeSelect.cjs +1 -0
- package/dist/components/ThemeSelect.d.ts +0 -1
- package/dist/components/ThemeSelect.js +38 -0
- package/dist/components/Timer/Timer.cjs +1 -0
- package/dist/components/Timer/Timer.d.ts +0 -1
- package/dist/components/Timer/Timer.js +5 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs +0 -1
- package/dist/components/Timer/TimerDefaultVariant.d.ts +0 -1
- package/dist/components/Timer/TimerDefaultVariant.js +0 -1
- package/dist/components/Timer/TimerSmallVariant.cjs +0 -1
- package/dist/components/Timer/TimerSmallVariant.d.ts +0 -1
- package/dist/components/Timer/TimerSmallVariant.js +0 -1
- package/dist/components/Timer/index.cjs +1 -2
- package/dist/components/Timer/index.d.ts +0 -1
- package/dist/components/Timer/index.js +11 -12
- package/dist/components/Timer/types.cjs +1 -0
- package/dist/components/Timer/types.d.ts +0 -1
- package/dist/components/Timer/types.js +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs +0 -1
- package/dist/components/Timer/useTimerAnimations.d.ts +0 -1
- package/dist/components/Timer/useTimerAnimations.js +5 -2
- package/dist/components/Timer/useTimerLogic.cjs +0 -1
- package/dist/components/Timer/useTimerLogic.d.ts +0 -1
- package/dist/components/Timer/useTimerLogic.js +0 -1
- package/dist/components/Timer/utils.cjs +1 -2
- package/dist/components/Timer/utils.d.ts +0 -1
- package/dist/components/Timer/utils.js +10 -10
- package/dist/components/Timer.cjs +0 -1
- package/dist/components/Timer.d.ts +0 -1
- package/dist/components/Timer.js +0 -1
- package/dist/components/TransparentOverlay.cjs +1 -0
- package/dist/components/TransparentOverlay.d.ts +0 -1
- package/dist/components/TransparentOverlay.js +26 -0
- package/dist/components/VelocitySlider.cjs +1 -2
- package/dist/components/VelocitySlider.d.ts +0 -1
- package/dist/components/VelocitySlider.js +8 -9
- package/dist/components/experimental/utils/AdornedSelect.cjs +0 -1
- package/dist/components/experimental/utils/AdornedSelect.d.ts +0 -1
- package/dist/components/experimental/utils/AdornedSelect.js +0 -1
- package/dist/components/jogging/JoggingBlocked.cjs +0 -1
- package/dist/components/jogging/JoggingBlocked.d.ts +0 -1
- package/dist/components/jogging/JoggingBlocked.js +0 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs +1 -2
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +0 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.js +18 -20
- package/dist/components/jogging/JoggingCartesianTab.cjs +1 -2
- package/dist/components/jogging/JoggingCartesianTab.d.ts +0 -1
- package/dist/components/jogging/JoggingCartesianTab.js +37 -41
- package/dist/components/jogging/JoggingFreedriveTab.cjs +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts +0 -1
- package/dist/components/jogging/JoggingFreedriveTab.js +6 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs +1 -2
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts +0 -1
- package/dist/components/jogging/JoggingJointLimitDetector.js +4 -5
- package/dist/components/jogging/JoggingJointTab.cjs +1 -2
- package/dist/components/jogging/JoggingJointTab.d.ts +0 -1
- package/dist/components/jogging/JoggingJointTab.js +0 -1
- package/dist/components/jogging/JoggingJointValueControl.cjs +1 -2
- package/dist/components/jogging/JoggingJointValueControl.d.ts +0 -1
- package/dist/components/jogging/JoggingJointValueControl.js +7 -8
- package/dist/components/jogging/JoggingOptions.cjs +1 -2
- package/dist/components/jogging/JoggingOptions.d.ts +0 -1
- package/dist/components/jogging/JoggingOptions.js +0 -1
- package/dist/components/jogging/JoggingPanel.cjs +1 -2
- package/dist/components/jogging/JoggingPanel.d.ts +0 -1
- package/dist/components/jogging/JoggingPanel.js +21 -119
- package/dist/components/jogging/JoggingStore.cjs +1 -2
- package/dist/components/jogging/JoggingStore.d.ts +0 -1
- package/dist/components/jogging/JoggingStore.js +2 -3
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs +0 -1
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +0 -1
- package/dist/components/jogging/JoggingToggleButtonGroup.js +0 -1
- package/dist/components/jogging/JoggingVelocitySlider.cjs +0 -1
- package/dist/components/jogging/JoggingVelocitySlider.d.ts +0 -1
- package/dist/components/jogging/JoggingVelocitySlider.js +0 -1
- package/dist/components/jogging/PoseCartesianValues.cjs +1 -2
- package/dist/components/jogging/PoseCartesianValues.d.ts +0 -1
- package/dist/components/jogging/PoseCartesianValues.js +4 -5
- package/dist/components/jogging/PoseJointValues.cjs +1 -2
- package/dist/components/jogging/PoseJointValues.d.ts +0 -1
- package/dist/components/jogging/PoseJointValues.js +1 -2
- package/dist/components/modal/NoMotionGroupModal.cjs +0 -1
- package/dist/components/modal/NoMotionGroupModal.d.ts +0 -1
- package/dist/components/modal/NoMotionGroupModal.js +0 -1
- package/dist/components/robots/AxisConfig.cjs +0 -1
- package/dist/components/robots/AxisConfig.d.ts +0 -1
- package/dist/components/robots/AxisConfig.js +0 -1
- package/dist/components/robots/DHLinearAxis.cjs +1 -2
- package/dist/components/robots/DHLinearAxis.d.ts +0 -1
- package/dist/components/robots/DHLinearAxis.js +0 -1
- package/dist/components/robots/DHRobot.cjs +1 -2
- package/dist/components/robots/DHRobot.d.ts +0 -1
- package/dist/components/robots/DHRobot.js +0 -1
- package/dist/components/robots/GenericRobot.cjs +0 -1
- package/dist/components/robots/GenericRobot.d.ts +0 -1
- package/dist/components/robots/GenericRobot.js +0 -1
- package/dist/components/robots/LinearAxis.cjs +1 -2
- package/dist/components/robots/LinearAxis.d.ts +0 -1
- package/dist/components/robots/LinearAxis.js +0 -1
- package/dist/components/robots/LinearAxisAnimator.cjs +1 -2
- package/dist/components/robots/LinearAxisAnimator.d.ts +0 -1
- package/dist/components/robots/LinearAxisAnimator.js +0 -1
- package/dist/components/robots/MotionGroupVisualizer.cjs +1 -2
- package/dist/components/robots/MotionGroupVisualizer.d.ts +0 -1
- package/dist/components/robots/MotionGroupVisualizer.js +4 -5
- package/dist/components/robots/Robot.cjs +1 -2
- package/dist/components/robots/Robot.d.ts +0 -1
- package/dist/components/robots/Robot.js +0 -1
- package/dist/components/robots/RobotAnimator.cjs +1 -2
- package/dist/components/robots/RobotAnimator.d.ts +0 -1
- package/dist/components/robots/RobotAnimator.js +0 -1
- package/dist/components/robots/SupportedLinearAxis.cjs +1 -2
- package/dist/components/robots/SupportedLinearAxis.d.ts +0 -1
- package/dist/components/robots/SupportedLinearAxis.js +7 -8
- package/dist/components/robots/SupportedRobot.cjs +1 -2
- package/dist/components/robots/SupportedRobot.d.ts +0 -1
- package/dist/components/robots/SupportedRobot.js +6 -7
- package/dist/components/robots/ghostStyle.cjs +0 -1
- package/dist/components/robots/ghostStyle.d.ts +0 -1
- package/dist/components/robots/ghostStyle.js +0 -1
- package/dist/components/robots/manufacturerHomePositions.cjs +0 -1
- package/dist/components/robots/manufacturerHomePositions.d.ts +0 -1
- package/dist/components/robots/manufacturerHomePositions.js +0 -1
- package/dist/components/robots/robotModelLogic.cjs +1 -2
- package/dist/components/robots/robotModelLogic.d.ts +0 -1
- package/dist/components/robots/robotModelLogic.js +58 -34
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs +1 -2
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +0 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.js +10 -12
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs +0 -1
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +0 -1
- package/dist/components/safetyBar/IndicatorWithExplanation.js +0 -1
- package/dist/components/safetyBar/OperationModeIndicator.cjs +1 -2
- package/dist/components/safetyBar/OperationModeIndicator.d.ts +0 -1
- package/dist/components/safetyBar/OperationModeIndicator.js +21 -24
- package/dist/components/safetyBar/SafetyBar.cjs +1 -2
- package/dist/components/safetyBar/SafetyBar.d.ts +0 -1
- package/dist/components/safetyBar/SafetyBar.js +15 -16
- package/dist/components/safetyBar/SafetyStateIndicator.cjs +1 -2
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts +0 -1
- package/dist/components/safetyBar/SafetyStateIndicator.js +25 -30
- package/dist/components/safetyBar/icons/index.cjs +1 -0
- package/dist/components/safetyBar/icons/index.d.ts +0 -1
- package/dist/components/safetyBar/icons/index.js +15 -0
- package/dist/components/utils/converters.cjs +1 -2
- package/dist/components/utils/converters.d.ts +0 -1
- package/dist/components/utils/converters.js +26 -11
- package/dist/components/utils/errorHandling.cjs +1 -2
- package/dist/components/utils/errorHandling.d.ts +0 -1
- package/dist/components/utils/errorHandling.js +17 -9
- package/dist/components/utils/hooks.cjs +0 -1
- package/dist/components/utils/hooks.d.ts +0 -1
- package/dist/components/utils/hooks.js +3 -4
- package/dist/components/utils/interpolation.cjs +0 -1
- package/dist/components/utils/interpolation.d.ts +0 -1
- package/dist/components/utils/interpolation.js +0 -1
- package/dist/core.cjs +1 -2
- package/dist/core.d.ts +0 -1
- package/dist/core.js +70 -75
- package/dist/externalizeComponent.d.ts +0 -1
- package/dist/i18n/config.d.ts +0 -1
- package/dist/icons/DropdownArrowIcon.d.ts +0 -1
- package/dist/icons/index.d.ts +0 -1
- package/dist/index.cjs +1 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.js +120 -140
- package/dist/lib/ConnectedMotionGroup.d.ts +0 -1
- package/dist/lib/JoggerConnection.d.ts +0 -1
- package/dist/lib/MotionStreamConnection.d.ts +0 -1
- package/dist/lib/motionStateUpdate.d.ts +0 -1
- package/dist/themes/createDarkTheme.d.ts +0 -1
- package/dist/themes/createLightTheme.d.ts +0 -1
- package/dist/themes/themeTypes.d.ts +0 -1
- package/dist/themes/theming.d.ts +0 -1
- package/dist/wb-icons.cjs +1 -2
- package/dist/wb-icons.d.ts +0 -1
- package/dist/wb-icons.js +28 -44
- package/package.json +5 -6
- package/dist/3d.cjs.map +0 -1
- package/dist/3d.d.ts.map +0 -1
- package/dist/3d.js.map +0 -1
- package/dist/Setup.d.ts.map +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +0 -1
- package/dist/components/3d-viewport/PresetEnvironment.cjs.map +0 -1
- package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +0 -1
- package/dist/components/3d-viewport/PresetEnvironment.js.map +0 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +0 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +0 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +0 -1
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +0 -1
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +0 -1
- package/dist/components/3d-viewport/TrajectoryRenderer.js.map +0 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +0 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +0 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.js.map +0 -1
- package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +0 -1
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +0 -1
- package/dist/components/3d-viewport/collider/ColliderElement.js.map +0 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +0 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +0 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +0 -1
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +0 -1
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +0 -1
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +0 -1
- package/dist/components/AppHeader.cjs.map +0 -1
- package/dist/components/AppHeader.d.ts.map +0 -1
- package/dist/components/AppHeader.js.map +0 -1
- package/dist/components/ConsoleFilter.cjs.map +0 -1
- package/dist/components/ConsoleFilter.d.ts.map +0 -1
- package/dist/components/ConsoleFilter.js.map +0 -1
- package/dist/components/CopyableText.cjs.map +0 -1
- package/dist/components/CopyableText.d.ts.map +0 -1
- package/dist/components/CopyableText.js.map +0 -1
- package/dist/components/CycleTimer/CycleTimer.d.ts.map +0 -1
- package/dist/components/CycleTimer/DefaultVariant.cjs.map +0 -1
- package/dist/components/CycleTimer/DefaultVariant.d.ts.map +0 -1
- package/dist/components/CycleTimer/DefaultVariant.js.map +0 -1
- package/dist/components/CycleTimer/SmallVariant.cjs.map +0 -1
- package/dist/components/CycleTimer/SmallVariant.d.ts.map +0 -1
- package/dist/components/CycleTimer/SmallVariant.js.map +0 -1
- package/dist/components/CycleTimer/index.cjs.map +0 -1
- package/dist/components/CycleTimer/index.d.ts.map +0 -1
- package/dist/components/CycleTimer/index.js.map +0 -1
- package/dist/components/CycleTimer/types.d.ts.map +0 -1
- package/dist/components/CycleTimer/useAnimations.cjs.map +0 -1
- package/dist/components/CycleTimer/useAnimations.d.ts.map +0 -1
- package/dist/components/CycleTimer/useAnimations.js.map +0 -1
- package/dist/components/CycleTimer/useTimerLogic.cjs.map +0 -1
- package/dist/components/CycleTimer/useTimerLogic.d.ts.map +0 -1
- package/dist/components/CycleTimer/useTimerLogic.js.map +0 -1
- package/dist/components/CycleTimer/utils.cjs.map +0 -1
- package/dist/components/CycleTimer/utils.d.ts.map +0 -1
- package/dist/components/CycleTimer/utils.js.map +0 -1
- package/dist/components/CycleTimer.cjs.map +0 -1
- package/dist/components/CycleTimer.d.ts.map +0 -1
- package/dist/components/CycleTimer.js.map +0 -1
- package/dist/components/DataGrid.cjs.map +0 -1
- package/dist/components/DataGrid.d.ts.map +0 -1
- package/dist/components/DataGrid.js.map +0 -1
- package/dist/components/LoadingCover.cjs.map +0 -1
- package/dist/components/LoadingCover.d.ts.map +0 -1
- package/dist/components/LoadingCover.js.map +0 -1
- package/dist/components/LogPanel.cjs.map +0 -1
- package/dist/components/LogPanel.d.ts.map +0 -1
- package/dist/components/LogPanel.js.map +0 -1
- package/dist/components/LogStore.cjs.map +0 -1
- package/dist/components/LogStore.d.ts.map +0 -1
- package/dist/components/LogStore.js.map +0 -1
- package/dist/components/LogViewer.cjs.map +0 -1
- package/dist/components/LogViewer.d.ts.map +0 -1
- package/dist/components/LogViewer.js.map +0 -1
- package/dist/components/ProgramControl.cjs.map +0 -1
- package/dist/components/ProgramControl.d.ts.map +0 -1
- package/dist/components/ProgramControl.js.map +0 -1
- package/dist/components/ProgramStateIndicator.cjs.map +0 -1
- package/dist/components/ProgramStateIndicator.d.ts.map +0 -1
- package/dist/components/ProgramStateIndicator.js.map +0 -1
- package/dist/components/RobotCard.cjs.map +0 -1
- package/dist/components/RobotCard.d.ts.map +0 -1
- package/dist/components/RobotCard.js.map +0 -1
- package/dist/components/RobotListItem.cjs.map +0 -1
- package/dist/components/RobotListItem.d.ts.map +0 -1
- package/dist/components/RobotListItem.js.map +0 -1
- package/dist/components/RobotSetupReadinessIndicator.cjs.map +0 -1
- package/dist/components/RobotSetupReadinessIndicator.d.ts.map +0 -1
- package/dist/components/RobotSetupReadinessIndicator.js.map +0 -1
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts +0 -2
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts.map +0 -1
- package/dist/components/SelectableFab.cjs.map +0 -1
- package/dist/components/SelectableFab.d.ts.map +0 -1
- package/dist/components/SelectableFab.js.map +0 -1
- package/dist/components/TabBar.cjs.map +0 -1
- package/dist/components/TabBar.d.ts.map +0 -1
- package/dist/components/TabBar.js.map +0 -1
- package/dist/components/ThemeSelect.d.ts.map +0 -1
- package/dist/components/Timer/Timer.d.ts.map +0 -1
- package/dist/components/Timer/TimerDefaultVariant.cjs.map +0 -1
- package/dist/components/Timer/TimerDefaultVariant.d.ts.map +0 -1
- package/dist/components/Timer/TimerDefaultVariant.js.map +0 -1
- package/dist/components/Timer/TimerSmallVariant.cjs.map +0 -1
- package/dist/components/Timer/TimerSmallVariant.d.ts.map +0 -1
- package/dist/components/Timer/TimerSmallVariant.js.map +0 -1
- package/dist/components/Timer/index.cjs.map +0 -1
- package/dist/components/Timer/index.d.ts.map +0 -1
- package/dist/components/Timer/index.js.map +0 -1
- package/dist/components/Timer/types.d.ts.map +0 -1
- package/dist/components/Timer/useTimerAnimations.cjs.map +0 -1
- package/dist/components/Timer/useTimerAnimations.d.ts.map +0 -1
- package/dist/components/Timer/useTimerAnimations.js.map +0 -1
- package/dist/components/Timer/useTimerLogic.cjs.map +0 -1
- package/dist/components/Timer/useTimerLogic.d.ts.map +0 -1
- package/dist/components/Timer/useTimerLogic.js.map +0 -1
- package/dist/components/Timer/utils.cjs.map +0 -1
- package/dist/components/Timer/utils.d.ts.map +0 -1
- package/dist/components/Timer/utils.js.map +0 -1
- package/dist/components/Timer.cjs.map +0 -1
- package/dist/components/Timer.d.ts.map +0 -1
- package/dist/components/Timer.js.map +0 -1
- package/dist/components/TransparentOverlay.d.ts.map +0 -1
- package/dist/components/VelocitySlider.cjs.map +0 -1
- package/dist/components/VelocitySlider.d.ts.map +0 -1
- package/dist/components/VelocitySlider.js.map +0 -1
- package/dist/components/experimental/utils/AdornedSelect.cjs.map +0 -1
- package/dist/components/experimental/utils/AdornedSelect.d.ts.map +0 -1
- package/dist/components/experimental/utils/AdornedSelect.js.map +0 -1
- package/dist/components/jogging/JoggingBlocked.cjs.map +0 -1
- package/dist/components/jogging/JoggingBlocked.d.ts.map +0 -1
- package/dist/components/jogging/JoggingBlocked.js.map +0 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +0 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +0 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.js.map +0 -1
- package/dist/components/jogging/JoggingCartesianTab.cjs.map +0 -1
- package/dist/components/jogging/JoggingCartesianTab.d.ts.map +0 -1
- package/dist/components/jogging/JoggingCartesianTab.js.map +0 -1
- package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +0 -1
- package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +0 -1
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +0 -1
- package/dist/components/jogging/JoggingJointLimitDetector.js.map +0 -1
- package/dist/components/jogging/JoggingJointTab.cjs.map +0 -1
- package/dist/components/jogging/JoggingJointTab.d.ts.map +0 -1
- package/dist/components/jogging/JoggingJointTab.js.map +0 -1
- package/dist/components/jogging/JoggingJointValueControl.cjs.map +0 -1
- package/dist/components/jogging/JoggingJointValueControl.d.ts.map +0 -1
- package/dist/components/jogging/JoggingJointValueControl.js.map +0 -1
- package/dist/components/jogging/JoggingOptions.cjs.map +0 -1
- package/dist/components/jogging/JoggingOptions.d.ts.map +0 -1
- package/dist/components/jogging/JoggingOptions.js.map +0 -1
- package/dist/components/jogging/JoggingPanel.cjs.map +0 -1
- package/dist/components/jogging/JoggingPanel.d.ts.map +0 -1
- package/dist/components/jogging/JoggingPanel.js.map +0 -1
- package/dist/components/jogging/JoggingPanel.test.d.ts +0 -2
- package/dist/components/jogging/JoggingPanel.test.d.ts.map +0 -1
- package/dist/components/jogging/JoggingStore.cjs.map +0 -1
- package/dist/components/jogging/JoggingStore.d.ts.map +0 -1
- package/dist/components/jogging/JoggingStore.js.map +0 -1
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +0 -1
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +0 -1
- package/dist/components/jogging/JoggingToggleButtonGroup.js.map +0 -1
- package/dist/components/jogging/JoggingVelocitySlider.cjs.map +0 -1
- package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +0 -1
- package/dist/components/jogging/JoggingVelocitySlider.js.map +0 -1
- package/dist/components/jogging/PoseCartesianValues.cjs.map +0 -1
- package/dist/components/jogging/PoseCartesianValues.d.ts.map +0 -1
- package/dist/components/jogging/PoseCartesianValues.js.map +0 -1
- package/dist/components/jogging/PoseJointValues.cjs.map +0 -1
- package/dist/components/jogging/PoseJointValues.d.ts.map +0 -1
- package/dist/components/jogging/PoseJointValues.js.map +0 -1
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts +0 -11
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts.map +0 -1
- package/dist/components/modal/NoMotionGroupModal.cjs.map +0 -1
- package/dist/components/modal/NoMotionGroupModal.d.ts.map +0 -1
- package/dist/components/modal/NoMotionGroupModal.js.map +0 -1
- package/dist/components/robots/AxisConfig.cjs.map +0 -1
- package/dist/components/robots/AxisConfig.d.ts.map +0 -1
- package/dist/components/robots/AxisConfig.js.map +0 -1
- package/dist/components/robots/DHLinearAxis.cjs.map +0 -1
- package/dist/components/robots/DHLinearAxis.d.ts.map +0 -1
- package/dist/components/robots/DHLinearAxis.js.map +0 -1
- package/dist/components/robots/DHRobot.cjs.map +0 -1
- package/dist/components/robots/DHRobot.d.ts.map +0 -1
- package/dist/components/robots/DHRobot.js.map +0 -1
- package/dist/components/robots/GenericRobot.cjs.map +0 -1
- package/dist/components/robots/GenericRobot.d.ts.map +0 -1
- package/dist/components/robots/GenericRobot.js.map +0 -1
- package/dist/components/robots/LinearAxis.cjs.map +0 -1
- package/dist/components/robots/LinearAxis.d.ts.map +0 -1
- package/dist/components/robots/LinearAxis.js.map +0 -1
- package/dist/components/robots/LinearAxisAnimator.cjs.map +0 -1
- package/dist/components/robots/LinearAxisAnimator.d.ts.map +0 -1
- package/dist/components/robots/LinearAxisAnimator.js.map +0 -1
- package/dist/components/robots/MotionGroupVisualizer.cjs.map +0 -1
- package/dist/components/robots/MotionGroupVisualizer.d.ts.map +0 -1
- package/dist/components/robots/MotionGroupVisualizer.js.map +0 -1
- package/dist/components/robots/Robot.cjs.map +0 -1
- package/dist/components/robots/Robot.d.ts.map +0 -1
- package/dist/components/robots/Robot.js.map +0 -1
- package/dist/components/robots/RobotAnimator.cjs.map +0 -1
- package/dist/components/robots/RobotAnimator.d.ts.map +0 -1
- package/dist/components/robots/RobotAnimator.js.map +0 -1
- package/dist/components/robots/RobotAnimator.test.d.ts +0 -2
- package/dist/components/robots/RobotAnimator.test.d.ts.map +0 -1
- package/dist/components/robots/SupportedLinearAxis.cjs.map +0 -1
- package/dist/components/robots/SupportedLinearAxis.d.ts.map +0 -1
- package/dist/components/robots/SupportedLinearAxis.js.map +0 -1
- package/dist/components/robots/SupportedRobot.cjs.map +0 -1
- package/dist/components/robots/SupportedRobot.d.ts.map +0 -1
- package/dist/components/robots/SupportedRobot.js.map +0 -1
- package/dist/components/robots/ghostStyle.cjs.map +0 -1
- package/dist/components/robots/ghostStyle.d.ts.map +0 -1
- package/dist/components/robots/ghostStyle.js.map +0 -1
- package/dist/components/robots/manufacturerHomePositions.cjs.map +0 -1
- package/dist/components/robots/manufacturerHomePositions.d.ts.map +0 -1
- package/dist/components/robots/manufacturerHomePositions.js.map +0 -1
- package/dist/components/robots/robotModelLogic.cjs.map +0 -1
- package/dist/components/robots/robotModelLogic.d.ts.map +0 -1
- package/dist/components/robots/robotModelLogic.js.map +0 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +0 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +0 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.js.map +0 -1
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +0 -1
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +0 -1
- package/dist/components/safetyBar/IndicatorWithExplanation.js.map +0 -1
- package/dist/components/safetyBar/OperationModeIndicator.cjs.map +0 -1
- package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +0 -1
- package/dist/components/safetyBar/OperationModeIndicator.js.map +0 -1
- package/dist/components/safetyBar/SafetyBar.cjs.map +0 -1
- package/dist/components/safetyBar/SafetyBar.d.ts.map +0 -1
- package/dist/components/safetyBar/SafetyBar.js.map +0 -1
- package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +0 -1
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +0 -1
- package/dist/components/safetyBar/SafetyStateIndicator.js.map +0 -1
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +0 -1
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +0 -11
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +0 -1
- package/dist/components/safetyBar/icons/index.d.ts.map +0 -1
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +0 -11
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +0 -1
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js +0 -11
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +0 -1
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +0 -11
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/safety-state-error.svg.js +0 -11
- package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js +0 -11
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +0 -11
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js +0 -11
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +0 -2
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +0 -1
- package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +0 -3
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js +0 -11
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +0 -1
- package/dist/components/utils/converters.cjs.map +0 -1
- package/dist/components/utils/converters.d.ts.map +0 -1
- package/dist/components/utils/converters.js.map +0 -1
- package/dist/components/utils/errorHandling.cjs.map +0 -1
- package/dist/components/utils/errorHandling.d.ts.map +0 -1
- package/dist/components/utils/errorHandling.js.map +0 -1
- package/dist/components/utils/errorHandling.test.d.ts +0 -2
- package/dist/components/utils/errorHandling.test.d.ts.map +0 -1
- package/dist/components/utils/hooks.cjs.map +0 -1
- package/dist/components/utils/hooks.d.ts.map +0 -1
- package/dist/components/utils/hooks.js.map +0 -1
- package/dist/components/utils/interpolation.cjs.map +0 -1
- package/dist/components/utils/interpolation.d.ts.map +0 -1
- package/dist/components/utils/interpolation.js.map +0 -1
- package/dist/components/utils/interpolation.test.d.ts +0 -2
- package/dist/components/utils/interpolation.test.d.ts.map +0 -1
- package/dist/core.cjs.map +0 -1
- package/dist/core.d.ts.map +0 -1
- package/dist/core.js.map +0 -1
- package/dist/externalizeComponent.cjs +0 -2
- package/dist/externalizeComponent.cjs.map +0 -1
- package/dist/externalizeComponent.d.ts.map +0 -1
- package/dist/externalizeComponent.js +0 -13
- package/dist/externalizeComponent.js.map +0 -1
- package/dist/i18n/config.cjs +0 -2
- package/dist/i18n/config.cjs.map +0 -1
- package/dist/i18n/config.d.ts.map +0 -1
- package/dist/i18n/config.js +0 -25
- package/dist/i18n/config.js.map +0 -1
- package/dist/i18n/locales/de/translations.json.cjs +0 -3
- package/dist/i18n/locales/de/translations.json.cjs.map +0 -1
- package/dist/i18n/locales/de/translations.json.js +0 -94
- package/dist/i18n/locales/de/translations.json.js.map +0 -1
- package/dist/i18n/locales/en/translations.json.cjs +0 -2
- package/dist/i18n/locales/en/translations.json.cjs.map +0 -1
- package/dist/i18n/locales/en/translations.json.js +0 -94
- package/dist/i18n/locales/en/translations.json.js.map +0 -1
- package/dist/icons/DropdownArrowIcon.cjs +0 -2
- package/dist/icons/DropdownArrowIcon.cjs.map +0 -1
- package/dist/icons/DropdownArrowIcon.d.ts.map +0 -1
- package/dist/icons/DropdownArrowIcon.js +0 -14
- package/dist/icons/DropdownArrowIcon.js.map +0 -1
- package/dist/icons/axis-x.svg.cjs +0 -2
- package/dist/icons/axis-x.svg.cjs.map +0 -1
- package/dist/icons/axis-x.svg.d.ts +0 -3
- package/dist/icons/axis-x.svg.js +0 -11
- package/dist/icons/axis-x.svg.js.map +0 -1
- package/dist/icons/axis-y.svg.cjs +0 -2
- package/dist/icons/axis-y.svg.cjs.map +0 -1
- package/dist/icons/axis-y.svg.d.ts +0 -3
- package/dist/icons/axis-y.svg.js +0 -11
- package/dist/icons/axis-y.svg.js.map +0 -1
- package/dist/icons/axis-z.svg.cjs +0 -2
- package/dist/icons/axis-z.svg.cjs.map +0 -1
- package/dist/icons/axis-z.svg.d.ts +0 -3
- package/dist/icons/axis-z.svg.js +0 -11
- package/dist/icons/axis-z.svg.js.map +0 -1
- package/dist/icons/home.svg.cjs +0 -2
- package/dist/icons/home.svg.cjs.map +0 -1
- package/dist/icons/home.svg.d.ts +0 -3
- package/dist/icons/home.svg.js +0 -11
- package/dist/icons/home.svg.js.map +0 -1
- package/dist/icons/index.d.ts.map +0 -1
- package/dist/icons/jog-minus.svg.cjs +0 -2
- package/dist/icons/jog-minus.svg.cjs.map +0 -1
- package/dist/icons/jog-minus.svg.d.ts +0 -3
- package/dist/icons/jog-minus.svg.js +0 -11
- package/dist/icons/jog-minus.svg.js.map +0 -1
- package/dist/icons/jog-plus.svg.cjs +0 -2
- package/dist/icons/jog-plus.svg.cjs.map +0 -1
- package/dist/icons/jog-plus.svg.d.ts +0 -3
- package/dist/icons/jog-plus.svg.js +0 -11
- package/dist/icons/jog-plus.svg.js.map +0 -1
- package/dist/icons/jogging.svg.cjs +0 -2
- package/dist/icons/jogging.svg.cjs.map +0 -1
- package/dist/icons/jogging.svg.d.ts +0 -3
- package/dist/icons/jogging.svg.js +0 -11
- package/dist/icons/jogging.svg.js.map +0 -1
- package/dist/icons/orientation-coord-system.svg.cjs +0 -2
- package/dist/icons/orientation-coord-system.svg.cjs.map +0 -1
- package/dist/icons/orientation-coord-system.svg.d.ts +0 -3
- package/dist/icons/orientation-coord-system.svg.js +0 -11
- package/dist/icons/orientation-coord-system.svg.js.map +0 -1
- package/dist/icons/orientation-tool.svg.cjs +0 -2
- package/dist/icons/orientation-tool.svg.cjs.map +0 -1
- package/dist/icons/orientation-tool.svg.d.ts +0 -3
- package/dist/icons/orientation-tool.svg.js +0 -11
- package/dist/icons/orientation-tool.svg.js.map +0 -1
- package/dist/icons/robot.svg.cjs +0 -2
- package/dist/icons/robot.svg.cjs.map +0 -1
- package/dist/icons/robot.svg.d.ts +0 -3
- package/dist/icons/robot.svg.js.map +0 -1
- package/dist/icons/rotation.svg.cjs +0 -2
- package/dist/icons/rotation.svg.cjs.map +0 -1
- package/dist/icons/rotation.svg.d.ts +0 -3
- package/dist/icons/rotation.svg.js +0 -11
- package/dist/icons/rotation.svg.js.map +0 -1
- package/dist/icons/wbLogo.svg.cjs +0 -2
- package/dist/icons/wbLogo.svg.cjs.map +0 -1
- package/dist/icons/wbLogo.svg.d.ts +0 -3
- package/dist/icons/wbLogo.svg.js +0 -11
- package/dist/icons/wbLogo.svg.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/ConnectedMotionGroup.cjs +0 -4
- package/dist/lib/ConnectedMotionGroup.cjs.map +0 -1
- package/dist/lib/ConnectedMotionGroup.d.ts.map +0 -1
- package/dist/lib/ConnectedMotionGroup.js +0 -250
- package/dist/lib/ConnectedMotionGroup.js.map +0 -1
- package/dist/lib/JoggerConnection.cjs +0 -2
- package/dist/lib/JoggerConnection.cjs.map +0 -1
- package/dist/lib/JoggerConnection.d.ts.map +0 -1
- package/dist/lib/JoggerConnection.js +0 -342
- package/dist/lib/JoggerConnection.js.map +0 -1
- package/dist/lib/JoggerConnection.test.d.ts +0 -2
- package/dist/lib/JoggerConnection.test.d.ts.map +0 -1
- package/dist/lib/MotionStreamConnection.cjs +0 -3
- package/dist/lib/MotionStreamConnection.cjs.map +0 -1
- package/dist/lib/MotionStreamConnection.d.ts.map +0 -1
- package/dist/lib/MotionStreamConnection.js +0 -94
- package/dist/lib/MotionStreamConnection.js.map +0 -1
- package/dist/lib/MotionStreamConnection.test.d.ts +0 -2
- package/dist/lib/MotionStreamConnection.test.d.ts.map +0 -1
- package/dist/lib/motionStateUpdate.cjs +0 -2
- package/dist/lib/motionStateUpdate.cjs.map +0 -1
- package/dist/lib/motionStateUpdate.d.ts.map +0 -1
- package/dist/lib/motionStateUpdate.js +0 -49
- package/dist/lib/motionStateUpdate.js.map +0 -1
- package/dist/lib/motionStateUpdate.test.d.ts +0 -2
- package/dist/lib/motionStateUpdate.test.d.ts.map +0 -1
- package/dist/test/consumer.test.d.ts +0 -2
- package/dist/test/consumer.test.d.ts.map +0 -1
- package/dist/test/setup.d.ts +0 -2
- package/dist/test/setup.d.ts.map +0 -1
- package/dist/themes/createDarkTheme.cjs +0 -2
- package/dist/themes/createDarkTheme.cjs.map +0 -1
- package/dist/themes/createDarkTheme.d.ts.map +0 -1
- package/dist/themes/createDarkTheme.js +0 -344
- package/dist/themes/createDarkTheme.js.map +0 -1
- package/dist/themes/createLightTheme.cjs +0 -2
- package/dist/themes/createLightTheme.cjs.map +0 -1
- package/dist/themes/createLightTheme.d.ts.map +0 -1
- package/dist/themes/createLightTheme.js +0 -9
- package/dist/themes/createLightTheme.js.map +0 -1
- package/dist/themes/themeTypes.d.ts.map +0 -1
- package/dist/themes/theming.cjs +0 -2
- package/dist/themes/theming.cjs.map +0 -1
- package/dist/themes/theming.d.ts.map +0 -1
- package/dist/themes/theming.js +0 -14
- package/dist/themes/theming.js.map +0 -1
- package/dist/wb-icons.cjs.map +0 -1
- package/dist/wb-icons.d.ts.map +0 -1
- package/dist/wb-icons.js.map +0 -1
- package/src/3d.ts +0 -18
- package/src/Setup.tsx +0 -33
- package/src/components/3d-viewport/CoordinateSystemTransform.tsx +0 -57
- package/src/components/3d-viewport/PresetEnvironment.tsx +0 -81
- package/src/components/3d-viewport/SafetyZonesRenderer.tsx +0 -198
- package/src/components/3d-viewport/TrajectoryRenderer.tsx +0 -41
- package/src/components/3d-viewport/collider/ColliderCollection.tsx +0 -35
- package/src/components/3d-viewport/collider/ColliderElement.tsx +0 -36
- package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +0 -26
- package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +0 -48
- package/src/components/AppHeader.md +0 -84
- package/src/components/AppHeader.tsx +0 -197
- package/src/components/ConsoleFilter.tsx +0 -24
- package/src/components/CopyableText.tsx +0 -89
- package/src/components/CycleTimer/CycleTimer.ts +0 -8
- package/src/components/CycleTimer/DefaultVariant.tsx +0 -326
- package/src/components/CycleTimer/SmallVariant.tsx +0 -229
- package/src/components/CycleTimer/index.tsx +0 -158
- package/src/components/CycleTimer/types.ts +0 -58
- package/src/components/CycleTimer/useAnimations.ts +0 -202
- package/src/components/CycleTimer/useTimerLogic.ts +0 -330
- package/src/components/CycleTimer/utils.ts +0 -122
- package/src/components/CycleTimer.tsx +0 -8
- package/src/components/DataGrid.tsx +0 -664
- package/src/components/LoadingCover.tsx +0 -91
- package/src/components/LogPanel.tsx +0 -71
- package/src/components/LogStore.ts +0 -46
- package/src/components/LogViewer.tsx +0 -368
- package/src/components/ProgramControl.tsx +0 -267
- package/src/components/ProgramStateIndicator.tsx +0 -195
- package/src/components/RobotCard.tsx +0 -495
- package/src/components/RobotListItem.tsx +0 -155
- package/src/components/RobotSetupReadinessIndicator.test.tsx +0 -60
- package/src/components/RobotSetupReadinessIndicator.tsx +0 -161
- package/src/components/SelectableFab.tsx +0 -52
- package/src/components/TabBar.tsx +0 -325
- package/src/components/ThemeSelect.tsx +0 -51
- package/src/components/Timer/Timer.ts +0 -4
- package/src/components/Timer/TimerDefaultVariant.tsx +0 -143
- package/src/components/Timer/TimerSmallVariant.tsx +0 -141
- package/src/components/Timer/index.tsx +0 -103
- package/src/components/Timer/types.ts +0 -38
- package/src/components/Timer/useTimerAnimations.ts +0 -94
- package/src/components/Timer/useTimerLogic.ts +0 -214
- package/src/components/Timer/utils.ts +0 -87
- package/src/components/Timer.ts +0 -4
- package/src/components/TransparentOverlay.tsx +0 -28
- package/src/components/VelocitySlider.tsx +0 -117
- package/src/components/experimental/utils/AdornedSelect.tsx +0 -38
- package/src/components/jogging/JoggingBlocked.tsx +0 -43
- package/src/components/jogging/JoggingCartesianAxisControl.tsx +0 -237
- package/src/components/jogging/JoggingCartesianTab.tsx +0 -349
- package/src/components/jogging/JoggingFreedriveTab.tsx +0 -8
- package/src/components/jogging/JoggingJointLimitDetector.tsx +0 -57
- package/src/components/jogging/JoggingJointTab.tsx +0 -126
- package/src/components/jogging/JoggingJointValueControl.tsx +0 -293
- package/src/components/jogging/JoggingOptions.tsx +0 -163
- package/src/components/jogging/JoggingPanel.test.tsx +0 -645
- package/src/components/jogging/JoggingPanel.tsx +0 -204
- package/src/components/jogging/JoggingStore.ts +0 -485
- package/src/components/jogging/JoggingToggleButtonGroup.tsx +0 -25
- package/src/components/jogging/JoggingVelocitySlider.tsx +0 -39
- package/src/components/jogging/PoseCartesianValues.tsx +0 -55
- package/src/components/jogging/PoseJointValues.tsx +0 -54
- package/src/components/jogging/__fixtures__/motionStreamMockData.ts +0 -136
- package/src/components/modal/NoMotionGroupModal.tsx +0 -91
- package/src/components/robots/AxisConfig.ts +0 -3
- package/src/components/robots/DHLinearAxis.tsx +0 -147
- package/src/components/robots/DHRobot.tsx +0 -152
- package/src/components/robots/GenericRobot.tsx +0 -137
- package/src/components/robots/LinearAxis.tsx +0 -74
- package/src/components/robots/LinearAxisAnimator.tsx +0 -118
- package/src/components/robots/MotionGroupVisualizer.tsx +0 -73
- package/src/components/robots/Robot.tsx +0 -57
- package/src/components/robots/RobotAnimator.test.tsx +0 -98
- package/src/components/robots/RobotAnimator.tsx +0 -116
- package/src/components/robots/SupportedLinearAxis.tsx +0 -110
- package/src/components/robots/SupportedRobot.tsx +0 -111
- package/src/components/robots/ghostStyle.ts +0 -71
- package/src/components/robots/manufacturerHomePositions.ts +0 -76
- package/src/components/robots/robotModelLogic.ts +0 -158
- package/src/components/safetyBar/ControllerTypeIndicator.tsx +0 -79
- package/src/components/safetyBar/IndicatorWithExplanation.tsx +0 -137
- package/src/components/safetyBar/OperationModeIndicator.tsx +0 -98
- package/src/components/safetyBar/SafetyBar.tsx +0 -72
- package/src/components/safetyBar/SafetyStateIndicator.tsx +0 -163
- package/src/components/safetyBar/icons/controller-type-physical.svg +0 -1
- package/src/components/safetyBar/icons/controller-type-virtual.svg +0 -1
- package/src/components/safetyBar/icons/index.ts +0 -10
- package/src/components/safetyBar/icons/operation-mode-automatic.svg +0 -1
- package/src/components/safetyBar/icons/operation-mode-error.svg +0 -1
- package/src/components/safetyBar/icons/operation-mode-manual.svg +0 -1
- package/src/components/safetyBar/icons/safety-state-error.svg +0 -1
- package/src/components/safetyBar/icons/safety-state-estop.svg +0 -1
- package/src/components/safetyBar/icons/safety-state-manual-action-required.svg +0 -1
- package/src/components/safetyBar/icons/safety-state-normal.svg +0 -1
- package/src/components/safetyBar/icons/safety-state-stop.svg +0 -1
- package/src/components/utils/converters.ts +0 -90
- package/src/components/utils/errorHandling.test.ts +0 -41
- package/src/components/utils/errorHandling.ts +0 -38
- package/src/components/utils/hooks.tsx +0 -55
- package/src/components/utils/interpolation.test.ts +0 -1138
- package/src/components/utils/interpolation.ts +0 -380
- package/src/core.ts +0 -33
- package/src/declarations.d.ts +0 -10
- package/src/env.d.ts +0 -3
- package/src/externalizeComponent.tsx +0 -28
- package/src/i18n/config.ts +0 -26
- package/src/i18n/locales/de/translations.json +0 -89
- package/src/i18n/locales/en/translations.json +0 -90
- package/src/icons/DropdownArrowIcon.tsx +0 -12
- package/src/icons/axis-x.svg +0 -1
- package/src/icons/axis-y.svg +0 -1
- package/src/icons/axis-z.svg +0 -1
- package/src/icons/home.svg +0 -1
- package/src/icons/index.ts +0 -12
- package/src/icons/jog-minus.svg +0 -5
- package/src/icons/jog-plus.svg +0 -9
- package/src/icons/jogging.svg +0 -1
- package/src/icons/orientation-coord-system.svg +0 -1
- package/src/icons/orientation-tool.svg +0 -1
- package/src/icons/robot.svg +0 -1
- package/src/icons/rotation.svg +0 -3
- package/src/icons/wbLogo.svg +0 -1
- package/src/index.ts +0 -4
- package/src/lib/ConnectedMotionGroup.ts +0 -441
- package/src/lib/JoggerConnection.test.ts +0 -122
- package/src/lib/JoggerConnection.ts +0 -694
- package/src/lib/MotionStreamConnection.test.ts +0 -23
- package/src/lib/MotionStreamConnection.ts +0 -186
- package/src/lib/motionStateUpdate.test.ts +0 -28
- package/src/lib/motionStateUpdate.ts +0 -117
- package/src/test/consumer.test.ts +0 -230
- package/src/test/setup.ts +0 -111
- package/src/themes/createDarkTheme.ts +0 -343
- package/src/themes/createLightTheme.ts +0 -8
- package/src/themes/themeTypes.ts +0 -96
- package/src/themes/theming.ts +0 -29
- package/src/wb-icons.ts +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GenericRobot.cjs","sources":["../../../src/components/robots/GenericRobot.tsx"],"sourcesContent":["import { useGLTF } from \"@react-three/drei\"\nimport type { ThreeElements } from \"@react-three/fiber\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useState } from \"react\"\nimport type { Group, Mesh, Object3D } from \"three\"\nimport { isFlange, parseRobotModel } from \"./robotModelLogic\"\n\nexport type RobotModelProps = {\n modelURL: string | Promise<string>\n /**\n * Called after a robot model has been loaded and\n * rendered into the threejs scene\n */\n postModelRender?: () => void\n flangeRef?: React.Ref<Group>\n} & ThreeElements[\"group\"]\n\nfunction isMesh(node: Object3D): node is Mesh {\n return node.type === \"Mesh\"\n}\n\n// Separate component that only renders when we have a valid URL\nfunction LoadedRobotModel({\n url,\n flangeRef,\n postModelRender,\n ...props\n}: {\n url: string\n flangeRef?: React.Ref<Group>\n postModelRender?: () => void\n} & ThreeElements[\"group\"]) {\n const gltfResult = useGLTF(url)\n const parsed = parseRobotModel(gltfResult, \"robot.glb\")\n const gltf = parsed.gltf\n\n const groupRef: React.RefCallback<Group> = useCallback(\n (group) => {\n if (group && postModelRender) {\n postModelRender()\n }\n },\n [postModelRender],\n )\n\n function renderNode(node: Object3D): React.ReactNode {\n try {\n if (isMesh(node)) {\n // Defensive: only render mesh if geometry exists\n if ((node as Mesh).geometry) {\n return (\n <mesh\n name={node.name}\n key={node.uuid}\n geometry={(node as Mesh).geometry}\n material={(node as Mesh).material}\n position={node.position}\n rotation={node.rotation}\n />\n )\n }\n // Fallback to empty group if geometry is missing\n return (\n <group\n name={node.name}\n key={node.uuid}\n position={node.position}\n rotation={node.rotation}\n />\n )\n } else {\n return (\n <group\n name={node.name}\n key={node.uuid}\n position={node.position}\n rotation={node.rotation}\n ref={isFlange(node) ? flangeRef : undefined}\n >\n {node.children.map(renderNode)}\n </group>\n )\n }\n } catch (e) {\n console.warn(\"Error rendering node\", node.name, e)\n return null\n }\n }\n\n return (\n <group {...props} dispose={null} ref={groupRef}>\n {renderNode(gltf.scene)}\n </group>\n )\n}\n\nexport function GenericRobot({\n modelURL,\n flangeRef,\n postModelRender,\n ...props\n}: RobotModelProps) {\n const [resolvedURL, setResolvedURL] = useState<string | null>(null)\n\n useEffect(() => {\n const resolveURL = async () => {\n try {\n if (typeof modelURL === \"string\") {\n setResolvedURL(modelURL)\n } else {\n const url = await modelURL\n setResolvedURL(url)\n }\n } catch (error) {\n console.error(\"Failed to resolve model URL:\", error)\n }\n }\n\n resolveURL()\n }, [modelURL])\n\n // Don't render until we have a resolved URL\n if (!resolvedURL) {\n return null // Loading state\n }\n\n return (\n <LoadedRobotModel\n url={resolvedURL}\n flangeRef={flangeRef}\n postModelRender={postModelRender}\n {...props}\n />\n )\n}\n\nexport default GenericRobot\n"],"names":["isMesh","node","LoadedRobotModel","url","flangeRef","postModelRender","props","gltfResult","useGLTF","gltf","parseRobotModel","groupRef","useCallback","group","renderNode","jsx","isFlange","e","GenericRobot","modelURL","resolvedURL","setResolvedURL","useState","useEffect","error"],"mappings":"sOAiBA,SAASA,EAAOC,EAA8B,CAC5C,OAAOA,EAAK,OAAS,MACvB,CAGA,SAASC,EAAiB,CACxB,IAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,GAAGC,CACL,EAI4B,CAC1B,MAAMC,EAAaC,EAAAA,QAAQL,CAAG,EAExBM,EADSC,EAAAA,gBAAgBH,EAAY,WAAW,EAClC,KAEdI,EAAqCC,EAAAA,YACxCC,GAAU,CACLA,GAASR,GACXA,EAAA,CAEJ,EACA,CAACA,CAAe,CAAA,EAGlB,SAASS,EAAWb,EAAiC,CACnD,GAAI,CACF,OAAID,EAAOC,CAAI,EAERA,EAAc,SAEfc,EAAAA,IAAC,OAAA,CACC,KAAMd,EAAK,KAEX,SAAWA,EAAc,SACzB,SAAWA,EAAc,SACzB,SAAUA,EAAK,SACf,SAAUA,EAAK,QAAA,EAJVA,EAAK,IAAA,EAUdc,EAAAA,IAAC,QAAA,CACC,KAAMd,EAAK,KAEX,SAAUA,EAAK,SACf,SAAUA,EAAK,QAAA,EAFVA,EAAK,IAAA,EAOZc,EAAAA,IAAC,QAAA,CACC,KAAMd,EAAK,KAEX,SAAUA,EAAK,SACf,SAAUA,EAAK,SACf,IAAKe,EAAAA,SAASf,CAAI,EAAIG,EAAY,OAEjC,SAAAH,EAAK,SAAS,IAAIa,CAAU,CAAA,EALxBb,EAAK,IAAA,CASlB,OAASgB,EAAG,CACV,eAAQ,KAAK,uBAAwBhB,EAAK,KAAMgB,CAAC,EAC1C,IACT,CACF,CAEA,OACEF,EAAAA,IAAC,QAAA,CAAO,GAAGT,EAAO,QAAS,KAAM,IAAKK,EACnC,SAAAG,EAAWL,EAAK,KAAK,CAAA,CACxB,CAEJ,CAEO,SAASS,EAAa,CAC3B,SAAAC,EACA,UAAAf,EACA,gBAAAC,EACA,GAAGC,CACL,EAAoB,CAClB,KAAM,CAACc,EAAaC,CAAc,EAAIC,EAAAA,SAAwB,IAAI,EAoBlE,OAlBAC,EAAAA,UAAU,IAAM,EACK,SAAY,CAC7B,GAAI,CACF,GAAI,OAAOJ,GAAa,SACtBE,EAAeF,CAAQ,MAClB,CACL,MAAMhB,EAAM,MAAMgB,EAClBE,EAAelB,CAAG,CACpB,CACF,OAASqB,EAAO,CACd,QAAQ,MAAM,+BAAgCA,CAAK,CACrD,CACF,GAEA,CACF,EAAG,CAACL,CAAQ,CAAC,EAGRC,EAKHL,EAAAA,IAACb,EAAA,CACC,IAAKkB,EACL,UAAAhB,EACA,gBAAAC,EACC,GAAGC,CAAA,CAAA,EARC,IAWX"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GenericRobot.d.ts","sourceRoot":"","sources":["../../../src/components/robots/GenericRobot.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAGlD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAClC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;CAC7B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAiF1B,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,eAAe,EACf,GAAG,KAAK,EACT,EAAE,eAAe,kDAiCjB;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GenericRobot.js","sources":["../../../src/components/robots/GenericRobot.tsx"],"sourcesContent":["import { useGLTF } from \"@react-three/drei\"\nimport type { ThreeElements } from \"@react-three/fiber\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useState } from \"react\"\nimport type { Group, Mesh, Object3D } from \"three\"\nimport { isFlange, parseRobotModel } from \"./robotModelLogic\"\n\nexport type RobotModelProps = {\n modelURL: string | Promise<string>\n /**\n * Called after a robot model has been loaded and\n * rendered into the threejs scene\n */\n postModelRender?: () => void\n flangeRef?: React.Ref<Group>\n} & ThreeElements[\"group\"]\n\nfunction isMesh(node: Object3D): node is Mesh {\n return node.type === \"Mesh\"\n}\n\n// Separate component that only renders when we have a valid URL\nfunction LoadedRobotModel({\n url,\n flangeRef,\n postModelRender,\n ...props\n}: {\n url: string\n flangeRef?: React.Ref<Group>\n postModelRender?: () => void\n} & ThreeElements[\"group\"]) {\n const gltfResult = useGLTF(url)\n const parsed = parseRobotModel(gltfResult, \"robot.glb\")\n const gltf = parsed.gltf\n\n const groupRef: React.RefCallback<Group> = useCallback(\n (group) => {\n if (group && postModelRender) {\n postModelRender()\n }\n },\n [postModelRender],\n )\n\n function renderNode(node: Object3D): React.ReactNode {\n try {\n if (isMesh(node)) {\n // Defensive: only render mesh if geometry exists\n if ((node as Mesh).geometry) {\n return (\n <mesh\n name={node.name}\n key={node.uuid}\n geometry={(node as Mesh).geometry}\n material={(node as Mesh).material}\n position={node.position}\n rotation={node.rotation}\n />\n )\n }\n // Fallback to empty group if geometry is missing\n return (\n <group\n name={node.name}\n key={node.uuid}\n position={node.position}\n rotation={node.rotation}\n />\n )\n } else {\n return (\n <group\n name={node.name}\n key={node.uuid}\n position={node.position}\n rotation={node.rotation}\n ref={isFlange(node) ? flangeRef : undefined}\n >\n {node.children.map(renderNode)}\n </group>\n )\n }\n } catch (e) {\n console.warn(\"Error rendering node\", node.name, e)\n return null\n }\n }\n\n return (\n <group {...props} dispose={null} ref={groupRef}>\n {renderNode(gltf.scene)}\n </group>\n )\n}\n\nexport function GenericRobot({\n modelURL,\n flangeRef,\n postModelRender,\n ...props\n}: RobotModelProps) {\n const [resolvedURL, setResolvedURL] = useState<string | null>(null)\n\n useEffect(() => {\n const resolveURL = async () => {\n try {\n if (typeof modelURL === \"string\") {\n setResolvedURL(modelURL)\n } else {\n const url = await modelURL\n setResolvedURL(url)\n }\n } catch (error) {\n console.error(\"Failed to resolve model URL:\", error)\n }\n }\n\n resolveURL()\n }, [modelURL])\n\n // Don't render until we have a resolved URL\n if (!resolvedURL) {\n return null // Loading state\n }\n\n return (\n <LoadedRobotModel\n url={resolvedURL}\n flangeRef={flangeRef}\n postModelRender={postModelRender}\n {...props}\n />\n )\n}\n\nexport default GenericRobot\n"],"names":["isMesh","node","LoadedRobotModel","url","flangeRef","postModelRender","props","gltfResult","useGLTF","gltf","parseRobotModel","groupRef","useCallback","group","renderNode","jsx","isFlange","e","GenericRobot","modelURL","resolvedURL","setResolvedURL","useState","useEffect","error"],"mappings":";;;;AAiBA,SAASA,EAAOC,GAA8B;AAC5C,SAAOA,EAAK,SAAS;AACvB;AAGA,SAASC,EAAiB;AAAA,EACxB,KAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,GAI4B;AAC1B,QAAMC,IAAaC,EAAQL,CAAG,GAExBM,IADSC,EAAgBH,GAAY,WAAW,EAClC,MAEdI,IAAqCC;AAAA,IACzC,CAACC,MAAU;AACT,MAAIA,KAASR,KACXA,EAAA;AAAA,IAEJ;AAAA,IACA,CAACA,CAAe;AAAA,EAAA;AAGlB,WAASS,EAAWb,GAAiC;AACnD,QAAI;AACF,aAAID,EAAOC,CAAI,IAERA,EAAc,WAEf,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMd,EAAK;AAAA,UAEX,UAAWA,EAAc;AAAA,UACzB,UAAWA,EAAc;AAAA,UACzB,UAAUA,EAAK;AAAA,UACf,UAAUA,EAAK;AAAA,QAAA;AAAA,QAJVA,EAAK;AAAA,MAAA,IAUd,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMd,EAAK;AAAA,UAEX,UAAUA,EAAK;AAAA,UACf,UAAUA,EAAK;AAAA,QAAA;AAAA,QAFVA,EAAK;AAAA,MAAA,IAOZ,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMd,EAAK;AAAA,UAEX,UAAUA,EAAK;AAAA,UACf,UAAUA,EAAK;AAAA,UACf,KAAKe,EAASf,CAAI,IAAIG,IAAY;AAAA,UAEjC,UAAAH,EAAK,SAAS,IAAIa,CAAU;AAAA,QAAA;AAAA,QALxBb,EAAK;AAAA,MAAA;AAAA,IASlB,SAASgB,GAAG;AACV,qBAAQ,KAAK,wBAAwBhB,EAAK,MAAMgB,CAAC,GAC1C;AAAA,IACT;AAAA,EACF;AAEA,SACE,gBAAAF,EAAC,SAAA,EAAO,GAAGT,GAAO,SAAS,MAAM,KAAKK,GACnC,UAAAG,EAAWL,EAAK,KAAK,EAAA,CACxB;AAEJ;AAEO,SAASS,EAAa;AAAA,EAC3B,UAAAC;AAAA,EACA,WAAAf;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,GAAoB;AAClB,QAAM,CAACc,GAAaC,CAAc,IAAIC,EAAwB,IAAI;AAoBlE,SAlBAC,EAAU,MAAM;AAcd,KAbmB,YAAY;AAC7B,UAAI;AACF,YAAI,OAAOJ,KAAa;AACtB,UAAAE,EAAeF,CAAQ;AAAA,aAClB;AACL,gBAAMhB,IAAM,MAAMgB;AAClB,UAAAE,EAAelB,CAAG;AAAA,QACpB;AAAA,MACF,SAASqB,GAAO;AACd,gBAAQ,MAAM,gCAAgCA,CAAK;AAAA,MACrD;AAAA,IACF,GAEA;AAAA,EACF,GAAG,CAACL,CAAQ,CAAC,GAGRC,IAKH,gBAAAL;AAAA,IAACb;AAAA,IAAA;AAAA,MACC,KAAKkB;AAAA,MACL,WAAAhB;AAAA,MACA,iBAAAC;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA,IARC;AAWX;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinearAxis.cjs","sources":["../../../src/components/robots/LinearAxis.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\n\nimport type { Group } from \"three\"\nimport type { ConnectedMotionGroup } from \"../../lib/ConnectedMotionGroup\"\nimport { DHLinearAxis } from \"./DHLinearAxis\"\nimport { defaultGetModel } from \"./robotModelLogic\"\nimport { SupportedLinearAxis } from \"./SupportedLinearAxis\"\n\nexport type LinearAxisProps = {\n connectedMotionGroup: ConnectedMotionGroup\n getModel?: (modelFromController: string) => Promise<string>\n flangeRef?: React.Ref<Group>\n transparentColor?: string\n postModelRender?: () => void\n} & ThreeElements[\"group\"]\n\n/**\n * The LinearAxis component is a wrapper that renders SupportedLinearAxis if a model is available,\n * otherwise falls back to DHLinearAxis for usage with @wandelbots/nova-js ConnectedMotionGroup object.\n *\n * @param {LinearAxisProps} props - The properties for the LinearAxis component.\n * @param {ConnectedMotionGroup} props.connectedMotionGroup - The connected motion group containing motion state and parameters.\n * @param {Function} [props.getModel=defaultGetModel] - Optional function to get the model URL. Defaults to defaultGetModel.\n * @param {Object} props - Additional properties passed to the underlying component.\n *\n * @returns {JSX.Element} The rendered SupportedLinearAxis or DHLinearAxis component.\n */\nexport function LinearAxis({\n connectedMotionGroup,\n getModel = defaultGetModel,\n flangeRef,\n transparentColor,\n postModelRender,\n ...props\n}: LinearAxisProps) {\n if (!connectedMotionGroup.dhParameters) {\n return null\n }\n\n const modelFromController = connectedMotionGroup.modelFromController || \"\"\n const hasModel = modelFromController && getModel(modelFromController)\n\n // Use SupportedLinearAxis if model is available, otherwise fall back to DHLinearAxis\n if (hasModel) {\n return (\n <SupportedLinearAxis\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n modelFromController={modelFromController}\n dhParameters={connectedMotionGroup.dhParameters}\n getModel={getModel}\n flangeRef={flangeRef}\n transparentColor={transparentColor}\n postModelRender={postModelRender}\n {...props}\n />\n )\n }\n\n return (\n <DHLinearAxis\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n dhParameters={connectedMotionGroup.dhParameters}\n {...props}\n />\n )\n}\n\nexport { defaultGetModel }\n\nexport default LinearAxis\n"],"names":["LinearAxis","connectedMotionGroup","getModel","defaultGetModel","flangeRef","transparentColor","postModelRender","props","modelFromController","jsx","SupportedLinearAxis","DHLinearAxis"],"mappings":"2PA2BO,SAASA,EAAW,CACzB,qBAAAC,EACA,SAAAC,EAAWC,EAAAA,gBACX,UAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,GAAGC,CACL,EAAoB,CAClB,GAAI,CAACN,EAAqB,aACxB,OAAO,KAGT,MAAMO,EAAsBP,EAAqB,qBAAuB,GAIxE,OAHiBO,GAAuBN,EAASM,CAAmB,EAKhEC,EAAAA,IAACC,EAAAA,oBAAA,CACC,2BACET,EAAqB,2BAEvB,oBAAAO,EACA,aAAcP,EAAqB,aACnC,SAAAC,EACA,UAAAE,EACA,iBAAAC,EACA,gBAAAC,EACC,GAAGC,CAAA,CAAA,EAMRE,EAAAA,IAACE,EAAAA,aAAA,CACC,2BACEV,EAAqB,2BAEvB,aAAcA,EAAqB,aAClC,GAAGM,CAAA,CAAA,CAGV"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinearAxis.d.ts","sourceRoot":"","sources":["../../../src/components/robots/LinearAxis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,MAAM,MAAM,eAAe,GAAG;IAC5B,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC7B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EACzB,oBAAoB,EACpB,QAA0B,EAC1B,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,GAAG,KAAK,EACT,EAAE,eAAe,kDAmCjB;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,eAAe,UAAU,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinearAxis.js","sources":["../../../src/components/robots/LinearAxis.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\n\nimport type { Group } from \"three\"\nimport type { ConnectedMotionGroup } from \"../../lib/ConnectedMotionGroup\"\nimport { DHLinearAxis } from \"./DHLinearAxis\"\nimport { defaultGetModel } from \"./robotModelLogic\"\nimport { SupportedLinearAxis } from \"./SupportedLinearAxis\"\n\nexport type LinearAxisProps = {\n connectedMotionGroup: ConnectedMotionGroup\n getModel?: (modelFromController: string) => Promise<string>\n flangeRef?: React.Ref<Group>\n transparentColor?: string\n postModelRender?: () => void\n} & ThreeElements[\"group\"]\n\n/**\n * The LinearAxis component is a wrapper that renders SupportedLinearAxis if a model is available,\n * otherwise falls back to DHLinearAxis for usage with @wandelbots/nova-js ConnectedMotionGroup object.\n *\n * @param {LinearAxisProps} props - The properties for the LinearAxis component.\n * @param {ConnectedMotionGroup} props.connectedMotionGroup - The connected motion group containing motion state and parameters.\n * @param {Function} [props.getModel=defaultGetModel] - Optional function to get the model URL. Defaults to defaultGetModel.\n * @param {Object} props - Additional properties passed to the underlying component.\n *\n * @returns {JSX.Element} The rendered SupportedLinearAxis or DHLinearAxis component.\n */\nexport function LinearAxis({\n connectedMotionGroup,\n getModel = defaultGetModel,\n flangeRef,\n transparentColor,\n postModelRender,\n ...props\n}: LinearAxisProps) {\n if (!connectedMotionGroup.dhParameters) {\n return null\n }\n\n const modelFromController = connectedMotionGroup.modelFromController || \"\"\n const hasModel = modelFromController && getModel(modelFromController)\n\n // Use SupportedLinearAxis if model is available, otherwise fall back to DHLinearAxis\n if (hasModel) {\n return (\n <SupportedLinearAxis\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n modelFromController={modelFromController}\n dhParameters={connectedMotionGroup.dhParameters}\n getModel={getModel}\n flangeRef={flangeRef}\n transparentColor={transparentColor}\n postModelRender={postModelRender}\n {...props}\n />\n )\n }\n\n return (\n <DHLinearAxis\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n dhParameters={connectedMotionGroup.dhParameters}\n {...props}\n />\n )\n}\n\nexport { defaultGetModel }\n\nexport default LinearAxis\n"],"names":["LinearAxis","connectedMotionGroup","getModel","defaultGetModel","flangeRef","transparentColor","postModelRender","props","modelFromController","jsx","SupportedLinearAxis","DHLinearAxis"],"mappings":";;;;AA2BO,SAASA,EAAW;AAAA,EACzB,sBAAAC;AAAA,EACA,UAAAC,IAAWC;AAAA,EACX,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,GAAoB;AAClB,MAAI,CAACN,EAAqB;AACxB,WAAO;AAGT,QAAMO,IAAsBP,EAAqB,uBAAuB;AAIxE,SAHiBO,KAAuBN,EAASM,CAAmB,IAKhE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACET,EAAqB;AAAA,MAEvB,qBAAAO;AAAA,MACA,cAAcP,EAAqB;AAAA,MACnC,UAAAC;AAAA,MACA,WAAAE;AAAA,MACA,kBAAAC;AAAA,MACA,iBAAAC;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA,IAMR,gBAAAE;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,4BACEV,EAAqB;AAAA,MAEvB,cAAcA,EAAqB;AAAA,MAClC,GAAGM;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinearAxisAnimator.cjs","sources":["../../../src/components/robots/LinearAxisAnimator.tsx"],"sourcesContent":["import { useFrame, useThree } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useRef } from \"react\"\nimport type { Group, Object3D } from \"three\"\nimport { useAutorun } from \"../utils/hooks\"\nimport { ValueInterpolator } from \"../utils/interpolation\"\nimport { collectJoints } from \"./robotModelLogic\"\n\ntype LinearAxisAnimatorProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: DHParameter[]\n onTranslationChanged?: (joints: Object3D[], jointValues: number[]) => void\n children: React.ReactNode\n}\n\nexport default function LinearAxisAnimator({\n rapidlyChangingMotionState,\n dhParameters,\n onTranslationChanged,\n children,\n}: LinearAxisAnimatorProps) {\n const jointValues = useRef<number[]>([])\n const jointObjects = useRef<Object3D[]>([])\n const interpolatorRef = useRef<ValueInterpolator | null>(null)\n const { invalidate } = useThree()\n\n // Initialize interpolator\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n const initialJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n interpolatorRef.current = new ValueInterpolator(initialJointValues, {\n tension: 120, // Controls spring stiffness - higher values create faster, more responsive motion\n friction: 20, // Controls damping - higher values reduce oscillation and create smoother settling\n threshold: 0.001,\n })\n\n return () => {\n interpolatorRef.current?.destroy()\n }\n }, [])\n\n // Animation loop that runs at the display's refresh rate\n useFrame((state, delta) => {\n if (interpolatorRef.current) {\n const isComplete = interpolatorRef.current.update(delta)\n setTranslation()\n\n // Trigger a re-render only if the animation is still running\n if (!isComplete) {\n invalidate()\n }\n }\n })\n\n function setGroupRef(group: Group | null) {\n if (!group) return\n\n jointObjects.current = collectJoints(group)\n\n // Set initial position\n setTranslation()\n invalidate()\n }\n\n function setTranslation() {\n const updatedJointValues = interpolatorRef.current?.getCurrentValues() || []\n\n if (onTranslationChanged) {\n onTranslationChanged(jointObjects.current, updatedJointValues)\n } else {\n // For linear axes, we apply translation instead of rotation\n for (const [index, object] of jointObjects.current.entries()) {\n const dhParam = dhParameters[index]\n const translationSign = dhParam.reverse_rotation_direction ? -1 : 1\n\n // Apply linear translation along Y axis\n // Convert from millimeters to meters\n object.position.y =\n (translationSign * (updatedJointValues[index] || 0)) / 1000\n }\n }\n }\n\n const updateJoints = useCallback(() => {\n const newJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n requestAnimationFrame(() => {\n jointValues.current = newJointValues\n interpolatorRef.current?.setTarget(newJointValues)\n })\n }, [rapidlyChangingMotionState])\n\n /**\n * Fire an update joints call on every motion state change.\n * requestAnimationFrame used to avoid blocking main thread\n */\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n updateJoints()\n }, [rapidlyChangingMotionState, updateJoints])\n\n /**\n * As some consumer applications (eg. storybook) deliver\n * mobx observable for rapidlyChangingMotionState, we need to\n * register the watcher to get the newest value updates\n */\n useAutorun(() => {\n updateJoints()\n })\n\n return <group ref={setGroupRef}>{children}</group>\n}\n"],"names":["LinearAxisAnimator","rapidlyChangingMotionState","dhParameters","onTranslationChanged","children","jointValues","useRef","jointObjects","interpolatorRef","invalidate","useThree","useEffect","initialJointValues","item","ValueInterpolator","_a","useFrame","state","delta","isComplete","setTranslation","setGroupRef","group","collectJoints","updatedJointValues","index","object","translationSign","updateJoints","useCallback","newJointValues","useAutorun","jsx"],"mappings":"+SAgBA,SAAwBA,EAAmB,CACzC,2BAAAC,EACA,aAAAC,EACA,qBAAAC,EACA,SAAAC,CACF,EAA4B,CAC1B,MAAMC,EAAcC,EAAAA,OAAiB,EAAE,EACjCC,EAAeD,EAAAA,OAAmB,EAAE,EACpCE,EAAkBF,EAAAA,OAAiC,IAAI,EACvD,CAAE,WAAAG,CAAA,EAAeC,WAAA,EAIvBC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAqBX,EAA2B,eAAe,OAClEY,GAASA,IAAS,MAAA,EAGrB,OAAAL,EAAgB,QAAU,IAAIM,EAAAA,kBAAkBF,EAAoB,CAClE,QAAS,IACT,SAAU,GACV,UAAW,IAAA,CACZ,EAEM,IAAM,QACXG,EAAAP,EAAgB,UAAhB,MAAAO,EAAyB,SAC3B,CACF,EAAG,CAAA,CAAE,EAGLC,WAAS,CAACC,EAAOC,IAAU,CACzB,GAAIV,EAAgB,QAAS,CAC3B,MAAMW,EAAaX,EAAgB,QAAQ,OAAOU,CAAK,EACvDE,EAAA,EAGKD,GACHV,EAAA,CAEJ,CACF,CAAC,EAED,SAASY,EAAYC,EAAqB,CACnCA,IAELf,EAAa,QAAUgB,EAAAA,cAAcD,CAAK,EAG1CF,EAAA,EACAX,EAAA,EACF,CAEA,SAASW,GAAiB,OACxB,MAAMI,IAAqBT,EAAAP,EAAgB,UAAhB,YAAAO,EAAyB,qBAAsB,CAAA,EAE1E,GAAIZ,EACFA,EAAqBI,EAAa,QAASiB,CAAkB,MAG7D,UAAW,CAACC,EAAOC,CAAM,IAAKnB,EAAa,QAAQ,UAAW,CAE5D,MAAMoB,EADUzB,EAAauB,CAAK,EACF,2BAA6B,GAAK,EAIlEC,EAAO,SAAS,EACbC,GAAmBH,EAAmBC,CAAK,GAAK,GAAM,GAC3D,CAEJ,CAEA,MAAMG,EAAeC,EAAAA,YAAY,IAAM,CACrC,MAAMC,EAAiB7B,EAA2B,eAAe,OAC9DY,GAASA,IAAS,MAAA,EAGrB,sBAAsB,IAAM,OAC1BR,EAAY,QAAUyB,GACtBf,EAAAP,EAAgB,UAAhB,MAAAO,EAAyB,UAAUe,EACrC,CAAC,CACH,EAAG,CAAC7B,CAA0B,CAAC,EAO/BU,OAAAA,EAAAA,UAAU,IAAM,CACdiB,EAAA,CACF,EAAG,CAAC3B,EAA4B2B,CAAY,CAAC,EAO7CG,EAAAA,WAAW,IAAM,CACfH,EAAA,CACF,CAAC,EAEMI,EAAAA,IAAC,QAAA,CAAM,IAAKX,EAAc,SAAAjB,CAAA,CAAS,CAC5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinearAxisAnimator.d.ts","sourceRoot":"","sources":["../../../src/components/robots/LinearAxisAnimator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,OAAO,CAAA;AAK5C,KAAK,uBAAuB,GAAG;IAC7B,0BAA0B,EAAE,gBAAgB,CAAA;IAC5C,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC1E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,0BAA0B,EAC1B,YAAY,EACZ,oBAAoB,EACpB,QAAQ,GACT,EAAE,uBAAuB,2CAgGzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinearAxisAnimator.js","sources":["../../../src/components/robots/LinearAxisAnimator.tsx"],"sourcesContent":["import { useFrame, useThree } from \"@react-three/fiber\"\nimport type { DHParameter, MotionGroupState } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useCallback, useEffect, useRef } from \"react\"\nimport type { Group, Object3D } from \"three\"\nimport { useAutorun } from \"../utils/hooks\"\nimport { ValueInterpolator } from \"../utils/interpolation\"\nimport { collectJoints } from \"./robotModelLogic\"\n\ntype LinearAxisAnimatorProps = {\n rapidlyChangingMotionState: MotionGroupState\n dhParameters: DHParameter[]\n onTranslationChanged?: (joints: Object3D[], jointValues: number[]) => void\n children: React.ReactNode\n}\n\nexport default function LinearAxisAnimator({\n rapidlyChangingMotionState,\n dhParameters,\n onTranslationChanged,\n children,\n}: LinearAxisAnimatorProps) {\n const jointValues = useRef<number[]>([])\n const jointObjects = useRef<Object3D[]>([])\n const interpolatorRef = useRef<ValueInterpolator | null>(null)\n const { invalidate } = useThree()\n\n // Initialize interpolator\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n const initialJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n interpolatorRef.current = new ValueInterpolator(initialJointValues, {\n tension: 120, // Controls spring stiffness - higher values create faster, more responsive motion\n friction: 20, // Controls damping - higher values reduce oscillation and create smoother settling\n threshold: 0.001,\n })\n\n return () => {\n interpolatorRef.current?.destroy()\n }\n }, [])\n\n // Animation loop that runs at the display's refresh rate\n useFrame((state, delta) => {\n if (interpolatorRef.current) {\n const isComplete = interpolatorRef.current.update(delta)\n setTranslation()\n\n // Trigger a re-render only if the animation is still running\n if (!isComplete) {\n invalidate()\n }\n }\n })\n\n function setGroupRef(group: Group | null) {\n if (!group) return\n\n jointObjects.current = collectJoints(group)\n\n // Set initial position\n setTranslation()\n invalidate()\n }\n\n function setTranslation() {\n const updatedJointValues = interpolatorRef.current?.getCurrentValues() || []\n\n if (onTranslationChanged) {\n onTranslationChanged(jointObjects.current, updatedJointValues)\n } else {\n // For linear axes, we apply translation instead of rotation\n for (const [index, object] of jointObjects.current.entries()) {\n const dhParam = dhParameters[index]\n const translationSign = dhParam.reverse_rotation_direction ? -1 : 1\n\n // Apply linear translation along Y axis\n // Convert from millimeters to meters\n object.position.y =\n (translationSign * (updatedJointValues[index] || 0)) / 1000\n }\n }\n }\n\n const updateJoints = useCallback(() => {\n const newJointValues = rapidlyChangingMotionState.joint_position.filter(\n (item) => item !== undefined,\n )\n\n requestAnimationFrame(() => {\n jointValues.current = newJointValues\n interpolatorRef.current?.setTarget(newJointValues)\n })\n }, [rapidlyChangingMotionState])\n\n /**\n * Fire an update joints call on every motion state change.\n * requestAnimationFrame used to avoid blocking main thread\n */\n // biome-ignore lint/correctness/useExhaustiveDependencies: pre-biome code\n useEffect(() => {\n updateJoints()\n }, [rapidlyChangingMotionState, updateJoints])\n\n /**\n * As some consumer applications (eg. storybook) deliver\n * mobx observable for rapidlyChangingMotionState, we need to\n * register the watcher to get the newest value updates\n */\n useAutorun(() => {\n updateJoints()\n })\n\n return <group ref={setGroupRef}>{children}</group>\n}\n"],"names":["LinearAxisAnimator","rapidlyChangingMotionState","dhParameters","onTranslationChanged","children","jointValues","useRef","jointObjects","interpolatorRef","invalidate","useThree","useEffect","initialJointValues","item","ValueInterpolator","_a","useFrame","state","delta","isComplete","setTranslation","setGroupRef","group","collectJoints","updatedJointValues","index","object","translationSign","updateJoints","useCallback","newJointValues","useAutorun","jsx"],"mappings":";;;;;;AAgBA,SAAwBA,EAAmB;AAAA,EACzC,4BAAAC;AAAA,EACA,cAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,UAAAC;AACF,GAA4B;AAC1B,QAAMC,IAAcC,EAAiB,EAAE,GACjCC,IAAeD,EAAmB,EAAE,GACpCE,IAAkBF,EAAiC,IAAI,GACvD,EAAE,YAAAG,EAAA,IAAeC,EAAA;AAIvB,EAAAC,EAAU,MAAM;AACd,UAAMC,IAAqBX,EAA2B,eAAe;AAAA,MACnE,CAACY,MAASA,MAAS;AAAA,IAAA;AAGrB,WAAAL,EAAgB,UAAU,IAAIM,EAAkBF,GAAoB;AAAA,MAClE,SAAS;AAAA;AAAA,MACT,UAAU;AAAA;AAAA,MACV,WAAW;AAAA,IAAA,CACZ,GAEM,MAAM;;AACX,OAAAG,IAAAP,EAAgB,YAAhB,QAAAO,EAAyB;AAAA,IAC3B;AAAA,EACF,GAAG,CAAA,CAAE,GAGLC,EAAS,CAACC,GAAOC,MAAU;AACzB,QAAIV,EAAgB,SAAS;AAC3B,YAAMW,IAAaX,EAAgB,QAAQ,OAAOU,CAAK;AACvD,MAAAE,EAAA,GAGKD,KACHV,EAAA;AAAA,IAEJ;AAAA,EACF,CAAC;AAED,WAASY,EAAYC,GAAqB;AACxC,IAAKA,MAELf,EAAa,UAAUgB,EAAcD,CAAK,GAG1CF,EAAA,GACAX,EAAA;AAAA,EACF;AAEA,WAASW,IAAiB;;AACxB,UAAMI,MAAqBT,IAAAP,EAAgB,YAAhB,gBAAAO,EAAyB,uBAAsB,CAAA;AAE1E,QAAIZ;AACF,MAAAA,EAAqBI,EAAa,SAASiB,CAAkB;AAAA;AAG7D,iBAAW,CAACC,GAAOC,CAAM,KAAKnB,EAAa,QAAQ,WAAW;AAE5D,cAAMoB,IADUzB,EAAauB,CAAK,EACF,6BAA6B,KAAK;AAIlE,QAAAC,EAAO,SAAS,IACbC,KAAmBH,EAAmBC,CAAK,KAAK,KAAM;AAAA,MAC3D;AAAA,EAEJ;AAEA,QAAMG,IAAeC,EAAY,MAAM;AACrC,UAAMC,IAAiB7B,EAA2B,eAAe;AAAA,MAC/D,CAACY,MAASA,MAAS;AAAA,IAAA;AAGrB,0BAAsB,MAAM;;AAC1B,MAAAR,EAAY,UAAUyB,IACtBf,IAAAP,EAAgB,YAAhB,QAAAO,EAAyB,UAAUe;AAAA,IACrC,CAAC;AAAA,EACH,GAAG,CAAC7B,CAA0B,CAAC;AAO/B,SAAAU,EAAU,MAAM;AACd,IAAAiB,EAAA;AAAA,EACF,GAAG,CAAC3B,GAA4B2B,CAAY,CAAC,GAO7CG,EAAW,MAAM;AACf,IAAAH,EAAA;AAAA,EACF,CAAC,GAEM,gBAAAI,EAAC,SAAA,EAAM,KAAKX,GAAc,UAAAjB,EAAA,CAAS;AAC5C;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MotionGroupVisualizer.cjs","sources":["../../../src/components/robots/MotionGroupVisualizer.tsx"],"sourcesContent":["import { JointTypeEnum } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useEffect, useMemo, useState } from \"react\"\n\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport {\n SupportedLinearAxis,\n type SupportedLinearAxisProps,\n} from \"./SupportedLinearAxis\"\nimport { SupportedRobot, type SupportedRobotProps } from \"./SupportedRobot\"\n\nexport type MotionGroupVisualizerProps = {\n instanceUrl: string\n inverseSolver?: string | null\n} & (SupportedRobotProps | SupportedLinearAxisProps)\n\nexport const MotionGroupVisualizer: React.FC<MotionGroupVisualizerProps> =\n externalizeComponent((props: MotionGroupVisualizerProps) => {\n const { inverseSolver, dhParameters, ...rest } = props\n\n /**\n * Joint type to find out - in combination with inverseSolver - whether the\n * active robot is a turn table\n */\n const [jointType, setJointType] = useState<JointTypeEnum>(\n JointTypeEnum.RevoluteJoint,\n )\n\n /**\n * Sets the joint type according to delivered dh parameter type\n */\n useEffect(() => {\n if (dhParameters.length) {\n setJointType(dhParameters[0].type ?? JointTypeEnum.RevoluteJoint)\n }\n }, [dhParameters])\n\n /**\n * The turntable models return inverseSolver = null - however these models\n * should be rendered with SupportedRobot instead of SupportedLinearAxis\n */\n const isTurnTable = useMemo(() => {\n return inverseSolver === null && jointType === JointTypeEnum.RevoluteJoint\n }, [inverseSolver, jointType])\n\n /**\n * Linear axis check\n */\n const isLinearAxis = useMemo(() => {\n return (\n inverseSolver === null && jointType === JointTypeEnum.PrismaticJoint\n )\n }, [inverseSolver, jointType])\n\n /**\n * Robot differentiation for readability reasons\n */\n const isRobot = useMemo(() => {\n return !!inverseSolver\n }, [inverseSolver])\n\n if (isRobot || isTurnTable) {\n return <SupportedRobot dhParameters={dhParameters} {...rest} />\n }\n\n if (isLinearAxis) {\n return <SupportedLinearAxis dhParameters={dhParameters} {...rest} />\n }\n\n return null\n })\n\nexport default MotionGroupVisualizer\n"],"names":["MotionGroupVisualizer","externalizeComponent","props","inverseSolver","dhParameters","rest","jointType","setJointType","useState","JointTypeEnum","useEffect","isTurnTable","useMemo","isLinearAxis","jsx","SupportedRobot","SupportedLinearAxis"],"mappings":"6TAgBaA,EACXC,EAAAA,qBAAsBC,GAAsC,CAC1D,KAAM,CAAE,cAAAC,EAAe,aAAAC,EAAc,GAAGC,GAASH,EAM3C,CAACI,EAAWC,CAAY,EAAIC,EAAAA,SAChCC,gBAAc,aAAA,EAMhBC,EAAAA,UAAU,IAAM,CACVN,EAAa,QACfG,EAAaH,EAAa,CAAC,EAAE,MAAQK,EAAAA,cAAc,aAAa,CAEpE,EAAG,CAACL,CAAY,CAAC,EAMjB,MAAMO,EAAcC,EAAAA,QAAQ,IACnBT,IAAkB,MAAQG,IAAcG,EAAAA,cAAc,cAC5D,CAACN,EAAeG,CAAS,CAAC,EAKvBO,EAAeD,EAAAA,QAAQ,IAEzBT,IAAkB,MAAQG,IAAcG,EAAAA,cAAc,eAEvD,CAACN,EAAeG,CAAS,CAAC,EAS7B,OAJgBM,EAAAA,QAAQ,IACf,CAAC,CAACT,EACR,CAACA,CAAa,CAAC,GAEHQ,EACNG,EAAAA,IAACC,EAAAA,eAAA,CAAe,aAAAX,EAA6B,GAAGC,CAAA,CAAM,EAG3DQ,EACKC,EAAAA,IAACE,EAAAA,oBAAA,CAAoB,aAAAZ,EAA6B,GAAGC,CAAA,CAAM,EAG7D,IACT,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MotionGroupVisualizer.d.ts","sourceRoot":"","sources":["../../../src/components/robots/MotionGroupVisualizer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3E,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B,GAAG,CAAC,mBAAmB,GAAG,wBAAwB,CAAC,CAAA;AAEpD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAsDnE,CAAA;AAEJ,eAAe,qBAAqB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MotionGroupVisualizer.js","sources":["../../../src/components/robots/MotionGroupVisualizer.tsx"],"sourcesContent":["import { JointTypeEnum } from \"@wandelbots/nova-js/v2\"\nimport type React from \"react\"\nimport { useEffect, useMemo, useState } from \"react\"\n\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport {\n SupportedLinearAxis,\n type SupportedLinearAxisProps,\n} from \"./SupportedLinearAxis\"\nimport { SupportedRobot, type SupportedRobotProps } from \"./SupportedRobot\"\n\nexport type MotionGroupVisualizerProps = {\n instanceUrl: string\n inverseSolver?: string | null\n} & (SupportedRobotProps | SupportedLinearAxisProps)\n\nexport const MotionGroupVisualizer: React.FC<MotionGroupVisualizerProps> =\n externalizeComponent((props: MotionGroupVisualizerProps) => {\n const { inverseSolver, dhParameters, ...rest } = props\n\n /**\n * Joint type to find out - in combination with inverseSolver - whether the\n * active robot is a turn table\n */\n const [jointType, setJointType] = useState<JointTypeEnum>(\n JointTypeEnum.RevoluteJoint,\n )\n\n /**\n * Sets the joint type according to delivered dh parameter type\n */\n useEffect(() => {\n if (dhParameters.length) {\n setJointType(dhParameters[0].type ?? JointTypeEnum.RevoluteJoint)\n }\n }, [dhParameters])\n\n /**\n * The turntable models return inverseSolver = null - however these models\n * should be rendered with SupportedRobot instead of SupportedLinearAxis\n */\n const isTurnTable = useMemo(() => {\n return inverseSolver === null && jointType === JointTypeEnum.RevoluteJoint\n }, [inverseSolver, jointType])\n\n /**\n * Linear axis check\n */\n const isLinearAxis = useMemo(() => {\n return (\n inverseSolver === null && jointType === JointTypeEnum.PrismaticJoint\n )\n }, [inverseSolver, jointType])\n\n /**\n * Robot differentiation for readability reasons\n */\n const isRobot = useMemo(() => {\n return !!inverseSolver\n }, [inverseSolver])\n\n if (isRobot || isTurnTable) {\n return <SupportedRobot dhParameters={dhParameters} {...rest} />\n }\n\n if (isLinearAxis) {\n return <SupportedLinearAxis dhParameters={dhParameters} {...rest} />\n }\n\n return null\n })\n\nexport default MotionGroupVisualizer\n"],"names":["MotionGroupVisualizer","externalizeComponent","props","inverseSolver","dhParameters","rest","jointType","setJointType","useState","JointTypeEnum","useEffect","isTurnTable","useMemo","isLinearAxis","jsx","SupportedRobot","SupportedLinearAxis"],"mappings":";;;;;;AAgBO,MAAMA,IACXC,EAAqB,CAACC,MAAsC;AAC1D,QAAM,EAAE,eAAAC,GAAe,cAAAC,GAAc,GAAGC,MAASH,GAM3C,CAACI,GAAWC,CAAY,IAAIC;AAAA,IAChCC,EAAc;AAAA,EAAA;AAMhB,EAAAC,EAAU,MAAM;AACd,IAAIN,EAAa,UACfG,EAAaH,EAAa,CAAC,EAAE,QAAQK,EAAc,aAAa;AAAA,EAEpE,GAAG,CAACL,CAAY,CAAC;AAMjB,QAAMO,IAAcC,EAAQ,MACnBT,MAAkB,QAAQG,MAAcG,EAAc,eAC5D,CAACN,GAAeG,CAAS,CAAC,GAKvBO,IAAeD,EAAQ,MAEzBT,MAAkB,QAAQG,MAAcG,EAAc,gBAEvD,CAACN,GAAeG,CAAS,CAAC;AAS7B,SAJgBM,EAAQ,MACf,CAAC,CAACT,GACR,CAACA,CAAa,CAAC,KAEHQ,IACN,gBAAAG,EAACC,GAAA,EAAe,cAAAX,GAA6B,GAAGC,EAAA,CAAM,IAG3DQ,IACK,gBAAAC,EAACE,GAAA,EAAoB,cAAAZ,GAA6B,GAAGC,EAAA,CAAM,IAG7D;AACT,CAAC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Robot.cjs","sources":["../../../src/components/robots/Robot.tsx"],"sourcesContent":["import type { ThreeElements } from \"@react-three/fiber\"\n\nimport type { Group } from \"three\"\nimport type { ConnectedMotionGroup } from \"../../lib/ConnectedMotionGroup\"\nimport { defaultGetModel } from \"./robotModelLogic\"\nimport { SupportedRobot } from \"./SupportedRobot\"\n\nexport type RobotProps = {\n connectedMotionGroup: ConnectedMotionGroup\n getModel?: (modelFromController: string) => Promise<string>\n flangeRef?: React.Ref<Group>\n transparentColor?: string\n postModelRender?: () => void\n} & ThreeElements[\"group\"]\n\n/**\n * The Robot component is a wrapper around the SupportedRobot component\n * for usage with @wandelbots/nova-js ConnectedMotionGroup object.\n *\n * @param {RobotProps} props - The properties for the Robot component.\n * @param {ConnectedMotionGroup} props.connectedMotionGroup - The connected motion group containing motion state and parameters.\n * @param {Function} [props.getModel=defaultGetModel] - Optional function to get the model URL. Defaults to defaultGetModel.\n * @param {Object} props - Additional properties passed to the SupportedRobot component.\n *\n * @returns {JSX.Element} The rendered SupportedRobot component.\n */\nexport function Robot({\n connectedMotionGroup,\n getModel = defaultGetModel,\n flangeRef,\n transparentColor,\n postModelRender,\n ...props\n}: RobotProps) {\n if (!connectedMotionGroup.dhParameters) {\n return null\n }\n\n return (\n <SupportedRobot\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n modelFromController={connectedMotionGroup.modelFromController || \"\"}\n dhParameters={connectedMotionGroup.dhParameters}\n getModel={getModel}\n flangeRef={flangeRef}\n transparentColor={transparentColor}\n postModelRender={postModelRender}\n {...props}\n />\n )\n}\n\nexport { defaultGetModel }\n\nexport default Robot\n"],"names":["Robot","connectedMotionGroup","getModel","defaultGetModel","flangeRef","transparentColor","postModelRender","props","jsx","SupportedRobot"],"mappings":"sNA0BO,SAASA,EAAM,CACpB,qBAAAC,EACA,SAAAC,EAAWC,EAAAA,gBACX,UAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,GAAGC,CACL,EAAe,CACb,OAAKN,EAAqB,aAKxBO,EAAAA,IAACC,EAAAA,eAAA,CACC,2BACER,EAAqB,2BAEvB,oBAAqBA,EAAqB,qBAAuB,GACjE,aAAcA,EAAqB,aACnC,SAAAC,EACA,UAAAE,EACA,iBAAAC,EACA,gBAAAC,EACC,GAAGC,CAAA,CAAA,EAdC,IAiBX"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Robot.d.ts","sourceRoot":"","sources":["../../../src/components/robots/Robot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,MAAM,MAAM,UAAU,GAAG;IACvB,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC7B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAE1B;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,EACpB,oBAAoB,EACpB,QAA0B,EAC1B,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,GAAG,KAAK,EACT,EAAE,UAAU,kDAmBZ;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,eAAe,KAAK,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RobotAnimator.test.d.ts","sourceRoot":"","sources":["../../../src/components/robots/RobotAnimator.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerTypeIndicator.cjs","sources":["../../../src/components/safetyBar/ControllerTypeIndicator.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport type { PopoverOrigin } from \"@mui/material/Popover\"\nimport { observer } from \"mobx-react-lite\"\nimport { useId } from \"react\"\nimport { Trans, useTranslation } from \"react-i18next\"\nimport ControllerTypePhysicalIcon from \"./icons/controller-type-physical.svg\"\nimport ControllerTypeVirtualIcon from \"./icons/controller-type-virtual.svg\"\nimport { IndicatorWithExplanation } from \"./IndicatorWithExplanation\"\n\ninterface ControllerTypeIndicatorProps {\n isVirtual: boolean\n motionGroupId: string\n anchorOrigin?: PopoverOrigin\n transformOrigin?: PopoverOrigin\n compact: boolean\n}\n\nexport const ControllerTypeIndicator = observer(\n ({\n isVirtual,\n motionGroupId,\n anchorOrigin,\n transformOrigin,\n compact,\n }: ControllerTypeIndicatorProps) => {\n const theme = useTheme()\n const componentId = useId()\n const { t } = useTranslation()\n\n if (isVirtual) {\n return (\n <IndicatorWithExplanation\n id={`motion-group-virtual-${componentId}`}\n icon={ControllerTypeVirtualIcon}\n color={theme.palette.tertiary.main}\n name={t(\"SafetyBar.ControllerType.Virtual.lb\")}\n label={compact ? null : t(\"SafetyBar.ControllerType.Virtual.lb\")}\n explanation={\n <Trans\n i18nKey=\"SafetyBar.MotionGroup.Virtual.Explanation.lb\"\n values={{\n motionGroupId,\n }}\n >\n Motion group <code>{motionGroupId}</code> refers to a virtual\n robot with no physical counterpart. It can be freely manipulated\n without special safety precautions.\n </Trans>\n }\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n }\n\n return (\n <IndicatorWithExplanation\n id={`motion-group-physical-${componentId}`}\n icon={ControllerTypePhysicalIcon}\n color={theme.palette.primary.main}\n name={t(\"SafetyBar.ControllerType.Physical.lb\")}\n label={compact ? null : t(\"SafetyBar.ControllerType.Physical.lb\")}\n explanation={\n <Trans\n i18nKey=\"SafetyBar.MotionGroup.Physical.Explanation.lb\"\n values={{\n motionGroupId,\n }}\n components={{ code: <code />, strong: <strong /> }}\n />\n }\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n },\n)\n\nexport default ControllerTypeIndicator\n"],"names":["ControllerTypeIndicator","observer","isVirtual","motionGroupId","anchorOrigin","transformOrigin","compact","theme","useTheme","componentId","useId","useTranslation","jsx","IndicatorWithExplanation","ControllerTypeVirtualIcon","jsxs","Trans","ControllerTypePhysicalIcon"],"mappings":"qZAiBaA,EAA0BC,EAAAA,SACrC,CAAC,CACC,UAAAC,EACA,cAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,QAAAC,CAAA,IACkC,CAClC,MAAMC,EAAQC,EAAAA,SAAA,EACRC,EAAcC,EAAAA,MAAA,EACd,CAAE,CAAA,EAAMC,iBAAA,EAEd,OAAIT,EAEAU,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,wBAAwBJ,CAAW,GACvC,KAAMK,EAAAA,QACN,MAAOP,EAAM,QAAQ,SAAS,KAC9B,KAAM,EAAE,qCAAqC,EAC7C,MAAOD,EAAU,KAAO,EAAE,qCAAqC,EAC/D,YACES,EAAAA,KAACC,EAAAA,MAAA,CACC,QAAQ,+CACR,OAAQ,CACN,cAAAb,CAAA,EAEH,SAAA,CAAA,gBACcS,EAAAA,IAAC,QAAM,SAAAT,CAAA,CAAc,EAAO,2HAAA,CAAA,CAAA,EAK7C,aAAAC,EACA,gBAAAC,CAAA,CAAA,EAMJO,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,yBAAyBJ,CAAW,GACxC,KAAMQ,EAAAA,QACN,MAAOV,EAAM,QAAQ,QAAQ,KAC7B,KAAM,EAAE,sCAAsC,EAC9C,MAAOD,EAAU,KAAO,EAAE,sCAAsC,EAChE,YACEM,EAAAA,IAACI,EAAAA,MAAA,CACC,QAAQ,gDACR,OAAQ,CACN,cAAAb,CAAA,EAEF,WAAY,CAAE,KAAMS,EAAAA,IAAC,SAAK,EAAI,OAAQA,EAAAA,IAAC,SAAA,EAAO,CAAA,CAAG,CAAA,EAGrD,aAAAR,EACA,gBAAAC,CAAA,CAAA,CAGN,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerTypeIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/safetyBar/ControllerTypeIndicator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAQ1D,UAAU,4BAA4B;IACpC,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,eAAe,CAAC,EAAE,aAAa,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,uBAAuB,2EAO/B,4BAA4B;;CAoDhC,CAAA;AAED,eAAe,uBAAuB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerTypeIndicator.js","sources":["../../../src/components/safetyBar/ControllerTypeIndicator.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport type { PopoverOrigin } from \"@mui/material/Popover\"\nimport { observer } from \"mobx-react-lite\"\nimport { useId } from \"react\"\nimport { Trans, useTranslation } from \"react-i18next\"\nimport ControllerTypePhysicalIcon from \"./icons/controller-type-physical.svg\"\nimport ControllerTypeVirtualIcon from \"./icons/controller-type-virtual.svg\"\nimport { IndicatorWithExplanation } from \"./IndicatorWithExplanation\"\n\ninterface ControllerTypeIndicatorProps {\n isVirtual: boolean\n motionGroupId: string\n anchorOrigin?: PopoverOrigin\n transformOrigin?: PopoverOrigin\n compact: boolean\n}\n\nexport const ControllerTypeIndicator = observer(\n ({\n isVirtual,\n motionGroupId,\n anchorOrigin,\n transformOrigin,\n compact,\n }: ControllerTypeIndicatorProps) => {\n const theme = useTheme()\n const componentId = useId()\n const { t } = useTranslation()\n\n if (isVirtual) {\n return (\n <IndicatorWithExplanation\n id={`motion-group-virtual-${componentId}`}\n icon={ControllerTypeVirtualIcon}\n color={theme.palette.tertiary.main}\n name={t(\"SafetyBar.ControllerType.Virtual.lb\")}\n label={compact ? null : t(\"SafetyBar.ControllerType.Virtual.lb\")}\n explanation={\n <Trans\n i18nKey=\"SafetyBar.MotionGroup.Virtual.Explanation.lb\"\n values={{\n motionGroupId,\n }}\n >\n Motion group <code>{motionGroupId}</code> refers to a virtual\n robot with no physical counterpart. It can be freely manipulated\n without special safety precautions.\n </Trans>\n }\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n }\n\n return (\n <IndicatorWithExplanation\n id={`motion-group-physical-${componentId}`}\n icon={ControllerTypePhysicalIcon}\n color={theme.palette.primary.main}\n name={t(\"SafetyBar.ControllerType.Physical.lb\")}\n label={compact ? null : t(\"SafetyBar.ControllerType.Physical.lb\")}\n explanation={\n <Trans\n i18nKey=\"SafetyBar.MotionGroup.Physical.Explanation.lb\"\n values={{\n motionGroupId,\n }}\n components={{ code: <code />, strong: <strong /> }}\n />\n }\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n },\n)\n\nexport default ControllerTypeIndicator\n"],"names":["ControllerTypeIndicator","observer","isVirtual","motionGroupId","anchorOrigin","transformOrigin","compact","theme","useTheme","componentId","useId","t","useTranslation","jsx","IndicatorWithExplanation","ControllerTypeVirtualIcon","jsxs","Trans","ControllerTypePhysicalIcon"],"mappings":";;;;;;;;AAiBO,MAAMA,IAA0BC;AAAA,EACrC,CAAC;AAAA,IACC,WAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,MACkC;AAClC,UAAMC,IAAQC,EAAA,GACRC,IAAcC,EAAA,GACd,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,WAAIV,IAEA,gBAAAW;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAI,wBAAwBL,CAAW;AAAA,QACvC,MAAMM;AAAAA,QACN,OAAOR,EAAM,QAAQ,SAAS;AAAA,QAC9B,MAAMI,EAAE,qCAAqC;AAAA,QAC7C,OAAOL,IAAU,OAAOK,EAAE,qCAAqC;AAAA,QAC/D,aACE,gBAAAK;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,QAAQ;AAAA,cACN,eAAAd;AAAA,YAAA;AAAA,YAEH,UAAA;AAAA,cAAA;AAAA,cACc,gBAAAU,EAAC,UAAM,UAAAV,EAAA,CAAc;AAAA,cAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAK7C,cAAAC;AAAA,QACA,iBAAAC;AAAA,MAAA;AAAA,IAAA,IAMJ,gBAAAQ;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAI,yBAAyBL,CAAW;AAAA,QACxC,MAAMS;AAAAA,QACN,OAAOX,EAAM,QAAQ,QAAQ;AAAA,QAC7B,MAAMI,EAAE,sCAAsC;AAAA,QAC9C,OAAOL,IAAU,OAAOK,EAAE,sCAAsC;AAAA,QAChE,aACE,gBAAAE;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,QAAQ;AAAA,cACN,eAAAd;AAAA,YAAA;AAAA,YAEF,YAAY,EAAE,MAAM,gBAAAU,EAAC,UAAK,GAAI,QAAQ,gBAAAA,EAAC,UAAA,EAAO,EAAA;AAAA,UAAG;AAAA,QAAA;AAAA,QAGrD,cAAAT;AAAA,QACA,iBAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IndicatorWithExplanation.cjs","sources":["../../../src/components/safetyBar/IndicatorWithExplanation.tsx"],"sourcesContent":["import Popover, { type PopoverOrigin } from \"@mui/material/Popover\"\nimport Stack from \"@mui/material/Stack\"\nimport SvgIcon from \"@mui/material/SvgIcon\"\nimport Typography, { type TypographyProps } from \"@mui/material/Typography\"\nimport { observer, useLocalObservable } from \"mobx-react-lite\"\nimport type { ElementType, ReactNode } from \"react\"\n\nexport type IndicatorWithExplanationProps = {\n id: string\n icon: ElementType\n color: TypographyProps[\"color\"]\n title?: ReactNode\n name: ReactNode\n label?: ReactNode\n explanation: ReactNode\n literalValue?: string\n anchorOrigin?: PopoverOrigin\n transformOrigin?: PopoverOrigin\n}\n\nexport const IndicatorWithExplanation = observer(\n ({\n id,\n icon,\n color,\n title,\n name,\n label,\n explanation,\n literalValue,\n anchorOrigin,\n transformOrigin,\n }: IndicatorWithExplanationProps) => {\n const state = useLocalObservable(() => ({\n anchorEl: null as HTMLElement | null,\n\n get isPopoverOpen() {\n return !!state.anchorEl\n },\n\n openPopover(event: React.MouseEvent<HTMLElement>) {\n state.anchorEl = event.currentTarget\n },\n\n closePopover() {\n state.anchorEl = null\n },\n }))\n\n return (\n <>\n <Stack\n aria-owns={state.isPopoverOpen ? id : undefined}\n aria-haspopup=\"true\"\n onMouseEnter={state.openPopover}\n onMouseLeave={state.closePopover}\n direction=\"row\"\n spacing={1}\n sx={{\n cursor: \"pointer\",\n }}\n >\n <SvgIcon\n component={icon}\n sx={{\n color,\n }}\n />\n {label && (\n <div\n style={{\n color,\n }}\n >\n {label}\n </div>\n )}\n </Stack>\n <Popover\n id={id}\n sx={{\n pointerEvents: \"none\",\n }}\n open={state.isPopoverOpen}\n anchorEl={state.anchorEl}\n anchorOrigin={\n anchorOrigin ?? {\n vertical: \"bottom\",\n horizontal: \"left\",\n }\n }\n transformOrigin={\n transformOrigin ?? {\n vertical: \"top\",\n horizontal: \"left\",\n }\n }\n onClose={state.closePopover}\n disableRestoreFocus\n >\n <Stack\n gap=\"1rem\"\n padding={2}\n maxWidth=\"450px\"\n sx={{\n wordWrap: \"break-word\",\n }}\n >\n <div>\n {title && (\n <Typography component=\"span\" fontSize=\"14px\">\n {`${title}: `}\n </Typography>\n )}\n <Typography\n component=\"span\"\n color={color}\n fontWeight=\"bold\"\n fontSize=\"14px\"\n >\n {name}\n </Typography>\n </div>\n\n <Typography fontSize=\"14px\">{explanation}</Typography>\n\n {literalValue && (\n <Typography fontSize=\"12px\">{literalValue}</Typography>\n )}\n </Stack>\n </Popover>\n </>\n )\n },\n)\n\nexport default IndicatorWithExplanation\n"],"names":["IndicatorWithExplanation","observer","id","icon","color","title","name","label","explanation","literalValue","anchorOrigin","transformOrigin","state","useLocalObservable","event","jsxs","Fragment","Stack","jsx","SvgIcon","Popover","Typography"],"mappings":"2TAoBaA,EAA2BC,EAAAA,SACtC,CAAC,CACC,GAAAC,EACA,KAAAC,EACA,MAAAC,EACA,MAAAC,EACA,KAAAC,EACA,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,aAAAC,EACA,gBAAAC,CAAA,IACmC,CACnC,MAAMC,EAAQC,EAAAA,mBAAmB,KAAO,CACtC,SAAU,KAEV,IAAI,eAAgB,CAClB,MAAO,CAAC,CAACD,EAAM,QACjB,EAEA,YAAYE,EAAsC,CAChDF,EAAM,SAAWE,EAAM,aACzB,EAEA,cAAe,CACbF,EAAM,SAAW,IACnB,CAAA,EACA,EAEF,OACEG,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAD,EAAAA,KAACE,EAAA,CACC,YAAWL,EAAM,cAAgBV,EAAK,OACtC,gBAAc,OACd,aAAcU,EAAM,YACpB,aAAcA,EAAM,aACpB,UAAU,MACV,QAAS,EACT,GAAI,CACF,OAAQ,SAAA,EAGV,SAAA,CAAAM,EAAAA,IAACC,EAAA,CACC,UAAWhB,EACX,GAAI,CACF,MAAAC,CAAA,CACF,CAAA,EAEDG,GACCW,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,MAAAd,CAAA,EAGD,SAAAG,CAAA,CAAA,CACH,CAAA,CAAA,EAGJW,EAAAA,IAACE,EAAA,CACC,GAAAlB,EACA,GAAI,CACF,cAAe,MAAA,EAEjB,KAAMU,EAAM,cACZ,SAAUA,EAAM,SAChB,aACEF,GAAgB,CACd,SAAU,SACV,WAAY,MAAA,EAGhB,gBACEC,GAAmB,CACjB,SAAU,MACV,WAAY,MAAA,EAGhB,QAASC,EAAM,aACf,oBAAmB,GAEnB,SAAAG,EAAAA,KAACE,EAAA,CACC,IAAI,OACJ,QAAS,EACT,SAAS,QACT,GAAI,CACF,SAAU,YAAA,EAGZ,SAAA,CAAAF,OAAC,MAAA,CACE,SAAA,CAAAV,GACCa,EAAAA,IAACG,GAAW,UAAU,OAAO,SAAS,OACnC,SAAA,GAAGhB,CAAK,IAAA,CACX,EAEFa,EAAAA,IAACG,EAAA,CACC,UAAU,OACV,MAAAjB,EACA,WAAW,OACX,SAAS,OAER,SAAAE,CAAA,CAAA,CACH,EACF,EAEAY,EAAAA,IAACG,EAAA,CAAW,SAAS,OAAQ,SAAAb,EAAY,EAExCC,GACCS,EAAAA,IAACG,EAAA,CAAW,SAAS,OAAQ,SAAAZ,CAAA,CAAa,CAAA,CAAA,CAAA,CAE9C,CAAA,CACF,EACF,CAEJ,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IndicatorWithExplanation.d.ts","sourceRoot":"","sources":["../../../src/components/safetyBar/IndicatorWithExplanation.tsx"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGnE,OAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,WAAW,EAAE,SAAS,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,eAAe,CAAC,EAAE,aAAa,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,wBAAwB,wGAYhC,6BAA6B;;CAsGjC,CAAA;AAED,eAAe,wBAAwB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IndicatorWithExplanation.js","sources":["../../../src/components/safetyBar/IndicatorWithExplanation.tsx"],"sourcesContent":["import Popover, { type PopoverOrigin } from \"@mui/material/Popover\"\nimport Stack from \"@mui/material/Stack\"\nimport SvgIcon from \"@mui/material/SvgIcon\"\nimport Typography, { type TypographyProps } from \"@mui/material/Typography\"\nimport { observer, useLocalObservable } from \"mobx-react-lite\"\nimport type { ElementType, ReactNode } from \"react\"\n\nexport type IndicatorWithExplanationProps = {\n id: string\n icon: ElementType\n color: TypographyProps[\"color\"]\n title?: ReactNode\n name: ReactNode\n label?: ReactNode\n explanation: ReactNode\n literalValue?: string\n anchorOrigin?: PopoverOrigin\n transformOrigin?: PopoverOrigin\n}\n\nexport const IndicatorWithExplanation = observer(\n ({\n id,\n icon,\n color,\n title,\n name,\n label,\n explanation,\n literalValue,\n anchorOrigin,\n transformOrigin,\n }: IndicatorWithExplanationProps) => {\n const state = useLocalObservable(() => ({\n anchorEl: null as HTMLElement | null,\n\n get isPopoverOpen() {\n return !!state.anchorEl\n },\n\n openPopover(event: React.MouseEvent<HTMLElement>) {\n state.anchorEl = event.currentTarget\n },\n\n closePopover() {\n state.anchorEl = null\n },\n }))\n\n return (\n <>\n <Stack\n aria-owns={state.isPopoverOpen ? id : undefined}\n aria-haspopup=\"true\"\n onMouseEnter={state.openPopover}\n onMouseLeave={state.closePopover}\n direction=\"row\"\n spacing={1}\n sx={{\n cursor: \"pointer\",\n }}\n >\n <SvgIcon\n component={icon}\n sx={{\n color,\n }}\n />\n {label && (\n <div\n style={{\n color,\n }}\n >\n {label}\n </div>\n )}\n </Stack>\n <Popover\n id={id}\n sx={{\n pointerEvents: \"none\",\n }}\n open={state.isPopoverOpen}\n anchorEl={state.anchorEl}\n anchorOrigin={\n anchorOrigin ?? {\n vertical: \"bottom\",\n horizontal: \"left\",\n }\n }\n transformOrigin={\n transformOrigin ?? {\n vertical: \"top\",\n horizontal: \"left\",\n }\n }\n onClose={state.closePopover}\n disableRestoreFocus\n >\n <Stack\n gap=\"1rem\"\n padding={2}\n maxWidth=\"450px\"\n sx={{\n wordWrap: \"break-word\",\n }}\n >\n <div>\n {title && (\n <Typography component=\"span\" fontSize=\"14px\">\n {`${title}: `}\n </Typography>\n )}\n <Typography\n component=\"span\"\n color={color}\n fontWeight=\"bold\"\n fontSize=\"14px\"\n >\n {name}\n </Typography>\n </div>\n\n <Typography fontSize=\"14px\">{explanation}</Typography>\n\n {literalValue && (\n <Typography fontSize=\"12px\">{literalValue}</Typography>\n )}\n </Stack>\n </Popover>\n </>\n )\n },\n)\n\nexport default IndicatorWithExplanation\n"],"names":["IndicatorWithExplanation","observer","id","icon","color","title","name","label","explanation","literalValue","anchorOrigin","transformOrigin","state","useLocalObservable","event","jsxs","Fragment","Stack","jsx","SvgIcon","Popover","Typography"],"mappings":";;;;;;AAoBO,MAAMA,IAA2BC;AAAA,EACtC,CAAC;AAAA,IACC,IAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,EAAA,MACmC;AACnC,UAAMC,IAAQC,EAAmB,OAAO;AAAA,MACtC,UAAU;AAAA,MAEV,IAAI,gBAAgB;AAClB,eAAO,CAAC,CAACD,EAAM;AAAA,MACjB;AAAA,MAEA,YAAYE,GAAsC;AAChD,QAAAF,EAAM,WAAWE,EAAM;AAAA,MACzB;AAAA,MAEA,eAAe;AACb,QAAAF,EAAM,WAAW;AAAA,MACnB;AAAA,IAAA,EACA;AAEF,WACE,gBAAAG,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAD;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,aAAWL,EAAM,gBAAgBV,IAAK;AAAA,UACtC,iBAAc;AAAA,UACd,cAAcU,EAAM;AAAA,UACpB,cAAcA,EAAM;AAAA,UACpB,WAAU;AAAA,UACV,SAAS;AAAA,UACT,IAAI;AAAA,YACF,QAAQ;AAAA,UAAA;AAAA,UAGV,UAAA;AAAA,YAAA,gBAAAM;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,WAAWhB;AAAA,gBACX,IAAI;AAAA,kBACF,OAAAC;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,YAEDG,KACC,gBAAAW;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,OAAAd;AAAA,gBAAA;AAAA,gBAGD,UAAAG;AAAA,cAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,MAGJ,gBAAAW;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,IAAAlB;AAAA,UACA,IAAI;AAAA,YACF,eAAe;AAAA,UAAA;AAAA,UAEjB,MAAMU,EAAM;AAAA,UACZ,UAAUA,EAAM;AAAA,UAChB,cACEF,KAAgB;AAAA,YACd,UAAU;AAAA,YACV,YAAY;AAAA,UAAA;AAAA,UAGhB,iBACEC,KAAmB;AAAA,YACjB,UAAU;AAAA,YACV,YAAY;AAAA,UAAA;AAAA,UAGhB,SAASC,EAAM;AAAA,UACf,qBAAmB;AAAA,UAEnB,UAAA,gBAAAG;AAAA,YAACE;AAAA,YAAA;AAAA,cACC,KAAI;AAAA,cACJ,SAAS;AAAA,cACT,UAAS;AAAA,cACT,IAAI;AAAA,gBACF,UAAU;AAAA,cAAA;AAAA,cAGZ,UAAA;AAAA,gBAAA,gBAAAF,EAAC,OAAA,EACE,UAAA;AAAA,kBAAAV,KACC,gBAAAa,EAACG,KAAW,WAAU,QAAO,UAAS,QACnC,UAAA,GAAGhB,CAAK,KAAA,CACX;AAAA,kBAEF,gBAAAa;AAAA,oBAACG;AAAA,oBAAA;AAAA,sBACC,WAAU;AAAA,sBACV,OAAAjB;AAAA,sBACA,YAAW;AAAA,sBACX,UAAS;AAAA,sBAER,UAAAE;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACH,GACF;AAAA,gBAEA,gBAAAY,EAACG,GAAA,EAAW,UAAS,QAAQ,UAAAb,GAAY;AAAA,gBAExCC,KACC,gBAAAS,EAACG,GAAA,EAAW,UAAS,QAAQ,UAAAZ,EAAA,CAAa;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAE9C;AAAA,MAAA;AAAA,IACF,GACF;AAAA,EAEJ;AACF;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OperationModeIndicator.cjs","sources":["../../../src/components/safetyBar/OperationModeIndicator.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport type { PopoverOrigin } from \"@mui/material/Popover\"\nimport type { OperationMode } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useId } from \"react\"\nimport { Trans, useTranslation } from \"react-i18next\"\nimport OperationModeAutomaticIcon from \"./icons/operation-mode-automatic.svg\"\nimport OperationModeErrorIcon from \"./icons/operation-mode-error.svg\"\nimport OperationModeManualIcon from \"./icons/operation-mode-manual.svg\"\nimport { IndicatorWithExplanation } from \"./IndicatorWithExplanation\"\n\ninterface OperationModeIndicatorProps {\n operationMode: OperationMode\n anchorOrigin?: PopoverOrigin\n transformOrigin?: PopoverOrigin\n compact: boolean\n}\n\nexport const OperationModeIndicator = observer(\n ({\n operationMode,\n anchorOrigin,\n transformOrigin,\n compact,\n }: OperationModeIndicatorProps) => {\n const { t } = useTranslation()\n const theme = useTheme()\n const componentId = useId()\n\n switch (operationMode) {\n case \"OPERATION_MODE_AUTO\":\n return (\n <IndicatorWithExplanation\n id={`operation-mode-auto-${componentId}`}\n icon={OperationModeAutomaticIcon}\n title={t(\"SafetyBar.OperationMode.ti\")}\n name={t(\"SafetyBar.OperationMode.Automatic.ti\")}\n label={compact ? null : t(\"SafetyBar.OperationMode.Automatic.ti\")}\n color={theme.palette.text.secondary}\n explanation={\n <Trans i18nKey=\"SafetyBar.OperationMode.Auto.Explanation.lb\">\n The robot controller is in automatic operation mode. Automated\n movement without manual confirmation is possible in this mode.\n </Trans>\n }\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n case \"OPERATION_MODE_MANUAL\":\n case \"OPERATION_MODE_MANUAL_T1\":\n case \"OPERATION_MODE_MANUAL_T2\": {\n return (\n <IndicatorWithExplanation\n id={`operation-mode-manual-${componentId}`}\n icon={OperationModeManualIcon}\n color={theme.palette.warning.main}\n title={t(\"SafetyBar.OperationMode.ti\")}\n name={t(\"SafetyBar.OperationMode.Manual.lb\")}\n label={compact ? null : t(\"SafetyBar.OperationMode.Manual.lb\")}\n explanation={\n <Trans i18nKey=\"SafetyBar.OperationMode.Manual.Explanation.lb\">\n The robot controller is in manual operation mode. On a physical\n robot, this generally indicates that an enabling switch must be\n held for the robot to move successfully.\n </Trans>\n }\n literalValue={operationMode}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n }\n default:\n return (\n <IndicatorWithExplanation\n id={`operation-mode-error-${componentId}`}\n icon={OperationModeErrorIcon}\n color={theme.palette.warning.main}\n title={t(\"SafetyBar.OperationMode.ti\")}\n name={t(\"SafetyBar.OperationMode.Error.lb\")}\n label={compact ? null : t(\"SafetyBar.OperationMode.Error.lb\")}\n explanation={\n <Trans i18nKey=\"SafetyBar.OperationMode.Error.Explanation.lb\">\n The robot controller has entered an unexpected operation mode.\n Motion group movement may not be possible.\n </Trans>\n }\n literalValue={operationMode}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n }\n },\n)\n\nexport default OperationModeIndicator\n"],"names":["OperationModeIndicator","observer","operationMode","anchorOrigin","transformOrigin","compact","t","useTranslation","theme","useTheme","componentId","useId","jsx","IndicatorWithExplanation","OperationModeAutomaticIcon","Trans","OperationModeManualIcon","OperationModeErrorIcon"],"mappings":"qcAkBaA,EAAyBC,EAAAA,SACpC,CAAC,CACC,cAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,QAAAC,CAAA,IACiC,CACjC,KAAM,CAAE,EAAAC,CAAA,EAAMC,iBAAA,EACRC,EAAQC,EAAAA,SAAA,EACRC,EAAcC,EAAAA,MAAA,EAEpB,OAAQT,EAAA,CACN,IAAK,sBACH,OACEU,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,uBAAuBH,CAAW,GACtC,KAAMI,EAAAA,QACN,MAAOR,EAAE,4BAA4B,EACrC,KAAMA,EAAE,sCAAsC,EAC9C,MAAOD,EAAU,KAAOC,EAAE,sCAAsC,EAChE,MAAOE,EAAM,QAAQ,KAAK,UAC1B,YACEI,EAAAA,IAACG,QAAA,CAAM,QAAQ,8CAA8C,SAAA,gIAG7D,EAEF,aAAAZ,EACA,gBAAAC,CAAA,CAAA,EAGN,IAAK,wBACL,IAAK,2BACL,IAAK,2BACH,OACEQ,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,yBAAyBH,CAAW,GACxC,KAAMM,EAAAA,QACN,MAAOR,EAAM,QAAQ,QAAQ,KAC7B,MAAOF,EAAE,4BAA4B,EACrC,KAAMA,EAAE,mCAAmC,EAC3C,MAAOD,EAAU,KAAOC,EAAE,mCAAmC,EAC7D,YACEM,EAAAA,IAACG,QAAA,CAAM,QAAQ,gDAAgD,SAAA,2KAI/D,EAEF,aAAcb,EACd,aAAAC,EACA,gBAAAC,CAAA,CAAA,EAIN,QACE,OACEQ,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,wBAAwBH,CAAW,GACvC,KAAMO,EAAAA,QACN,MAAOT,EAAM,QAAQ,QAAQ,KAC7B,MAAOF,EAAE,4BAA4B,EACrC,KAAMA,EAAE,kCAAkC,EAC1C,MAAOD,EAAU,KAAOC,EAAE,kCAAkC,EAC5D,YACEM,EAAAA,IAACG,QAAA,CAAM,QAAQ,+CAA+C,SAAA,4GAG9D,EAEF,aAAcb,EACd,aAAAC,EACA,gBAAAC,CAAA,CAAA,CACF,CAGR,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OperationModeIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/safetyBar/OperationModeIndicator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAS3D,UAAU,2BAA2B;IACnC,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,eAAe,CAAC,EAAE,aAAa,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,sBAAsB,gEAM9B,2BAA2B;;CAuE/B,CAAA;AAED,eAAe,sBAAsB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OperationModeIndicator.js","sources":["../../../src/components/safetyBar/OperationModeIndicator.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport type { PopoverOrigin } from \"@mui/material/Popover\"\nimport type { OperationMode } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useId } from \"react\"\nimport { Trans, useTranslation } from \"react-i18next\"\nimport OperationModeAutomaticIcon from \"./icons/operation-mode-automatic.svg\"\nimport OperationModeErrorIcon from \"./icons/operation-mode-error.svg\"\nimport OperationModeManualIcon from \"./icons/operation-mode-manual.svg\"\nimport { IndicatorWithExplanation } from \"./IndicatorWithExplanation\"\n\ninterface OperationModeIndicatorProps {\n operationMode: OperationMode\n anchorOrigin?: PopoverOrigin\n transformOrigin?: PopoverOrigin\n compact: boolean\n}\n\nexport const OperationModeIndicator = observer(\n ({\n operationMode,\n anchorOrigin,\n transformOrigin,\n compact,\n }: OperationModeIndicatorProps) => {\n const { t } = useTranslation()\n const theme = useTheme()\n const componentId = useId()\n\n switch (operationMode) {\n case \"OPERATION_MODE_AUTO\":\n return (\n <IndicatorWithExplanation\n id={`operation-mode-auto-${componentId}`}\n icon={OperationModeAutomaticIcon}\n title={t(\"SafetyBar.OperationMode.ti\")}\n name={t(\"SafetyBar.OperationMode.Automatic.ti\")}\n label={compact ? null : t(\"SafetyBar.OperationMode.Automatic.ti\")}\n color={theme.palette.text.secondary}\n explanation={\n <Trans i18nKey=\"SafetyBar.OperationMode.Auto.Explanation.lb\">\n The robot controller is in automatic operation mode. Automated\n movement without manual confirmation is possible in this mode.\n </Trans>\n }\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n case \"OPERATION_MODE_MANUAL\":\n case \"OPERATION_MODE_MANUAL_T1\":\n case \"OPERATION_MODE_MANUAL_T2\": {\n return (\n <IndicatorWithExplanation\n id={`operation-mode-manual-${componentId}`}\n icon={OperationModeManualIcon}\n color={theme.palette.warning.main}\n title={t(\"SafetyBar.OperationMode.ti\")}\n name={t(\"SafetyBar.OperationMode.Manual.lb\")}\n label={compact ? null : t(\"SafetyBar.OperationMode.Manual.lb\")}\n explanation={\n <Trans i18nKey=\"SafetyBar.OperationMode.Manual.Explanation.lb\">\n The robot controller is in manual operation mode. On a physical\n robot, this generally indicates that an enabling switch must be\n held for the robot to move successfully.\n </Trans>\n }\n literalValue={operationMode}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n }\n default:\n return (\n <IndicatorWithExplanation\n id={`operation-mode-error-${componentId}`}\n icon={OperationModeErrorIcon}\n color={theme.palette.warning.main}\n title={t(\"SafetyBar.OperationMode.ti\")}\n name={t(\"SafetyBar.OperationMode.Error.lb\")}\n label={compact ? null : t(\"SafetyBar.OperationMode.Error.lb\")}\n explanation={\n <Trans i18nKey=\"SafetyBar.OperationMode.Error.Explanation.lb\">\n The robot controller has entered an unexpected operation mode.\n Motion group movement may not be possible.\n </Trans>\n }\n literalValue={operationMode}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n }\n },\n)\n\nexport default OperationModeIndicator\n"],"names":["OperationModeIndicator","observer","operationMode","anchorOrigin","transformOrigin","compact","t","useTranslation","theme","useTheme","componentId","useId","jsx","IndicatorWithExplanation","OperationModeAutomaticIcon","Trans","OperationModeManualIcon","OperationModeErrorIcon"],"mappings":";;;;;;;;;AAkBO,MAAMA,IAAyBC;AAAA,EACpC,CAAC;AAAA,IACC,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,MACiC;AACjC,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAQC,EAAA,GACRC,IAAcC,EAAA;AAEpB,YAAQT,GAAA;AAAA,MACN,KAAK;AACH,eACE,gBAAAU;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAI,uBAAuBH,CAAW;AAAA,YACtC,MAAMI;AAAAA,YACN,OAAOR,EAAE,4BAA4B;AAAA,YACrC,MAAMA,EAAE,sCAAsC;AAAA,YAC9C,OAAOD,IAAU,OAAOC,EAAE,sCAAsC;AAAA,YAChE,OAAOE,EAAM,QAAQ,KAAK;AAAA,YAC1B,aACE,gBAAAI,EAACG,GAAA,EAAM,SAAQ,+CAA8C,UAAA,iIAG7D;AAAA,YAEF,cAAAZ;AAAA,YACA,iBAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MAGN,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eACE,gBAAAQ;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAI,yBAAyBH,CAAW;AAAA,YACxC,MAAMM;AAAAA,YACN,OAAOR,EAAM,QAAQ,QAAQ;AAAA,YAC7B,OAAOF,EAAE,4BAA4B;AAAA,YACrC,MAAMA,EAAE,mCAAmC;AAAA,YAC3C,OAAOD,IAAU,OAAOC,EAAE,mCAAmC;AAAA,YAC7D,aACE,gBAAAM,EAACG,GAAA,EAAM,SAAQ,iDAAgD,UAAA,4KAI/D;AAAA,YAEF,cAAcb;AAAA,YACd,cAAAC;AAAA,YACA,iBAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MAIN;AACE,eACE,gBAAAQ;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAI,wBAAwBH,CAAW;AAAA,YACvC,MAAMO;AAAAA,YACN,OAAOT,EAAM,QAAQ,QAAQ;AAAA,YAC7B,OAAOF,EAAE,4BAA4B;AAAA,YACrC,MAAMA,EAAE,kCAAkC;AAAA,YAC1C,OAAOD,IAAU,OAAOC,EAAE,kCAAkC;AAAA,YAC5D,aACE,gBAAAM,EAACG,GAAA,EAAM,SAAQ,gDAA+C,UAAA,6GAG9D;AAAA,YAEF,cAAcb;AAAA,YACd,cAAAC;AAAA,YACA,iBAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,IACF;AAAA,EAGR;AACF;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SafetyBar.cjs","sources":["../../../src/components/safetyBar/SafetyBar.tsx"],"sourcesContent":["import Divider from \"@mui/material/Divider\"\nimport type { PopoverOrigin } from \"@mui/material/Popover\"\nimport Stack from \"@mui/material/Stack\"\nimport type { OperationMode, SafetyStateType } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { ControllerTypeIndicator } from \"./ControllerTypeIndicator\"\nimport { OperationModeIndicator } from \"./OperationModeIndicator\"\nimport { SafetyStateIndicator } from \"./SafetyStateIndicator\"\n\nexport interface SafetyBarProps {\n isVirtual: boolean\n motionGroupId: string\n operationMode: OperationMode\n safetyState: SafetyStateType\n anchorOrigin?: PopoverOrigin\n transformOrigin?: PopoverOrigin\n compact?: boolean\n}\n\nexport const SafetyBar = externalizeComponent(\n observer(\n ({\n isVirtual,\n motionGroupId,\n operationMode,\n safetyState,\n anchorOrigin,\n transformOrigin,\n compact = true,\n }: SafetyBarProps) => {\n const gap = compact ? 1 : 2\n\n return (\n <Stack\n direction=\"row\"\n gap={gap}\n alignItems=\"center\"\n sx={{ height: \"24px\" }}\n >\n <SafetyStateIndicator\n safetyState={safetyState}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n compact={compact}\n />\n\n <Divider orientation=\"vertical\" flexItem />\n\n <OperationModeIndicator\n operationMode={operationMode}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n compact={compact}\n />\n\n <Divider orientation=\"vertical\" flexItem />\n\n <ControllerTypeIndicator\n isVirtual={isVirtual}\n motionGroupId={motionGroupId}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n compact={compact}\n />\n </Stack>\n )\n },\n ),\n)\n\nexport default SafetyBar\n"],"names":["SafetyBar","externalizeComponent","observer","isVirtual","motionGroupId","operationMode","safetyState","anchorOrigin","transformOrigin","compact","gap","jsxs","Stack","jsx","SafetyStateIndicator","Divider","OperationModeIndicator","ControllerTypeIndicator"],"mappings":"2ZAoBaA,EAAYC,EAAAA,qBACvBC,EAAAA,SACE,CAAC,CACC,UAAAC,EACA,cAAAC,EACA,cAAAC,EACA,YAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,QAAAC,EAAU,EAAA,IACU,CACpB,MAAMC,EAAMD,EAAU,EAAI,EAE1B,OACEE,EAAAA,KAACC,EAAA,CACC,UAAU,MACV,IAAAF,EACA,WAAW,SACX,GAAI,CAAE,OAAQ,MAAA,EAEd,SAAA,CAAAG,EAAAA,IAACC,EAAAA,qBAAA,CACC,YAAAR,EACA,aAAAC,EACA,gBAAAC,EACA,QAAAC,CAAA,CAAA,EAGFI,EAAAA,IAACE,EAAA,CAAQ,YAAY,WAAW,SAAQ,GAAC,EAEzCF,EAAAA,IAACG,EAAAA,uBAAA,CACC,cAAAX,EACA,aAAAE,EACA,gBAAAC,EACA,QAAAC,CAAA,CAAA,EAGFI,EAAAA,IAACE,EAAA,CAAQ,YAAY,WAAW,SAAQ,GAAC,EAEzCF,EAAAA,IAACI,EAAAA,wBAAA,CACC,UAAAd,EACA,cAAAC,EACA,aAAAG,EACA,gBAAAC,EACA,QAAAC,CAAA,CAAA,CACF,CAAA,CAAA,CAGN,CAAA,CAEJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SafetyBar.d.ts","sourceRoot":"","sources":["../../../src/components/safetyBar/SafetyBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAO5E,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,aAAa,CAAA;IAC5B,WAAW,EAAE,eAAe,CAAA;IAC5B,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,eAAe,CAAC,EAAE,aAAa,CAAA;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,SAAS,uGAUf,cAAc;;CAuCpB,CAAA;AAED,eAAe,SAAS,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SafetyBar.js","sources":["../../../src/components/safetyBar/SafetyBar.tsx"],"sourcesContent":["import Divider from \"@mui/material/Divider\"\nimport type { PopoverOrigin } from \"@mui/material/Popover\"\nimport Stack from \"@mui/material/Stack\"\nimport type { OperationMode, SafetyStateType } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { ControllerTypeIndicator } from \"./ControllerTypeIndicator\"\nimport { OperationModeIndicator } from \"./OperationModeIndicator\"\nimport { SafetyStateIndicator } from \"./SafetyStateIndicator\"\n\nexport interface SafetyBarProps {\n isVirtual: boolean\n motionGroupId: string\n operationMode: OperationMode\n safetyState: SafetyStateType\n anchorOrigin?: PopoverOrigin\n transformOrigin?: PopoverOrigin\n compact?: boolean\n}\n\nexport const SafetyBar = externalizeComponent(\n observer(\n ({\n isVirtual,\n motionGroupId,\n operationMode,\n safetyState,\n anchorOrigin,\n transformOrigin,\n compact = true,\n }: SafetyBarProps) => {\n const gap = compact ? 1 : 2\n\n return (\n <Stack\n direction=\"row\"\n gap={gap}\n alignItems=\"center\"\n sx={{ height: \"24px\" }}\n >\n <SafetyStateIndicator\n safetyState={safetyState}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n compact={compact}\n />\n\n <Divider orientation=\"vertical\" flexItem />\n\n <OperationModeIndicator\n operationMode={operationMode}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n compact={compact}\n />\n\n <Divider orientation=\"vertical\" flexItem />\n\n <ControllerTypeIndicator\n isVirtual={isVirtual}\n motionGroupId={motionGroupId}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n compact={compact}\n />\n </Stack>\n )\n },\n ),\n)\n\nexport default SafetyBar\n"],"names":["SafetyBar","externalizeComponent","observer","isVirtual","motionGroupId","operationMode","safetyState","anchorOrigin","transformOrigin","compact","jsxs","Stack","jsx","SafetyStateIndicator","Divider","OperationModeIndicator","ControllerTypeIndicator"],"mappings":";;;;;;;;AAoBO,MAAMA,IAAYC;AAAA,EACvBC;AAAA,IACE,CAAC;AAAA,MACC,WAAAC;AAAA,MACA,eAAAC;AAAA,MACA,eAAAC;AAAA,MACA,aAAAC;AAAA,MACA,cAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,SAAAC,IAAU;AAAA,IAAA,MAKR,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,KALQF,IAAU,IAAI;AAAA,QAMtB,YAAW;AAAA,QACX,IAAI,EAAE,QAAQ,OAAA;AAAA,QAEd,UAAA;AAAA,UAAA,gBAAAG;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,aAAAP;AAAA,cACA,cAAAC;AAAA,cACA,iBAAAC;AAAA,cACA,SAAAC;AAAA,YAAA;AAAA,UAAA;AAAA,UAGF,gBAAAG,EAACE,GAAA,EAAQ,aAAY,YAAW,UAAQ,IAAC;AAAA,UAEzC,gBAAAF;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,eAAAV;AAAA,cACA,cAAAE;AAAA,cACA,iBAAAC;AAAA,cACA,SAAAC;AAAA,YAAA;AAAA,UAAA;AAAA,UAGF,gBAAAG,EAACE,GAAA,EAAQ,aAAY,YAAW,UAAQ,IAAC;AAAA,UAEzC,gBAAAF;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,WAAAb;AAAA,cACA,eAAAC;AAAA,cACA,cAAAG;AAAA,cACA,iBAAAC;AAAA,cACA,SAAAC;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AAEJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SafetyStateIndicator.cjs","sources":["../../../src/components/safetyBar/SafetyStateIndicator.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport type { PopoverOrigin } from \"@mui/material/Popover\"\nimport type { SafetyStateType } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useId } from \"react\"\nimport { Trans, useTranslation } from \"react-i18next\"\nimport { assertUnreachable } from \"../utils/errorHandling\"\nimport SafetyStateErrorIcon from \"./icons/safety-state-error.svg\"\nimport SafetyStateEstopIcon from \"./icons/safety-state-estop.svg\"\nimport SafetyStateManualActionRequiredIcon from \"./icons/safety-state-manual-action-required.svg\"\nimport SafetyStateNormalIcon from \"./icons/safety-state-normal.svg\"\nimport SafetyStateStopIcon from \"./icons/safety-state-stop.svg\"\nimport { IndicatorWithExplanation } from \"./IndicatorWithExplanation\"\n\ninterface SafetyStateIndicatorProps {\n safetyState: SafetyStateType\n anchorOrigin?: PopoverOrigin\n transformOrigin?: PopoverOrigin\n compact: boolean\n}\n\nexport const SafetyStateIndicator = observer(\n ({\n safetyState,\n anchorOrigin,\n transformOrigin,\n compact,\n }: SafetyStateIndicatorProps) => {\n const { t } = useTranslation()\n const theme = useTheme()\n const componentId = useId()\n\n switch (safetyState) {\n // Normal state, robot can move\n case \"SAFETY_STATE_NORMAL\":\n return (\n <IndicatorWithExplanation\n id={`safety-state-normal-${componentId}`}\n title={t(\"SafetyBar.SafetyState.ti\")}\n name={t(\"SafetyBar.SafetyState.Normal.lb\")}\n label={compact ? null : t(\"SafetyBar.SafetyState.Normal.lb\")}\n icon={SafetyStateNormalIcon}\n color={theme.palette.text.secondary}\n explanation={\n <Trans i18nKey=\"SafetyBar.SafetyState.Normal.Explanation.lb\">\n The robot controller is in a normal safety state. Movement is\n not prevented by this state.\n </Trans>\n }\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n\n // Estop\n case \"SAFETY_STATE_DEVICE_EMERGENCY_STOP\":\n case \"SAFETY_STATE_ROBOT_EMERGENCY_STOP\":\n return (\n <IndicatorWithExplanation\n id={`safety-state-estop-${componentId}`}\n title={t(\"SafetyBar.SafetyState.ti\")}\n name={t(\"SafetyBar.SafetyState.Estop.lb\")}\n label={compact ? null : t(\"SafetyBar.SafetyState.Estop.lb\")}\n icon={SafetyStateEstopIcon}\n color={theme.palette.error.main}\n explanation={\n <Trans i18nKey=\"SafetyBar.StopState.Estop.Explanation.lb\">\n An emergency stop of the robot controller has been triggered.\n Movement of the robot is no longer possible until the estop is\n released.\n </Trans>\n }\n literalValue={safetyState}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n\n // General stop\n case \"SAFETY_STATE_STOP_0\":\n case \"SAFETY_STATE_STOP_1\":\n case \"SAFETY_STATE_STOP_2\":\n case \"SAFETY_STATE_PROTECTIVE_STOP\":\n case \"SAFETY_STATE_STOP\":\n return (\n <IndicatorWithExplanation\n id={`safety-state-stop-${componentId}`}\n icon={SafetyStateStopIcon}\n title={t(\"SafetyBar.SafetyState.ti\")}\n name={t(\"SafetyBar.SafetyState.Stop.lb\")}\n label={compact ? null : t(\"SafetyBar.SafetyState.Stop.lb\")}\n color={theme.palette.warning.main}\n explanation={\n <Trans i18nKey=\"SafetyBar.SafetyState.Stop.Explanation.lb\">\n The robot controller has entered a stop state. Movement is no\n longer possible until the stop state is resolved.\n </Trans>\n }\n literalValue={safetyState}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n\n // Manual action required\n case \"SAFETY_STATE_REDUCED\":\n case \"SAFETY_STATE_MASTERING\":\n case \"SAFETY_STATE_CONFIRM_SAFETY\":\n case \"SAFETY_STATE_OPERATOR_SAFETY\":\n case \"SAFETY_STATE_RECOVERY\":\n case \"SAFETY_STATE_VIOLATION\":\n return (\n <IndicatorWithExplanation\n id={`safety-state-manual-action-required-${componentId}`}\n icon={SafetyStateManualActionRequiredIcon}\n color={theme.palette.warning.main}\n title={t(\"SafetyBar.SafetyState.ti\")}\n name={t(\"SafetyBar.SafetyState.ManualActionRequired.lb\")}\n label={\n compact\n ? null\n : t(\"SafetyBar.SafetyState.ManualActionRequired.lb\")\n }\n explanation={\n <Trans i18nKey=\"SafetyBar.SafetyState.ManualActionRequired.Explanation.lb\">\n The robot controller has entered a safety state requiring manual\n action to resolve.\n </Trans>\n }\n literalValue={safetyState}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n\n // Error\n case \"SAFETY_STATE_UNKNOWN\":\n case \"SAFETY_STATE_FAULT\":\n return (\n <IndicatorWithExplanation\n id={`safety-state-error-${componentId}`}\n icon={SafetyStateErrorIcon}\n color={theme.palette.error.main}\n title={t(\"SafetyBar.SafetyState.ti\")}\n name={t(\"SafetyBar.SafetyState.Error.lb\")}\n label={compact ? null : t(\"SafetyBar.SafetyState.Error.lb\")}\n explanation={\n <Trans i18nKey=\"SafetyBar.SafetyState.Error.Explanation.lb\">\n The robot controller has entered an unexpected safety state.\n </Trans>\n }\n literalValue={safetyState}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n />\n )\n default:\n assertUnreachable(safetyState, `Unknown safety state ${safetyState}`)\n }\n },\n)\n\nexport default SafetyStateIndicator\n"],"names":["SafetyStateIndicator","observer","safetyState","anchorOrigin","transformOrigin","compact","t","useTranslation","theme","useTheme","componentId","useId","jsx","IndicatorWithExplanation","SafetyStateNormalIcon","Trans","SafetyStateEstopIcon","SafetyStateStopIcon","SafetyStateManualActionRequiredIcon","SafetyStateErrorIcon","assertUnreachable"],"mappings":"mlBAqBaA,EAAuBC,EAAAA,SAClC,CAAC,CACC,YAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,QAAAC,CAAA,IAC+B,CAC/B,KAAM,CAAE,EAAAC,CAAA,EAAMC,iBAAA,EACRC,EAAQC,EAAAA,SAAA,EACRC,EAAcC,EAAAA,MAAA,EAEpB,OAAQT,EAAA,CAEN,IAAK,sBACH,OACEU,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,uBAAuBH,CAAW,GACtC,MAAOJ,EAAE,0BAA0B,EACnC,KAAMA,EAAE,iCAAiC,EACzC,MAAOD,EAAU,KAAOC,EAAE,iCAAiC,EAC3D,KAAMQ,EAAAA,QACN,MAAON,EAAM,QAAQ,KAAK,UAC1B,YACEI,EAAAA,IAACG,QAAA,CAAM,QAAQ,8CAA8C,SAAA,6FAG7D,EAEF,aAAAZ,EACA,gBAAAC,CAAA,CAAA,EAKN,IAAK,qCACL,IAAK,oCACH,OACEQ,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,sBAAsBH,CAAW,GACrC,MAAOJ,EAAE,0BAA0B,EACnC,KAAMA,EAAE,gCAAgC,EACxC,MAAOD,EAAU,KAAOC,EAAE,gCAAgC,EAC1D,KAAMU,EAAAA,QACN,MAAOR,EAAM,QAAQ,MAAM,KAC3B,YACEI,EAAAA,IAACG,QAAA,CAAM,QAAQ,2CAA2C,SAAA,yIAI1D,EAEF,aAAcb,EACd,aAAAC,EACA,gBAAAC,CAAA,CAAA,EAKN,IAAK,sBACL,IAAK,sBACL,IAAK,sBACL,IAAK,+BACL,IAAK,oBACH,OACEQ,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,qBAAqBH,CAAW,GACpC,KAAMO,EAAAA,QACN,MAAOX,EAAE,0BAA0B,EACnC,KAAMA,EAAE,+BAA+B,EACvC,MAAOD,EAAU,KAAOC,EAAE,+BAA+B,EACzD,MAAOE,EAAM,QAAQ,QAAQ,KAC7B,YACEI,EAAAA,IAACG,QAAA,CAAM,QAAQ,4CAA4C,SAAA,kHAG3D,EAEF,aAAcb,EACd,aAAAC,EACA,gBAAAC,CAAA,CAAA,EAKN,IAAK,uBACL,IAAK,yBACL,IAAK,8BACL,IAAK,+BACL,IAAK,wBACL,IAAK,yBACH,OACEQ,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,uCAAuCH,CAAW,GACtD,KAAMQ,EAAAA,QACN,MAAOV,EAAM,QAAQ,QAAQ,KAC7B,MAAOF,EAAE,0BAA0B,EACnC,KAAMA,EAAE,+CAA+C,EACvD,MACED,EACI,KACAC,EAAE,+CAA+C,EAEvD,YACEM,EAAAA,IAACG,QAAA,CAAM,QAAQ,4DAA4D,SAAA,sFAG3E,EAEF,aAAcb,EACd,aAAAC,EACA,gBAAAC,CAAA,CAAA,EAKN,IAAK,uBACL,IAAK,qBACH,OACEQ,EAAAA,IAACC,EAAAA,yBAAA,CACC,GAAI,sBAAsBH,CAAW,GACrC,KAAMS,EAAAA,QACN,MAAOX,EAAM,QAAQ,MAAM,KAC3B,MAAOF,EAAE,0BAA0B,EACnC,KAAMA,EAAE,gCAAgC,EACxC,MAAOD,EAAU,KAAOC,EAAE,gCAAgC,EAC1D,YACEM,EAAAA,IAACG,QAAA,CAAM,QAAQ,6CAA6C,SAAA,+DAE5D,EAEF,aAAcb,EACd,aAAAC,EACA,gBAAAC,CAAA,CAAA,EAGN,QACEgB,EAAAA,kBAAkBlB,EAAa,wBAAwBA,CAAW,EAAE,CAAA,CAE1E,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SafetyStateIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/safetyBar/SafetyStateIndicator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAY7D,UAAU,yBAAyB;IACjC,WAAW,EAAE,eAAe,CAAA;IAC5B,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,eAAe,CAAC,EAAE,aAAa,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,oBAAoB,8DAM5B,yBAAyB;;CAqI7B,CAAA;AAED,eAAe,oBAAoB,CAAA"}
|