@wandelbots/wandelbots-js-react-components 5.4.2 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d.cjs +2 -0
- package/dist/3d.cjs.map +1 -0
- package/dist/3d.js +31 -0
- package/dist/3d.js.map +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -1
- package/dist/components/3d-viewport/PresetEnvironment.cjs +2 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -1
- package/dist/components/3d-viewport/PresetEnvironment.js +81 -0
- package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.js +131 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs +2 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +1 -1
- package/dist/components/3d-viewport/TrajectoryRenderer.js +31 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js +22 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -0
- package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js +29 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +19 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +2 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +43 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
- package/dist/components/AppHeader.cjs +2 -0
- package/dist/components/AppHeader.cjs.map +1 -0
- package/dist/components/AppHeader.d.ts +1 -0
- package/dist/components/AppHeader.d.ts.map +1 -1
- package/dist/components/AppHeader.js +139 -0
- package/dist/components/AppHeader.js.map +1 -0
- package/dist/components/ConsoleFilter.cjs +2 -0
- package/dist/components/ConsoleFilter.cjs.map +1 -0
- package/dist/components/ConsoleFilter.js +13 -0
- package/dist/components/ConsoleFilter.js.map +1 -0
- package/dist/components/CopyableText.cjs +2 -0
- package/dist/components/CopyableText.cjs.map +1 -0
- package/dist/components/CopyableText.d.ts +1 -0
- package/dist/components/CopyableText.d.ts.map +1 -1
- package/dist/components/CopyableText.js +71 -0
- package/dist/components/CopyableText.js.map +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts.map +1 -1
- package/dist/components/CycleTimer/DefaultVariant.cjs +2 -0
- package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js +301 -0
- package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs +2 -0
- package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.js +150 -0
- package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
- package/dist/components/CycleTimer/index.cjs +2 -0
- package/dist/components/CycleTimer/index.cjs.map +1 -0
- package/dist/components/CycleTimer/index.d.ts +1 -0
- package/dist/components/CycleTimer/index.d.ts.map +1 -1
- package/dist/components/CycleTimer/index.js +86 -0
- package/dist/components/CycleTimer/index.js.map +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs +2 -0
- package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
- package/dist/components/CycleTimer/useAnimations.js +105 -0
- package/dist/components/CycleTimer/useAnimations.js.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.cjs +2 -0
- package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js +191 -0
- package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
- package/dist/components/CycleTimer/utils.cjs +2 -0
- package/dist/components/CycleTimer/utils.cjs.map +1 -0
- package/dist/components/CycleTimer/utils.js +20 -0
- package/dist/components/CycleTimer/utils.js.map +1 -0
- package/dist/components/CycleTimer.cjs +2 -0
- package/dist/components/CycleTimer.cjs.map +1 -0
- package/dist/components/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer.d.ts.map +1 -1
- package/dist/components/CycleTimer.js +6 -0
- package/dist/components/CycleTimer.js.map +1 -0
- package/dist/components/DataGrid.cjs +2 -0
- package/dist/components/DataGrid.cjs.map +1 -0
- package/dist/components/DataGrid.d.ts +1 -0
- package/dist/components/DataGrid.d.ts.map +1 -1
- package/dist/components/DataGrid.js +535 -0
- package/dist/components/DataGrid.js.map +1 -0
- package/dist/components/LoadingCover.cjs +2 -0
- package/dist/components/LoadingCover.cjs.map +1 -0
- package/dist/components/LoadingCover.d.ts +1 -0
- package/dist/components/LoadingCover.d.ts.map +1 -1
- package/dist/components/LoadingCover.js +77 -0
- package/dist/components/LoadingCover.js.map +1 -0
- package/dist/components/LogPanel.cjs +2 -0
- package/dist/components/LogPanel.cjs.map +1 -0
- package/dist/components/LogPanel.d.ts +1 -0
- package/dist/components/LogPanel.d.ts.map +1 -1
- package/dist/components/LogPanel.js +34 -0
- package/dist/components/LogPanel.js.map +1 -0
- package/dist/components/LogStore.cjs +2 -0
- package/dist/components/LogStore.cjs.map +1 -0
- package/dist/components/LogStore.d.ts +1 -0
- package/dist/components/LogStore.d.ts.map +1 -1
- package/dist/components/LogStore.js +33 -0
- package/dist/components/LogStore.js.map +1 -0
- package/dist/components/LogViewer.cjs +2 -0
- package/dist/components/LogViewer.cjs.map +1 -0
- package/dist/components/LogViewer.d.ts +1 -0
- package/dist/components/LogViewer.d.ts.map +1 -1
- package/dist/components/LogViewer.js +299 -0
- package/dist/components/LogViewer.js.map +1 -0
- package/dist/components/ProgramControl.cjs +2 -0
- package/dist/components/ProgramControl.cjs.map +1 -0
- package/dist/components/ProgramControl.d.ts +1 -0
- package/dist/components/ProgramControl.d.ts.map +1 -1
- package/dist/components/ProgramControl.js +147 -0
- package/dist/components/ProgramControl.js.map +1 -0
- package/dist/components/ProgramStateIndicator.cjs +2 -0
- package/dist/components/ProgramStateIndicator.cjs.map +1 -0
- package/dist/components/ProgramStateIndicator.d.ts +1 -0
- package/dist/components/ProgramStateIndicator.d.ts.map +1 -1
- package/dist/components/ProgramStateIndicator.js +140 -0
- package/dist/components/ProgramStateIndicator.js.map +1 -0
- package/dist/components/RobotCard.cjs +2 -0
- package/dist/components/RobotCard.cjs.map +1 -0
- package/dist/components/RobotCard.d.ts +1 -0
- package/dist/components/RobotCard.d.ts.map +1 -1
- package/dist/components/RobotCard.js +360 -0
- package/dist/components/RobotCard.js.map +1 -0
- package/dist/components/RobotListItem.cjs +2 -0
- package/dist/components/RobotListItem.cjs.map +1 -0
- package/dist/components/RobotListItem.d.ts +1 -0
- package/dist/components/RobotListItem.d.ts.map +1 -1
- package/dist/components/RobotListItem.js +122 -0
- package/dist/components/RobotListItem.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.cjs +2 -0
- package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -1
- package/dist/components/RobotSetupReadinessIndicator.js +122 -0
- package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
- package/dist/components/SelectableFab.cjs +2 -0
- package/dist/components/SelectableFab.cjs.map +1 -0
- package/dist/components/SelectableFab.d.ts +1 -1
- package/dist/components/SelectableFab.d.ts.map +1 -1
- package/dist/components/SelectableFab.js +51 -0
- package/dist/components/SelectableFab.js.map +1 -0
- package/dist/components/TabBar.cjs +2 -0
- package/dist/components/TabBar.cjs.map +1 -0
- package/dist/components/TabBar.d.ts +1 -0
- package/dist/components/TabBar.d.ts.map +1 -1
- package/dist/components/TabBar.js +212 -0
- package/dist/components/TabBar.js.map +1 -0
- package/dist/components/ThemeSelect.d.ts +1 -1
- package/dist/components/ThemeSelect.d.ts.map +1 -1
- package/dist/components/Timer/Timer.d.ts +1 -0
- package/dist/components/Timer/Timer.d.ts.map +1 -1
- package/dist/components/Timer/TimerDefaultVariant.cjs +2 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js +136 -0
- package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs +2 -0
- package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.js +128 -0
- package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
- package/dist/components/Timer/index.cjs +2 -0
- package/dist/components/Timer/index.cjs.map +1 -0
- package/dist/components/Timer/index.d.ts +1 -0
- package/dist/components/Timer/index.d.ts.map +1 -1
- package/dist/components/Timer/index.js +68 -0
- package/dist/components/Timer/index.js.map +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs +2 -0
- package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
- package/dist/components/Timer/useTimerAnimations.js +48 -0
- package/dist/components/Timer/useTimerAnimations.js.map +1 -0
- package/dist/components/Timer/useTimerLogic.cjs +2 -0
- package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
- package/dist/components/Timer/useTimerLogic.js +113 -0
- package/dist/components/Timer/useTimerLogic.js.map +1 -0
- package/dist/components/Timer/utils.cjs +2 -0
- package/dist/components/Timer/utils.cjs.map +1 -0
- package/dist/components/Timer/utils.js +19 -0
- package/dist/components/Timer/utils.js.map +1 -0
- package/dist/components/Timer.cjs +2 -0
- package/dist/components/Timer.cjs.map +1 -0
- package/dist/components/Timer.d.ts +4 -0
- package/dist/components/Timer.d.ts.map +1 -0
- package/dist/components/Timer.js +6 -0
- package/dist/components/Timer.js.map +1 -0
- package/dist/components/TransparentOverlay.d.ts +1 -0
- package/dist/components/TransparentOverlay.d.ts.map +1 -1
- package/dist/components/VelocitySlider.cjs +2 -0
- package/dist/components/VelocitySlider.cjs.map +1 -0
- package/dist/components/VelocitySlider.d.ts +1 -1
- package/dist/components/VelocitySlider.d.ts.map +1 -1
- package/dist/components/VelocitySlider.js +97 -0
- package/dist/components/VelocitySlider.js.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs +2 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js +35 -0
- package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs +2 -0
- package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
- package/dist/components/jogging/JoggingBlocked.js +46 -0
- package/dist/components/jogging/JoggingBlocked.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.js +186 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.cjs +2 -0
- package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.js +267 -0
- package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs +2 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js +42 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
- package/dist/components/jogging/JoggingJointTab.cjs +2 -0
- package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointTab.js +114 -0
- package/dist/components/jogging/JoggingJointTab.js.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.cjs +2 -0
- package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -1
- package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -1
- package/dist/components/jogging/JoggingJointValueControl.js +240 -0
- package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
- package/dist/components/jogging/JoggingOptions.cjs +2 -0
- package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
- package/dist/components/jogging/JoggingOptions.js +117 -0
- package/dist/components/jogging/JoggingOptions.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.cjs +2 -0
- package/dist/components/jogging/JoggingPanel.cjs.map +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts.map +1 -1
- package/dist/components/jogging/JoggingPanel.js +121 -0
- package/dist/components/jogging/JoggingPanel.js.map +1 -0
- package/dist/components/jogging/JoggingStore.cjs +2 -0
- package/dist/components/jogging/JoggingStore.cjs.map +1 -0
- package/dist/components/jogging/JoggingStore.d.ts +1 -1
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
- package/dist/components/jogging/JoggingStore.js +219 -0
- package/dist/components/jogging/JoggingStore.js.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs +2 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js +29 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs +2 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js +40 -0
- package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.cjs +2 -0
- package/dist/components/jogging/PoseCartesianValues.cjs.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -1
- package/dist/components/jogging/PoseCartesianValues.js +48 -0
- package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
- package/dist/components/jogging/PoseJointValues.cjs +2 -0
- package/dist/components/jogging/PoseJointValues.cjs.map +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts.map +1 -1
- package/dist/components/jogging/PoseJointValues.js +47 -0
- package/dist/components/jogging/PoseJointValues.js.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs +2 -0
- package/dist/components/modal/NoMotionGroupModal.cjs.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -1
- package/dist/components/modal/NoMotionGroupModal.js +92 -0
- package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
- package/dist/components/robots/AxisConfig.cjs +2 -0
- package/dist/components/robots/AxisConfig.cjs.map +1 -0
- package/dist/components/robots/AxisConfig.js +5 -0
- package/dist/components/robots/AxisConfig.js.map +1 -0
- package/dist/components/robots/DHLinearAxis.cjs +2 -0
- package/dist/components/robots/DHLinearAxis.cjs.map +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts.map +1 -1
- package/dist/components/robots/DHLinearAxis.js +92 -0
- package/dist/components/robots/DHLinearAxis.js.map +1 -0
- package/dist/components/robots/DHRobot.cjs +2 -0
- package/dist/components/robots/DHRobot.cjs.map +1 -0
- package/dist/components/robots/DHRobot.d.ts +1 -0
- package/dist/components/robots/DHRobot.d.ts.map +1 -1
- package/dist/components/robots/DHRobot.js +94 -0
- package/dist/components/robots/DHRobot.js.map +1 -0
- package/dist/components/robots/GenericRobot.cjs +2 -0
- package/dist/components/robots/GenericRobot.cjs.map +1 -0
- package/dist/components/robots/GenericRobot.d.ts +1 -0
- package/dist/components/robots/GenericRobot.d.ts.map +1 -1
- package/dist/components/robots/GenericRobot.js +91 -0
- package/dist/components/robots/GenericRobot.js.map +1 -0
- package/dist/components/robots/LinearAxis.cjs +2 -0
- package/dist/components/robots/LinearAxis.cjs.map +1 -0
- package/dist/components/robots/LinearAxis.d.ts +1 -0
- package/dist/components/robots/LinearAxis.d.ts.map +1 -1
- package/dist/components/robots/LinearAxis.js +42 -0
- package/dist/components/robots/LinearAxis.js.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.cjs +2 -0
- package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.js +66 -0
- package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.cjs +2 -0
- package/dist/components/robots/MotionGroupVisualizer.cjs.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -1
- package/dist/components/robots/MotionGroupVisualizer.js +21 -0
- package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
- package/dist/components/robots/Robot.cjs +2 -0
- package/dist/components/robots/Robot.cjs.map +1 -0
- package/dist/components/robots/Robot.d.ts +1 -0
- package/dist/components/robots/Robot.d.ts.map +1 -1
- package/dist/components/robots/Robot.js +31 -0
- package/dist/components/robots/Robot.js.map +1 -0
- package/dist/components/robots/RobotAnimator.cjs +2 -0
- package/dist/components/robots/RobotAnimator.cjs.map +1 -0
- package/dist/components/robots/RobotAnimator.js +66 -0
- package/dist/components/robots/RobotAnimator.js.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.cjs +2 -0
- package/dist/components/robots/SupportedLinearAxis.cjs.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -1
- package/dist/components/robots/SupportedLinearAxis.js +82 -0
- package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
- package/dist/components/robots/SupportedRobot.cjs +2 -0
- package/dist/components/robots/SupportedRobot.cjs.map +1 -0
- package/dist/components/robots/SupportedRobot.d.ts +1 -0
- package/dist/components/robots/SupportedRobot.d.ts.map +1 -1
- package/dist/components/robots/SupportedRobot.js +82 -0
- package/dist/components/robots/SupportedRobot.js.map +1 -0
- package/dist/components/robots/ghostStyle.cjs +2 -0
- package/dist/components/robots/ghostStyle.cjs.map +1 -0
- package/dist/components/robots/ghostStyle.js +40 -0
- package/dist/components/robots/ghostStyle.js.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs +2 -0
- package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.js +51 -0
- package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
- package/dist/components/robots/robotModelLogic.cjs +2 -0
- package/dist/components/robots/robotModelLogic.cjs.map +1 -0
- package/dist/components/robots/robotModelLogic.js +61 -0
- package/dist/components/robots/robotModelLogic.js.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.js +71 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs +2 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -1
- package/dist/components/safetyBar/IndicatorWithExplanation.js +123 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -0
- package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -1
- package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -1
- package/dist/components/safetyBar/OperationModeIndicator.js +75 -0
- package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
- package/dist/components/safetyBar/SafetyBar.cjs +2 -0
- package/dist/components/safetyBar/SafetyBar.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -1
- package/dist/components/safetyBar/SafetyBar.js +66 -0
- package/dist/components/safetyBar/SafetyBar.js.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -0
- package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -1
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -1
- package/dist/components/safetyBar/SafetyStateIndicator.js +126 -0
- package/dist/components/safetyBar/SafetyStateIndicator.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.js +11 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +11 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +1 -0
- package/dist/components/utils/converters.cjs +2 -0
- package/dist/components/utils/converters.cjs.map +1 -0
- package/dist/components/utils/converters.js +40 -0
- package/dist/components/utils/converters.js.map +1 -0
- package/dist/components/utils/errorHandling.cjs +2 -0
- package/dist/components/utils/errorHandling.cjs.map +1 -0
- package/dist/components/utils/errorHandling.js +14 -0
- package/dist/components/utils/errorHandling.js.map +1 -0
- package/dist/components/utils/hooks.cjs +2 -0
- package/dist/components/utils/hooks.cjs.map +1 -0
- package/dist/components/utils/hooks.js +29 -0
- package/dist/components/utils/hooks.js.map +1 -0
- package/dist/components/utils/interpolation.cjs +2 -0
- package/dist/components/utils/interpolation.cjs.map +1 -0
- package/dist/components/utils/interpolation.js +138 -0
- package/dist/components/utils/interpolation.js.map +1 -0
- package/dist/core.cjs +2 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.js +81 -0
- package/dist/core.js.map +1 -0
- package/dist/externalizeComponent.cjs +2 -0
- package/dist/externalizeComponent.cjs.map +1 -0
- package/dist/externalizeComponent.js +13 -0
- package/dist/externalizeComponent.js.map +1 -0
- package/dist/i18n/config.cjs +2 -0
- package/dist/i18n/config.cjs.map +1 -0
- package/dist/i18n/config.js +25 -0
- package/dist/i18n/config.js.map +1 -0
- package/dist/i18n/locales/de/translations.json.cjs +3 -0
- package/dist/i18n/locales/de/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/de/translations.json.js +94 -0
- package/dist/i18n/locales/de/translations.json.js.map +1 -0
- package/dist/i18n/locales/en/translations.json.cjs +2 -0
- package/dist/i18n/locales/en/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/en/translations.json.js +94 -0
- package/dist/i18n/locales/en/translations.json.js.map +1 -0
- package/dist/icons/DropdownArrowIcon.cjs +2 -0
- package/dist/icons/DropdownArrowIcon.cjs.map +1 -0
- package/dist/icons/DropdownArrowIcon.js +14 -0
- package/dist/icons/DropdownArrowIcon.js.map +1 -0
- package/dist/icons/axis-x.svg.cjs +2 -0
- package/dist/icons/axis-x.svg.cjs.map +1 -0
- package/dist/icons/axis-x.svg.d.ts +3 -0
- package/dist/icons/axis-x.svg.js +11 -0
- package/dist/icons/axis-x.svg.js.map +1 -0
- package/dist/icons/axis-y.svg.cjs +2 -0
- package/dist/icons/axis-y.svg.cjs.map +1 -0
- package/dist/icons/axis-y.svg.d.ts +3 -0
- package/dist/icons/axis-y.svg.js +11 -0
- package/dist/icons/axis-y.svg.js.map +1 -0
- package/dist/icons/axis-z.svg.cjs +2 -0
- package/dist/icons/axis-z.svg.cjs.map +1 -0
- package/dist/icons/axis-z.svg.d.ts +3 -0
- package/dist/icons/axis-z.svg.js +11 -0
- package/dist/icons/axis-z.svg.js.map +1 -0
- package/dist/icons/home.svg.cjs +2 -0
- package/dist/icons/home.svg.cjs.map +1 -0
- package/dist/icons/home.svg.d.ts +3 -0
- package/dist/icons/home.svg.js +11 -0
- package/dist/icons/home.svg.js.map +1 -0
- package/dist/icons/jog-minus.svg.cjs +2 -0
- package/dist/icons/jog-minus.svg.cjs.map +1 -0
- package/dist/icons/jog-minus.svg.d.ts +3 -0
- package/dist/icons/jog-minus.svg.js +11 -0
- package/dist/icons/jog-minus.svg.js.map +1 -0
- package/dist/icons/jog-plus.svg.cjs +2 -0
- package/dist/icons/jog-plus.svg.cjs.map +1 -0
- package/dist/icons/jog-plus.svg.d.ts +3 -0
- package/dist/icons/jog-plus.svg.js +11 -0
- package/dist/icons/jog-plus.svg.js.map +1 -0
- package/dist/icons/jogging.svg.cjs +2 -0
- package/dist/icons/jogging.svg.cjs.map +1 -0
- package/dist/icons/jogging.svg.d.ts +3 -0
- package/dist/icons/jogging.svg.js +11 -0
- package/dist/icons/jogging.svg.js.map +1 -0
- package/dist/icons/orientation-coord-system.svg.cjs +2 -0
- package/dist/icons/orientation-coord-system.svg.cjs.map +1 -0
- package/dist/icons/orientation-coord-system.svg.d.ts +3 -0
- package/dist/icons/orientation-coord-system.svg.js +11 -0
- package/dist/icons/orientation-coord-system.svg.js.map +1 -0
- package/dist/icons/orientation-tool.svg.cjs +2 -0
- package/dist/icons/orientation-tool.svg.cjs.map +1 -0
- package/dist/icons/orientation-tool.svg.d.ts +3 -0
- package/dist/icons/orientation-tool.svg.js +11 -0
- package/dist/icons/orientation-tool.svg.js.map +1 -0
- package/dist/icons/robot.svg.cjs +2 -0
- package/dist/icons/robot.svg.cjs.map +1 -0
- package/dist/icons/robot.svg.d.ts +3 -0
- package/dist/icons/robot.svg.js +11 -0
- package/dist/icons/robot.svg.js.map +1 -0
- package/dist/icons/rotation.svg.cjs +2 -0
- package/dist/icons/rotation.svg.cjs.map +1 -0
- package/dist/icons/rotation.svg.d.ts +3 -0
- package/dist/icons/rotation.svg.js +11 -0
- package/dist/icons/rotation.svg.js.map +1 -0
- package/dist/icons/wbLogo.svg.cjs +2 -0
- package/dist/icons/wbLogo.svg.cjs.map +1 -0
- package/dist/icons/wbLogo.svg.d.ts +3 -0
- package/dist/icons/wbLogo.svg.js +11 -0
- package/dist/icons/wbLogo.svg.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +153 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/ConnectedMotionGroup.cjs +4 -0
- package/dist/lib/ConnectedMotionGroup.cjs.map +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -1
- package/dist/lib/ConnectedMotionGroup.js +250 -0
- package/dist/lib/ConnectedMotionGroup.js.map +1 -0
- package/dist/lib/JoggerConnection.cjs +2 -0
- package/dist/lib/JoggerConnection.cjs.map +1 -0
- package/dist/lib/JoggerConnection.d.ts +1 -0
- package/dist/lib/JoggerConnection.d.ts.map +1 -1
- package/dist/lib/JoggerConnection.js +342 -0
- package/dist/lib/JoggerConnection.js.map +1 -0
- package/dist/lib/MotionStreamConnection.cjs +3 -0
- package/dist/lib/MotionStreamConnection.cjs.map +1 -0
- package/dist/lib/MotionStreamConnection.d.ts +1 -0
- package/dist/lib/MotionStreamConnection.d.ts.map +1 -1
- package/dist/lib/MotionStreamConnection.js +94 -0
- package/dist/lib/MotionStreamConnection.js.map +1 -0
- package/dist/lib/motionStateUpdate.cjs +2 -0
- package/dist/lib/motionStateUpdate.cjs.map +1 -0
- package/dist/lib/motionStateUpdate.js +49 -0
- package/dist/lib/motionStateUpdate.js.map +1 -0
- package/dist/test/consumer.test.d.ts +2 -0
- package/dist/test/consumer.test.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.cjs +2 -0
- package/dist/themes/createDarkTheme.cjs.map +1 -0
- package/dist/themes/createDarkTheme.js +344 -0
- package/dist/themes/createDarkTheme.js.map +1 -0
- package/dist/themes/createLightTheme.cjs +2 -0
- package/dist/themes/createLightTheme.cjs.map +1 -0
- package/dist/themes/createLightTheme.js +9 -0
- package/dist/themes/createLightTheme.js.map +1 -0
- package/dist/themes/theming.cjs +2 -0
- package/dist/themes/theming.cjs.map +1 -0
- package/dist/themes/theming.js +14 -0
- package/dist/themes/theming.js.map +1 -0
- package/dist/wb-icons.cjs +2 -0
- package/dist/wb-icons.cjs.map +1 -0
- package/dist/wb-icons.js +47 -0
- package/dist/wb-icons.js.map +1 -0
- package/package.json +20 -9
- package/src/components/3d-viewport/CoordinateSystemTransform.tsx +2 -0
- package/src/components/3d-viewport/PresetEnvironment.tsx +2 -0
- package/src/components/3d-viewport/SafetyZonesRenderer.tsx +2 -0
- package/src/components/3d-viewport/TrajectoryRenderer.tsx +2 -0
- package/src/components/AppHeader.tsx +2 -0
- package/src/components/CopyableText.tsx +2 -0
- package/src/components/CycleTimer/CycleTimer.ts +2 -0
- package/src/components/CycleTimer/index.tsx +2 -0
- package/src/components/CycleTimer.tsx +2 -0
- package/src/components/DataGrid.tsx +2 -0
- package/src/components/LoadingCover.tsx +2 -0
- package/src/components/LogPanel.tsx +2 -0
- package/src/components/LogStore.ts +2 -0
- package/src/components/LogViewer.tsx +2 -0
- package/src/components/ProgramControl.tsx +2 -0
- package/src/components/ProgramStateIndicator.tsx +2 -0
- package/src/components/RobotCard.tsx +2 -0
- package/src/components/RobotListItem.tsx +2 -0
- package/src/components/RobotSetupReadinessIndicator.tsx +2 -0
- package/src/components/SelectableFab.tsx +2 -0
- package/src/components/TabBar.tsx +2 -0
- package/src/components/ThemeSelect.tsx +2 -0
- package/src/components/Timer/Timer.ts +2 -0
- package/src/components/Timer/index.tsx +2 -0
- package/src/components/Timer.ts +4 -0
- package/src/components/TransparentOverlay.tsx +2 -0
- package/src/components/VelocitySlider.tsx +2 -0
- package/src/components/jogging/JoggingCartesianAxisControl.tsx +2 -0
- package/src/components/jogging/JoggingJointValueControl.tsx +2 -0
- package/src/components/jogging/JoggingPanel.tsx +2 -0
- package/src/components/jogging/JoggingStore.ts +2 -0
- package/src/components/jogging/PoseCartesianValues.tsx +2 -0
- package/src/components/jogging/PoseJointValues.tsx +2 -0
- package/src/components/modal/NoMotionGroupModal.tsx +2 -0
- package/src/components/robots/DHLinearAxis.tsx +2 -0
- package/src/components/robots/DHRobot.tsx +2 -0
- package/src/components/robots/GenericRobot.tsx +2 -0
- package/src/components/robots/LinearAxis.tsx +2 -0
- package/src/components/robots/MotionGroupVisualizer.tsx +2 -0
- package/src/components/robots/Robot.tsx +2 -0
- package/src/components/robots/SupportedLinearAxis.tsx +2 -0
- package/src/components/robots/SupportedRobot.tsx +2 -0
- package/src/components/safetyBar/ControllerTypeIndicator.tsx +2 -0
- package/src/components/safetyBar/IndicatorWithExplanation.tsx +2 -0
- package/src/components/safetyBar/OperationModeIndicator.tsx +2 -0
- package/src/components/safetyBar/SafetyBar.tsx +2 -0
- package/src/components/safetyBar/SafetyStateIndicator.tsx +2 -0
- package/src/lib/ConnectedMotionGroup.ts +2 -0
- package/src/lib/JoggerConnection.ts +2 -0
- package/src/lib/MotionStreamConnection.ts +2 -0
- package/src/test/consumer.test.ts +230 -0
- package/dist/3d.cjs.js +0 -2
- package/dist/3d.cjs.js.map +0 -1
- package/dist/3d.es.js +0 -19
- package/dist/3d.es.js.map +0 -1
- package/dist/MotionGroupVisualizer-B-e22qXF.cjs +0 -2
- package/dist/MotionGroupVisualizer-B-e22qXF.cjs.map +0 -1
- package/dist/MotionGroupVisualizer-CIASsBC6.js +0 -1433
- package/dist/MotionGroupVisualizer-CIASsBC6.js.map +0 -1
- package/dist/auth0-spa-js.production.esm-CVEdrQ4-.cjs +0 -5
- package/dist/auth0-spa-js.production.esm-CVEdrQ4-.cjs.map +0 -1
- package/dist/auth0-spa-js.production.esm-Cr9w0sUa.js +0 -4217
- package/dist/auth0-spa-js.production.esm-Cr9w0sUa.js.map +0 -1
- package/dist/core.cjs.js +0 -2
- package/dist/core.cjs.js.map +0 -1
- package/dist/core.es.js +0 -52
- package/dist/core.es.js.map +0 -1
- package/dist/index.cjs.js +0 -2
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.es.js +0 -92
- package/dist/index.es.js.map +0 -1
- package/dist/interpolation-BIB6FC35.cjs +0 -198
- package/dist/interpolation-BIB6FC35.cjs.map +0 -1
- package/dist/interpolation-lSTX6ZXZ.js +0 -14559
- package/dist/interpolation-lSTX6ZXZ.js.map +0 -1
- package/dist/safety-state-stop-ClWLVLMl.cjs +0 -2
- package/dist/safety-state-stop-ClWLVLMl.cjs.map +0 -1
- package/dist/safety-state-stop-DuMBCxN5.js +0 -91
- package/dist/safety-state-stop-DuMBCxN5.js.map +0 -1
- package/dist/theming-D_pShDEg.js +0 -32236
- package/dist/theming-D_pShDEg.js.map +0 -1
- package/dist/theming-L5E8VSae.cjs +0 -84
- package/dist/theming-L5E8VSae.cjs.map +0 -1
- package/dist/wb-icons.cjs.js +0 -2
- package/dist/wb-icons.cjs.js.map +0 -1
- package/dist/wb-icons.es.js +0 -27
- package/dist/wb-icons.es.js.map +0 -1
- package/dist/wbLogo-CObCmqTw.js +0 -31
- package/dist/wbLogo-CObCmqTw.js.map +0 -1
- package/dist/wbLogo-G_IfZ03l.cjs +0 -2
- package/dist/wbLogo-G_IfZ03l.cjs.map +0 -1
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { jsxs as a, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import E from "@mui/icons-material/ContentCopy";
|
|
3
|
+
import L from "@mui/icons-material/DescriptionOutlined";
|
|
4
|
+
import W from "@mui/icons-material/ExpandLess";
|
|
5
|
+
import D from "@mui/icons-material/ExpandMore";
|
|
6
|
+
import { useTheme as H } from "@mui/material/styles";
|
|
7
|
+
import l from "@mui/material/Box";
|
|
8
|
+
import $ from "@mui/material/Button";
|
|
9
|
+
import b from "@mui/material/IconButton";
|
|
10
|
+
import B from "@mui/material/Paper";
|
|
11
|
+
import s from "@mui/material/Typography";
|
|
12
|
+
import { observer as R } from "mobx-react-lite";
|
|
13
|
+
import { useRef as j, useEffect as F, useState as d } from "react";
|
|
14
|
+
import { externalizeComponent as P } from "../externalizeComponent.js";
|
|
15
|
+
const p = (n, o, c) => ({
|
|
16
|
+
id: c || `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`,
|
|
17
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
18
|
+
message: n,
|
|
19
|
+
level: o
|
|
20
|
+
}), ee = (n, o) => p(n, "debug", o), te = (n, o) => p(n, "info", o), oe = (n, o) => p(n, "warning", o), re = (n, o) => p(n, "error", o), ne = P(
|
|
21
|
+
R((n) => {
|
|
22
|
+
var g;
|
|
23
|
+
const { messages: o = [], onClear: c, height: y = 400, sx: v } = n, e = H(), x = j(null);
|
|
24
|
+
F(() => {
|
|
25
|
+
if (o.length === 0) return;
|
|
26
|
+
const t = x.current;
|
|
27
|
+
if (!t) return;
|
|
28
|
+
const i = setTimeout(() => {
|
|
29
|
+
t.scrollTop = t.scrollHeight;
|
|
30
|
+
}, 10);
|
|
31
|
+
return () => clearTimeout(i);
|
|
32
|
+
}, [o.length]);
|
|
33
|
+
const C = (t) => t.toLocaleTimeString("en-US", {
|
|
34
|
+
hour12: !1,
|
|
35
|
+
hour: "2-digit",
|
|
36
|
+
minute: "2-digit",
|
|
37
|
+
second: "2-digit"
|
|
38
|
+
}), w = (t) => {
|
|
39
|
+
switch (t) {
|
|
40
|
+
case "error":
|
|
41
|
+
return e.palette.error.main;
|
|
42
|
+
case "warning":
|
|
43
|
+
return e.palette.warning.main;
|
|
44
|
+
case "info":
|
|
45
|
+
return e.palette.info.main;
|
|
46
|
+
case "debug":
|
|
47
|
+
return e.palette.text.disabled;
|
|
48
|
+
default:
|
|
49
|
+
return e.palette.text.secondary;
|
|
50
|
+
}
|
|
51
|
+
}, S = ({ message: t }) => {
|
|
52
|
+
const [i, k] = d(!1), [M, m] = d(!1), [f, h] = d(!1), u = t.message.length > 150, T = async () => {
|
|
53
|
+
try {
|
|
54
|
+
await navigator.clipboard.writeText(t.message), m(!0), setTimeout(() => m(!1), 2e3);
|
|
55
|
+
} catch (I) {
|
|
56
|
+
console.error("Failed to copy message:", I);
|
|
57
|
+
}
|
|
58
|
+
}, z = u && !i ? `${t.message.substring(0, 150)}...` : t.message;
|
|
59
|
+
return /* @__PURE__ */ r(
|
|
60
|
+
l,
|
|
61
|
+
{
|
|
62
|
+
onMouseEnter: () => h(!0),
|
|
63
|
+
onMouseLeave: () => h(!1),
|
|
64
|
+
sx: {
|
|
65
|
+
display: "flex",
|
|
66
|
+
gap: 1,
|
|
67
|
+
fontFamily: "monospace",
|
|
68
|
+
flexDirection: "column",
|
|
69
|
+
"&:hover": {
|
|
70
|
+
backgroundColor: e.palette.action.hover
|
|
71
|
+
},
|
|
72
|
+
borderRadius: "4px",
|
|
73
|
+
padding: "2px 4px",
|
|
74
|
+
margin: "-2px -4px"
|
|
75
|
+
},
|
|
76
|
+
children: /* @__PURE__ */ a(l, { sx: { display: "flex", gap: 1 }, children: [
|
|
77
|
+
/* @__PURE__ */ a(
|
|
78
|
+
s,
|
|
79
|
+
{
|
|
80
|
+
component: "span",
|
|
81
|
+
sx: {
|
|
82
|
+
fontWeight: 400,
|
|
83
|
+
fontSize: "12px",
|
|
84
|
+
lineHeight: "18px",
|
|
85
|
+
letterSpacing: "0.4px",
|
|
86
|
+
color: e.palette.text.disabled,
|
|
87
|
+
whiteSpace: "nowrap",
|
|
88
|
+
flexShrink: 0
|
|
89
|
+
},
|
|
90
|
+
children: [
|
|
91
|
+
"[",
|
|
92
|
+
C(t.timestamp),
|
|
93
|
+
"]"
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
),
|
|
97
|
+
/* @__PURE__ */ r(
|
|
98
|
+
s,
|
|
99
|
+
{
|
|
100
|
+
component: "span",
|
|
101
|
+
sx: {
|
|
102
|
+
fontWeight: 400,
|
|
103
|
+
fontSize: "12px",
|
|
104
|
+
lineHeight: "18px",
|
|
105
|
+
letterSpacing: "0.4px",
|
|
106
|
+
color: w(t.level),
|
|
107
|
+
wordBreak: "break-word",
|
|
108
|
+
overflowWrap: "anywhere",
|
|
109
|
+
hyphens: "auto",
|
|
110
|
+
flex: 1,
|
|
111
|
+
whiteSpace: "pre-wrap"
|
|
112
|
+
},
|
|
113
|
+
children: z
|
|
114
|
+
}
|
|
115
|
+
),
|
|
116
|
+
/* @__PURE__ */ a(
|
|
117
|
+
l,
|
|
118
|
+
{
|
|
119
|
+
sx: {
|
|
120
|
+
display: "flex",
|
|
121
|
+
alignItems: "flex-start",
|
|
122
|
+
gap: 0.5,
|
|
123
|
+
opacity: f ? 1 : 0,
|
|
124
|
+
transition: "opacity 0.2s ease-in-out",
|
|
125
|
+
visibility: f ? "visible" : "hidden"
|
|
126
|
+
},
|
|
127
|
+
children: [
|
|
128
|
+
/* @__PURE__ */ r(
|
|
129
|
+
b,
|
|
130
|
+
{
|
|
131
|
+
size: "small",
|
|
132
|
+
onClick: T,
|
|
133
|
+
sx: {
|
|
134
|
+
padding: "2px",
|
|
135
|
+
color: e.palette.text.secondary,
|
|
136
|
+
"&:hover": {
|
|
137
|
+
backgroundColor: e.palette.action.hover
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
title: M ? "Copied!" : "Copy message",
|
|
141
|
+
children: /* @__PURE__ */ r(E, { sx: { fontSize: 12 } })
|
|
142
|
+
}
|
|
143
|
+
),
|
|
144
|
+
u && /* @__PURE__ */ r(
|
|
145
|
+
b,
|
|
146
|
+
{
|
|
147
|
+
size: "small",
|
|
148
|
+
onClick: () => k(!i),
|
|
149
|
+
sx: {
|
|
150
|
+
padding: "2px",
|
|
151
|
+
color: e.palette.text.secondary,
|
|
152
|
+
"&:hover": {
|
|
153
|
+
backgroundColor: e.palette.action.hover
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
title: i ? "Collapse" : "Expand",
|
|
157
|
+
children: i ? /* @__PURE__ */ r(W, { sx: { fontSize: 12 } }) : /* @__PURE__ */ r(D, { sx: { fontSize: 12 } })
|
|
158
|
+
}
|
|
159
|
+
)
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
)
|
|
163
|
+
] })
|
|
164
|
+
},
|
|
165
|
+
t.id
|
|
166
|
+
);
|
|
167
|
+
};
|
|
168
|
+
return /* @__PURE__ */ a(
|
|
169
|
+
B,
|
|
170
|
+
{
|
|
171
|
+
sx: {
|
|
172
|
+
backgroundColor: ((g = e.palette.backgroundPaperElevation) == null ? void 0 : g[2]) || "#171927",
|
|
173
|
+
backgroundImage: "none",
|
|
174
|
+
// Override any gradient from elevation
|
|
175
|
+
height: y,
|
|
176
|
+
display: "flex",
|
|
177
|
+
flexDirection: "column",
|
|
178
|
+
overflow: "hidden",
|
|
179
|
+
...v
|
|
180
|
+
},
|
|
181
|
+
children: [
|
|
182
|
+
/* @__PURE__ */ a(
|
|
183
|
+
l,
|
|
184
|
+
{
|
|
185
|
+
sx: {
|
|
186
|
+
display: "flex",
|
|
187
|
+
alignItems: "center",
|
|
188
|
+
justifyContent: "space-between",
|
|
189
|
+
padding: "12px 16px"
|
|
190
|
+
},
|
|
191
|
+
children: [
|
|
192
|
+
/* @__PURE__ */ a(l, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
193
|
+
/* @__PURE__ */ r(
|
|
194
|
+
L,
|
|
195
|
+
{
|
|
196
|
+
sx: {
|
|
197
|
+
fontSize: 16,
|
|
198
|
+
color: e.palette.action.active,
|
|
199
|
+
opacity: 0.56
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
),
|
|
203
|
+
/* @__PURE__ */ r(
|
|
204
|
+
s,
|
|
205
|
+
{
|
|
206
|
+
sx: {
|
|
207
|
+
fontWeight: 500,
|
|
208
|
+
fontSize: "14px",
|
|
209
|
+
lineHeight: "143%",
|
|
210
|
+
letterSpacing: "0.17px",
|
|
211
|
+
color: e.palette.text.primary
|
|
212
|
+
},
|
|
213
|
+
children: "Log"
|
|
214
|
+
}
|
|
215
|
+
)
|
|
216
|
+
] }),
|
|
217
|
+
/* @__PURE__ */ r(
|
|
218
|
+
$,
|
|
219
|
+
{
|
|
220
|
+
onClick: c,
|
|
221
|
+
variant: "text",
|
|
222
|
+
sx: {
|
|
223
|
+
fontWeight: 500,
|
|
224
|
+
fontSize: "13px",
|
|
225
|
+
lineHeight: "22px",
|
|
226
|
+
letterSpacing: "0.46px",
|
|
227
|
+
color: e.palette.primary.main,
|
|
228
|
+
textTransform: "none",
|
|
229
|
+
minWidth: "auto",
|
|
230
|
+
padding: "4px 8px",
|
|
231
|
+
"&:hover": {
|
|
232
|
+
backgroundColor: `${e.palette.primary.main}14`
|
|
233
|
+
// 8% opacity
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
children: "Clear"
|
|
237
|
+
}
|
|
238
|
+
)
|
|
239
|
+
]
|
|
240
|
+
}
|
|
241
|
+
),
|
|
242
|
+
/* @__PURE__ */ r(
|
|
243
|
+
l,
|
|
244
|
+
{
|
|
245
|
+
ref: x,
|
|
246
|
+
sx: {
|
|
247
|
+
flex: 1,
|
|
248
|
+
overflow: "auto",
|
|
249
|
+
padding: "8px 16px",
|
|
250
|
+
display: "flex",
|
|
251
|
+
flexDirection: "column",
|
|
252
|
+
gap: "2px",
|
|
253
|
+
// Custom scrollbar styling to keep it consistently dark
|
|
254
|
+
scrollbarWidth: "thin",
|
|
255
|
+
scrollbarColor: `${e.palette.divider} transparent`,
|
|
256
|
+
"&::-webkit-scrollbar": {
|
|
257
|
+
width: "6px"
|
|
258
|
+
},
|
|
259
|
+
"&::-webkit-scrollbar-track": {
|
|
260
|
+
background: "transparent"
|
|
261
|
+
},
|
|
262
|
+
"&::-webkit-scrollbar-thumb": {
|
|
263
|
+
backgroundColor: e.palette.divider,
|
|
264
|
+
borderRadius: "3px",
|
|
265
|
+
"&:hover": {
|
|
266
|
+
backgroundColor: e.palette.divider
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
children: o.length === 0 ? /* @__PURE__ */ r(
|
|
271
|
+
s,
|
|
272
|
+
{
|
|
273
|
+
sx: {
|
|
274
|
+
color: e.palette.text.disabled,
|
|
275
|
+
fontSize: "12px",
|
|
276
|
+
fontStyle: "italic",
|
|
277
|
+
textAlign: "center",
|
|
278
|
+
marginTop: 2
|
|
279
|
+
},
|
|
280
|
+
children: "No log messages"
|
|
281
|
+
}
|
|
282
|
+
) : o.map((t) => /* @__PURE__ */ r(S, { message: t }, t.id))
|
|
283
|
+
}
|
|
284
|
+
)
|
|
285
|
+
]
|
|
286
|
+
}
|
|
287
|
+
);
|
|
288
|
+
})
|
|
289
|
+
);
|
|
290
|
+
export {
|
|
291
|
+
ne as LogViewer,
|
|
292
|
+
ee as createDebugMessage,
|
|
293
|
+
re as createErrorMessage,
|
|
294
|
+
te as createInfoMessage,
|
|
295
|
+
p as createLogMessage,
|
|
296
|
+
oe as createWarningMessage,
|
|
297
|
+
ne as default
|
|
298
|
+
};
|
|
299
|
+
//# sourceMappingURL=LogViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogViewer.js","sources":["../../src/components/LogViewer.tsx"],"sourcesContent":["import ContentCopy from \"@mui/icons-material/ContentCopy\"\nimport DocumentIcon from \"@mui/icons-material/DescriptionOutlined\"\nimport ExpandLess from \"@mui/icons-material/ExpandLess\"\nimport ExpandMore from \"@mui/icons-material/ExpandMore\"\nimport type { SxProps } from \"@mui/material/styles\"\nimport { useTheme } from \"@mui/material/styles\"\nimport Box from \"@mui/material/Box\"\nimport Button from \"@mui/material/Button\"\nimport IconButton from \"@mui/material/IconButton\"\nimport Paper from \"@mui/material/Paper\"\nimport Typography from \"@mui/material/Typography\"\nimport { observer } from \"mobx-react-lite\"\nimport { useEffect, useRef, useState } from \"react\"\nimport { externalizeComponent } from \"../externalizeComponent\"\n\nexport type LogLevel = \"info\" | \"error\" | \"warning\" | \"debug\"\n\nexport type LogMessage = {\n id: string\n timestamp: Date\n message: string\n level: LogLevel\n}\n\nexport type LogViewerProps = {\n /** Log messages to display */\n messages: LogMessage[]\n /** Callback when clear button is clicked */\n onClear?: () => void\n /** Height of the component */\n height?: string | number\n /** Additional styles */\n sx?: SxProps\n}\n\n/**\n * Utility function to create a log message\n */\nexport const createLogMessage = (\n message: string,\n level: LogLevel,\n id?: string,\n): LogMessage => ({\n id: id || `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`,\n timestamp: new Date(),\n message,\n level,\n})\n\n/**\n * Utility function to create a debug log message\n */\nexport const createDebugMessage = (message: string, id?: string): LogMessage =>\n createLogMessage(message, \"debug\", id)\n\n/**\n * Utility function to create an info log message\n */\nexport const createInfoMessage = (message: string, id?: string): LogMessage =>\n createLogMessage(message, \"info\", id)\n\n/**\n * Utility function to create a warning log message\n */\nexport const createWarningMessage = (\n message: string,\n id?: string,\n): LogMessage => createLogMessage(message, \"warning\", id)\n\n/**\n * Utility function to create an error log message\n */\nexport const createErrorMessage = (message: string, id?: string): LogMessage =>\n createLogMessage(message, \"error\", id)\n\n/**\n * A log viewer component that displays timestamped log messages with different levels.\n * Features a header with document icon and clear button, and scrollable message area.\n */\nexport const LogViewer = externalizeComponent(\n observer((props: LogViewerProps) => {\n const { messages = [], onClear, height = 400, sx } = props\n const theme = useTheme()\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n\n // Auto-scroll to bottom when new messages are added\n useEffect(() => {\n if (messages.length === 0) return\n\n const scrollContainer = scrollContainerRef.current\n if (!scrollContainer) return\n\n // Use a timeout to scroll after the DOM updates\n const timeoutId = setTimeout(() => {\n // Scroll the container to the bottom, not the entire browser\n scrollContainer.scrollTop = scrollContainer.scrollHeight\n }, 10)\n\n return () => clearTimeout(timeoutId)\n }, [messages.length])\n\n const formatTimestamp = (timestamp: Date) => {\n return timestamp.toLocaleTimeString(\"en-US\", {\n hour12: false,\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n })\n }\n\n const getMessageColor = (level: LogLevel) => {\n switch (level) {\n case \"error\":\n return theme.palette.error.main\n case \"warning\":\n return theme.palette.warning.main\n case \"info\":\n return theme.palette.info.main\n case \"debug\":\n return theme.palette.text.disabled\n default:\n return theme.palette.text.secondary\n }\n }\n\n // Component for individual log messages with expand/copy functionality\n const LogMessage = ({ message }: { message: LogMessage }) => {\n const [isExpanded, setIsExpanded] = useState(false)\n const [copyTooltip, setCopyTooltip] = useState(false)\n const [isHovered, setIsHovered] = useState(false)\n const isLongMessage = message.message.length > 150\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(message.message)\n setCopyTooltip(true)\n setTimeout(() => setCopyTooltip(false), 2000)\n } catch (err) {\n console.error(\"Failed to copy message:\", err)\n }\n }\n\n const displayMessage =\n isLongMessage && !isExpanded\n ? `${message.message.substring(0, 150)}...`\n : message.message\n\n return (\n <Box\n key={message.id}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n sx={{\n display: \"flex\",\n gap: 1,\n fontFamily: \"monospace\",\n flexDirection: \"column\",\n \"&:hover\": {\n backgroundColor: theme.palette.action.hover,\n },\n borderRadius: \"4px\",\n padding: \"2px 4px\",\n margin: \"-2px -4px\",\n }}\n >\n <Box sx={{ display: \"flex\", gap: 1 }}>\n {/* Timestamp */}\n <Typography\n component=\"span\"\n sx={{\n fontWeight: 400,\n fontSize: \"12px\",\n lineHeight: \"18px\",\n letterSpacing: \"0.4px\",\n color: theme.palette.text.disabled,\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n }}\n >\n [{formatTimestamp(message.timestamp)}]\n </Typography>\n\n {/* Message */}\n <Typography\n component=\"span\"\n sx={{\n fontWeight: 400,\n fontSize: \"12px\",\n lineHeight: \"18px\",\n letterSpacing: \"0.4px\",\n color: getMessageColor(message.level),\n wordBreak: \"break-word\",\n overflowWrap: \"anywhere\",\n hyphens: \"auto\",\n flex: 1,\n whiteSpace: \"pre-wrap\",\n }}\n >\n {displayMessage}\n </Typography>\n\n {/* Action buttons - only visible on hover */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"flex-start\",\n gap: 0.5,\n opacity: isHovered ? 1 : 0,\n transition: \"opacity 0.2s ease-in-out\",\n visibility: isHovered ? \"visible\" : \"hidden\",\n }}\n >\n <IconButton\n size=\"small\"\n onClick={handleCopy}\n sx={{\n padding: \"2px\",\n color: theme.palette.text.secondary,\n \"&:hover\": {\n backgroundColor: theme.palette.action.hover,\n },\n }}\n title={copyTooltip ? \"Copied!\" : \"Copy message\"}\n >\n <ContentCopy sx={{ fontSize: 12 }} />\n </IconButton>\n\n {isLongMessage && (\n <IconButton\n size=\"small\"\n onClick={() => setIsExpanded(!isExpanded)}\n sx={{\n padding: \"2px\",\n color: theme.palette.text.secondary,\n \"&:hover\": {\n backgroundColor: theme.palette.action.hover,\n },\n }}\n title={isExpanded ? \"Collapse\" : \"Expand\"}\n >\n {isExpanded ? (\n <ExpandLess sx={{ fontSize: 12 }} />\n ) : (\n <ExpandMore sx={{ fontSize: 12 }} />\n )}\n </IconButton>\n )}\n </Box>\n </Box>\n </Box>\n )\n }\n\n return (\n <Paper\n sx={{\n backgroundColor:\n theme.palette.backgroundPaperElevation?.[2] || \"#171927\",\n backgroundImage: \"none\", // Override any gradient from elevation\n height,\n display: \"flex\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n ...sx,\n }}\n >\n {/* Header */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"12px 16px\",\n }}\n >\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\n <DocumentIcon\n sx={{\n fontSize: 16,\n color: theme.palette.action.active,\n opacity: 0.56,\n }}\n />\n <Typography\n sx={{\n fontWeight: 500,\n fontSize: \"14px\",\n lineHeight: \"143%\",\n letterSpacing: \"0.17px\",\n color: theme.palette.text.primary,\n }}\n >\n Log\n </Typography>\n </Box>\n <Button\n onClick={onClear}\n variant=\"text\"\n sx={{\n fontWeight: 500,\n fontSize: \"13px\",\n lineHeight: \"22px\",\n letterSpacing: \"0.46px\",\n color: theme.palette.primary.main,\n textTransform: \"none\",\n minWidth: \"auto\",\n padding: \"4px 8px\",\n \"&:hover\": {\n backgroundColor: `${theme.palette.primary.main}14`, // 8% opacity\n },\n }}\n >\n Clear\n </Button>\n </Box>\n\n {/* Messages Container */}\n <Box\n ref={scrollContainerRef}\n sx={{\n flex: 1,\n overflow: \"auto\",\n padding: \"8px 16px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"2px\",\n // Custom scrollbar styling to keep it consistently dark\n scrollbarWidth: \"thin\",\n scrollbarColor: `${theme.palette.divider} transparent`,\n \"&::-webkit-scrollbar\": {\n width: \"6px\",\n },\n \"&::-webkit-scrollbar-track\": {\n background: \"transparent\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: theme.palette.divider,\n borderRadius: \"3px\",\n \"&:hover\": {\n backgroundColor: theme.palette.divider,\n },\n },\n }}\n >\n {messages.length === 0 ? (\n <Typography\n sx={{\n color: theme.palette.text.disabled,\n fontSize: \"12px\",\n fontStyle: \"italic\",\n textAlign: \"center\",\n marginTop: 2,\n }}\n >\n No log messages\n </Typography>\n ) : (\n messages.map((message) => (\n <LogMessage key={message.id} message={message} />\n ))\n )}\n </Box>\n </Paper>\n )\n }),\n)\n\nexport default LogViewer\n"],"names":["createLogMessage","message","level","id","createDebugMessage","createInfoMessage","createWarningMessage","createErrorMessage","LogViewer","externalizeComponent","observer","props","messages","onClear","height","sx","theme","useTheme","scrollContainerRef","useRef","useEffect","scrollContainer","timeoutId","formatTimestamp","timestamp","getMessageColor","LogMessage","isExpanded","setIsExpanded","useState","copyTooltip","setCopyTooltip","isHovered","setIsHovered","isLongMessage","handleCopy","err","displayMessage","jsx","Box","jsxs","Typography","IconButton","ContentCopy","ExpandLess","ExpandMore","Paper","_a","DocumentIcon","Button"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),j=require("@mui/icons-material/Pause"),c=require("@mui/icons-material/PlayArrow"),t=require("@mui/icons-material/Stop"),I=require("@mui/material/styles"),s=require("@mui/material/Box"),P=require("@mui/material/Button"),f=require("@mui/material/Typography"),k=require("mobx-react-lite"),R=require("react-i18next"),T=require("../externalizeComponent.cjs");var d=(n=>(n.IDLE="idle",n.PREPARING="preparing",n.STARTING="starting",n.RUNNING="running",n.PAUSING="pausing",n.PAUSED="paused",n.STOPPING="stopping",n.COMPLETED="completed",n.FAILED="failed",n.STOPPED="stopped",n.ERROR="error",n))(d||{});const a=T.externalizeComponent(k.observer(({state:n,onRun:g,onPause:x,onStop:b,onReset:E,requiresManualReset:i=!1,variant:u="with_pause",className:C})=>{const p=I.useTheme(),{t:l}=R.useTranslation(),h=()=>{const r={run:{enabled:n==="idle"||n==="stopped"||n==="paused"||n==="completed"||n==="failed"||n==="error",label:l(n==="paused"?"ProgramControl.Resume.bt":n==="error"||n==="failed"?"ProgramControl.Retry.bt":"ProgramControl.Start.bt"),color:p.palette.success.main,onClick:g},pause:{enabled:n==="running",label:l("ProgramControl.Pause.bt"),color:"#FFFFFF33",onClick:x||(()=>{})},stop:{enabled:n==="preparing"||n==="starting"||n==="running"||n==="pausing"||n==="paused",label:l("ProgramControl.Stop.bt"),color:p.palette.error.main,onClick:b}};return u==="without_pause"?[r.run,r.stop]:[r.run,r.pause,r.stop]},m=r=>{const o={sx:{fontSize:"55px"}};if(u==="without_pause")return r===0?e.jsx(c,{...o}):e.jsx(t,{...o});switch(r){case 0:return e.jsx(c,{...o});case 1:return e.jsx(j,{...o});case 2:return e.jsx(t,{...o});default:return null}},y=h();return e.jsx(s,{className:C,sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:e.jsx(s,{sx:{display:"flex",gap:"40px",flexWrap:"wrap",justifyContent:"center",alignItems:"center"},children:y.map((r,o)=>e.jsxs(s,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:1},children:[e.jsx(P,{variant:"contained",disabled:!r.enabled||n==="preparing"||n==="starting"||n==="pausing"||n==="stopping"&&!i,onClick:r.onClick,sx:{width:"88px",height:"88px",borderRadius:"88px",backgroundColor:r.color,opacity:r.enabled&&n!=="preparing"&&n!=="starting"&&n!=="pausing"&&!(n==="stopping"&&!i)?1:.3,"&:hover":{backgroundColor:r.color,opacity:r.enabled&&n!=="preparing"&&n!=="starting"&&n!=="pausing"&&!(n==="stopping"&&!i)?.8:.3},"&:disabled":{backgroundColor:r.color,opacity:.3},minWidth:"88px",flexShrink:0},children:m(o)}),e.jsx(f,{variant:"body1",sx:{color:r.enabled&&n!=="preparing"&&n!=="starting"&&n!=="pausing"&&!(n==="stopping"&&!i)?r.color:p.palette.text.disabled,textAlign:"center",opacity:r.enabled&&n!=="preparing"&&n!=="starting"&&n!=="pausing"&&!(n==="stopping"&&!i)?1:.3},children:r.label})]},r.label))})})}));exports.ProgramControl=a;exports.ProgramState=d;exports.default=a;
|
|
2
|
+
//# sourceMappingURL=ProgramControl.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgramControl.cjs","sources":["../../src/components/ProgramControl.tsx"],"sourcesContent":["import Pause from \"@mui/icons-material/Pause\"\nimport PlayArrow from \"@mui/icons-material/PlayArrow\"\nimport Stop from \"@mui/icons-material/Stop\"\nimport { useTheme } from \"@mui/material/styles\"\nimport Box from \"@mui/material/Box\"\nimport Button from \"@mui/material/Button\"\nimport Typography from \"@mui/material/Typography\"\nimport { observer } from \"mobx-react-lite\"\nimport { useTranslation } from \"react-i18next\"\nimport { externalizeComponent } from \"../externalizeComponent\"\n\nexport enum ProgramState {\n IDLE = \"idle\",\n PREPARING = \"preparing\",\n STARTING = \"starting\",\n RUNNING = \"running\",\n PAUSING = \"pausing\",\n PAUSED = \"paused\",\n STOPPING = \"stopping\",\n COMPLETED = \"completed\",\n FAILED = \"failed\",\n STOPPED = \"stopped\",\n ERROR = \"error\",\n}\n\nexport interface ProgramControlProps {\n /** The current state of the program control */\n state: ProgramState\n /** Callback fired when the run/resume button is clicked */\n onRun: () => void\n /** Callback fired when the pause button is clicked (only available in 'with_pause' variant) */\n onPause?: () => void\n /** Callback fired when the stop button is clicked */\n onStop: () => void\n /**\n * Function to reset the component from 'stopping' state back to 'idle'.\n * This must be called manually by the user when requiresManualReset is true.\n */\n onReset?: () => void\n /**\n * When true, the component will stay in 'stopping' state until onReset is called manually.\n * When false (default), auto-resets to 'idle' after 2 seconds.\n */\n requiresManualReset?: boolean\n /**\n * Variant of the component:\n * - 'with_pause': Shows run/pause/stop buttons (default)\n * - 'without_pause': Shows only run/stop buttons\n */\n variant?: \"with_pause\" | \"without_pause\"\n /** Additional CSS class name */\n className?: string\n}\n\ninterface ButtonConfig {\n enabled: boolean\n label: string\n color: string\n onClick: () => void\n}\n\n/**\n * A control component for program execution with run, pause, and stop functionality.\n *\n * Features:\n * - State machine with idle, preparing, starting, running, pausing, paused, stopping, completed, failed, stopped, and error states\n * - Two variants: with_pause (3 buttons) and without_pause (2 buttons)\n * - Optional manual reset functionality\n * - Responsive design with 110px circular buttons\n * - Material-UI theming integration\n */\nexport const ProgramControl = externalizeComponent(\n observer(\n ({\n state,\n onRun,\n onPause,\n onStop,\n onReset,\n requiresManualReset = false,\n variant = \"with_pause\",\n className,\n }: ProgramControlProps) => {\n const theme = useTheme()\n const { t } = useTranslation()\n\n const getButtonConfigs = (): ButtonConfig[] => {\n const baseConfigs: Record<string, ButtonConfig> = {\n run: {\n enabled:\n state === ProgramState.IDLE ||\n state === ProgramState.STOPPED ||\n state === ProgramState.PAUSED ||\n state === ProgramState.COMPLETED ||\n state === ProgramState.FAILED ||\n state === ProgramState.ERROR,\n label:\n state === ProgramState.PAUSED\n ? t(\"ProgramControl.Resume.bt\")\n : state === ProgramState.ERROR || state === ProgramState.FAILED\n ? t(\"ProgramControl.Retry.bt\")\n : t(\"ProgramControl.Start.bt\"),\n color: theme.palette.success.main,\n onClick: onRun,\n },\n pause: {\n enabled: state === ProgramState.RUNNING,\n label: t(\"ProgramControl.Pause.bt\"),\n color: \"#FFFFFF33\",\n onClick: onPause || (() => {}),\n },\n stop: {\n enabled:\n state === ProgramState.PREPARING ||\n state === ProgramState.STARTING ||\n state === ProgramState.RUNNING ||\n state === ProgramState.PAUSING ||\n state === ProgramState.PAUSED,\n label: t(\"ProgramControl.Stop.bt\"),\n color: theme.palette.error.main,\n onClick: onStop,\n },\n }\n\n if (variant === \"without_pause\") {\n return [baseConfigs.run, baseConfigs.stop]\n }\n\n return [baseConfigs.run, baseConfigs.pause, baseConfigs.stop]\n }\n\n const getButtonIcon = (index: number) => {\n const iconProps = { sx: { fontSize: \"55px\" } }\n\n if (variant === \"without_pause\") {\n return index === 0 ? (\n <PlayArrow {...iconProps} />\n ) : (\n <Stop {...iconProps} />\n )\n }\n\n switch (index) {\n case 0:\n return <PlayArrow {...iconProps} />\n case 1:\n return <Pause {...iconProps} />\n case 2:\n return <Stop {...iconProps} />\n default:\n return null\n }\n }\n\n const buttonConfigs = getButtonConfigs()\n\n return (\n <Box\n className={className}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: 2,\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n gap: \"40px\",\n flexWrap: \"wrap\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n {buttonConfigs.map((config, index) => (\n <Box\n key={config.label}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: 1,\n }}\n >\n <Button\n variant=\"contained\"\n disabled={\n !config.enabled ||\n state === ProgramState.PREPARING ||\n state === ProgramState.STARTING ||\n state === ProgramState.PAUSING ||\n (state === ProgramState.STOPPING && !requiresManualReset)\n }\n onClick={config.onClick}\n sx={{\n width: \"88px\",\n height: \"88px\",\n borderRadius: \"88px\",\n backgroundColor: config.color,\n opacity:\n config.enabled &&\n state !== ProgramState.PREPARING &&\n state !== ProgramState.STARTING &&\n state !== ProgramState.PAUSING &&\n !(state === ProgramState.STOPPING && !requiresManualReset)\n ? 1\n : 0.3,\n \"&:hover\": {\n backgroundColor: config.color,\n opacity:\n config.enabled &&\n state !== ProgramState.PREPARING &&\n state !== ProgramState.STARTING &&\n state !== ProgramState.PAUSING &&\n !(\n state === ProgramState.STOPPING &&\n !requiresManualReset\n )\n ? 0.8\n : 0.3,\n },\n \"&:disabled\": {\n backgroundColor: config.color,\n opacity: 0.3,\n },\n minWidth: \"88px\",\n flexShrink: 0,\n }}\n >\n {getButtonIcon(index)}\n </Button>\n\n <Typography\n variant=\"body1\"\n sx={{\n color:\n config.enabled &&\n state !== ProgramState.PREPARING &&\n state !== ProgramState.STARTING &&\n state !== ProgramState.PAUSING &&\n !(state === ProgramState.STOPPING && !requiresManualReset)\n ? config.color\n : theme.palette.text.disabled,\n textAlign: \"center\",\n opacity:\n config.enabled &&\n state !== ProgramState.PREPARING &&\n state !== ProgramState.STARTING &&\n state !== ProgramState.PAUSING &&\n !(state === ProgramState.STOPPING && !requiresManualReset)\n ? 1\n : 0.3,\n }}\n >\n {config.label}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>\n )\n },\n ),\n)\n\nexport default ProgramControl\n"],"names":["ProgramState","ProgramControl","externalizeComponent","observer","state","onRun","onPause","onStop","onReset","requiresManualReset","variant","className","theme","useTheme","t","useTranslation","getButtonConfigs","baseConfigs","getButtonIcon","index","iconProps","jsx","PlayArrow","Stop","Pause","buttonConfigs","Box","config","jsxs","Button","Typography"],"mappings":"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"}
|
|
@@ -52,4 +52,5 @@ export interface ProgramControlProps {
|
|
|
52
52
|
export declare const ProgramControl: (({ state, onRun, onPause, onStop, onReset, requiresManualReset, variant, className, }: ProgramControlProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
53
53
|
displayName: string;
|
|
54
54
|
};
|
|
55
|
+
export default ProgramControl;
|
|
55
56
|
//# sourceMappingURL=ProgramControl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgramControl.d.ts","sourceRoot":"","sources":["../../src/components/ProgramControl.tsx"],"names":[],"mappings":"AAWA,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,KAAK,EAAE,YAAY,CAAA;IACnB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,qDAAqD;IACrD,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,GAAG,eAAe,CAAA;IACxC,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AASD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,0FAWpB,mBAAmB;;CAsLzB,CAAA"}
|
|
1
|
+
{"version":3,"file":"ProgramControl.d.ts","sourceRoot":"","sources":["../../src/components/ProgramControl.tsx"],"names":[],"mappings":"AAWA,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,KAAK,EAAE,YAAY,CAAA;IACnB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,qDAAqD;IACrD,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,GAAG,eAAe,CAAA;IACxC,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AASD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,0FAWpB,mBAAmB;;CAsLzB,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { jsx as n, jsxs as C } from "react/jsx-runtime";
|
|
2
|
+
import h from "@mui/icons-material/Pause";
|
|
3
|
+
import c from "@mui/icons-material/PlayArrow";
|
|
4
|
+
import s from "@mui/icons-material/Stop";
|
|
5
|
+
import { useTheme as y } from "@mui/material/styles";
|
|
6
|
+
import d from "@mui/material/Box";
|
|
7
|
+
import I from "@mui/material/Button";
|
|
8
|
+
import k from "@mui/material/Typography";
|
|
9
|
+
import { observer as P } from "mobx-react-lite";
|
|
10
|
+
import { useTranslation as E } from "react-i18next";
|
|
11
|
+
import { externalizeComponent as T } from "../externalizeComponent.js";
|
|
12
|
+
var w = /* @__PURE__ */ ((r) => (r.IDLE = "idle", r.PREPARING = "preparing", r.STARTING = "starting", r.RUNNING = "running", r.PAUSING = "pausing", r.PAUSED = "paused", r.STOPPING = "stopping", r.COMPLETED = "completed", r.FAILED = "failed", r.STOPPED = "stopped", r.ERROR = "error", r))(w || {});
|
|
13
|
+
const _ = T(
|
|
14
|
+
P(
|
|
15
|
+
({
|
|
16
|
+
state: r,
|
|
17
|
+
onRun: a,
|
|
18
|
+
onPause: t,
|
|
19
|
+
onStop: m,
|
|
20
|
+
onReset: A,
|
|
21
|
+
requiresManualReset: i = !1,
|
|
22
|
+
variant: u = "with_pause",
|
|
23
|
+
className: g
|
|
24
|
+
}) => {
|
|
25
|
+
const e = y(), { t: l } = E(), b = () => {
|
|
26
|
+
const o = {
|
|
27
|
+
run: {
|
|
28
|
+
enabled: r === "idle" || r === "stopped" || r === "paused" || r === "completed" || r === "failed" || r === "error",
|
|
29
|
+
label: l(r === "paused" ? "ProgramControl.Resume.bt" : r === "error" || r === "failed" ? "ProgramControl.Retry.bt" : "ProgramControl.Start.bt"),
|
|
30
|
+
color: e.palette.success.main,
|
|
31
|
+
onClick: a
|
|
32
|
+
},
|
|
33
|
+
pause: {
|
|
34
|
+
enabled: r === "running",
|
|
35
|
+
label: l("ProgramControl.Pause.bt"),
|
|
36
|
+
color: "#FFFFFF33",
|
|
37
|
+
onClick: t || (() => {
|
|
38
|
+
})
|
|
39
|
+
},
|
|
40
|
+
stop: {
|
|
41
|
+
enabled: r === "preparing" || r === "starting" || r === "running" || r === "pausing" || r === "paused",
|
|
42
|
+
label: l("ProgramControl.Stop.bt"),
|
|
43
|
+
color: e.palette.error.main,
|
|
44
|
+
onClick: m
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
return u === "without_pause" ? [o.run, o.stop] : [o.run, o.pause, o.stop];
|
|
48
|
+
}, x = (o) => {
|
|
49
|
+
const p = { sx: { fontSize: "55px" } };
|
|
50
|
+
if (u === "without_pause")
|
|
51
|
+
return o === 0 ? /* @__PURE__ */ n(c, { ...p }) : /* @__PURE__ */ n(s, { ...p });
|
|
52
|
+
switch (o) {
|
|
53
|
+
case 0:
|
|
54
|
+
return /* @__PURE__ */ n(c, { ...p });
|
|
55
|
+
case 1:
|
|
56
|
+
return /* @__PURE__ */ n(h, { ...p });
|
|
57
|
+
case 2:
|
|
58
|
+
return /* @__PURE__ */ n(s, { ...p });
|
|
59
|
+
default:
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}, f = b();
|
|
63
|
+
return /* @__PURE__ */ n(
|
|
64
|
+
d,
|
|
65
|
+
{
|
|
66
|
+
className: g,
|
|
67
|
+
sx: {
|
|
68
|
+
display: "flex",
|
|
69
|
+
flexDirection: "column",
|
|
70
|
+
alignItems: "center",
|
|
71
|
+
gap: 2
|
|
72
|
+
},
|
|
73
|
+
children: /* @__PURE__ */ n(
|
|
74
|
+
d,
|
|
75
|
+
{
|
|
76
|
+
sx: {
|
|
77
|
+
display: "flex",
|
|
78
|
+
gap: "40px",
|
|
79
|
+
flexWrap: "wrap",
|
|
80
|
+
justifyContent: "center",
|
|
81
|
+
alignItems: "center"
|
|
82
|
+
},
|
|
83
|
+
children: f.map((o, p) => /* @__PURE__ */ C(
|
|
84
|
+
d,
|
|
85
|
+
{
|
|
86
|
+
sx: {
|
|
87
|
+
display: "flex",
|
|
88
|
+
flexDirection: "column",
|
|
89
|
+
alignItems: "center",
|
|
90
|
+
gap: 1
|
|
91
|
+
},
|
|
92
|
+
children: [
|
|
93
|
+
/* @__PURE__ */ n(
|
|
94
|
+
I,
|
|
95
|
+
{
|
|
96
|
+
variant: "contained",
|
|
97
|
+
disabled: !o.enabled || r === "preparing" || r === "starting" || r === "pausing" || r === "stopping" && !i,
|
|
98
|
+
onClick: o.onClick,
|
|
99
|
+
sx: {
|
|
100
|
+
width: "88px",
|
|
101
|
+
height: "88px",
|
|
102
|
+
borderRadius: "88px",
|
|
103
|
+
backgroundColor: o.color,
|
|
104
|
+
opacity: o.enabled && r !== "preparing" && r !== "starting" && r !== "pausing" && !(r === "stopping" && !i) ? 1 : 0.3,
|
|
105
|
+
"&:hover": {
|
|
106
|
+
backgroundColor: o.color,
|
|
107
|
+
opacity: o.enabled && r !== "preparing" && r !== "starting" && r !== "pausing" && !(r === "stopping" && !i) ? 0.8 : 0.3
|
|
108
|
+
},
|
|
109
|
+
"&:disabled": {
|
|
110
|
+
backgroundColor: o.color,
|
|
111
|
+
opacity: 0.3
|
|
112
|
+
},
|
|
113
|
+
minWidth: "88px",
|
|
114
|
+
flexShrink: 0
|
|
115
|
+
},
|
|
116
|
+
children: x(p)
|
|
117
|
+
}
|
|
118
|
+
),
|
|
119
|
+
/* @__PURE__ */ n(
|
|
120
|
+
k,
|
|
121
|
+
{
|
|
122
|
+
variant: "body1",
|
|
123
|
+
sx: {
|
|
124
|
+
color: o.enabled && r !== "preparing" && r !== "starting" && r !== "pausing" && !(r === "stopping" && !i) ? o.color : e.palette.text.disabled,
|
|
125
|
+
textAlign: "center",
|
|
126
|
+
opacity: o.enabled && r !== "preparing" && r !== "starting" && r !== "pausing" && !(r === "stopping" && !i) ? 1 : 0.3
|
|
127
|
+
},
|
|
128
|
+
children: o.label
|
|
129
|
+
}
|
|
130
|
+
)
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
o.label
|
|
134
|
+
))
|
|
135
|
+
}
|
|
136
|
+
)
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
)
|
|
141
|
+
);
|
|
142
|
+
export {
|
|
143
|
+
_ as ProgramControl,
|
|
144
|
+
w as ProgramState,
|
|
145
|
+
_ as default
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=ProgramControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgramControl.js","sources":["../../src/components/ProgramControl.tsx"],"sourcesContent":["import Pause from \"@mui/icons-material/Pause\"\nimport PlayArrow from \"@mui/icons-material/PlayArrow\"\nimport Stop from \"@mui/icons-material/Stop\"\nimport { useTheme } from \"@mui/material/styles\"\nimport Box from \"@mui/material/Box\"\nimport Button from \"@mui/material/Button\"\nimport Typography from \"@mui/material/Typography\"\nimport { observer } from \"mobx-react-lite\"\nimport { useTranslation } from \"react-i18next\"\nimport { externalizeComponent } from \"../externalizeComponent\"\n\nexport enum ProgramState {\n IDLE = \"idle\",\n PREPARING = \"preparing\",\n STARTING = \"starting\",\n RUNNING = \"running\",\n PAUSING = \"pausing\",\n PAUSED = \"paused\",\n STOPPING = \"stopping\",\n COMPLETED = \"completed\",\n FAILED = \"failed\",\n STOPPED = \"stopped\",\n ERROR = \"error\",\n}\n\nexport interface ProgramControlProps {\n /** The current state of the program control */\n state: ProgramState\n /** Callback fired when the run/resume button is clicked */\n onRun: () => void\n /** Callback fired when the pause button is clicked (only available in 'with_pause' variant) */\n onPause?: () => void\n /** Callback fired when the stop button is clicked */\n onStop: () => void\n /**\n * Function to reset the component from 'stopping' state back to 'idle'.\n * This must be called manually by the user when requiresManualReset is true.\n */\n onReset?: () => void\n /**\n * When true, the component will stay in 'stopping' state until onReset is called manually.\n * When false (default), auto-resets to 'idle' after 2 seconds.\n */\n requiresManualReset?: boolean\n /**\n * Variant of the component:\n * - 'with_pause': Shows run/pause/stop buttons (default)\n * - 'without_pause': Shows only run/stop buttons\n */\n variant?: \"with_pause\" | \"without_pause\"\n /** Additional CSS class name */\n className?: string\n}\n\ninterface ButtonConfig {\n enabled: boolean\n label: string\n color: string\n onClick: () => void\n}\n\n/**\n * A control component for program execution with run, pause, and stop functionality.\n *\n * Features:\n * - State machine with idle, preparing, starting, running, pausing, paused, stopping, completed, failed, stopped, and error states\n * - Two variants: with_pause (3 buttons) and without_pause (2 buttons)\n * - Optional manual reset functionality\n * - Responsive design with 110px circular buttons\n * - Material-UI theming integration\n */\nexport const ProgramControl = externalizeComponent(\n observer(\n ({\n state,\n onRun,\n onPause,\n onStop,\n onReset,\n requiresManualReset = false,\n variant = \"with_pause\",\n className,\n }: ProgramControlProps) => {\n const theme = useTheme()\n const { t } = useTranslation()\n\n const getButtonConfigs = (): ButtonConfig[] => {\n const baseConfigs: Record<string, ButtonConfig> = {\n run: {\n enabled:\n state === ProgramState.IDLE ||\n state === ProgramState.STOPPED ||\n state === ProgramState.PAUSED ||\n state === ProgramState.COMPLETED ||\n state === ProgramState.FAILED ||\n state === ProgramState.ERROR,\n label:\n state === ProgramState.PAUSED\n ? t(\"ProgramControl.Resume.bt\")\n : state === ProgramState.ERROR || state === ProgramState.FAILED\n ? t(\"ProgramControl.Retry.bt\")\n : t(\"ProgramControl.Start.bt\"),\n color: theme.palette.success.main,\n onClick: onRun,\n },\n pause: {\n enabled: state === ProgramState.RUNNING,\n label: t(\"ProgramControl.Pause.bt\"),\n color: \"#FFFFFF33\",\n onClick: onPause || (() => {}),\n },\n stop: {\n enabled:\n state === ProgramState.PREPARING ||\n state === ProgramState.STARTING ||\n state === ProgramState.RUNNING ||\n state === ProgramState.PAUSING ||\n state === ProgramState.PAUSED,\n label: t(\"ProgramControl.Stop.bt\"),\n color: theme.palette.error.main,\n onClick: onStop,\n },\n }\n\n if (variant === \"without_pause\") {\n return [baseConfigs.run, baseConfigs.stop]\n }\n\n return [baseConfigs.run, baseConfigs.pause, baseConfigs.stop]\n }\n\n const getButtonIcon = (index: number) => {\n const iconProps = { sx: { fontSize: \"55px\" } }\n\n if (variant === \"without_pause\") {\n return index === 0 ? (\n <PlayArrow {...iconProps} />\n ) : (\n <Stop {...iconProps} />\n )\n }\n\n switch (index) {\n case 0:\n return <PlayArrow {...iconProps} />\n case 1:\n return <Pause {...iconProps} />\n case 2:\n return <Stop {...iconProps} />\n default:\n return null\n }\n }\n\n const buttonConfigs = getButtonConfigs()\n\n return (\n <Box\n className={className}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: 2,\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n gap: \"40px\",\n flexWrap: \"wrap\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n {buttonConfigs.map((config, index) => (\n <Box\n key={config.label}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: 1,\n }}\n >\n <Button\n variant=\"contained\"\n disabled={\n !config.enabled ||\n state === ProgramState.PREPARING ||\n state === ProgramState.STARTING ||\n state === ProgramState.PAUSING ||\n (state === ProgramState.STOPPING && !requiresManualReset)\n }\n onClick={config.onClick}\n sx={{\n width: \"88px\",\n height: \"88px\",\n borderRadius: \"88px\",\n backgroundColor: config.color,\n opacity:\n config.enabled &&\n state !== ProgramState.PREPARING &&\n state !== ProgramState.STARTING &&\n state !== ProgramState.PAUSING &&\n !(state === ProgramState.STOPPING && !requiresManualReset)\n ? 1\n : 0.3,\n \"&:hover\": {\n backgroundColor: config.color,\n opacity:\n config.enabled &&\n state !== ProgramState.PREPARING &&\n state !== ProgramState.STARTING &&\n state !== ProgramState.PAUSING &&\n !(\n state === ProgramState.STOPPING &&\n !requiresManualReset\n )\n ? 0.8\n : 0.3,\n },\n \"&:disabled\": {\n backgroundColor: config.color,\n opacity: 0.3,\n },\n minWidth: \"88px\",\n flexShrink: 0,\n }}\n >\n {getButtonIcon(index)}\n </Button>\n\n <Typography\n variant=\"body1\"\n sx={{\n color:\n config.enabled &&\n state !== ProgramState.PREPARING &&\n state !== ProgramState.STARTING &&\n state !== ProgramState.PAUSING &&\n !(state === ProgramState.STOPPING && !requiresManualReset)\n ? config.color\n : theme.palette.text.disabled,\n textAlign: \"center\",\n opacity:\n config.enabled &&\n state !== ProgramState.PREPARING &&\n state !== ProgramState.STARTING &&\n state !== ProgramState.PAUSING &&\n !(state === ProgramState.STOPPING && !requiresManualReset)\n ? 1\n : 0.3,\n }}\n >\n {config.label}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>\n )\n },\n ),\n)\n\nexport default ProgramControl\n"],"names":["ProgramState","ProgramControl","externalizeComponent","observer","state","onRun","onPause","onStop","onReset","requiresManualReset","variant","className","theme","useTheme","t","useTranslation","getButtonConfigs","baseConfigs","getButtonIcon","index","iconProps","jsx","PlayArrow","Stop","Pause","buttonConfigs","Box","config","jsxs","Button","Typography"],"mappings":";;;;;;;;;;;AAWO,IAAKA,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,YAAY,aACZA,EAAA,WAAW,YACXA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,SAAS,UACTA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,SAAS,UACTA,EAAA,UAAU,WACVA,EAAA,QAAQ,SAXEA,IAAAA,KAAA,CAAA,CAAA;AA4DL,MAAMC,IAAiBC;AAAA,EAC5BC;AAAA,IACE,CAAC;AAAA,MACC,OAAAC;AAAA,MACA,OAAAC;AAAA,MACA,SAAAC;AAAA,MACA,QAAAC;AAAA,MACA,SAAAC;AAAA,MACA,qBAAAC,IAAsB;AAAA,MACtB,SAAAC,IAAU;AAAA,MACV,WAAAC;AAAA,IAAA,MACyB;AACzB,YAAMC,IAAQC,EAAA,GACR,EAAE,GAAAC,EAAA,IAAMC,EAAA,GAERC,IAAmB,MAAsB;AAC7C,cAAMC,IAA4C;AAAA,UAChD,KAAK;AAAA,YACH,SACEb,MAAU,UACVA,MAAU,aACVA,MAAU,YACVA,MAAU,eACVA,MAAU,YACVA,MAAU;AAAA,YACZ,OAEMU,EADJV,MAAU,WACJ,6BACFA,MAAU,WAAsBA,MAAU,WACtC,4BACA,yBAHwB;AAAA,YAIlC,OAAOQ,EAAM,QAAQ,QAAQ;AAAA,YAC7B,SAASP;AAAA,UAAA;AAAA,UAEX,OAAO;AAAA,YACL,SAASD,MAAU;AAAA,YACnB,OAAOU,EAAE,yBAAyB;AAAA,YAClC,OAAO;AAAA,YACP,SAASR,MAAY,MAAM;AAAA,YAAC;AAAA,UAAA;AAAA,UAE9B,MAAM;AAAA,YACJ,SACEF,MAAU,eACVA,MAAU,cACVA,MAAU,aACVA,MAAU,aACVA,MAAU;AAAA,YACZ,OAAOU,EAAE,wBAAwB;AAAA,YACjC,OAAOF,EAAM,QAAQ,MAAM;AAAA,YAC3B,SAASL;AAAA,UAAA;AAAA,QACX;AAGF,eAAIG,MAAY,kBACP,CAACO,EAAY,KAAKA,EAAY,IAAI,IAGpC,CAACA,EAAY,KAAKA,EAAY,OAAOA,EAAY,IAAI;AAAA,MAC9D,GAEMC,IAAgB,CAACC,MAAkB;AACvC,cAAMC,IAAY,EAAE,IAAI,EAAE,UAAU,SAAO;AAE3C,YAAIV,MAAY;AACd,iBAAOS,MAAU,IACf,gBAAAE,EAACC,GAAA,EAAW,GAAGF,GAAW,IAE1B,gBAAAC,EAACE,GAAA,EAAM,GAAGH,EAAA,CAAW;AAIzB,gBAAQD,GAAA;AAAA,UACN,KAAK;AACH,mBAAO,gBAAAE,EAACC,GAAA,EAAW,GAAGF,EAAA,CAAW;AAAA,UACnC,KAAK;AACH,mBAAO,gBAAAC,EAACG,GAAA,EAAO,GAAGJ,EAAA,CAAW;AAAA,UAC/B,KAAK;AACH,mBAAO,gBAAAC,EAACE,GAAA,EAAM,GAAGH,EAAA,CAAW;AAAA,UAC9B;AACE,mBAAO;AAAA,QAAA;AAAA,MAEb,GAEMK,IAAgBT,EAAA;AAEtB,aACE,gBAAAK;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,WAAAf;AAAA,UACA,IAAI;AAAA,YACF,SAAS;AAAA,YACT,eAAe;AAAA,YACf,YAAY;AAAA,YACZ,KAAK;AAAA,UAAA;AAAA,UAGP,UAAA,gBAAAU;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,gBACF,SAAS;AAAA,gBACT,KAAK;AAAA,gBACL,UAAU;AAAA,gBACV,gBAAgB;AAAA,gBAChB,YAAY;AAAA,cAAA;AAAA,cAGb,UAAAD,EAAc,IAAI,CAACE,GAAQR,MAC1B,gBAAAS;AAAA,gBAACF;AAAA,gBAAA;AAAA,kBAEC,IAAI;AAAA,oBACF,SAAS;AAAA,oBACT,eAAe;AAAA,oBACf,YAAY;AAAA,oBACZ,KAAK;AAAA,kBAAA;AAAA,kBAGP,UAAA;AAAA,oBAAA,gBAAAL;AAAA,sBAACQ;AAAA,sBAAA;AAAA,wBACC,SAAQ;AAAA,wBACR,UACE,CAACF,EAAO,WACRvB,MAAU,eACVA,MAAU,cACVA,MAAU,aACTA,MAAU,cAAyB,CAACK;AAAA,wBAEvC,SAASkB,EAAO;AAAA,wBAChB,IAAI;AAAA,0BACF,OAAO;AAAA,0BACP,QAAQ;AAAA,0BACR,cAAc;AAAA,0BACd,iBAAiBA,EAAO;AAAA,0BACxB,SACEA,EAAO,WACPvB,MAAU,eACVA,MAAU,cACVA,MAAU,aACV,EAAEA,MAAU,cAAyB,CAACK,KAClC,IACA;AAAA,0BACN,WAAW;AAAA,4BACT,iBAAiBkB,EAAO;AAAA,4BACxB,SACEA,EAAO,WACPvB,MAAU,eACVA,MAAU,cACVA,MAAU,aACV,EACEA,MAAU,cACV,CAACK,KAEC,MACA;AAAA,0BAAA;AAAA,0BAER,cAAc;AAAA,4BACZ,iBAAiBkB,EAAO;AAAA,4BACxB,SAAS;AAAA,0BAAA;AAAA,0BAEX,UAAU;AAAA,0BACV,YAAY;AAAA,wBAAA;AAAA,wBAGb,YAAcR,CAAK;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAGtB,gBAAAE;AAAA,sBAACS;AAAA,sBAAA;AAAA,wBACC,SAAQ;AAAA,wBACR,IAAI;AAAA,0BACF,OACEH,EAAO,WACPvB,MAAU,eACVA,MAAU,cACVA,MAAU,aACV,EAAEA,MAAU,cAAyB,CAACK,KAClCkB,EAAO,QACPf,EAAM,QAAQ,KAAK;AAAA,0BACzB,WAAW;AAAA,0BACX,SACEe,EAAO,WACPvB,MAAU,eACVA,MAAU,cACVA,MAAU,aACV,EAAEA,MAAU,cAAyB,CAACK,KAClC,IACA;AAAA,wBAAA;AAAA,wBAGP,UAAAkB,EAAO;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACV;AAAA,gBAAA;AAAA,gBA/EKA,EAAO;AAAA,cAAA,CAiFf;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAGN;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),g=require("@mui/material/styles"),A=require("@mui/material/Chip"),u=require("@mui/material/Typography"),_=require("mobx-react-lite"),m=require("react-i18next"),b=require("../externalizeComponent.cjs"),a=require("./ProgramControl.cjs"),l=b.externalizeComponent(_.observer(({programState:T,safetyState:e,operationMode:i,className:c})=>{const t=g.useTheme(),{t:r}=m.useTranslation(),S=()=>{if(e==="SAFETY_STATE_DEVICE_EMERGENCY_STOP"||e==="SAFETY_STATE_ROBOT_EMERGENCY_STOP"||e==="SAFETY_STATE_STOP_0"||e==="SAFETY_STATE_STOP_1"||e==="SAFETY_STATE_STOP_2"||e==="SAFETY_STATE_PROTECTIVE_STOP"||e==="SAFETY_STATE_STOP"||e==="SAFETY_STATE_REDUCED"||e==="SAFETY_STATE_MASTERING"||e==="SAFETY_STATE_CONFIRM_SAFETY"||e==="SAFETY_STATE_OPERATOR_SAFETY"||e==="SAFETY_STATE_RECOVERY"||e==="SAFETY_STATE_VIOLATION")return{label:r("ProgramStateIndicator.EStop.lb"),color:t.palette.error.main};if(e==="SAFETY_STATE_UNKNOWN"||e==="SAFETY_STATE_FAULT")return{label:r("ProgramStateIndicator.Error.lb"),color:t.palette.error.main};if(e==="SAFETY_STATE_NORMAL")switch(T){case a.ProgramState.PREPARING:return{label:r("ProgramStateIndicator.Preparing.lb"),color:t.palette.warning.main};case a.ProgramState.STARTING:return{label:r("ProgramStateIndicator.Starting.lb"),color:t.palette.warning.main};case a.ProgramState.RUNNING:return{label:r("ProgramStateIndicator.Running.lb"),color:t.palette.success.main};case a.ProgramState.PAUSING:return{label:r("ProgramStateIndicator.Pausing.lb"),color:t.palette.warning.main};case a.ProgramState.PAUSED:return{label:r("ProgramStateIndicator.Paused.lb"),color:t.palette.grey[600]};case a.ProgramState.STOPPING:return{label:r("ProgramStateIndicator.Stopping.lb"),color:t.palette.warning.main};case a.ProgramState.COMPLETED:return{label:r("ProgramStateIndicator.Completed.lb"),color:t.palette.success.main};case a.ProgramState.FAILED:return{label:r("ProgramStateIndicator.Failed.lb"),color:t.palette.error.main};case a.ProgramState.STOPPED:return{label:r("ProgramStateIndicator.Stopped.lb"),color:t.palette.warning.main};case a.ProgramState.ERROR:return{label:r("ProgramStateIndicator.Error.lb"),color:t.palette.error.main};default:return{label:r("ProgramStateIndicator.Ready.lb"),color:t.palette.success.main}}return{label:r("ProgramStateIndicator.Idle.lb"),color:t.palette.grey[600]}},{label:E,color:o}=S(),P=`${E} / ${(()=>{switch(i){case"OPERATION_MODE_AUTO":return r("ProgramStateIndicator.Auto.lb");case"OPERATION_MODE_MANUAL":return r("ProgramStateIndicator.Manual.lb");case"OPERATION_MODE_MANUAL_T1":return r("ProgramStateIndicator.ManualT1.lb");case"OPERATION_MODE_MANUAL_T2":return r("ProgramStateIndicator.ManualT2.lb");default:return r("ProgramStateIndicator.Auto.lb")}})()}`;return n.jsx(A,{className:c,label:n.jsx(u,{variant:"body2",sx:{fontSize:"0.75rem",lineHeight:1.2},children:P}),variant:"filled",sx:{backgroundColor:o,color:t.palette.getContrastText(o),fontWeight:500,height:"auto","& .MuiChip-label":{paddingX:1.5,paddingY:.5}}})}));exports.ProgramStateIndicator=l;exports.default=l;
|
|
2
|
+
//# sourceMappingURL=ProgramStateIndicator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgramStateIndicator.cjs","sources":["../../src/components/ProgramStateIndicator.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport Chip from \"@mui/material/Chip\"\nimport Typography from \"@mui/material/Typography\"\nimport type { OperationMode, SafetyStateType } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useTranslation } from \"react-i18next\"\nimport { externalizeComponent } from \"../externalizeComponent\"\nimport { ProgramState } from \"./ProgramControl\"\n\nexport interface ProgramStateIndicatorProps {\n /** The current state of the program */\n programState: ProgramState\n /** The current safety state of the robot controller */\n safetyState: SafetyStateType\n /** The current operation mode of the robot controller */\n operationMode: OperationMode\n /** Additional CSS class name */\n className?: string\n}\n\n/**\n * A state indicator component that displays the current program execution state\n * combined with robot controller safety and operation mode states.\n *\n * Features:\n * - Combines program state with safety and operation mode states\n * - Color-coded based on state severity (success, warning, error)\n * - Rendered as Material-UI filled chip\n * - Localization support via react-i18next\n */\nexport const ProgramStateIndicator = externalizeComponent(\n observer(\n ({\n programState,\n safetyState,\n operationMode,\n className,\n }: ProgramStateIndicatorProps) => {\n const theme = useTheme()\n const { t } = useTranslation()\n\n const getStateInfo = () => {\n // First check for emergency stop or critical safety states\n if (\n safetyState === \"SAFETY_STATE_DEVICE_EMERGENCY_STOP\" ||\n safetyState === \"SAFETY_STATE_ROBOT_EMERGENCY_STOP\" ||\n safetyState === \"SAFETY_STATE_STOP_0\" ||\n safetyState === \"SAFETY_STATE_STOP_1\" ||\n safetyState === \"SAFETY_STATE_STOP_2\" ||\n safetyState === \"SAFETY_STATE_PROTECTIVE_STOP\" ||\n safetyState === \"SAFETY_STATE_STOP\" ||\n safetyState === \"SAFETY_STATE_REDUCED\" ||\n safetyState === \"SAFETY_STATE_MASTERING\" ||\n safetyState === \"SAFETY_STATE_CONFIRM_SAFETY\" ||\n safetyState === \"SAFETY_STATE_OPERATOR_SAFETY\" ||\n safetyState === \"SAFETY_STATE_RECOVERY\" ||\n safetyState === \"SAFETY_STATE_VIOLATION\"\n ) {\n return {\n label: t(\"ProgramStateIndicator.EStop.lb\"),\n color: theme.palette.error.main,\n }\n }\n\n // Check for error states\n if (\n safetyState === \"SAFETY_STATE_UNKNOWN\" ||\n safetyState === \"SAFETY_STATE_FAULT\"\n ) {\n return {\n label: t(\"ProgramStateIndicator.Error.lb\"),\n color: theme.palette.error.main,\n }\n }\n\n // For normal safety states, check program state\n if (safetyState === \"SAFETY_STATE_NORMAL\") {\n switch (programState) {\n case ProgramState.PREPARING:\n return {\n label: t(\"ProgramStateIndicator.Preparing.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.STARTING:\n return {\n label: t(\"ProgramStateIndicator.Starting.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.RUNNING:\n return {\n label: t(\"ProgramStateIndicator.Running.lb\"),\n color: theme.palette.success.main,\n }\n case ProgramState.PAUSING:\n return {\n label: t(\"ProgramStateIndicator.Pausing.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.PAUSED:\n return {\n label: t(\"ProgramStateIndicator.Paused.lb\"),\n color: theme.palette.grey[600],\n }\n case ProgramState.STOPPING:\n return {\n label: t(\"ProgramStateIndicator.Stopping.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.COMPLETED:\n return {\n label: t(\"ProgramStateIndicator.Completed.lb\"),\n color: theme.palette.success.main,\n }\n case ProgramState.FAILED:\n return {\n label: t(\"ProgramStateIndicator.Failed.lb\"),\n color: theme.palette.error.main,\n }\n case ProgramState.STOPPED:\n return {\n label: t(\"ProgramStateIndicator.Stopped.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.ERROR:\n return {\n label: t(\"ProgramStateIndicator.Error.lb\"),\n color: theme.palette.error.main,\n }\n default:\n return {\n label: t(\"ProgramStateIndicator.Ready.lb\"),\n color: theme.palette.success.main,\n }\n }\n }\n\n // Default fallback\n return {\n label: t(\"ProgramStateIndicator.Idle.lb\"),\n color: theme.palette.grey[600],\n }\n }\n\n const { label, color } = getStateInfo()\n\n // Add operation mode suffix if not automatic\n const getOperationModeText = () => {\n switch (operationMode) {\n case \"OPERATION_MODE_AUTO\":\n return t(\"ProgramStateIndicator.Auto.lb\")\n case \"OPERATION_MODE_MANUAL\":\n return t(\"ProgramStateIndicator.Manual.lb\")\n case \"OPERATION_MODE_MANUAL_T1\":\n return t(\"ProgramStateIndicator.ManualT1.lb\")\n case \"OPERATION_MODE_MANUAL_T2\":\n return t(\"ProgramStateIndicator.ManualT2.lb\")\n default:\n return t(\"ProgramStateIndicator.Auto.lb\") // Default to Auto for unknown modes\n }\n }\n\n const fullLabel = `${label} / ${getOperationModeText()}`\n\n return (\n <Chip\n className={className}\n label={\n <Typography\n variant=\"body2\"\n sx={{\n fontSize: \"0.75rem\", // Smaller than body2\n lineHeight: 1.2,\n }}\n >\n {fullLabel}\n </Typography>\n }\n variant=\"filled\"\n sx={{\n backgroundColor: color,\n color: theme.palette.getContrastText(color),\n fontWeight: 500,\n height: \"auto\",\n \"& .MuiChip-label\": {\n paddingX: 1.5,\n paddingY: 0.5,\n },\n }}\n />\n )\n },\n ),\n)\n\nexport default ProgramStateIndicator\n"],"names":["ProgramStateIndicator","externalizeComponent","observer","programState","safetyState","operationMode","className","theme","useTheme","t","useTranslation","getStateInfo","ProgramState","label","color","fullLabel","jsx","Chip","Typography"],"mappings":"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"}
|
|
@@ -23,4 +23,5 @@ export interface ProgramStateIndicatorProps {
|
|
|
23
23
|
export declare const ProgramStateIndicator: (({ programState, safetyState, operationMode, className, }: ProgramStateIndicatorProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
24
24
|
displayName: string;
|
|
25
25
|
};
|
|
26
|
+
export default ProgramStateIndicator;
|
|
26
27
|
//# sourceMappingURL=ProgramStateIndicator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgramStateIndicator.d.ts","sourceRoot":"","sources":["../../src/components/ProgramStateIndicator.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAI5E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,YAAY,EAAE,YAAY,CAAA;IAC1B,uDAAuD;IACvD,WAAW,EAAE,eAAe,CAAA;IAC5B,yDAAyD;IACzD,aAAa,EAAE,aAAa,CAAA;IAC5B,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,8DAO3B,0BAA0B;;CA2JhC,CAAA"}
|
|
1
|
+
{"version":3,"file":"ProgramStateIndicator.d.ts","sourceRoot":"","sources":["../../src/components/ProgramStateIndicator.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAI5E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,YAAY,EAAE,YAAY,CAAA;IAC1B,uDAAuD;IACvD,WAAW,EAAE,eAAe,CAAA;IAC5B,yDAAyD;IACzD,aAAa,EAAE,aAAa,CAAA;IAC5B,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,8DAO3B,0BAA0B;;CA2JhC,CAAA;AAED,eAAe,qBAAqB,CAAA"}
|