@wandelbots/wandelbots-js-react-components 5.5.1-pr.fix-standardize-output.591.60112ee → 5.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d.cjs +2 -1
- package/dist/3d.cjs.map +1 -0
- package/dist/3d.d.ts +1 -0
- package/dist/3d.d.ts.map +1 -0
- package/dist/3d.js +1 -0
- package/dist/3d.js.map +1 -0
- package/dist/Setup.d.ts +1 -0
- package/dist/Setup.d.ts.map +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.js +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -1
- package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
- package/dist/components/AppHeader.cjs +2 -1
- package/dist/components/AppHeader.cjs.map +1 -0
- package/dist/components/AppHeader.d.ts +1 -0
- package/dist/components/AppHeader.d.ts.map +1 -0
- package/dist/components/AppHeader.js +34 -40
- package/dist/components/AppHeader.js.map +1 -0
- package/dist/components/ConsoleFilter.cjs +1 -0
- package/dist/components/ConsoleFilter.cjs.map +1 -0
- package/dist/components/ConsoleFilter.d.ts +1 -0
- package/dist/components/ConsoleFilter.d.ts.map +1 -0
- package/dist/components/ConsoleFilter.js +1 -0
- package/dist/components/ConsoleFilter.js.map +1 -0
- package/dist/components/CopyableText.cjs +1 -0
- package/dist/components/CopyableText.cjs.map +1 -0
- package/dist/components/CopyableText.d.ts +1 -0
- package/dist/components/CopyableText.d.ts.map +1 -0
- package/dist/components/CopyableText.js +1 -0
- package/dist/components/CopyableText.js.map +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.cjs +2 -1
- package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.d.ts +1 -0
- package/dist/components/CycleTimer/DefaultVariant.d.ts.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.d.ts +1 -0
- package/dist/components/CycleTimer/SmallVariant.d.ts.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.js +1 -0
- package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
- package/dist/components/CycleTimer/index.cjs +2 -1
- package/dist/components/CycleTimer/index.cjs.map +1 -0
- package/dist/components/CycleTimer/index.d.ts +1 -0
- package/dist/components/CycleTimer/index.d.ts.map +1 -0
- package/dist/components/CycleTimer/index.js +2 -1
- package/dist/components/CycleTimer/index.js.map +1 -0
- package/dist/components/CycleTimer/types.d.ts +1 -0
- package/dist/components/CycleTimer/types.d.ts.map +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
- package/dist/components/CycleTimer/useAnimations.d.ts +1 -0
- package/dist/components/CycleTimer/useAnimations.d.ts.map +1 -0
- package/dist/components/CycleTimer/useAnimations.js +2 -9
- package/dist/components/CycleTimer/useAnimations.js.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.cjs +2 -1
- package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.d.ts +1 -0
- package/dist/components/CycleTimer/useTimerLogic.d.ts.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
- package/dist/components/CycleTimer/utils.cjs +2 -1
- package/dist/components/CycleTimer/utils.cjs.map +1 -0
- package/dist/components/CycleTimer/utils.d.ts +1 -0
- package/dist/components/CycleTimer/utils.d.ts.map +1 -0
- package/dist/components/CycleTimer/utils.js +11 -19
- package/dist/components/CycleTimer/utils.js.map +1 -0
- package/dist/components/CycleTimer.cjs +1 -0
- package/dist/components/CycleTimer.cjs.map +1 -0
- package/dist/components/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer.d.ts.map +1 -0
- package/dist/components/CycleTimer.js +1 -0
- package/dist/components/CycleTimer.js.map +1 -0
- package/dist/components/DataGrid.cjs +2 -1
- package/dist/components/DataGrid.cjs.map +1 -0
- package/dist/components/DataGrid.d.ts +1 -0
- package/dist/components/DataGrid.d.ts.map +1 -0
- package/dist/components/DataGrid.js +2 -1
- package/dist/components/DataGrid.js.map +1 -0
- package/dist/components/LoadingCover.cjs +2 -1
- package/dist/components/LoadingCover.cjs.map +1 -0
- package/dist/components/LoadingCover.d.ts +1 -0
- package/dist/components/LoadingCover.d.ts.map +1 -0
- package/dist/components/LoadingCover.js +1 -0
- package/dist/components/LoadingCover.js.map +1 -0
- package/dist/components/LogPanel.cjs +2 -1
- package/dist/components/LogPanel.cjs.map +1 -0
- package/dist/components/LogPanel.d.ts +1 -0
- package/dist/components/LogPanel.d.ts.map +1 -0
- package/dist/components/LogPanel.js +2 -1
- package/dist/components/LogPanel.js.map +1 -0
- package/dist/components/LogStore.cjs +1 -0
- package/dist/components/LogStore.cjs.map +1 -0
- package/dist/components/LogStore.d.ts +1 -0
- package/dist/components/LogStore.d.ts.map +1 -0
- package/dist/components/LogStore.js +1 -0
- package/dist/components/LogStore.js.map +1 -0
- package/dist/components/LogViewer.cjs +2 -1
- package/dist/components/LogViewer.cjs.map +1 -0
- package/dist/components/LogViewer.d.ts +1 -0
- package/dist/components/LogViewer.d.ts.map +1 -0
- package/dist/components/LogViewer.js +2 -1
- package/dist/components/LogViewer.js.map +1 -0
- package/dist/components/ProgramControl.cjs +2 -1
- package/dist/components/ProgramControl.cjs.map +1 -0
- package/dist/components/ProgramControl.d.ts +1 -0
- package/dist/components/ProgramControl.d.ts.map +1 -0
- package/dist/components/ProgramControl.js +7 -6
- package/dist/components/ProgramControl.js.map +1 -0
- package/dist/components/ProgramStateIndicator.cjs +2 -1
- package/dist/components/ProgramStateIndicator.cjs.map +1 -0
- package/dist/components/ProgramStateIndicator.d.ts +1 -0
- package/dist/components/ProgramStateIndicator.d.ts.map +1 -0
- package/dist/components/ProgramStateIndicator.js +29 -28
- package/dist/components/ProgramStateIndicator.js.map +1 -0
- package/dist/components/RobotCard.cjs +2 -1
- package/dist/components/RobotCard.cjs.map +1 -0
- package/dist/components/RobotCard.d.ts +1 -0
- package/dist/components/RobotCard.d.ts.map +1 -0
- package/dist/components/RobotCard.js +2 -1
- package/dist/components/RobotCard.js.map +1 -0
- package/dist/components/RobotListItem.cjs +2 -1
- package/dist/components/RobotListItem.cjs.map +1 -0
- package/dist/components/RobotListItem.d.ts +1 -0
- package/dist/components/RobotListItem.d.ts.map +1 -0
- package/dist/components/RobotListItem.js +26 -25
- package/dist/components/RobotListItem.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.cjs +2 -1
- package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.js +2 -1
- package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts +2 -0
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts.map +1 -0
- package/dist/components/SelectableFab.cjs +1 -0
- package/dist/components/SelectableFab.cjs.map +1 -0
- package/dist/components/SelectableFab.d.ts +1 -0
- package/dist/components/SelectableFab.d.ts.map +1 -0
- package/dist/components/SelectableFab.js +1 -0
- package/dist/components/SelectableFab.js.map +1 -0
- package/dist/components/TabBar.cjs +2 -1
- package/dist/components/TabBar.cjs.map +1 -0
- package/dist/components/TabBar.d.ts +1 -0
- package/dist/components/TabBar.d.ts.map +1 -0
- package/dist/components/TabBar.js +2 -1
- package/dist/components/TabBar.js.map +1 -0
- package/dist/components/ThemeSelect.d.ts +1 -0
- package/dist/components/ThemeSelect.d.ts.map +1 -0
- package/dist/components/Timer/Timer.d.ts +1 -0
- package/dist/components/Timer/Timer.d.ts.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs +1 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.d.ts +1 -0
- package/dist/components/Timer/TimerDefaultVariant.d.ts.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.d.ts +1 -0
- package/dist/components/Timer/TimerSmallVariant.d.ts.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.js +1 -0
- package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
- package/dist/components/Timer/index.cjs +2 -1
- package/dist/components/Timer/index.cjs.map +1 -0
- package/dist/components/Timer/index.d.ts +1 -0
- package/dist/components/Timer/index.d.ts.map +1 -0
- package/dist/components/Timer/index.js +12 -11
- package/dist/components/Timer/index.js.map +1 -0
- package/dist/components/Timer/types.d.ts +1 -0
- package/dist/components/Timer/types.d.ts.map +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
- package/dist/components/Timer/useTimerAnimations.d.ts +1 -0
- package/dist/components/Timer/useTimerAnimations.d.ts.map +1 -0
- package/dist/components/Timer/useTimerAnimations.js +2 -5
- package/dist/components/Timer/useTimerAnimations.js.map +1 -0
- package/dist/components/Timer/useTimerLogic.cjs +1 -0
- package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
- package/dist/components/Timer/useTimerLogic.d.ts +1 -0
- package/dist/components/Timer/useTimerLogic.d.ts.map +1 -0
- package/dist/components/Timer/useTimerLogic.js +1 -0
- package/dist/components/Timer/useTimerLogic.js.map +1 -0
- package/dist/components/Timer/utils.cjs +2 -1
- package/dist/components/Timer/utils.cjs.map +1 -0
- package/dist/components/Timer/utils.d.ts +1 -0
- package/dist/components/Timer/utils.d.ts.map +1 -0
- package/dist/components/Timer/utils.js +10 -10
- package/dist/components/Timer/utils.js.map +1 -0
- package/dist/components/Timer.cjs +1 -0
- package/dist/components/Timer.cjs.map +1 -0
- package/dist/components/Timer.d.ts +1 -0
- package/dist/components/Timer.d.ts.map +1 -0
- package/dist/components/Timer.js +1 -0
- package/dist/components/Timer.js.map +1 -0
- package/dist/components/TransparentOverlay.d.ts +1 -0
- package/dist/components/TransparentOverlay.d.ts.map +1 -0
- package/dist/components/VelocitySlider.cjs +1 -0
- package/dist/components/VelocitySlider.cjs.map +1 -0
- package/dist/components/VelocitySlider.d.ts +1 -0
- package/dist/components/VelocitySlider.d.ts.map +1 -0
- package/dist/components/VelocitySlider.js +1 -0
- package/dist/components/VelocitySlider.js.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.d.ts +1 -0
- package/dist/components/experimental/utils/AdornedSelect.d.ts.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
- package/dist/components/jogging/JoggingBlocked.d.ts +1 -0
- package/dist/components/jogging/JoggingBlocked.d.ts.map +1 -0
- package/dist/components/jogging/JoggingBlocked.js +1 -0
- package/dist/components/jogging/JoggingBlocked.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.js +20 -18
- package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.cjs +2 -1
- package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.js +41 -37
- package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
- package/dist/components/jogging/JoggingJointTab.cjs +2 -1
- package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointTab.d.ts +1 -0
- package/dist/components/jogging/JoggingJointTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointTab.js +1 -0
- package/dist/components/jogging/JoggingJointTab.js.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.cjs +2 -1
- package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.js +2 -1
- package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
- package/dist/components/jogging/JoggingOptions.cjs +2 -1
- package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
- package/dist/components/jogging/JoggingOptions.d.ts +1 -0
- package/dist/components/jogging/JoggingOptions.d.ts.map +1 -0
- package/dist/components/jogging/JoggingOptions.js +1 -0
- package/dist/components/jogging/JoggingOptions.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.cjs +2 -1
- package/dist/components/jogging/JoggingPanel.cjs.map +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts.map +1 -0
- package/dist/components/jogging/JoggingPanel.js +119 -21
- package/dist/components/jogging/JoggingPanel.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.test.d.ts +2 -0
- package/dist/components/jogging/JoggingPanel.test.d.ts.map +1 -0
- package/dist/components/jogging/JoggingStore.cjs +1 -0
- package/dist/components/jogging/JoggingStore.cjs.map +1 -0
- package/dist/components/jogging/JoggingStore.d.ts +1 -0
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -0
- package/dist/components/jogging/JoggingStore.js +1 -0
- package/dist/components/jogging/JoggingStore.js.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.cjs +2 -1
- package/dist/components/jogging/PoseCartesianValues.cjs.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.js +5 -4
- package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
- package/dist/components/jogging/PoseJointValues.cjs +2 -1
- package/dist/components/jogging/PoseJointValues.cjs.map +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts.map +1 -0
- package/dist/components/jogging/PoseJointValues.js +2 -1
- package/dist/components/jogging/PoseJointValues.js.map +1 -0
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts +11 -0
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.js +1 -0
- package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
- package/dist/components/robots/AxisConfig.cjs +1 -0
- package/dist/components/robots/AxisConfig.cjs.map +1 -0
- package/dist/components/robots/AxisConfig.d.ts +1 -0
- package/dist/components/robots/AxisConfig.d.ts.map +1 -0
- package/dist/components/robots/AxisConfig.js +1 -0
- package/dist/components/robots/AxisConfig.js.map +1 -0
- package/dist/components/robots/DHLinearAxis.cjs +2 -1
- package/dist/components/robots/DHLinearAxis.cjs.map +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts.map +1 -0
- package/dist/components/robots/DHLinearAxis.js +1 -0
- package/dist/components/robots/DHLinearAxis.js.map +1 -0
- package/dist/components/robots/DHRobot.cjs +2 -1
- package/dist/components/robots/DHRobot.cjs.map +1 -0
- package/dist/components/robots/DHRobot.d.ts +1 -0
- package/dist/components/robots/DHRobot.d.ts.map +1 -0
- package/dist/components/robots/DHRobot.js +1 -0
- package/dist/components/robots/DHRobot.js.map +1 -0
- package/dist/components/robots/GenericRobot.cjs +1 -0
- package/dist/components/robots/GenericRobot.cjs.map +1 -0
- package/dist/components/robots/GenericRobot.d.ts +1 -0
- package/dist/components/robots/GenericRobot.d.ts.map +1 -0
- package/dist/components/robots/GenericRobot.js +1 -0
- package/dist/components/robots/GenericRobot.js.map +1 -0
- package/dist/components/robots/LinearAxis.cjs +2 -1
- package/dist/components/robots/LinearAxis.cjs.map +1 -0
- package/dist/components/robots/LinearAxis.d.ts +1 -0
- package/dist/components/robots/LinearAxis.d.ts.map +1 -0
- package/dist/components/robots/LinearAxis.js +1 -0
- package/dist/components/robots/LinearAxis.js.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.cjs +2 -1
- package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.d.ts +1 -0
- package/dist/components/robots/LinearAxisAnimator.d.ts.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.js +1 -0
- package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.cjs +2 -1
- package/dist/components/robots/MotionGroupVisualizer.cjs.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.js +5 -4
- package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
- package/dist/components/robots/Robot.cjs +2 -1
- package/dist/components/robots/Robot.cjs.map +1 -0
- package/dist/components/robots/Robot.d.ts +1 -0
- package/dist/components/robots/Robot.d.ts.map +1 -0
- package/dist/components/robots/Robot.js +1 -0
- package/dist/components/robots/Robot.js.map +1 -0
- package/dist/components/robots/RobotAnimator.cjs +2 -1
- package/dist/components/robots/RobotAnimator.cjs.map +1 -0
- package/dist/components/robots/RobotAnimator.d.ts +1 -0
- package/dist/components/robots/RobotAnimator.d.ts.map +1 -0
- package/dist/components/robots/RobotAnimator.js +1 -0
- package/dist/components/robots/RobotAnimator.js.map +1 -0
- package/dist/components/robots/RobotAnimator.test.d.ts +2 -0
- package/dist/components/robots/RobotAnimator.test.d.ts.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.cjs +2 -1
- package/dist/components/robots/SupportedLinearAxis.cjs.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.js +8 -7
- package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
- package/dist/components/robots/SupportedRobot.cjs +2 -1
- package/dist/components/robots/SupportedRobot.cjs.map +1 -0
- package/dist/components/robots/SupportedRobot.d.ts +1 -0
- package/dist/components/robots/SupportedRobot.d.ts.map +1 -0
- package/dist/components/robots/SupportedRobot.js +7 -6
- package/dist/components/robots/SupportedRobot.js.map +1 -0
- package/dist/components/robots/ghostStyle.cjs +1 -0
- package/dist/components/robots/ghostStyle.cjs.map +1 -0
- package/dist/components/robots/ghostStyle.d.ts +1 -0
- package/dist/components/robots/ghostStyle.d.ts.map +1 -0
- package/dist/components/robots/ghostStyle.js +1 -0
- package/dist/components/robots/ghostStyle.js.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.d.ts +1 -0
- package/dist/components/robots/manufacturerHomePositions.d.ts.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.js +1 -0
- package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
- package/dist/components/robots/robotModelLogic.cjs +2 -1
- package/dist/components/robots/robotModelLogic.cjs.map +1 -0
- package/dist/components/robots/robotModelLogic.d.ts +1 -0
- package/dist/components/robots/robotModelLogic.d.ts.map +1 -0
- package/dist/components/robots/robotModelLogic.js +34 -58
- package/dist/components/robots/robotModelLogic.js.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.js +12 -10
- package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -1
- package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.js +24 -21
- package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
- package/dist/components/safetyBar/SafetyBar.cjs +2 -1
- package/dist/components/safetyBar/SafetyBar.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -0
- package/dist/components/safetyBar/SafetyBar.js +16 -15
- package/dist/components/safetyBar/SafetyBar.js.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -1
- package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.js +30 -25
- package/dist/components/safetyBar/SafetyStateIndicator.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +3 -0
- package/dist/{chunks/controller-type-virtual-CWOoMRfl.js → components/safetyBar/icons/controller-type-physical.svg.js} +6 -10
- package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +11 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/index.d.ts +1 -0
- package/dist/components/safetyBar/icons/index.d.ts.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +1 -0
- package/dist/components/utils/converters.cjs +2 -1
- package/dist/components/utils/converters.cjs.map +1 -0
- package/dist/components/utils/converters.d.ts +1 -0
- package/dist/components/utils/converters.d.ts.map +1 -0
- package/dist/components/utils/converters.js +11 -26
- package/dist/components/utils/converters.js.map +1 -0
- package/dist/components/utils/errorHandling.cjs +2 -1
- package/dist/components/utils/errorHandling.cjs.map +1 -0
- package/dist/components/utils/errorHandling.d.ts +1 -0
- package/dist/components/utils/errorHandling.d.ts.map +1 -0
- package/dist/components/utils/errorHandling.js +9 -17
- package/dist/components/utils/errorHandling.js.map +1 -0
- package/dist/components/utils/errorHandling.test.d.ts +2 -0
- package/dist/components/utils/errorHandling.test.d.ts.map +1 -0
- package/dist/components/utils/hooks.cjs +1 -0
- package/dist/components/utils/hooks.cjs.map +1 -0
- package/dist/components/utils/hooks.d.ts +1 -0
- package/dist/components/utils/hooks.d.ts.map +1 -0
- package/dist/components/utils/hooks.js +4 -3
- package/dist/components/utils/hooks.js.map +1 -0
- package/dist/components/utils/interpolation.cjs +1 -0
- package/dist/components/utils/interpolation.cjs.map +1 -0
- package/dist/components/utils/interpolation.d.ts +1 -0
- package/dist/components/utils/interpolation.d.ts.map +1 -0
- package/dist/components/utils/interpolation.js +1 -0
- package/dist/components/utils/interpolation.js.map +1 -0
- package/dist/components/utils/interpolation.test.d.ts +2 -0
- package/dist/components/utils/interpolation.test.d.ts.map +1 -0
- package/dist/core.cjs +2 -1
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.ts +1 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +75 -70
- package/dist/core.js.map +1 -0
- package/dist/externalizeComponent.cjs +2 -0
- package/dist/externalizeComponent.cjs.map +1 -0
- package/dist/externalizeComponent.d.ts +1 -0
- package/dist/externalizeComponent.d.ts.map +1 -0
- package/dist/externalizeComponent.js +13 -0
- package/dist/externalizeComponent.js.map +1 -0
- package/dist/i18n/config.cjs +2 -0
- package/dist/i18n/config.cjs.map +1 -0
- package/dist/i18n/config.d.ts +1 -0
- package/dist/i18n/config.d.ts.map +1 -0
- package/dist/i18n/config.js +25 -0
- package/dist/i18n/config.js.map +1 -0
- package/dist/i18n/locales/de/translations.json.cjs +3 -0
- package/dist/i18n/locales/de/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/de/translations.json.js +94 -0
- package/dist/i18n/locales/de/translations.json.js.map +1 -0
- package/dist/i18n/locales/en/translations.json.cjs +2 -0
- package/dist/i18n/locales/en/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/en/translations.json.js +94 -0
- package/dist/i18n/locales/en/translations.json.js.map +1 -0
- package/dist/icons/DropdownArrowIcon.cjs +2 -0
- package/dist/icons/DropdownArrowIcon.cjs.map +1 -0
- package/dist/icons/DropdownArrowIcon.d.ts +1 -0
- package/dist/icons/DropdownArrowIcon.d.ts.map +1 -0
- package/dist/icons/DropdownArrowIcon.js +14 -0
- package/dist/icons/DropdownArrowIcon.js.map +1 -0
- package/dist/icons/axis-x.svg.cjs +2 -0
- package/dist/icons/axis-x.svg.cjs.map +1 -0
- package/dist/icons/axis-x.svg.d.ts +3 -0
- package/dist/icons/axis-x.svg.js +11 -0
- package/dist/icons/axis-x.svg.js.map +1 -0
- package/dist/icons/axis-y.svg.cjs +2 -0
- package/dist/icons/axis-y.svg.cjs.map +1 -0
- package/dist/icons/axis-y.svg.d.ts +3 -0
- package/dist/icons/axis-y.svg.js +11 -0
- package/dist/icons/axis-y.svg.js.map +1 -0
- package/dist/icons/axis-z.svg.cjs +2 -0
- package/dist/icons/axis-z.svg.cjs.map +1 -0
- package/dist/icons/axis-z.svg.d.ts +3 -0
- package/dist/icons/axis-z.svg.js +11 -0
- package/dist/icons/axis-z.svg.js.map +1 -0
- package/dist/icons/home.svg.cjs +2 -0
- package/dist/icons/home.svg.cjs.map +1 -0
- package/dist/icons/home.svg.d.ts +3 -0
- package/dist/icons/home.svg.js +11 -0
- package/dist/icons/home.svg.js.map +1 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/jog-minus.svg.cjs +2 -0
- package/dist/icons/jog-minus.svg.cjs.map +1 -0
- package/dist/icons/jog-minus.svg.d.ts +3 -0
- package/dist/icons/jog-minus.svg.js +11 -0
- package/dist/icons/jog-minus.svg.js.map +1 -0
- package/dist/icons/jog-plus.svg.cjs +2 -0
- package/dist/icons/jog-plus.svg.cjs.map +1 -0
- package/dist/icons/jog-plus.svg.d.ts +3 -0
- package/dist/icons/jog-plus.svg.js +11 -0
- package/dist/icons/jog-plus.svg.js.map +1 -0
- package/dist/icons/jogging.svg.cjs +2 -0
- package/dist/icons/jogging.svg.cjs.map +1 -0
- package/dist/icons/jogging.svg.d.ts +3 -0
- package/dist/icons/jogging.svg.js +11 -0
- package/dist/icons/jogging.svg.js.map +1 -0
- package/dist/icons/orientation-coord-system.svg.cjs +2 -0
- package/dist/icons/orientation-coord-system.svg.cjs.map +1 -0
- package/dist/icons/orientation-coord-system.svg.d.ts +3 -0
- package/dist/icons/orientation-coord-system.svg.js +11 -0
- package/dist/icons/orientation-coord-system.svg.js.map +1 -0
- package/dist/icons/orientation-tool.svg.cjs +2 -0
- package/dist/icons/orientation-tool.svg.cjs.map +1 -0
- package/dist/icons/orientation-tool.svg.d.ts +3 -0
- package/dist/icons/orientation-tool.svg.js +11 -0
- package/dist/icons/orientation-tool.svg.js.map +1 -0
- package/dist/icons/robot.svg.cjs +2 -0
- package/dist/icons/robot.svg.cjs.map +1 -0
- package/dist/icons/robot.svg.d.ts +3 -0
- package/dist/{chunks/robot-D97QEl_l.js → icons/robot.svg.js} +3 -2
- package/dist/icons/robot.svg.js.map +1 -0
- package/dist/icons/rotation.svg.cjs +2 -0
- package/dist/icons/rotation.svg.cjs.map +1 -0
- package/dist/icons/rotation.svg.d.ts +3 -0
- package/dist/icons/rotation.svg.js +11 -0
- package/dist/icons/rotation.svg.js.map +1 -0
- package/dist/icons/wbLogo.svg.cjs +2 -0
- package/dist/icons/wbLogo.svg.cjs.map +1 -0
- package/dist/icons/wbLogo.svg.d.ts +3 -0
- package/dist/icons/wbLogo.svg.js +11 -0
- package/dist/icons/wbLogo.svg.js.map +1 -0
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +140 -120
- package/dist/index.js.map +1 -0
- package/dist/lib/ConnectedMotionGroup.cjs +4 -0
- package/dist/lib/ConnectedMotionGroup.cjs.map +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -0
- package/dist/lib/ConnectedMotionGroup.js +250 -0
- package/dist/lib/ConnectedMotionGroup.js.map +1 -0
- package/dist/lib/JoggerConnection.cjs +2 -0
- package/dist/lib/JoggerConnection.cjs.map +1 -0
- package/dist/lib/JoggerConnection.d.ts +1 -0
- package/dist/lib/JoggerConnection.d.ts.map +1 -0
- package/dist/lib/JoggerConnection.js +342 -0
- package/dist/lib/JoggerConnection.js.map +1 -0
- package/dist/lib/JoggerConnection.test.d.ts +2 -0
- package/dist/lib/JoggerConnection.test.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.cjs +3 -0
- package/dist/lib/MotionStreamConnection.cjs.map +1 -0
- package/dist/lib/MotionStreamConnection.d.ts +1 -0
- package/dist/lib/MotionStreamConnection.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.js +94 -0
- package/dist/lib/MotionStreamConnection.js.map +1 -0
- package/dist/lib/MotionStreamConnection.test.d.ts +2 -0
- package/dist/lib/MotionStreamConnection.test.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.cjs +2 -0
- package/dist/lib/motionStateUpdate.cjs.map +1 -0
- package/dist/lib/motionStateUpdate.d.ts +1 -0
- package/dist/lib/motionStateUpdate.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.js +49 -0
- package/dist/lib/motionStateUpdate.js.map +1 -0
- package/dist/lib/motionStateUpdate.test.d.ts +2 -0
- package/dist/lib/motionStateUpdate.test.d.ts.map +1 -0
- package/dist/test/consumer.test.d.ts +2 -0
- package/dist/test/consumer.test.d.ts.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.cjs +2 -0
- package/dist/themes/createDarkTheme.cjs.map +1 -0
- package/dist/themes/createDarkTheme.d.ts +1 -0
- package/dist/themes/createDarkTheme.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.js +344 -0
- package/dist/themes/createDarkTheme.js.map +1 -0
- package/dist/themes/createLightTheme.cjs +2 -0
- package/dist/themes/createLightTheme.cjs.map +1 -0
- package/dist/themes/createLightTheme.d.ts +1 -0
- package/dist/themes/createLightTheme.d.ts.map +1 -0
- package/dist/themes/createLightTheme.js +9 -0
- package/dist/themes/createLightTheme.js.map +1 -0
- package/dist/themes/themeTypes.d.ts +1 -0
- package/dist/themes/themeTypes.d.ts.map +1 -0
- package/dist/themes/theming.cjs +2 -0
- package/dist/themes/theming.cjs.map +1 -0
- package/dist/themes/theming.d.ts +1 -0
- package/dist/themes/theming.d.ts.map +1 -0
- package/dist/themes/theming.js +14 -0
- package/dist/themes/theming.js.map +1 -0
- package/dist/wb-icons.cjs +2 -1
- package/dist/wb-icons.cjs.map +1 -0
- package/dist/wb-icons.d.ts +1 -0
- package/dist/wb-icons.d.ts.map +1 -0
- package/dist/wb-icons.js +44 -28
- package/dist/wb-icons.js.map +1 -0
- package/package.json +6 -5
- package/src/3d.ts +18 -0
- package/src/Setup.tsx +33 -0
- package/src/components/3d-viewport/CoordinateSystemTransform.tsx +57 -0
- package/src/components/3d-viewport/PresetEnvironment.tsx +81 -0
- package/src/components/3d-viewport/SafetyZonesRenderer.tsx +198 -0
- package/src/components/3d-viewport/TrajectoryRenderer.tsx +41 -0
- package/src/components/3d-viewport/collider/ColliderCollection.tsx +35 -0
- package/src/components/3d-viewport/collider/ColliderElement.tsx +36 -0
- package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +26 -0
- package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +48 -0
- package/src/components/AppHeader.md +84 -0
- package/src/components/AppHeader.tsx +197 -0
- package/src/components/ConsoleFilter.tsx +24 -0
- package/src/components/CopyableText.tsx +89 -0
- package/src/components/CycleTimer/CycleTimer.ts +8 -0
- package/src/components/CycleTimer/DefaultVariant.tsx +326 -0
- package/src/components/CycleTimer/SmallVariant.tsx +229 -0
- package/src/components/CycleTimer/index.tsx +158 -0
- package/src/components/CycleTimer/types.ts +58 -0
- package/src/components/CycleTimer/useAnimations.ts +202 -0
- package/src/components/CycleTimer/useTimerLogic.ts +330 -0
- package/src/components/CycleTimer/utils.ts +122 -0
- package/src/components/CycleTimer.tsx +8 -0
- package/src/components/DataGrid.tsx +664 -0
- package/src/components/LoadingCover.tsx +91 -0
- package/src/components/LogPanel.tsx +71 -0
- package/src/components/LogStore.ts +46 -0
- package/src/components/LogViewer.tsx +368 -0
- package/src/components/ProgramControl.tsx +267 -0
- package/src/components/ProgramStateIndicator.tsx +195 -0
- package/src/components/RobotCard.tsx +495 -0
- package/src/components/RobotListItem.tsx +155 -0
- package/src/components/RobotSetupReadinessIndicator.test.tsx +60 -0
- package/src/components/RobotSetupReadinessIndicator.tsx +161 -0
- package/src/components/SelectableFab.tsx +52 -0
- package/src/components/TabBar.tsx +325 -0
- package/src/components/ThemeSelect.tsx +51 -0
- package/src/components/Timer/Timer.ts +4 -0
- package/src/components/Timer/TimerDefaultVariant.tsx +143 -0
- package/src/components/Timer/TimerSmallVariant.tsx +141 -0
- package/src/components/Timer/index.tsx +103 -0
- package/src/components/Timer/types.ts +38 -0
- package/src/components/Timer/useTimerAnimations.ts +94 -0
- package/src/components/Timer/useTimerLogic.ts +214 -0
- package/src/components/Timer/utils.ts +87 -0
- package/src/components/Timer.ts +4 -0
- package/src/components/TransparentOverlay.tsx +28 -0
- package/src/components/VelocitySlider.tsx +117 -0
- package/src/components/experimental/utils/AdornedSelect.tsx +38 -0
- package/src/components/jogging/JoggingBlocked.tsx +43 -0
- package/src/components/jogging/JoggingCartesianAxisControl.tsx +237 -0
- package/src/components/jogging/JoggingCartesianTab.tsx +349 -0
- package/src/components/jogging/JoggingFreedriveTab.tsx +8 -0
- package/src/components/jogging/JoggingJointLimitDetector.tsx +57 -0
- package/src/components/jogging/JoggingJointTab.tsx +126 -0
- package/src/components/jogging/JoggingJointValueControl.tsx +293 -0
- package/src/components/jogging/JoggingOptions.tsx +163 -0
- package/src/components/jogging/JoggingPanel.test.tsx +645 -0
- package/src/components/jogging/JoggingPanel.tsx +204 -0
- package/src/components/jogging/JoggingStore.ts +485 -0
- package/src/components/jogging/JoggingToggleButtonGroup.tsx +25 -0
- package/src/components/jogging/JoggingVelocitySlider.tsx +39 -0
- package/src/components/jogging/PoseCartesianValues.tsx +55 -0
- package/src/components/jogging/PoseJointValues.tsx +54 -0
- package/src/components/jogging/__fixtures__/motionStreamMockData.ts +136 -0
- package/src/components/modal/NoMotionGroupModal.tsx +91 -0
- package/src/components/robots/AxisConfig.ts +3 -0
- package/src/components/robots/DHLinearAxis.tsx +147 -0
- package/src/components/robots/DHRobot.tsx +152 -0
- package/src/components/robots/GenericRobot.tsx +137 -0
- package/src/components/robots/LinearAxis.tsx +74 -0
- package/src/components/robots/LinearAxisAnimator.tsx +118 -0
- package/src/components/robots/MotionGroupVisualizer.tsx +73 -0
- package/src/components/robots/Robot.tsx +57 -0
- package/src/components/robots/RobotAnimator.test.tsx +98 -0
- package/src/components/robots/RobotAnimator.tsx +116 -0
- package/src/components/robots/SupportedLinearAxis.tsx +110 -0
- package/src/components/robots/SupportedRobot.tsx +111 -0
- package/src/components/robots/ghostStyle.ts +71 -0
- package/src/components/robots/manufacturerHomePositions.ts +76 -0
- package/src/components/robots/robotModelLogic.ts +158 -0
- package/src/components/safetyBar/ControllerTypeIndicator.tsx +79 -0
- package/src/components/safetyBar/IndicatorWithExplanation.tsx +137 -0
- package/src/components/safetyBar/OperationModeIndicator.tsx +98 -0
- package/src/components/safetyBar/SafetyBar.tsx +72 -0
- package/src/components/safetyBar/SafetyStateIndicator.tsx +163 -0
- package/src/components/safetyBar/icons/controller-type-physical.svg +1 -0
- package/src/components/safetyBar/icons/controller-type-virtual.svg +1 -0
- package/src/components/safetyBar/icons/index.ts +10 -0
- package/src/components/safetyBar/icons/operation-mode-automatic.svg +1 -0
- package/src/components/safetyBar/icons/operation-mode-error.svg +1 -0
- package/src/components/safetyBar/icons/operation-mode-manual.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-error.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-estop.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-manual-action-required.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-normal.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-stop.svg +1 -0
- package/src/components/utils/converters.ts +90 -0
- package/src/components/utils/errorHandling.test.ts +41 -0
- package/src/components/utils/errorHandling.ts +38 -0
- package/src/components/utils/hooks.tsx +55 -0
- package/src/components/utils/interpolation.test.ts +1138 -0
- package/src/components/utils/interpolation.ts +380 -0
- package/src/core.ts +33 -0
- package/src/declarations.d.ts +10 -0
- package/src/env.d.ts +3 -0
- package/src/externalizeComponent.tsx +28 -0
- package/src/i18n/config.ts +26 -0
- package/src/i18n/locales/de/translations.json +89 -0
- package/src/i18n/locales/en/translations.json +90 -0
- package/src/icons/DropdownArrowIcon.tsx +12 -0
- package/src/icons/axis-x.svg +1 -0
- package/src/icons/axis-y.svg +1 -0
- package/src/icons/axis-z.svg +1 -0
- package/src/icons/home.svg +1 -0
- package/src/icons/index.ts +12 -0
- package/src/icons/jog-minus.svg +5 -0
- package/src/icons/jog-plus.svg +9 -0
- package/src/icons/jogging.svg +1 -0
- package/src/icons/orientation-coord-system.svg +1 -0
- package/src/icons/orientation-tool.svg +1 -0
- package/src/icons/robot.svg +1 -0
- package/src/icons/rotation.svg +3 -0
- package/src/icons/wbLogo.svg +1 -0
- package/src/index.ts +4 -0
- package/src/lib/ConnectedMotionGroup.ts +441 -0
- package/src/lib/JoggerConnection.test.ts +122 -0
- package/src/lib/JoggerConnection.ts +694 -0
- package/src/lib/MotionStreamConnection.test.ts +23 -0
- package/src/lib/MotionStreamConnection.ts +186 -0
- package/src/lib/motionStateUpdate.test.ts +28 -0
- package/src/lib/motionStateUpdate.ts +117 -0
- package/src/test/consumer.test.ts +257 -0
- package/src/test/setup.ts +111 -0
- package/src/themes/createDarkTheme.ts +343 -0
- package/src/themes/createLightTheme.ts +8 -0
- package/src/themes/themeTypes.ts +96 -0
- package/src/themes/theming.ts +29 -0
- package/src/wb-icons.ts +3 -0
- package/dist/chunks/JoggingPanel-CQH_oXTB.js +0 -586
- package/dist/chunks/JoggingPanel-DZN2Y39k.cjs +0 -2
- package/dist/chunks/controller-type-virtual-BuJWQOvV.cjs +0 -1
- package/dist/chunks/externalizeComponent-DOwkaDcw.cjs +0 -2
- package/dist/chunks/externalizeComponent-eiCc5DIh.js +0 -209
- package/dist/chunks/jog-plus-CAUurv4S.js +0 -15
- package/dist/chunks/jog-plus-Dy1r7-r5.cjs +0 -1
- package/dist/chunks/operation-mode-manual-Di4Z1KM1.js +0 -20
- package/dist/chunks/operation-mode-manual-eHwVILeI.cjs +0 -1
- package/dist/chunks/robot-CrNbCELh.cjs +0 -1
- package/dist/chunks/rotation-CIOAnn9q.cjs +0 -1
- package/dist/chunks/rotation-Dm5YL3NM.js +0 -25
- package/dist/chunks/safety-state-stop-Bg0VUsM4.js +0 -30
- package/dist/chunks/safety-state-stop-CNxVYiap.cjs +0 -1
- package/dist/chunks/theming-Chx_tewl.cjs +0 -3
- package/dist/chunks/theming-Cw6qwBM7.js +0 -600
- package/dist/chunks/wbLogo-CObCmqTw.js +0 -30
- package/dist/chunks/wbLogo-G_IfZ03l.cjs +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.cjs +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.js +0 -37
- package/dist/components/CycleTimer/CycleTimer.cjs +0 -1
- package/dist/components/CycleTimer/CycleTimer.js +0 -5
- package/dist/components/CycleTimer/types.cjs +0 -1
- package/dist/components/CycleTimer/types.js +0 -1
- package/dist/components/ThemeSelect.cjs +0 -1
- package/dist/components/ThemeSelect.js +0 -38
- package/dist/components/Timer/Timer.cjs +0 -1
- package/dist/components/Timer/Timer.js +0 -5
- package/dist/components/Timer/types.cjs +0 -1
- package/dist/components/Timer/types.js +0 -1
- package/dist/components/TransparentOverlay.cjs +0 -1
- package/dist/components/TransparentOverlay.js +0 -26
- package/dist/components/jogging/JoggingFreedriveTab.cjs +0 -1
- package/dist/components/jogging/JoggingFreedriveTab.js +0 -6
- package/dist/components/safetyBar/icons/index.cjs +0 -1
- package/dist/components/safetyBar/icons/index.js +0 -15
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type AutoReconnectingWebsocket,
|
|
3
|
+
tryParseJson,
|
|
4
|
+
} from "@wandelbots/nova-js"
|
|
5
|
+
import type {
|
|
6
|
+
MotionGroupDescription,
|
|
7
|
+
MotionGroupState,
|
|
8
|
+
NovaClient,
|
|
9
|
+
RobotControllerState,
|
|
10
|
+
} from "@wandelbots/nova-js/v2"
|
|
11
|
+
import { makeAutoObservable, runInAction } from "mobx"
|
|
12
|
+
import type { Vector3Simple } from "./JoggerConnection"
|
|
13
|
+
import {
|
|
14
|
+
jointValuesEqual,
|
|
15
|
+
tcpMotionEqual,
|
|
16
|
+
unwrapRotationVector,
|
|
17
|
+
} from "./motionStateUpdate"
|
|
18
|
+
|
|
19
|
+
const MOTION_DELTA_THRESHOLD = 0.0001
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Store representing the current state of a connected motion group.
|
|
23
|
+
*/
|
|
24
|
+
export class MotionStreamConnection {
|
|
25
|
+
static async open(nova: NovaClient, motionGroupId: string) {
|
|
26
|
+
const [_motionGroupIndex, controllerId] = motionGroupId.split("@") as [
|
|
27
|
+
string,
|
|
28
|
+
string,
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
const controller =
|
|
32
|
+
await nova.api.controller.getCurrentRobotControllerState(controllerId)
|
|
33
|
+
const motionGroup = controller?.motion_groups.find(
|
|
34
|
+
(mg: MotionGroupState) => mg.motion_group === motionGroupId,
|
|
35
|
+
)
|
|
36
|
+
if (!controller || !motionGroup) {
|
|
37
|
+
throw new Error(
|
|
38
|
+
`Controller ${controllerId} or motion group ${motionGroupId} not found`,
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const motionStateSocket = nova.openReconnectingWebsocket(
|
|
43
|
+
`/controllers/${controllerId}/motion-groups/${motionGroupId}/state-stream`,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
// Wait for the first message to get the initial state
|
|
47
|
+
const firstMessage = await motionStateSocket.firstMessage()
|
|
48
|
+
const initialMotionState = tryParseJson(firstMessage.data)
|
|
49
|
+
?.result as MotionGroupState
|
|
50
|
+
|
|
51
|
+
if (!initialMotionState) {
|
|
52
|
+
throw new Error(
|
|
53
|
+
`Unable to parse initial motion state message ${firstMessage.data}`,
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
console.log(
|
|
58
|
+
`Connected motion state websocket to motion group ${motionGroup.motion_group}. Initial state:\n `,
|
|
59
|
+
initialMotionState,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
// Get the motion group description for later usage in jogging
|
|
63
|
+
const description = await nova.api.motionGroup.getMotionGroupDescription(
|
|
64
|
+
controllerId,
|
|
65
|
+
motionGroup.motion_group,
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
return new MotionStreamConnection(
|
|
69
|
+
nova,
|
|
70
|
+
controller,
|
|
71
|
+
motionGroup,
|
|
72
|
+
description,
|
|
73
|
+
initialMotionState,
|
|
74
|
+
motionStateSocket,
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Not mobx-observable as this changes very fast; should be observed
|
|
79
|
+
// using animation frames
|
|
80
|
+
rapidlyChangingMotionState: MotionGroupState
|
|
81
|
+
|
|
82
|
+
constructor(
|
|
83
|
+
readonly nova: NovaClient,
|
|
84
|
+
readonly controller: RobotControllerState,
|
|
85
|
+
readonly motionGroup: MotionGroupState,
|
|
86
|
+
readonly description: MotionGroupDescription,
|
|
87
|
+
readonly initialMotionState: MotionGroupState,
|
|
88
|
+
readonly motionStateSocket: AutoReconnectingWebsocket,
|
|
89
|
+
) {
|
|
90
|
+
this.rapidlyChangingMotionState = initialMotionState
|
|
91
|
+
|
|
92
|
+
motionStateSocket.addEventListener("message", (event) => {
|
|
93
|
+
const latestMotionState = tryParseJson(event.data)?.result as
|
|
94
|
+
| MotionGroupState
|
|
95
|
+
| undefined
|
|
96
|
+
|
|
97
|
+
if (!latestMotionState) {
|
|
98
|
+
throw new Error(
|
|
99
|
+
`Failed to get motion state for ${this.motionGroupId}: ${event.data}`,
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// handle joint position changes
|
|
104
|
+
if (
|
|
105
|
+
!jointValuesEqual(
|
|
106
|
+
this.rapidlyChangingMotionState.joint_position,
|
|
107
|
+
latestMotionState.joint_position,
|
|
108
|
+
MOTION_DELTA_THRESHOLD,
|
|
109
|
+
)
|
|
110
|
+
) {
|
|
111
|
+
runInAction(() => {
|
|
112
|
+
this.rapidlyChangingMotionState.joint_position =
|
|
113
|
+
latestMotionState.joint_position
|
|
114
|
+
})
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// handle tcp pose changes
|
|
118
|
+
if (
|
|
119
|
+
!tcpMotionEqual(
|
|
120
|
+
this.rapidlyChangingMotionState,
|
|
121
|
+
latestMotionState,
|
|
122
|
+
MOTION_DELTA_THRESHOLD,
|
|
123
|
+
)
|
|
124
|
+
) {
|
|
125
|
+
runInAction(() => {
|
|
126
|
+
if (this.rapidlyChangingMotionState.tcp_pose == null) {
|
|
127
|
+
this.rapidlyChangingMotionState.tcp_pose =
|
|
128
|
+
latestMotionState.tcp_pose
|
|
129
|
+
} else if (
|
|
130
|
+
latestMotionState.tcp_pose?.orientation &&
|
|
131
|
+
latestMotionState.tcp_pose?.position &&
|
|
132
|
+
this.rapidlyChangingMotionState.tcp_pose?.orientation
|
|
133
|
+
) {
|
|
134
|
+
this.rapidlyChangingMotionState.tcp_pose = {
|
|
135
|
+
position: latestMotionState.tcp_pose.position,
|
|
136
|
+
orientation: unwrapRotationVector(
|
|
137
|
+
latestMotionState.tcp_pose.orientation as Vector3Simple,
|
|
138
|
+
this.rapidlyChangingMotionState.tcp_pose
|
|
139
|
+
.orientation as Vector3Simple,
|
|
140
|
+
),
|
|
141
|
+
}
|
|
142
|
+
} else {
|
|
143
|
+
console.warn(
|
|
144
|
+
"Received incomplete tcp_pose, ignoring",
|
|
145
|
+
latestMotionState.tcp_pose,
|
|
146
|
+
)
|
|
147
|
+
}
|
|
148
|
+
})
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// handle standstill changes
|
|
152
|
+
if (
|
|
153
|
+
this.rapidlyChangingMotionState.standstill !==
|
|
154
|
+
latestMotionState.standstill
|
|
155
|
+
) {
|
|
156
|
+
runInAction(() => {
|
|
157
|
+
this.rapidlyChangingMotionState.standstill =
|
|
158
|
+
latestMotionState.standstill
|
|
159
|
+
})
|
|
160
|
+
}
|
|
161
|
+
})
|
|
162
|
+
makeAutoObservable(this)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
get motionGroupId() {
|
|
166
|
+
return this.motionGroup.motion_group
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
get controllerId() {
|
|
170
|
+
return this.controller.controller
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
get joints() {
|
|
174
|
+
return this.initialMotionState.joint_position.map((_, i) => {
|
|
175
|
+
return {
|
|
176
|
+
index: i,
|
|
177
|
+
}
|
|
178
|
+
})
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
dispose() {
|
|
182
|
+
this.motionStateSocket.close()
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export default MotionStreamConnection
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest"
|
|
2
|
+
import { poseEqual } from "./motionStateUpdate"
|
|
3
|
+
|
|
4
|
+
describe("poseEqual", async () => {
|
|
5
|
+
test("returns true for identical poses", () => {
|
|
6
|
+
const pose1 = {
|
|
7
|
+
position: [0, 0, 0],
|
|
8
|
+
orientation: [0, 0, 0],
|
|
9
|
+
}
|
|
10
|
+
const pose2 = {
|
|
11
|
+
position: [0, 0, 0],
|
|
12
|
+
orientation: [0, 0, 0],
|
|
13
|
+
}
|
|
14
|
+
expect(poseEqual(pose1, pose2, 0.001)).toBe(true)
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
test("returns false for different poses", () => {
|
|
18
|
+
const pose1 = {
|
|
19
|
+
position: [0, 0, 0],
|
|
20
|
+
orientation: [0, 0, 0],
|
|
21
|
+
}
|
|
22
|
+
const pose2 = {
|
|
23
|
+
position: [1, 1, 1],
|
|
24
|
+
orientation: [1, 1, 1],
|
|
25
|
+
}
|
|
26
|
+
expect(poseEqual(pose1, pose2, 0.001)).toBe(false)
|
|
27
|
+
})
|
|
28
|
+
})
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { MotionGroupState, Pose } from "@wandelbots/nova-js/v2"
|
|
2
|
+
import type { Vector3Simple } from "./JoggerConnection"
|
|
3
|
+
import { Vector3 } from "three"
|
|
4
|
+
|
|
5
|
+
export function jointValuesEqual(
|
|
6
|
+
oldJointValues: number[],
|
|
7
|
+
newJointValues: number[],
|
|
8
|
+
changeDeltaThreshold: number,
|
|
9
|
+
): boolean {
|
|
10
|
+
if (newJointValues.length !== oldJointValues.length) {
|
|
11
|
+
return true
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
for (let jointIndex = 0; jointIndex < newJointValues.length; jointIndex++) {
|
|
15
|
+
if (
|
|
16
|
+
// biome-ignore lint/style/noNonNullAssertion: legacy code
|
|
17
|
+
Math.abs(newJointValues[jointIndex]! - oldJointValues[jointIndex]!) >
|
|
18
|
+
changeDeltaThreshold
|
|
19
|
+
) {
|
|
20
|
+
return false
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return true
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function poseEqual(
|
|
28
|
+
oldTcp: Pose | undefined,
|
|
29
|
+
newTcp: Pose | undefined,
|
|
30
|
+
changeDeltaThreshold: number,
|
|
31
|
+
): boolean {
|
|
32
|
+
// undefined -> defined (+reverse) transition
|
|
33
|
+
if ((oldTcp === undefined && newTcp) || (oldTcp && newTcp === undefined)) {
|
|
34
|
+
return false
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Poses might be incomplete (missing orientation or position)
|
|
38
|
+
if (
|
|
39
|
+
oldTcp?.orientation === undefined ||
|
|
40
|
+
newTcp?.orientation === undefined ||
|
|
41
|
+
oldTcp?.position === undefined ||
|
|
42
|
+
newTcp?.position === undefined
|
|
43
|
+
) {
|
|
44
|
+
return false
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// the typechecker cannot resolve states to "!= undefined" if "&&" is used
|
|
48
|
+
if (oldTcp === undefined || newTcp === undefined) {
|
|
49
|
+
return true
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
let changedDelta = 0
|
|
53
|
+
changedDelta += Math.abs(oldTcp.orientation[0] - newTcp.orientation[0])
|
|
54
|
+
changedDelta += Math.abs(oldTcp.orientation[1] - newTcp.orientation[1])
|
|
55
|
+
changedDelta += Math.abs(oldTcp.orientation[2] - newTcp.orientation[2])
|
|
56
|
+
changedDelta += Math.abs(oldTcp.position[0] - newTcp.position[0])
|
|
57
|
+
changedDelta += Math.abs(oldTcp.position[1] - newTcp.position[1])
|
|
58
|
+
changedDelta += Math.abs(oldTcp.position[2] - newTcp.position[2])
|
|
59
|
+
|
|
60
|
+
return changedDelta <= changeDeltaThreshold
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Runs poseEqual check + coordinate system/tcp name equality
|
|
64
|
+
export function tcpMotionEqual(
|
|
65
|
+
oldMotionState: MotionGroupState,
|
|
66
|
+
newMotionState: MotionGroupState,
|
|
67
|
+
changeDeltaThreshold: number,
|
|
68
|
+
): boolean {
|
|
69
|
+
return (
|
|
70
|
+
oldMotionState.coordinate_system === newMotionState.coordinate_system &&
|
|
71
|
+
oldMotionState.tcp === newMotionState.tcp &&
|
|
72
|
+
poseEqual(
|
|
73
|
+
oldMotionState.tcp_pose,
|
|
74
|
+
newMotionState.tcp_pose,
|
|
75
|
+
changeDeltaThreshold,
|
|
76
|
+
)
|
|
77
|
+
)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function unwrapRotationVector(
|
|
81
|
+
newRotationVectorApi: Vector3Simple,
|
|
82
|
+
currentRotationVectorApi: Vector3Simple,
|
|
83
|
+
): Vector3Simple {
|
|
84
|
+
const currentRotationVector = new Vector3(
|
|
85
|
+
currentRotationVectorApi[0],
|
|
86
|
+
currentRotationVectorApi[1],
|
|
87
|
+
currentRotationVectorApi[2],
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
const newRotationVector = new Vector3(
|
|
91
|
+
newRotationVectorApi[0],
|
|
92
|
+
newRotationVectorApi[1],
|
|
93
|
+
newRotationVectorApi[2],
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
const currentAngle = currentRotationVector.length()
|
|
97
|
+
const currentAxis = currentRotationVector.normalize()
|
|
98
|
+
|
|
99
|
+
let newAngle = newRotationVector.length()
|
|
100
|
+
let newAxis = newRotationVector.normalize()
|
|
101
|
+
|
|
102
|
+
// Align rotation axes
|
|
103
|
+
if (newAxis.dot(currentAxis) < 0) {
|
|
104
|
+
newAngle = -newAngle
|
|
105
|
+
newAxis = newAxis.multiplyScalar(-1.0)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Shift rotation angle close to previous one to extend domain of rotation angles beyond [0, pi]
|
|
109
|
+
// - this simplifies interpolation and prevents abruptly changing signs of the rotation angles
|
|
110
|
+
let angleDifference = newAngle - currentAngle
|
|
111
|
+
angleDifference -=
|
|
112
|
+
2.0 * Math.PI * Math.floor((angleDifference + Math.PI) / (2.0 * Math.PI))
|
|
113
|
+
|
|
114
|
+
newAngle = currentAngle + angleDifference
|
|
115
|
+
|
|
116
|
+
return [...newAxis.multiplyScalar(newAngle)] as Vector3Simple
|
|
117
|
+
}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consumer import tests.
|
|
3
|
+
*
|
|
4
|
+
* These tests run against the built dist/ output, exercising the package's
|
|
5
|
+
* `exports` map the same way a real downstream consumer would. They check:
|
|
6
|
+
*
|
|
7
|
+
* 1. Every public subpath resolves via Node's `exports` resolver to a file
|
|
8
|
+
* that actually exists on disk (ESM, CJS, and .d.ts).
|
|
9
|
+
* 2. The wildcard subpath export lets consumers deep-import any module
|
|
10
|
+
* under src/ (including folder-based ones like Timer/CycleTimer that
|
|
11
|
+
* have a sibling barrel).
|
|
12
|
+
* 3. Named exports remain importable AND the MUI-style default export is
|
|
13
|
+
* also available and identical to the named one for primary components.
|
|
14
|
+
*
|
|
15
|
+
* Run via `pnpm test:consumer` (which builds first) or as part of
|
|
16
|
+
* `pnpm test:unit:run` once dist/ exists.
|
|
17
|
+
*/
|
|
18
|
+
import { execFileSync } from "node:child_process"
|
|
19
|
+
import {
|
|
20
|
+
existsSync,
|
|
21
|
+
mkdirSync,
|
|
22
|
+
rmSync,
|
|
23
|
+
symlinkSync,
|
|
24
|
+
writeFileSync,
|
|
25
|
+
} from "node:fs"
|
|
26
|
+
import { createRequire } from "node:module"
|
|
27
|
+
import { dirname, resolve } from "node:path"
|
|
28
|
+
import { fileURLToPath } from "node:url"
|
|
29
|
+
import { afterAll, beforeAll, describe, expect, it } from "vitest"
|
|
30
|
+
|
|
31
|
+
const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), "../..")
|
|
32
|
+
const distDir = resolve(repoRoot, "dist")
|
|
33
|
+
const pkgName = "@wandelbots/wandelbots-js-react-components"
|
|
34
|
+
|
|
35
|
+
// Create a scratch directory outside the repo with a node_modules symlink
|
|
36
|
+
// pointing at the repo, so the Node resolver treats us as if we were
|
|
37
|
+
// installed as a dependency.
|
|
38
|
+
const sandbox = resolve(repoRoot, ".tmp-consumer-test")
|
|
39
|
+
const sandboxReq = createRequire(resolve(sandbox, "consumer.cjs"))
|
|
40
|
+
// A tiny .mjs helper that prints the ESM resolution of `process.argv[2]`.
|
|
41
|
+
// We invoke it as a child Node process because Vite's SSR runtime (used by
|
|
42
|
+
// vitest) strips `import.meta.resolve`, and we specifically want to verify
|
|
43
|
+
// Node's own resolver honours our `exports` map.
|
|
44
|
+
const esmResolverScript = resolve(sandbox, "resolve-esm.mjs")
|
|
45
|
+
|
|
46
|
+
beforeAll(() => {
|
|
47
|
+
if (!existsSync(distDir)) {
|
|
48
|
+
throw new Error(
|
|
49
|
+
"dist/ not found. Run `pnpm build` before running the consumer tests.",
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
rmSync(sandbox, { recursive: true, force: true })
|
|
53
|
+
mkdirSync(resolve(sandbox, "node_modules/@wandelbots"), { recursive: true })
|
|
54
|
+
symlinkSync(repoRoot, resolve(sandbox, "node_modules", pkgName), "dir")
|
|
55
|
+
writeFileSync(
|
|
56
|
+
esmResolverScript,
|
|
57
|
+
'import { fileURLToPath } from "node:url"\n' +
|
|
58
|
+
"process.stdout.write(fileURLToPath(import.meta.resolve(process.argv[2])))\n",
|
|
59
|
+
)
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
afterAll(() => {
|
|
63
|
+
rmSync(sandbox, { recursive: true, force: true })
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
function resolveEsm(spec: string): string {
|
|
67
|
+
return execFileSync(process.execPath, [esmResolverScript, spec], {
|
|
68
|
+
encoding: "utf8",
|
|
69
|
+
cwd: sandbox,
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function resolveCjs(spec: string): string {
|
|
74
|
+
return sandboxReq.resolve(spec)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// The exports map doesn't advertise a `types` condition, but TypeScript's
|
|
78
|
+
// resolver uses the same path with a `.d.ts` extension. Probe the ESM path
|
|
79
|
+
// and swap the extension.
|
|
80
|
+
function typesFor(esmPath: string): string {
|
|
81
|
+
return esmPath.replace(/\.js$/, ".d.ts")
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
describe("package exports — aggregate entries", () => {
|
|
85
|
+
const entries = [
|
|
86
|
+
{ spec: pkgName, esm: "dist/index.js", cjs: "dist/index.cjs" },
|
|
87
|
+
{ spec: `${pkgName}/core`, esm: "dist/core.js", cjs: "dist/core.cjs" },
|
|
88
|
+
{ spec: `${pkgName}/3d`, esm: "dist/3d.js", cjs: "dist/3d.cjs" },
|
|
89
|
+
{
|
|
90
|
+
spec: `${pkgName}/wb-icons`,
|
|
91
|
+
esm: "dist/wb-icons.js",
|
|
92
|
+
cjs: "dist/wb-icons.cjs",
|
|
93
|
+
},
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
it.each(entries)("$spec resolves ESM, CJS, and types", ({
|
|
97
|
+
spec,
|
|
98
|
+
esm,
|
|
99
|
+
cjs,
|
|
100
|
+
}) => {
|
|
101
|
+
const esmPath = resolveEsm(spec)
|
|
102
|
+
const cjsPath = resolveCjs(spec)
|
|
103
|
+
expect(esmPath).toBe(resolve(repoRoot, esm))
|
|
104
|
+
expect(cjsPath).toBe(resolve(repoRoot, cjs))
|
|
105
|
+
expect(existsSync(esmPath)).toBe(true)
|
|
106
|
+
expect(existsSync(cjsPath)).toBe(true)
|
|
107
|
+
expect(existsSync(typesFor(esmPath))).toBe(true)
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
describe("package exports — deep component imports", () => {
|
|
112
|
+
const specs = [
|
|
113
|
+
// File-backed modules resolved via the "./*" wildcard.
|
|
114
|
+
"components/DataGrid",
|
|
115
|
+
"components/AppHeader",
|
|
116
|
+
"components/LogPanel",
|
|
117
|
+
"components/ProgramControl",
|
|
118
|
+
"components/RobotCard",
|
|
119
|
+
"components/TabBar",
|
|
120
|
+
"components/VelocitySlider",
|
|
121
|
+
"components/jogging/JoggingPanel",
|
|
122
|
+
"components/jogging/JoggingStore",
|
|
123
|
+
"components/jogging/JoggingCartesianAxisControl",
|
|
124
|
+
"components/safetyBar/SafetyBar",
|
|
125
|
+
"components/3d-viewport/SafetyZonesRenderer",
|
|
126
|
+
"components/3d-viewport/TrajectoryRenderer",
|
|
127
|
+
"components/robots/Robot",
|
|
128
|
+
"components/robots/MotionGroupVisualizer",
|
|
129
|
+
"components/modal/NoMotionGroupModal",
|
|
130
|
+
"lib/ConnectedMotionGroup",
|
|
131
|
+
"lib/JoggerConnection",
|
|
132
|
+
"lib/MotionStreamConnection",
|
|
133
|
+
"themes/createDarkTheme",
|
|
134
|
+
// Directory-backed modules that have a sibling barrel so the wildcard
|
|
135
|
+
// subpath still resolves. Regression test for copilot review comment.
|
|
136
|
+
"components/Timer",
|
|
137
|
+
"components/CycleTimer",
|
|
138
|
+
]
|
|
139
|
+
|
|
140
|
+
it.each(specs)("%s resolves ESM, CJS, and types", (sub) => {
|
|
141
|
+
const spec = `${pkgName}/${sub}`
|
|
142
|
+
const esmPath = resolveEsm(spec)
|
|
143
|
+
const cjsPath = resolveCjs(spec)
|
|
144
|
+
expect(esmPath).toMatch(/\.js$/)
|
|
145
|
+
expect(cjsPath).toMatch(/\.cjs$/)
|
|
146
|
+
expect(existsSync(esmPath)).toBe(true)
|
|
147
|
+
expect(existsSync(cjsPath)).toBe(true)
|
|
148
|
+
expect(existsSync(typesFor(esmPath))).toBe(true)
|
|
149
|
+
})
|
|
150
|
+
})
|
|
151
|
+
|
|
152
|
+
describe("MUI-style default + named exports", () => {
|
|
153
|
+
// These modules are the primary public "one-component-per-file" entries
|
|
154
|
+
// that downstream apps will import directly. Each must expose both a
|
|
155
|
+
// named export (preserving the existing API) and a matching `default`
|
|
156
|
+
// export (the MUI-style convention introduced by this PR).
|
|
157
|
+
const cases = [
|
|
158
|
+
{ sub: "components/DataGrid", name: "WandelbotsDataGrid" },
|
|
159
|
+
{ sub: "components/AppHeader", name: "AppHeader" },
|
|
160
|
+
{ sub: "components/TabBar", name: "TabBar" },
|
|
161
|
+
{ sub: "components/ProgramControl", name: "ProgramControl" },
|
|
162
|
+
{ sub: "components/RobotCard", name: "RobotCard" },
|
|
163
|
+
{ sub: "components/VelocitySlider", name: "VelocitySlider" },
|
|
164
|
+
{ sub: "components/jogging/JoggingPanel", name: "JoggingPanel" },
|
|
165
|
+
{ sub: "components/jogging/JoggingStore", name: "JoggingStore" },
|
|
166
|
+
{ sub: "components/safetyBar/SafetyBar", name: "SafetyBar" },
|
|
167
|
+
{ sub: "components/Timer", name: "Timer" },
|
|
168
|
+
{ sub: "components/CycleTimer", name: "CycleTimer" },
|
|
169
|
+
{ sub: "lib/ConnectedMotionGroup", name: "ConnectedMotionGroup" },
|
|
170
|
+
{ sub: "lib/JoggerConnection", name: "JoggerConnection" },
|
|
171
|
+
{ sub: "lib/MotionStreamConnection", name: "MotionStreamConnection" },
|
|
172
|
+
]
|
|
173
|
+
|
|
174
|
+
it.each(cases)("$sub exposes $name as both named and default", async ({
|
|
175
|
+
sub,
|
|
176
|
+
name,
|
|
177
|
+
}) => {
|
|
178
|
+
const mod = (await import(`${pkgName}/${sub}`)) as Record<string, unknown>
|
|
179
|
+
expect(mod[name], `missing named export ${name}`).toBeDefined()
|
|
180
|
+
expect(mod.default, "missing default export").toBeDefined()
|
|
181
|
+
expect(mod.default).toBe(mod[name])
|
|
182
|
+
})
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
describe("aggregate barrel preserves named exports", () => {
|
|
186
|
+
it("@wandelbots/.../core re-exports the same symbols as deep imports", async () => {
|
|
187
|
+
const core = await import(`${pkgName}/core`)
|
|
188
|
+
const deep = await import(`${pkgName}/components/DataGrid`)
|
|
189
|
+
expect(core.WandelbotsDataGrid).toBe(deep.WandelbotsDataGrid)
|
|
190
|
+
})
|
|
191
|
+
|
|
192
|
+
it("@wandelbots/.../3d re-exports the same symbols as deep imports", async () => {
|
|
193
|
+
const agg = await import(`${pkgName}/3d`)
|
|
194
|
+
const deep = await import(`${pkgName}/components/robots/Robot`)
|
|
195
|
+
expect(agg.Robot).toBe(deep.Robot)
|
|
196
|
+
})
|
|
197
|
+
})
|
|
198
|
+
|
|
199
|
+
describe("CJS interop", () => {
|
|
200
|
+
it("require() returns the same symbols as import", async () => {
|
|
201
|
+
const esm = (await import(`${pkgName}/components/DataGrid`)) as Record<
|
|
202
|
+
string,
|
|
203
|
+
unknown
|
|
204
|
+
>
|
|
205
|
+
const cjs = sandboxReq(`${pkgName}/components/DataGrid`) as Record<
|
|
206
|
+
string,
|
|
207
|
+
unknown
|
|
208
|
+
>
|
|
209
|
+
expect(cjs.default).toBe(cjs.WandelbotsDataGrid)
|
|
210
|
+
// Both resolvers must reach a real, loadable module (the identities
|
|
211
|
+
// naturally differ between ESM/CJS, so we compare by exported keys).
|
|
212
|
+
expect(Object.keys(cjs).sort()).toEqual(Object.keys(esm).sort())
|
|
213
|
+
})
|
|
214
|
+
|
|
215
|
+
// Regression test: Vitest's `await import()` goes through Vite's lenient
|
|
216
|
+
// resolver, which happily accepts extensionless ESM specifiers like
|
|
217
|
+
// `lodash-es/throttle`. Real downstream consumers hit Node's strict ESM
|
|
218
|
+
// resolver, which requires `.js`. Spawn a real Node process so the whole
|
|
219
|
+
// dependency graph (including transitive imports from dist/) is exercised
|
|
220
|
+
// under strict resolution.
|
|
221
|
+
it.each([
|
|
222
|
+
"components/DataGrid",
|
|
223
|
+
"components/VelocitySlider",
|
|
224
|
+
"components/jogging/JoggingPanel",
|
|
225
|
+
"components/jogging/JoggingJointValueControl",
|
|
226
|
+
"components/jogging/JoggingJointLimitDetector",
|
|
227
|
+
"components/jogging/JoggingStore",
|
|
228
|
+
])("Node strict ESM can import %s and its transitive deps", (sub) => {
|
|
229
|
+
// Redirect stderr to stdout so the assertion message surfaces any
|
|
230
|
+
// "Cannot find module" errors from the child process.
|
|
231
|
+
execFileSync(
|
|
232
|
+
process.execPath,
|
|
233
|
+
[
|
|
234
|
+
"--input-type=module",
|
|
235
|
+
"-e",
|
|
236
|
+
`await import(${JSON.stringify(`${pkgName}/${sub}`)})`,
|
|
237
|
+
],
|
|
238
|
+
{ cwd: sandbox, stdio: "pipe", encoding: "utf8" },
|
|
239
|
+
)
|
|
240
|
+
})
|
|
241
|
+
|
|
242
|
+
it('Node can load the CJS output under `"type": "module"`', () => {
|
|
243
|
+
// Sanity check that `.cjs` extension was emitted (not `.cjs.js`) so
|
|
244
|
+
// that Node's CJS loader accepts it despite the package being ESM.
|
|
245
|
+
const output = execFileSync(
|
|
246
|
+
process.execPath,
|
|
247
|
+
[
|
|
248
|
+
"-e",
|
|
249
|
+
"const m = require(process.argv[1]); " +
|
|
250
|
+
"console.log(typeof m.WandelbotsDataGrid);",
|
|
251
|
+
resolve(repoRoot, "dist/components/DataGrid.cjs"),
|
|
252
|
+
],
|
|
253
|
+
{ encoding: "utf8" },
|
|
254
|
+
).trim()
|
|
255
|
+
expect(output).toBe("function")
|
|
256
|
+
})
|
|
257
|
+
})
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import "@testing-library/jest-dom"
|
|
2
|
+
import { beforeAll, vi } from "vitest"
|
|
3
|
+
|
|
4
|
+
// Mock ResizeObserver
|
|
5
|
+
global.ResizeObserver = vi.fn().mockImplementation(() => ({
|
|
6
|
+
observe: vi.fn(),
|
|
7
|
+
unobserve: vi.fn(),
|
|
8
|
+
disconnect: vi.fn(),
|
|
9
|
+
}))
|
|
10
|
+
|
|
11
|
+
// Mock IntersectionObserver
|
|
12
|
+
global.IntersectionObserver = vi.fn().mockImplementation(() => ({
|
|
13
|
+
observe: vi.fn(),
|
|
14
|
+
unobserve: vi.fn(),
|
|
15
|
+
disconnect: vi.fn(),
|
|
16
|
+
}))
|
|
17
|
+
|
|
18
|
+
// Mock matchMedia
|
|
19
|
+
Object.defineProperty(window, "matchMedia", {
|
|
20
|
+
writable: true,
|
|
21
|
+
value: vi.fn().mockImplementation((query) => ({
|
|
22
|
+
matches: false,
|
|
23
|
+
media: query,
|
|
24
|
+
onchange: null,
|
|
25
|
+
addListener: vi.fn(),
|
|
26
|
+
removeListener: vi.fn(),
|
|
27
|
+
addEventListener: vi.fn(),
|
|
28
|
+
removeEventListener: vi.fn(),
|
|
29
|
+
dispatchEvent: vi.fn(),
|
|
30
|
+
})),
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
// Mock WebGL context for Three.js
|
|
34
|
+
const mockWebGLContext = {
|
|
35
|
+
getExtension: vi.fn(),
|
|
36
|
+
getParameter: vi.fn(),
|
|
37
|
+
createShader: vi.fn(),
|
|
38
|
+
shaderSource: vi.fn(),
|
|
39
|
+
compileShader: vi.fn(),
|
|
40
|
+
createProgram: vi.fn(),
|
|
41
|
+
attachShader: vi.fn(),
|
|
42
|
+
linkProgram: vi.fn(),
|
|
43
|
+
useProgram: vi.fn(),
|
|
44
|
+
createBuffer: vi.fn(),
|
|
45
|
+
bindBuffer: vi.fn(),
|
|
46
|
+
bufferData: vi.fn(),
|
|
47
|
+
createTexture: vi.fn(),
|
|
48
|
+
bindTexture: vi.fn(),
|
|
49
|
+
texImage2D: vi.fn(),
|
|
50
|
+
texParameteri: vi.fn(),
|
|
51
|
+
generateMipmap: vi.fn(),
|
|
52
|
+
viewport: vi.fn(),
|
|
53
|
+
clearColor: vi.fn(),
|
|
54
|
+
clear: vi.fn(),
|
|
55
|
+
drawArrays: vi.fn(),
|
|
56
|
+
drawElements: vi.fn(),
|
|
57
|
+
enableVertexAttribArray: vi.fn(),
|
|
58
|
+
vertexAttribPointer: vi.fn(),
|
|
59
|
+
uniform1f: vi.fn(),
|
|
60
|
+
uniform2f: vi.fn(),
|
|
61
|
+
uniform3f: vi.fn(),
|
|
62
|
+
uniform4f: vi.fn(),
|
|
63
|
+
uniformMatrix4fv: vi.fn(),
|
|
64
|
+
getUniformLocation: vi.fn(),
|
|
65
|
+
getAttribLocation: vi.fn(),
|
|
66
|
+
enable: vi.fn(),
|
|
67
|
+
disable: vi.fn(),
|
|
68
|
+
depthFunc: vi.fn(),
|
|
69
|
+
blendFunc: vi.fn(),
|
|
70
|
+
cullFace: vi.fn(),
|
|
71
|
+
frontFace: vi.fn(),
|
|
72
|
+
VERTEX_SHADER: 35633,
|
|
73
|
+
FRAGMENT_SHADER: 35632,
|
|
74
|
+
ARRAY_BUFFER: 34962,
|
|
75
|
+
ELEMENT_ARRAY_BUFFER: 34963,
|
|
76
|
+
STATIC_DRAW: 35044,
|
|
77
|
+
DYNAMIC_DRAW: 35048,
|
|
78
|
+
TEXTURE_2D: 3553,
|
|
79
|
+
RGBA: 6408,
|
|
80
|
+
UNSIGNED_BYTE: 5121,
|
|
81
|
+
TEXTURE_MAG_FILTER: 10240,
|
|
82
|
+
TEXTURE_MIN_FILTER: 10241,
|
|
83
|
+
LINEAR: 9729,
|
|
84
|
+
COLOR_BUFFER_BIT: 16384,
|
|
85
|
+
DEPTH_BUFFER_BIT: 256,
|
|
86
|
+
DEPTH_TEST: 2929,
|
|
87
|
+
BLEND: 3042,
|
|
88
|
+
SRC_ALPHA: 770,
|
|
89
|
+
ONE_MINUS_SRC_ALPHA: 771,
|
|
90
|
+
CULL_FACE: 2884,
|
|
91
|
+
BACK: 1029,
|
|
92
|
+
CCW: 2305,
|
|
93
|
+
FLOAT: 5126,
|
|
94
|
+
FALSE: 0,
|
|
95
|
+
TRUE: 1,
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
HTMLCanvasElement.prototype.getContext = vi
|
|
99
|
+
.fn()
|
|
100
|
+
.mockImplementation((contextType) => {
|
|
101
|
+
if (contextType === "webgl" || contextType === "experimental-webgl") {
|
|
102
|
+
return mockWebGLContext
|
|
103
|
+
}
|
|
104
|
+
return null
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
beforeAll(() => {
|
|
108
|
+
// Suppress console errors in tests
|
|
109
|
+
vi.spyOn(console, "error").mockImplementation(() => {})
|
|
110
|
+
vi.spyOn(console, "warn").mockImplementation(() => {})
|
|
111
|
+
})
|