@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
|
@@ -16,4 +16,5 @@ import type { TimerProps } from "./types";
|
|
|
16
16
|
export declare const Timer: (({ onTimerReady, autoStart, variant, compact, className, hasError, }: TimerProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
17
17
|
displayName: string;
|
|
18
18
|
};
|
|
19
|
+
export default Timer;
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Timer/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,yEASX,UAAU;;CAoEhB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Timer/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,yEASX,UAAU;;CAoEhB,CAAA;AAED,eAAe,KAAK,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { observer as d } from "mobx-react-lite";
|
|
3
|
+
import { useEffect as r } from "react";
|
|
4
|
+
import { externalizeComponent as x } from "../../externalizeComponent.js";
|
|
5
|
+
import { TimerDefaultVariant as E } from "./TimerDefaultVariant.js";
|
|
6
|
+
import { TimerSmallVariant as C } from "./TimerSmallVariant.js";
|
|
7
|
+
import { useTimerAnimations as I } from "./useTimerAnimations.js";
|
|
8
|
+
import { useTimerLogic as P } from "./useTimerLogic.js";
|
|
9
|
+
const k = x(
|
|
10
|
+
d(
|
|
11
|
+
({
|
|
12
|
+
onTimerReady: i,
|
|
13
|
+
autoStart: s = !0,
|
|
14
|
+
variant: p = "default",
|
|
15
|
+
compact: c = !1,
|
|
16
|
+
className: e,
|
|
17
|
+
hasError: t = !1
|
|
18
|
+
}) => {
|
|
19
|
+
const {
|
|
20
|
+
animationState: o,
|
|
21
|
+
triggerPauseAnimation: A,
|
|
22
|
+
triggerErrorAnimation: T,
|
|
23
|
+
clearErrorAnimation: g,
|
|
24
|
+
setInitialAnimationState: n,
|
|
25
|
+
cleanup: m
|
|
26
|
+
} = I(), { timerState: a, controls: u } = P({
|
|
27
|
+
autoStart: s,
|
|
28
|
+
hasError: t,
|
|
29
|
+
onPauseAnimation: A,
|
|
30
|
+
onErrorAnimation: T,
|
|
31
|
+
onClearErrorAnimation: g
|
|
32
|
+
});
|
|
33
|
+
return r(() => {
|
|
34
|
+
n();
|
|
35
|
+
}, [n]), r(() => {
|
|
36
|
+
let f = !0;
|
|
37
|
+
const S = setTimeout(() => {
|
|
38
|
+
f && i(u);
|
|
39
|
+
}, 0);
|
|
40
|
+
return () => {
|
|
41
|
+
f = !1, clearTimeout(S);
|
|
42
|
+
};
|
|
43
|
+
}, [i, u]), r(() => m, [m]), p === "small" ? /* @__PURE__ */ l(
|
|
44
|
+
C,
|
|
45
|
+
{
|
|
46
|
+
timerState: a,
|
|
47
|
+
animationState: o,
|
|
48
|
+
hasError: t,
|
|
49
|
+
compact: c,
|
|
50
|
+
className: e
|
|
51
|
+
}
|
|
52
|
+
) : /* @__PURE__ */ l(
|
|
53
|
+
E,
|
|
54
|
+
{
|
|
55
|
+
timerState: a,
|
|
56
|
+
animationState: o,
|
|
57
|
+
hasError: t,
|
|
58
|
+
className: e
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
);
|
|
64
|
+
export {
|
|
65
|
+
k as Timer,
|
|
66
|
+
k as default
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Timer/index.tsx"],"sourcesContent":["import { observer } from \"mobx-react-lite\"\nimport { useEffect } from \"react\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { TimerDefaultVariant } from \"./TimerDefaultVariant\"\nimport { TimerSmallVariant } from \"./TimerSmallVariant\"\nimport type { TimerProps } from \"./types\"\nimport { useTimerAnimations } from \"./useTimerAnimations\"\nimport { useTimerLogic } from \"./useTimerLogic\"\n\n/**\n * A simple count-up timer component with visual progress indication\n *\n * Features:\n * - Count-up timer that tracks elapsed time\n * - Visual progress gauge that cycles every minute\n * - Two display variants: large circular gauge (default) or small icon with text\n * - Full timer control: start, pause, resume, reset functionality\n * - Support for starting with elapsed time (resume mid-session)\n * - Error state support: pauses timer and shows error styling\n * - Smooth progress animations with spring physics\n * - Fully localized with i18next\n * - Material-UI theming integration\n */\nexport const Timer = externalizeComponent(\n observer(\n ({\n onTimerReady,\n autoStart = true,\n variant = \"default\",\n compact = false,\n className,\n hasError = false,\n }: TimerProps) => {\n // Initialize animation hooks\n const {\n animationState,\n triggerPauseAnimation,\n triggerErrorAnimation,\n clearErrorAnimation,\n setInitialAnimationState,\n cleanup,\n } = useTimerAnimations()\n\n // Initialize timer logic\n const { timerState, controls } = useTimerLogic({\n autoStart,\n hasError,\n onPauseAnimation: triggerPauseAnimation,\n onErrorAnimation: triggerErrorAnimation,\n onClearErrorAnimation: clearErrorAnimation,\n })\n\n // Set initial animation state\n useEffect(() => {\n setInitialAnimationState()\n }, [setInitialAnimationState])\n\n // Provide controls to parent component\n useEffect(() => {\n let isMounted = true\n const timeoutId = setTimeout(() => {\n if (isMounted) {\n onTimerReady(controls)\n }\n }, 0)\n\n return () => {\n isMounted = false\n clearTimeout(timeoutId)\n }\n }, [onTimerReady, controls])\n\n // Cleanup on unmount\n useEffect(() => {\n return cleanup\n }, [cleanup])\n\n // Render appropriate variant\n if (variant === \"small\") {\n return (\n <TimerSmallVariant\n timerState={timerState}\n animationState={animationState}\n hasError={hasError}\n compact={compact}\n className={className}\n />\n )\n }\n\n return (\n <TimerDefaultVariant\n timerState={timerState}\n animationState={animationState}\n hasError={hasError}\n className={className}\n />\n )\n },\n ),\n)\n\nexport default Timer\n"],"names":["Timer","externalizeComponent","observer","onTimerReady","autoStart","variant","compact","className","hasError","animationState","triggerPauseAnimation","triggerErrorAnimation","clearErrorAnimation","setInitialAnimationState","cleanup","useTimerAnimations","timerState","controls","useTimerLogic","useEffect","isMounted","timeoutId","jsx","TimerSmallVariant","TimerDefaultVariant"],"mappings":";;;;;;;;AAuBO,MAAMA,IAAQC;AAAA,EACnBC;AAAA,IACE,CAAC;AAAA,MACC,cAAAC;AAAA,MACA,WAAAC,IAAY;AAAA,MACZ,SAAAC,IAAU;AAAA,MACV,SAAAC,IAAU;AAAA,MACV,WAAAC;AAAA,MACA,UAAAC,IAAW;AAAA,IAAA,MACK;AAEhB,YAAM;AAAA,QACJ,gBAAAC;AAAA,QACA,uBAAAC;AAAA,QACA,uBAAAC;AAAA,QACA,qBAAAC;AAAA,QACA,0BAAAC;AAAA,QACA,SAAAC;AAAA,MAAA,IACEC,EAAA,GAGE,EAAE,YAAAC,GAAY,UAAAC,EAAA,IAAaC,EAAc;AAAA,QAC7C,WAAAd;AAAA,QACA,UAAAI;AAAA,QACA,kBAAkBE;AAAA,QAClB,kBAAkBC;AAAA,QAClB,uBAAuBC;AAAA,MAAA,CACxB;AA4BD,aAzBAO,EAAU,MAAM;AACd,QAAAN,EAAA;AAAA,MACF,GAAG,CAACA,CAAwB,CAAC,GAG7BM,EAAU,MAAM;AACd,YAAIC,IAAY;AAChB,cAAMC,IAAY,WAAW,MAAM;AACjC,UAAID,KACFjB,EAAac,CAAQ;AAAA,QAEzB,GAAG,CAAC;AAEJ,eAAO,MAAM;AACX,UAAAG,IAAY,IACZ,aAAaC,CAAS;AAAA,QACxB;AAAA,MACF,GAAG,CAAClB,GAAcc,CAAQ,CAAC,GAG3BE,EAAU,MACDL,GACN,CAACA,CAAO,CAAC,GAGRT,MAAY,UAEZ,gBAAAiB;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,YAAAP;AAAA,UACA,gBAAAP;AAAA,UACA,UAAAD;AAAA,UACA,SAAAF;AAAA,UACA,WAAAC;AAAA,QAAA;AAAA,MAAA,IAMJ,gBAAAe;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,YAAAR;AAAA,UACA,gBAAAP;AAAA,UACA,UAAAD;AAAA,UACA,WAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IAGN;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),T=()=>{const[o,r]=t.useState({showPauseAnimation:!1,showErrorAnimation:!1,showMainText:!0}),i=t.useRef(null),n=t.useRef(null),a=t.useRef(null),u=t.useCallback(()=>{r(e=>({...e,showPauseAnimation:!0})),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{r(e=>({...e,showPauseAnimation:!1}))},800)},[]),s=t.useCallback(()=>{r(e=>({...e,showErrorAnimation:!0})),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{r(e=>({...e,showErrorAnimation:!1}))},600)},[]),c=t.useCallback(()=>{r(e=>({...e,showErrorAnimation:!1})),n.current&&clearTimeout(n.current)},[]),l=t.useCallback(()=>{r(e=>({...e,showMainText:!1})),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{r(e=>({...e,showMainText:!0}))},200)},[]),m=t.useCallback(()=>{r(e=>({...e,showMainText:!0}))},[]),f=t.useCallback(()=>{i.current&&clearTimeout(i.current),n.current&&clearTimeout(n.current),a.current&&clearTimeout(a.current)},[]);return{animationState:o,triggerPauseAnimation:u,triggerErrorAnimation:s,clearErrorAnimation:c,triggerFadeTransition:l,setInitialAnimationState:m,cleanup:f}};exports.useTimerAnimations=T;
|
|
2
|
+
//# sourceMappingURL=useTimerAnimations.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimerAnimations.cjs","sources":["../../../src/components/Timer/useTimerAnimations.ts"],"sourcesContent":["import { useCallback, useRef, useState } from \"react\"\nimport type { TimerAnimationState } from \"./types\"\n\nexport const useTimerAnimations = () => {\n const [animationState, setAnimationState] = useState<TimerAnimationState>({\n showPauseAnimation: false,\n showErrorAnimation: false,\n showMainText: true,\n })\n\n // Refs for managing timeouts\n const pauseAnimationTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const errorAnimationTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const fadeTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const triggerPauseAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showPauseAnimation: true }))\n\n if (pauseAnimationTimeoutRef.current) {\n clearTimeout(pauseAnimationTimeoutRef.current)\n }\n\n pauseAnimationTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({ ...prev, showPauseAnimation: false }))\n }, 800)\n }, [])\n\n const triggerErrorAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: true }))\n\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n\n errorAnimationTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: false }))\n }, 600)\n }, [])\n\n const clearErrorAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: false }))\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n }, [])\n\n const triggerFadeTransition = useCallback(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: false,\n }))\n\n if (fadeTimeoutRef.current) {\n clearTimeout(fadeTimeoutRef.current)\n }\n\n fadeTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: true,\n }))\n }, 200)\n }, [])\n\n const setInitialAnimationState = useCallback(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: true,\n }))\n }, [])\n\n // Cleanup function\n const cleanup = useCallback(() => {\n if (pauseAnimationTimeoutRef.current) {\n clearTimeout(pauseAnimationTimeoutRef.current)\n }\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n if (fadeTimeoutRef.current) {\n clearTimeout(fadeTimeoutRef.current)\n }\n }, [])\n\n return {\n animationState,\n triggerPauseAnimation,\n triggerErrorAnimation,\n clearErrorAnimation,\n triggerFadeTransition,\n setInitialAnimationState,\n cleanup,\n }\n}\n"],"names":["useTimerAnimations","animationState","setAnimationState","useState","pauseAnimationTimeoutRef","useRef","errorAnimationTimeoutRef","fadeTimeoutRef","triggerPauseAnimation","useCallback","prev","triggerErrorAnimation","clearErrorAnimation","triggerFadeTransition","setInitialAnimationState","cleanup"],"mappings":"yGAGaA,EAAqB,IAAM,CACtC,KAAM,CAACC,EAAgBC,CAAiB,EAAIC,WAA8B,CACxE,mBAAoB,GACpB,mBAAoB,GACpB,aAAc,EAAA,CACf,EAGKC,EAA2BC,EAAAA,OAA8B,IAAI,EAC7DC,EAA2BD,EAAAA,OAA8B,IAAI,EAC7DE,EAAiBF,EAAAA,OAA8B,IAAI,EAEnDG,EAAwBC,EAAAA,YAAY,IAAM,CAC9CP,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAO,EAE/DN,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,EAG/CA,EAAyB,QAAU,WAAW,IAAM,CAClDF,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAQ,CACtE,EAAG,GAAG,CACR,EAAG,CAAA,CAAE,EAECC,EAAwBF,EAAAA,YAAY,IAAM,CAC9CP,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAO,EAE/DJ,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,EAG/CA,EAAyB,QAAU,WAAW,IAAM,CAClDJ,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAQ,CACtE,EAAG,GAAG,CACR,EAAG,CAAA,CAAE,EAECE,EAAsBH,EAAAA,YAAY,IAAM,CAC5CP,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAQ,EAChEJ,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,CAEjD,EAAG,CAAA,CAAE,EAECO,EAAwBJ,EAAAA,YAAY,IAAM,CAC9CP,EAAmBQ,IAAU,CAC3B,GAAGA,EACH,aAAc,EAAA,EACd,EAEEH,EAAe,SACjB,aAAaA,EAAe,OAAO,EAGrCA,EAAe,QAAU,WAAW,IAAM,CACxCL,EAAmBQ,IAAU,CAC3B,GAAGA,EACH,aAAc,EAAA,EACd,CACJ,EAAG,GAAG,CACR,EAAG,CAAA,CAAE,EAECI,EAA2BL,EAAAA,YAAY,IAAM,CACjDP,EAAmBQ,IAAU,CAC3B,GAAGA,EACH,aAAc,EAAA,EACd,CACJ,EAAG,CAAA,CAAE,EAGCK,EAAUN,EAAAA,YAAY,IAAM,CAC5BL,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,EAE3CE,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,EAE3CC,EAAe,SACjB,aAAaA,EAAe,OAAO,CAEvC,EAAG,CAAA,CAAE,EAEL,MAAO,CACL,eAAAN,EACA,sBAAAO,EACA,sBAAAG,EACA,oBAAAC,EACA,sBAAAC,EACA,yBAAAC,EACA,QAAAC,CAAA,CAEJ"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { useState as A, useRef as a, useCallback as n } from "react";
|
|
2
|
+
const w = () => {
|
|
3
|
+
const [u, e] = A({
|
|
4
|
+
showPauseAnimation: !1,
|
|
5
|
+
showErrorAnimation: !1,
|
|
6
|
+
showMainText: !0
|
|
7
|
+
}), i = a(null), r = a(null), o = a(null), s = n(() => {
|
|
8
|
+
e((t) => ({ ...t, showPauseAnimation: !0 })), i.current && clearTimeout(i.current), i.current = setTimeout(() => {
|
|
9
|
+
e((t) => ({ ...t, showPauseAnimation: !1 }));
|
|
10
|
+
}, 800);
|
|
11
|
+
}, []), c = n(() => {
|
|
12
|
+
e((t) => ({ ...t, showErrorAnimation: !0 })), r.current && clearTimeout(r.current), r.current = setTimeout(() => {
|
|
13
|
+
e((t) => ({ ...t, showErrorAnimation: !1 }));
|
|
14
|
+
}, 600);
|
|
15
|
+
}, []), m = n(() => {
|
|
16
|
+
e((t) => ({ ...t, showErrorAnimation: !1 })), r.current && clearTimeout(r.current);
|
|
17
|
+
}, []), l = n(() => {
|
|
18
|
+
e((t) => ({
|
|
19
|
+
...t,
|
|
20
|
+
showMainText: !1
|
|
21
|
+
})), o.current && clearTimeout(o.current), o.current = setTimeout(() => {
|
|
22
|
+
e((t) => ({
|
|
23
|
+
...t,
|
|
24
|
+
showMainText: !0
|
|
25
|
+
}));
|
|
26
|
+
}, 200);
|
|
27
|
+
}, []), f = n(() => {
|
|
28
|
+
e((t) => ({
|
|
29
|
+
...t,
|
|
30
|
+
showMainText: !0
|
|
31
|
+
}));
|
|
32
|
+
}, []), T = n(() => {
|
|
33
|
+
i.current && clearTimeout(i.current), r.current && clearTimeout(r.current), o.current && clearTimeout(o.current);
|
|
34
|
+
}, []);
|
|
35
|
+
return {
|
|
36
|
+
animationState: u,
|
|
37
|
+
triggerPauseAnimation: s,
|
|
38
|
+
triggerErrorAnimation: c,
|
|
39
|
+
clearErrorAnimation: m,
|
|
40
|
+
triggerFadeTransition: l,
|
|
41
|
+
setInitialAnimationState: f,
|
|
42
|
+
cleanup: T
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export {
|
|
46
|
+
w as useTimerAnimations
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=useTimerAnimations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimerAnimations.js","sources":["../../../src/components/Timer/useTimerAnimations.ts"],"sourcesContent":["import { useCallback, useRef, useState } from \"react\"\nimport type { TimerAnimationState } from \"./types\"\n\nexport const useTimerAnimations = () => {\n const [animationState, setAnimationState] = useState<TimerAnimationState>({\n showPauseAnimation: false,\n showErrorAnimation: false,\n showMainText: true,\n })\n\n // Refs for managing timeouts\n const pauseAnimationTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const errorAnimationTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const fadeTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const triggerPauseAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showPauseAnimation: true }))\n\n if (pauseAnimationTimeoutRef.current) {\n clearTimeout(pauseAnimationTimeoutRef.current)\n }\n\n pauseAnimationTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({ ...prev, showPauseAnimation: false }))\n }, 800)\n }, [])\n\n const triggerErrorAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: true }))\n\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n\n errorAnimationTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: false }))\n }, 600)\n }, [])\n\n const clearErrorAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: false }))\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n }, [])\n\n const triggerFadeTransition = useCallback(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: false,\n }))\n\n if (fadeTimeoutRef.current) {\n clearTimeout(fadeTimeoutRef.current)\n }\n\n fadeTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: true,\n }))\n }, 200)\n }, [])\n\n const setInitialAnimationState = useCallback(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: true,\n }))\n }, [])\n\n // Cleanup function\n const cleanup = useCallback(() => {\n if (pauseAnimationTimeoutRef.current) {\n clearTimeout(pauseAnimationTimeoutRef.current)\n }\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n if (fadeTimeoutRef.current) {\n clearTimeout(fadeTimeoutRef.current)\n }\n }, [])\n\n return {\n animationState,\n triggerPauseAnimation,\n triggerErrorAnimation,\n clearErrorAnimation,\n triggerFadeTransition,\n setInitialAnimationState,\n cleanup,\n }\n}\n"],"names":["useTimerAnimations","animationState","setAnimationState","useState","pauseAnimationTimeoutRef","useRef","errorAnimationTimeoutRef","fadeTimeoutRef","triggerPauseAnimation","useCallback","prev","triggerErrorAnimation","clearErrorAnimation","triggerFadeTransition","setInitialAnimationState","cleanup"],"mappings":";AAGO,MAAMA,IAAqB,MAAM;AACtC,QAAM,CAACC,GAAgBC,CAAiB,IAAIC,EAA8B;AAAA,IACxE,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,cAAc;AAAA,EAAA,CACf,GAGKC,IAA2BC,EAA8B,IAAI,GAC7DC,IAA2BD,EAA8B,IAAI,GAC7DE,IAAiBF,EAA8B,IAAI,GAEnDG,IAAwBC,EAAY,MAAM;AAC9C,IAAAP,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAO,GAE/DN,EAAyB,WAC3B,aAAaA,EAAyB,OAAO,GAG/CA,EAAyB,UAAU,WAAW,MAAM;AAClD,MAAAF,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAQ;AAAA,IACtE,GAAG,GAAG;AAAA,EACR,GAAG,CAAA,CAAE,GAECC,IAAwBF,EAAY,MAAM;AAC9C,IAAAP,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAO,GAE/DJ,EAAyB,WAC3B,aAAaA,EAAyB,OAAO,GAG/CA,EAAyB,UAAU,WAAW,MAAM;AAClD,MAAAJ,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAQ;AAAA,IACtE,GAAG,GAAG;AAAA,EACR,GAAG,CAAA,CAAE,GAECE,IAAsBH,EAAY,MAAM;AAC5C,IAAAP,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAQ,GAChEJ,EAAyB,WAC3B,aAAaA,EAAyB,OAAO;AAAA,EAEjD,GAAG,CAAA,CAAE,GAECO,IAAwBJ,EAAY,MAAM;AAC9C,IAAAP,EAAkB,CAACQ,OAAU;AAAA,MAC3B,GAAGA;AAAA,MACH,cAAc;AAAA,IAAA,EACd,GAEEH,EAAe,WACjB,aAAaA,EAAe,OAAO,GAGrCA,EAAe,UAAU,WAAW,MAAM;AACxC,MAAAL,EAAkB,CAACQ,OAAU;AAAA,QAC3B,GAAGA;AAAA,QACH,cAAc;AAAA,MAAA,EACd;AAAA,IACJ,GAAG,GAAG;AAAA,EACR,GAAG,CAAA,CAAE,GAECI,IAA2BL,EAAY,MAAM;AACjD,IAAAP,EAAkB,CAACQ,OAAU;AAAA,MAC3B,GAAGA;AAAA,MACH,cAAc;AAAA,IAAA,EACd;AAAA,EACJ,GAAG,CAAA,CAAE,GAGCK,IAAUN,EAAY,MAAM;AAChC,IAAIL,EAAyB,WAC3B,aAAaA,EAAyB,OAAO,GAE3CE,EAAyB,WAC3B,aAAaA,EAAyB,OAAO,GAE3CC,EAAe,WACjB,aAAaA,EAAe,OAAO;AAAA,EAEvC,GAAG,CAAA,CAAE;AAEL,SAAO;AAAA,IACL,gBAAAN;AAAA,IACA,uBAAAO;AAAA,IACA,uBAAAG;AAAA,IACA,qBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,SAAAC;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),F=require("../utils/interpolation.cjs"),q=({autoStart:R,hasError:d,onPauseAnimation:p,onErrorAnimation:P,onClearErrorAnimation:T})=>{const[n,s]=t.useState({elapsedTime:0,isRunning:!1,isPausedState:!1,currentProgress:0,wasRunningBeforeError:!1}),u=t.useRef(null),a=t.useRef(null),c=t.useRef(0),f=t.useRef(0),[i]=F.useInterpolation([0],{tension:80,friction:18,onChange:([e])=>{s(r=>({...r,currentProgress:e}))}}),w=t.useCallback((e=0)=>{const r=e/60%1*100;s(o=>({...o,elapsedTime:e,isPausedState:!1,currentProgress:r})),c.current=0,f.current=r,i.setImmediate([r]),R?(a.current=Date.now()-e*1e3,s(o=>({...o,isRunning:!0}))):a.current=null},[R,i]),g=t.useCallback(()=>{if(a.current&&n.isRunning){const r=(Date.now()-a.current)/1e3+c.current,o=r/60%1*100;i.setTarget([o]),s(l=>({...l,elapsedTime:Math.floor(r)}))}s(e=>({...e,isRunning:!1,isPausedState:!0})),p()},[n.isRunning,i,p]),m=t.useCallback(()=>{n.isPausedState&&(c.current=n.elapsedTime,a.current=Date.now(),s(e=>({...e,isRunning:!0,isPausedState:!1})))},[n.isPausedState,n.elapsedTime]),S=t.useCallback(()=>{s(e=>({...e,elapsedTime:0,isRunning:!1,isPausedState:!1,currentProgress:0})),c.current=0,a.current=null,f.current=0,i.setImmediate([0])},[i]),b=t.useCallback(()=>n.isPausedState,[n.isPausedState]);return t.useEffect(()=>{d?(n.isRunning&&(s(e=>({...e,wasRunningBeforeError:!0})),g()),P()):(n.wasRunningBeforeError&&!n.isRunning&&(s(e=>({...e,wasRunningBeforeError:!1})),m()),T())},[d,n.isRunning,n.wasRunningBeforeError,g,m,P,T]),t.useEffect(()=>{if(n.isRunning){const e=()=>{if(a.current){const o=(Date.now()-a.current)/1e3+c.current,l=o/60%1*100;s(E=>({...E,elapsedTime:Math.floor(o)})),Math.abs(l-f.current)>.1&&(i.setTarget([l]),f.current=l)}u.current=requestAnimationFrame(e)};u.current=requestAnimationFrame(e)}else u.current&&(cancelAnimationFrame(u.current),u.current=null);return()=>{u.current&&(cancelAnimationFrame(u.current),u.current=null)}},[n.isRunning,i]),t.useEffect(()=>{let e=null;const r=()=>{i.update(),e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>{e&&cancelAnimationFrame(e)}},[i]),{timerState:n,controls:{start:w,pause:g,resume:m,reset:S,isPaused:b}}};exports.useTimerLogic=q;
|
|
2
|
+
//# sourceMappingURL=useTimerLogic.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimerLogic.cjs","sources":["../../../src/components/Timer/useTimerLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useInterpolation } from \"../utils/interpolation\"\nimport type { TimerState } from \"./types\"\n\ninterface UseTimerLogicProps {\n autoStart: boolean\n hasError: boolean\n onPauseAnimation: () => void\n onErrorAnimation: () => void\n onClearErrorAnimation: () => void\n}\n\nexport const useTimerLogic = ({\n autoStart,\n hasError,\n onPauseAnimation,\n onErrorAnimation,\n onClearErrorAnimation,\n}: UseTimerLogicProps) => {\n const [timerState, setTimerState] = useState<TimerState>({\n elapsedTime: 0,\n isRunning: false,\n isPausedState: false,\n currentProgress: 0,\n wasRunningBeforeError: false,\n })\n\n // Timer-related refs\n const animationRef = useRef<number | null>(null)\n const startTimeRef = useRef<number | null>(null)\n const pausedTimeRef = useRef<number>(0)\n const lastProgressRef = useRef<number>(0)\n\n // Spring-based interpolator for smooth gauge progress animations\n const [progressInterpolator] = useInterpolation([0], {\n tension: 80,\n friction: 18,\n onChange: ([progress]) => {\n setTimerState((prev) => ({ ...prev, currentProgress: progress }))\n },\n })\n\n const start = useCallback(\n (elapsedSeconds: number = 0) => {\n const initialProgress = ((elapsedSeconds / 60) % 1) * 100\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: elapsedSeconds,\n isPausedState: false,\n currentProgress: initialProgress,\n }))\n pausedTimeRef.current = 0\n lastProgressRef.current = initialProgress\n\n progressInterpolator.setImmediate([initialProgress])\n\n if (autoStart) {\n startTimeRef.current = Date.now() - elapsedSeconds * 1000\n setTimerState((prev) => ({ ...prev, isRunning: true }))\n } else {\n startTimeRef.current = null\n }\n },\n [autoStart, progressInterpolator],\n )\n\n const pause = useCallback(() => {\n if (startTimeRef.current && timerState.isRunning) {\n const now = Date.now()\n const totalElapsed =\n (now - startTimeRef.current) / 1000 + pausedTimeRef.current\n const currentProgress = ((totalElapsed / 60) % 1) * 100\n progressInterpolator.setTarget([currentProgress])\n\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: Math.floor(totalElapsed),\n }))\n }\n\n setTimerState((prev) => ({\n ...prev,\n isRunning: false,\n isPausedState: true,\n }))\n onPauseAnimation()\n }, [timerState.isRunning, progressInterpolator, onPauseAnimation])\n\n const resume = useCallback(() => {\n if (timerState.isPausedState) {\n pausedTimeRef.current = timerState.elapsedTime\n startTimeRef.current = Date.now()\n setTimerState((prev) => ({\n ...prev,\n isRunning: true,\n isPausedState: false,\n }))\n }\n }, [timerState.isPausedState, timerState.elapsedTime])\n\n const reset = useCallback(() => {\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: 0,\n isRunning: false,\n isPausedState: false,\n currentProgress: 0,\n }))\n pausedTimeRef.current = 0\n startTimeRef.current = null\n lastProgressRef.current = 0\n progressInterpolator.setImmediate([0])\n }, [progressInterpolator])\n\n const isPaused = useCallback(() => {\n return timerState.isPausedState\n }, [timerState.isPausedState])\n\n // Handle error state changes\n useEffect(() => {\n if (hasError) {\n if (timerState.isRunning) {\n setTimerState((prev) => ({ ...prev, wasRunningBeforeError: true }))\n pause()\n }\n onErrorAnimation()\n } else {\n if (timerState.wasRunningBeforeError && !timerState.isRunning) {\n setTimerState((prev) => ({ ...prev, wasRunningBeforeError: false }))\n resume()\n }\n onClearErrorAnimation()\n }\n }, [\n hasError,\n timerState.isRunning,\n timerState.wasRunningBeforeError,\n pause,\n resume,\n onErrorAnimation,\n onClearErrorAnimation,\n ])\n\n // Main timer loop\n useEffect(() => {\n if (timerState.isRunning) {\n const updateTimer = () => {\n if (startTimeRef.current) {\n const now = Date.now()\n const totalElapsed =\n (now - startTimeRef.current) / 1000 + pausedTimeRef.current\n const currentProgress = ((totalElapsed / 60) % 1) * 100\n\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: Math.floor(totalElapsed),\n }))\n\n // Only update progress interpolator if progress changed significantly\n const progressDiff = Math.abs(\n currentProgress - lastProgressRef.current,\n )\n if (progressDiff > 0.1) {\n progressInterpolator.setTarget([currentProgress])\n lastProgressRef.current = currentProgress\n }\n }\n animationRef.current = requestAnimationFrame(updateTimer)\n }\n animationRef.current = requestAnimationFrame(updateTimer)\n } else {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = null\n }\n }\n\n return () => {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = null\n }\n }\n }, [timerState.isRunning, progressInterpolator])\n\n // Interpolation animation loop\n useEffect(() => {\n let interpolationAnimationId: number | null = null\n\n const animateInterpolation = () => {\n progressInterpolator.update()\n interpolationAnimationId = requestAnimationFrame(animateInterpolation)\n }\n\n interpolationAnimationId = requestAnimationFrame(animateInterpolation)\n\n return () => {\n if (interpolationAnimationId) {\n cancelAnimationFrame(interpolationAnimationId)\n }\n }\n }, [progressInterpolator])\n\n return {\n timerState,\n controls: {\n start,\n pause,\n resume,\n reset,\n isPaused,\n },\n }\n}\n"],"names":["useTimerLogic","autoStart","hasError","onPauseAnimation","onErrorAnimation","onClearErrorAnimation","timerState","setTimerState","useState","animationRef","useRef","startTimeRef","pausedTimeRef","lastProgressRef","progressInterpolator","useInterpolation","progress","prev","start","useCallback","elapsedSeconds","initialProgress","pause","totalElapsed","currentProgress","resume","reset","isPaused","useEffect","updateTimer","interpolationAnimationId","animateInterpolation"],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { useState as B, useRef as m, useCallback as l, useEffect as d } from "react";
|
|
2
|
+
import { useInterpolation as E } from "../utils/interpolation.js";
|
|
3
|
+
const b = ({
|
|
4
|
+
autoStart: p,
|
|
5
|
+
hasError: P,
|
|
6
|
+
onPauseAnimation: T,
|
|
7
|
+
onErrorAnimation: w,
|
|
8
|
+
onClearErrorAnimation: S
|
|
9
|
+
}) => {
|
|
10
|
+
const [n, t] = B({
|
|
11
|
+
elapsedTime: 0,
|
|
12
|
+
isRunning: !1,
|
|
13
|
+
isPausedState: !1,
|
|
14
|
+
currentProgress: 0,
|
|
15
|
+
wasRunningBeforeError: !1
|
|
16
|
+
}), i = m(null), a = m(null), o = m(0), f = m(0), [s] = E([0], {
|
|
17
|
+
tension: 80,
|
|
18
|
+
friction: 18,
|
|
19
|
+
onChange: ([e]) => {
|
|
20
|
+
t((r) => ({ ...r, currentProgress: e }));
|
|
21
|
+
}
|
|
22
|
+
}), F = l(
|
|
23
|
+
(e = 0) => {
|
|
24
|
+
const r = e / 60 % 1 * 100;
|
|
25
|
+
t((u) => ({
|
|
26
|
+
...u,
|
|
27
|
+
elapsedTime: e,
|
|
28
|
+
isPausedState: !1,
|
|
29
|
+
currentProgress: r
|
|
30
|
+
})), o.current = 0, f.current = r, s.setImmediate([r]), p ? (a.current = Date.now() - e * 1e3, t((u) => ({ ...u, isRunning: !0 }))) : a.current = null;
|
|
31
|
+
},
|
|
32
|
+
[p, s]
|
|
33
|
+
), g = l(() => {
|
|
34
|
+
if (a.current && n.isRunning) {
|
|
35
|
+
const r = (Date.now() - a.current) / 1e3 + o.current, u = r / 60 % 1 * 100;
|
|
36
|
+
s.setTarget([u]), t((c) => ({
|
|
37
|
+
...c,
|
|
38
|
+
elapsedTime: Math.floor(r)
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
t((e) => ({
|
|
42
|
+
...e,
|
|
43
|
+
isRunning: !1,
|
|
44
|
+
isPausedState: !0
|
|
45
|
+
})), T();
|
|
46
|
+
}, [n.isRunning, s, T]), R = l(() => {
|
|
47
|
+
n.isPausedState && (o.current = n.elapsedTime, a.current = Date.now(), t((e) => ({
|
|
48
|
+
...e,
|
|
49
|
+
isRunning: !0,
|
|
50
|
+
isPausedState: !1
|
|
51
|
+
})));
|
|
52
|
+
}, [n.isPausedState, n.elapsedTime]), D = l(() => {
|
|
53
|
+
t((e) => ({
|
|
54
|
+
...e,
|
|
55
|
+
elapsedTime: 0,
|
|
56
|
+
isRunning: !1,
|
|
57
|
+
isPausedState: !1,
|
|
58
|
+
currentProgress: 0
|
|
59
|
+
})), o.current = 0, a.current = null, f.current = 0, s.setImmediate([0]);
|
|
60
|
+
}, [s]), I = l(() => n.isPausedState, [n.isPausedState]);
|
|
61
|
+
return d(() => {
|
|
62
|
+
P ? (n.isRunning && (t((e) => ({ ...e, wasRunningBeforeError: !0 })), g()), w()) : (n.wasRunningBeforeError && !n.isRunning && (t((e) => ({ ...e, wasRunningBeforeError: !1 })), R()), S());
|
|
63
|
+
}, [
|
|
64
|
+
P,
|
|
65
|
+
n.isRunning,
|
|
66
|
+
n.wasRunningBeforeError,
|
|
67
|
+
g,
|
|
68
|
+
R,
|
|
69
|
+
w,
|
|
70
|
+
S
|
|
71
|
+
]), d(() => {
|
|
72
|
+
if (n.isRunning) {
|
|
73
|
+
const e = () => {
|
|
74
|
+
if (a.current) {
|
|
75
|
+
const u = (Date.now() - a.current) / 1e3 + o.current, c = u / 60 % 1 * 100;
|
|
76
|
+
t((A) => ({
|
|
77
|
+
...A,
|
|
78
|
+
elapsedTime: Math.floor(u)
|
|
79
|
+
})), Math.abs(
|
|
80
|
+
c - f.current
|
|
81
|
+
) > 0.1 && (s.setTarget([c]), f.current = c);
|
|
82
|
+
}
|
|
83
|
+
i.current = requestAnimationFrame(e);
|
|
84
|
+
};
|
|
85
|
+
i.current = requestAnimationFrame(e);
|
|
86
|
+
} else
|
|
87
|
+
i.current && (cancelAnimationFrame(i.current), i.current = null);
|
|
88
|
+
return () => {
|
|
89
|
+
i.current && (cancelAnimationFrame(i.current), i.current = null);
|
|
90
|
+
};
|
|
91
|
+
}, [n.isRunning, s]), d(() => {
|
|
92
|
+
let e = null;
|
|
93
|
+
const r = () => {
|
|
94
|
+
s.update(), e = requestAnimationFrame(r);
|
|
95
|
+
};
|
|
96
|
+
return e = requestAnimationFrame(r), () => {
|
|
97
|
+
e && cancelAnimationFrame(e);
|
|
98
|
+
};
|
|
99
|
+
}, [s]), {
|
|
100
|
+
timerState: n,
|
|
101
|
+
controls: {
|
|
102
|
+
start: F,
|
|
103
|
+
pause: g,
|
|
104
|
+
resume: R,
|
|
105
|
+
reset: D,
|
|
106
|
+
isPaused: I
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
export {
|
|
111
|
+
b as useTimerLogic
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=useTimerLogic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimerLogic.js","sources":["../../../src/components/Timer/useTimerLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useInterpolation } from \"../utils/interpolation\"\nimport type { TimerState } from \"./types\"\n\ninterface UseTimerLogicProps {\n autoStart: boolean\n hasError: boolean\n onPauseAnimation: () => void\n onErrorAnimation: () => void\n onClearErrorAnimation: () => void\n}\n\nexport const useTimerLogic = ({\n autoStart,\n hasError,\n onPauseAnimation,\n onErrorAnimation,\n onClearErrorAnimation,\n}: UseTimerLogicProps) => {\n const [timerState, setTimerState] = useState<TimerState>({\n elapsedTime: 0,\n isRunning: false,\n isPausedState: false,\n currentProgress: 0,\n wasRunningBeforeError: false,\n })\n\n // Timer-related refs\n const animationRef = useRef<number | null>(null)\n const startTimeRef = useRef<number | null>(null)\n const pausedTimeRef = useRef<number>(0)\n const lastProgressRef = useRef<number>(0)\n\n // Spring-based interpolator for smooth gauge progress animations\n const [progressInterpolator] = useInterpolation([0], {\n tension: 80,\n friction: 18,\n onChange: ([progress]) => {\n setTimerState((prev) => ({ ...prev, currentProgress: progress }))\n },\n })\n\n const start = useCallback(\n (elapsedSeconds: number = 0) => {\n const initialProgress = ((elapsedSeconds / 60) % 1) * 100\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: elapsedSeconds,\n isPausedState: false,\n currentProgress: initialProgress,\n }))\n pausedTimeRef.current = 0\n lastProgressRef.current = initialProgress\n\n progressInterpolator.setImmediate([initialProgress])\n\n if (autoStart) {\n startTimeRef.current = Date.now() - elapsedSeconds * 1000\n setTimerState((prev) => ({ ...prev, isRunning: true }))\n } else {\n startTimeRef.current = null\n }\n },\n [autoStart, progressInterpolator],\n )\n\n const pause = useCallback(() => {\n if (startTimeRef.current && timerState.isRunning) {\n const now = Date.now()\n const totalElapsed =\n (now - startTimeRef.current) / 1000 + pausedTimeRef.current\n const currentProgress = ((totalElapsed / 60) % 1) * 100\n progressInterpolator.setTarget([currentProgress])\n\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: Math.floor(totalElapsed),\n }))\n }\n\n setTimerState((prev) => ({\n ...prev,\n isRunning: false,\n isPausedState: true,\n }))\n onPauseAnimation()\n }, [timerState.isRunning, progressInterpolator, onPauseAnimation])\n\n const resume = useCallback(() => {\n if (timerState.isPausedState) {\n pausedTimeRef.current = timerState.elapsedTime\n startTimeRef.current = Date.now()\n setTimerState((prev) => ({\n ...prev,\n isRunning: true,\n isPausedState: false,\n }))\n }\n }, [timerState.isPausedState, timerState.elapsedTime])\n\n const reset = useCallback(() => {\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: 0,\n isRunning: false,\n isPausedState: false,\n currentProgress: 0,\n }))\n pausedTimeRef.current = 0\n startTimeRef.current = null\n lastProgressRef.current = 0\n progressInterpolator.setImmediate([0])\n }, [progressInterpolator])\n\n const isPaused = useCallback(() => {\n return timerState.isPausedState\n }, [timerState.isPausedState])\n\n // Handle error state changes\n useEffect(() => {\n if (hasError) {\n if (timerState.isRunning) {\n setTimerState((prev) => ({ ...prev, wasRunningBeforeError: true }))\n pause()\n }\n onErrorAnimation()\n } else {\n if (timerState.wasRunningBeforeError && !timerState.isRunning) {\n setTimerState((prev) => ({ ...prev, wasRunningBeforeError: false }))\n resume()\n }\n onClearErrorAnimation()\n }\n }, [\n hasError,\n timerState.isRunning,\n timerState.wasRunningBeforeError,\n pause,\n resume,\n onErrorAnimation,\n onClearErrorAnimation,\n ])\n\n // Main timer loop\n useEffect(() => {\n if (timerState.isRunning) {\n const updateTimer = () => {\n if (startTimeRef.current) {\n const now = Date.now()\n const totalElapsed =\n (now - startTimeRef.current) / 1000 + pausedTimeRef.current\n const currentProgress = ((totalElapsed / 60) % 1) * 100\n\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: Math.floor(totalElapsed),\n }))\n\n // Only update progress interpolator if progress changed significantly\n const progressDiff = Math.abs(\n currentProgress - lastProgressRef.current,\n )\n if (progressDiff > 0.1) {\n progressInterpolator.setTarget([currentProgress])\n lastProgressRef.current = currentProgress\n }\n }\n animationRef.current = requestAnimationFrame(updateTimer)\n }\n animationRef.current = requestAnimationFrame(updateTimer)\n } else {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = null\n }\n }\n\n return () => {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = null\n }\n }\n }, [timerState.isRunning, progressInterpolator])\n\n // Interpolation animation loop\n useEffect(() => {\n let interpolationAnimationId: number | null = null\n\n const animateInterpolation = () => {\n progressInterpolator.update()\n interpolationAnimationId = requestAnimationFrame(animateInterpolation)\n }\n\n interpolationAnimationId = requestAnimationFrame(animateInterpolation)\n\n return () => {\n if (interpolationAnimationId) {\n cancelAnimationFrame(interpolationAnimationId)\n }\n }\n }, [progressInterpolator])\n\n return {\n timerState,\n controls: {\n start,\n pause,\n resume,\n reset,\n isPaused,\n },\n }\n}\n"],"names":["useTimerLogic","autoStart","hasError","onPauseAnimation","onErrorAnimation","onClearErrorAnimation","timerState","setTimerState","useState","animationRef","useRef","startTimeRef","pausedTimeRef","lastProgressRef","progressInterpolator","useInterpolation","progress","prev","start","useCallback","elapsedSeconds","initialProgress","pause","totalElapsed","currentProgress","resume","reset","isPaused","useEffect","updateTimer","interpolationAnimationId","animateInterpolation"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=o=>{const e=Math.floor(o/86400),r=Math.floor(o%86400/3600),n=Math.floor(o%3600/60),a=o%60,t=[];return e>0?(t.push(e.toString()),t.push(r.toString().padStart(2,"0")),t.push(n.toString().padStart(2,"0")),t.push(a.toString().padStart(2,"0"))):r>0?(t.push(r.toString()),t.push(n.toString().padStart(2,"0")),t.push(a.toString().padStart(2,"0"))):(t.push(n.toString()),t.push(a.toString().padStart(2,"0"))),t.join(":")},f=(o,e)=>{const r=Math.floor(o/86400),n=Math.floor(o%86400/3600),a=Math.floor(o%3600/60),t=o%60;if(typeof Intl<"u"&&"DurationFormat"in Intl)try{const s={};return r>0&&(s.days=r),n>0&&(s.hours=n),a>0&&(s.minutes=a),(t>0||Object.keys(s).length===0)&&(s.seconds=t),new Intl.DurationFormat(e,{style:"narrow"}).format(s)}catch{}const i=[];return r>0&&i.push(`${r}d`),n>0&&i.push(`${n}h`),a>0&&i.push(`${a}m`),(t>0||i.length===0)&&i.push(`${t}s`),i.join(" ")};exports.formatTime=u;exports.formatTimeLocalized=f;
|
|
2
|
+
//# sourceMappingURL=utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../src/components/Timer/utils.ts"],"sourcesContent":["/**\n * Formats time in seconds to D:HH:MM:SS, H:MM:SS or MM:SS format\n * Used for the default (large) timer variant\n * Automatically includes days and hours as needed for clarity\n */\nexport const formatTime = (seconds: number): string => {\n const days = Math.floor(seconds / 86400)\n const hours = Math.floor((seconds % 86400) / 3600)\n const minutes = Math.floor((seconds % 3600) / 60)\n const remainingSeconds = seconds % 60\n\n // Build time parts array\n const parts: string[] = []\n\n if (days > 0) {\n parts.push(days.toString())\n parts.push(hours.toString().padStart(2, \"0\"))\n parts.push(minutes.toString().padStart(2, \"0\"))\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n } else if (hours > 0) {\n parts.push(hours.toString())\n parts.push(minutes.toString().padStart(2, \"0\"))\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n } else {\n parts.push(minutes.toString())\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n }\n\n return parts.join(\":\")\n}\n\n/**\n * Formats time in seconds to a localized human-readable format\n * Used for the small timer variant\n * Examples: \"2h 30m 15s\", \"45m 30s\", \"30s\"\n * Falls back to English units if Intl.DurationFormat is not available\n */\nexport const formatTimeLocalized = (\n seconds: number,\n locale?: string,\n): string => {\n const days = Math.floor(seconds / 86400)\n const hours = Math.floor((seconds % 86400) / 3600)\n const minutes = Math.floor((seconds % 3600) / 60)\n const remainingSeconds = seconds % 60\n\n // Try using Intl.DurationFormat if available (newer browsers)\n if (typeof Intl !== \"undefined\" && \"DurationFormat\" in Intl) {\n try {\n const duration: Record<string, number> = {}\n if (days > 0) duration.days = days\n if (hours > 0) duration.hours = hours\n if (minutes > 0) duration.minutes = minutes\n if (remainingSeconds > 0 || Object.keys(duration).length === 0) {\n duration.seconds = remainingSeconds\n }\n\n // @ts-expect-error\n // TODO: Remove suppression once Intl.DurationFormat is supported in TypeScript types.\n // See: https://github.com/microsoft/TypeScript/issues/53971\n // DurationFormat is a proposed API and not yet available in TypeScript's standard library types.\n const formatter = new Intl.DurationFormat(locale, { style: \"narrow\" })\n return formatter.format(duration)\n } catch {\n // Fall through to manual formatting\n }\n }\n\n // Manual formatting with compact units\n const parts: string[] = []\n\n if (days > 0) parts.push(`${days}d`)\n if (hours > 0) parts.push(`${hours}h`)\n if (minutes > 0) parts.push(`${minutes}m`)\n if (remainingSeconds > 0 || parts.length === 0) {\n parts.push(`${remainingSeconds}s`)\n }\n\n return parts.join(\" \")\n}\n\n/**\n * Calculates progress percentage for timer (minute-based cycles)\n */\nexport const calculateTimerProgress = (elapsedTime: number): number => {\n return ((elapsedTime / 60) % 1) * 100\n}\n"],"names":["formatTime","seconds","days","hours","minutes","remainingSeconds","parts","formatTimeLocalized","locale","duration"],"mappings":"gFAKO,MAAMA,EAAcC,GAA4B,CACrD,MAAMC,EAAO,KAAK,MAAMD,EAAU,KAAK,EACjCE,EAAQ,KAAK,MAAOF,EAAU,MAAS,IAAI,EAC3CG,EAAU,KAAK,MAAOH,EAAU,KAAQ,EAAE,EAC1CI,EAAmBJ,EAAU,GAG7BK,EAAkB,CAAA,EAExB,OAAIJ,EAAO,GACTI,EAAM,KAAKJ,EAAK,UAAU,EAC1BI,EAAM,KAAKH,EAAM,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,EAC5CG,EAAM,KAAKF,EAAQ,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,EAC9CE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,GAC9CF,EAAQ,GACjBG,EAAM,KAAKH,EAAM,UAAU,EAC3BG,EAAM,KAAKF,EAAQ,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,EAC9CE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,IAEvDC,EAAM,KAAKF,EAAQ,UAAU,EAC7BE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,GAGlDC,EAAM,KAAK,GAAG,CACvB,EAQaC,EAAsB,CACjCN,EACAO,IACW,CACX,MAAMN,EAAO,KAAK,MAAMD,EAAU,KAAK,EACjCE,EAAQ,KAAK,MAAOF,EAAU,MAAS,IAAI,EAC3CG,EAAU,KAAK,MAAOH,EAAU,KAAQ,EAAE,EAC1CI,EAAmBJ,EAAU,GAGnC,GAAI,OAAO,KAAS,KAAe,mBAAoB,KACrD,GAAI,CACF,MAAMQ,EAAmC,CAAA,EACzC,OAAIP,EAAO,IAAGO,EAAS,KAAOP,GAC1BC,EAAQ,IAAGM,EAAS,MAAQN,GAC5BC,EAAU,IAAGK,EAAS,QAAUL,IAChCC,EAAmB,GAAK,OAAO,KAAKI,CAAQ,EAAE,SAAW,KAC3DA,EAAS,QAAUJ,GAOH,IAAI,KAAK,eAAeG,EAAQ,CAAE,MAAO,SAAU,EACpD,OAAOC,CAAQ,CAClC,MAAQ,CAER,CAIF,MAAMH,EAAkB,CAAA,EAExB,OAAIJ,EAAO,GAAGI,EAAM,KAAK,GAAGJ,CAAI,GAAG,EAC/BC,EAAQ,GAAGG,EAAM,KAAK,GAAGH,CAAK,GAAG,EACjCC,EAAU,GAAGE,EAAM,KAAK,GAAGF,CAAO,GAAG,GACrCC,EAAmB,GAAKC,EAAM,SAAW,IAC3CA,EAAM,KAAK,GAAGD,CAAgB,GAAG,EAG5BC,EAAM,KAAK,GAAG,CACvB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const e = (o) => {
|
|
2
|
+
const h = Math.floor(o / 86400), r = Math.floor(o % 86400 / 3600), n = Math.floor(o % 3600 / 60), a = o % 60, t = [];
|
|
3
|
+
return h > 0 ? (t.push(h.toString()), t.push(r.toString().padStart(2, "0")), t.push(n.toString().padStart(2, "0")), t.push(a.toString().padStart(2, "0"))) : r > 0 ? (t.push(r.toString()), t.push(n.toString().padStart(2, "0")), t.push(a.toString().padStart(2, "0"))) : (t.push(n.toString()), t.push(a.toString().padStart(2, "0"))), t.join(":");
|
|
4
|
+
}, f = (o, h) => {
|
|
5
|
+
const r = Math.floor(o / 86400), n = Math.floor(o % 86400 / 3600), a = Math.floor(o % 3600 / 60), t = o % 60;
|
|
6
|
+
if (typeof Intl < "u" && "DurationFormat" in Intl)
|
|
7
|
+
try {
|
|
8
|
+
const s = {};
|
|
9
|
+
return r > 0 && (s.days = r), n > 0 && (s.hours = n), a > 0 && (s.minutes = a), (t > 0 || Object.keys(s).length === 0) && (s.seconds = t), new Intl.DurationFormat(h, { style: "narrow" }).format(s);
|
|
10
|
+
} catch {
|
|
11
|
+
}
|
|
12
|
+
const i = [];
|
|
13
|
+
return r > 0 && i.push(`${r}d`), n > 0 && i.push(`${n}h`), a > 0 && i.push(`${a}m`), (t > 0 || i.length === 0) && i.push(`${t}s`), i.join(" ");
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
e as formatTime,
|
|
17
|
+
f as formatTimeLocalized
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/components/Timer/utils.ts"],"sourcesContent":["/**\n * Formats time in seconds to D:HH:MM:SS, H:MM:SS or MM:SS format\n * Used for the default (large) timer variant\n * Automatically includes days and hours as needed for clarity\n */\nexport const formatTime = (seconds: number): string => {\n const days = Math.floor(seconds / 86400)\n const hours = Math.floor((seconds % 86400) / 3600)\n const minutes = Math.floor((seconds % 3600) / 60)\n const remainingSeconds = seconds % 60\n\n // Build time parts array\n const parts: string[] = []\n\n if (days > 0) {\n parts.push(days.toString())\n parts.push(hours.toString().padStart(2, \"0\"))\n parts.push(minutes.toString().padStart(2, \"0\"))\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n } else if (hours > 0) {\n parts.push(hours.toString())\n parts.push(minutes.toString().padStart(2, \"0\"))\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n } else {\n parts.push(minutes.toString())\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n }\n\n return parts.join(\":\")\n}\n\n/**\n * Formats time in seconds to a localized human-readable format\n * Used for the small timer variant\n * Examples: \"2h 30m 15s\", \"45m 30s\", \"30s\"\n * Falls back to English units if Intl.DurationFormat is not available\n */\nexport const formatTimeLocalized = (\n seconds: number,\n locale?: string,\n): string => {\n const days = Math.floor(seconds / 86400)\n const hours = Math.floor((seconds % 86400) / 3600)\n const minutes = Math.floor((seconds % 3600) / 60)\n const remainingSeconds = seconds % 60\n\n // Try using Intl.DurationFormat if available (newer browsers)\n if (typeof Intl !== \"undefined\" && \"DurationFormat\" in Intl) {\n try {\n const duration: Record<string, number> = {}\n if (days > 0) duration.days = days\n if (hours > 0) duration.hours = hours\n if (minutes > 0) duration.minutes = minutes\n if (remainingSeconds > 0 || Object.keys(duration).length === 0) {\n duration.seconds = remainingSeconds\n }\n\n // @ts-expect-error\n // TODO: Remove suppression once Intl.DurationFormat is supported in TypeScript types.\n // See: https://github.com/microsoft/TypeScript/issues/53971\n // DurationFormat is a proposed API and not yet available in TypeScript's standard library types.\n const formatter = new Intl.DurationFormat(locale, { style: \"narrow\" })\n return formatter.format(duration)\n } catch {\n // Fall through to manual formatting\n }\n }\n\n // Manual formatting with compact units\n const parts: string[] = []\n\n if (days > 0) parts.push(`${days}d`)\n if (hours > 0) parts.push(`${hours}h`)\n if (minutes > 0) parts.push(`${minutes}m`)\n if (remainingSeconds > 0 || parts.length === 0) {\n parts.push(`${remainingSeconds}s`)\n }\n\n return parts.join(\" \")\n}\n\n/**\n * Calculates progress percentage for timer (minute-based cycles)\n */\nexport const calculateTimerProgress = (elapsedTime: number): number => {\n return ((elapsedTime / 60) % 1) * 100\n}\n"],"names":["formatTime","seconds","days","hours","minutes","remainingSeconds","parts","formatTimeLocalized","locale","duration"],"mappings":"AAKO,MAAMA,IAAa,CAACC,MAA4B;AACrD,QAAMC,IAAO,KAAK,MAAMD,IAAU,KAAK,GACjCE,IAAQ,KAAK,MAAOF,IAAU,QAAS,IAAI,GAC3CG,IAAU,KAAK,MAAOH,IAAU,OAAQ,EAAE,GAC1CI,IAAmBJ,IAAU,IAG7BK,IAAkB,CAAA;AAExB,SAAIJ,IAAO,KACTI,EAAM,KAAKJ,EAAK,UAAU,GAC1BI,EAAM,KAAKH,EAAM,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,GAC5CG,EAAM,KAAKF,EAAQ,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,GAC9CE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,KAC9CF,IAAQ,KACjBG,EAAM,KAAKH,EAAM,UAAU,GAC3BG,EAAM,KAAKF,EAAQ,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,GAC9CE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,MAEvDC,EAAM,KAAKF,EAAQ,UAAU,GAC7BE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,IAGlDC,EAAM,KAAK,GAAG;AACvB,GAQaC,IAAsB,CACjCN,GACAO,MACW;AACX,QAAMN,IAAO,KAAK,MAAMD,IAAU,KAAK,GACjCE,IAAQ,KAAK,MAAOF,IAAU,QAAS,IAAI,GAC3CG,IAAU,KAAK,MAAOH,IAAU,OAAQ,EAAE,GAC1CI,IAAmBJ,IAAU;AAGnC,MAAI,OAAO,OAAS,OAAe,oBAAoB;AACrD,QAAI;AACF,YAAMQ,IAAmC,CAAA;AACzC,aAAIP,IAAO,MAAGO,EAAS,OAAOP,IAC1BC,IAAQ,MAAGM,EAAS,QAAQN,IAC5BC,IAAU,MAAGK,EAAS,UAAUL,KAChCC,IAAmB,KAAK,OAAO,KAAKI,CAAQ,EAAE,WAAW,OAC3DA,EAAS,UAAUJ,IAOH,IAAI,KAAK,eAAeG,GAAQ,EAAE,OAAO,UAAU,EACpD,OAAOC,CAAQ;AAAA,IAClC,QAAQ;AAAA,IAER;AAIF,QAAMH,IAAkB,CAAA;AAExB,SAAIJ,IAAO,KAAGI,EAAM,KAAK,GAAGJ,CAAI,GAAG,GAC/BC,IAAQ,KAAGG,EAAM,KAAK,GAAGH,CAAK,GAAG,GACjCC,IAAU,KAAGE,EAAM,KAAK,GAAGF,CAAO,GAAG,IACrCC,IAAmB,KAAKC,EAAM,WAAW,MAC3CA,EAAM,KAAK,GAAGD,CAAgB,GAAG,GAG5BC,EAAM,KAAK,GAAG;AACvB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timer.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/components/Timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timer.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Stack from "@mui/material/Stack";
|
|
2
2
|
import type React from "react";
|
|
3
3
|
export declare const TransparentOverlay: (props: React.ComponentProps<typeof Stack>) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export default TransparentOverlay;
|
|
4
5
|
//# sourceMappingURL=TransparentOverlay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransparentOverlay.d.ts","sourceRoot":"","sources":["../../src/components/TransparentOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,4CAoB1C,CAAA"}
|
|
1
|
+
{"version":3,"file":"TransparentOverlay.d.ts","sourceRoot":"","sources":["../../src/components/TransparentOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,4CAoB1C,CAAA;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),s=require("@mui/material/styles"),d=require("@mui/material/Stack"),u=require("@mui/material/Typography"),b=require("@mui/material/Slider"),m=require("lodash-es/isNumber"),h=require("mobx-react-lite"),S=require("react-i18next"),x=h.observer(e=>{var o,a,c;const r=s.useTheme(),{store:i}=e,{t:n}=S.useTranslation();function y(v,l){l===e.velocity||!m(l)||e.onVelocityChange(l,e.useDegree)}return t.jsxs(d,{direction:"row",gap:2,alignItems:"center","data-testid":"velocity-slider","aria-label":"velocity-slider",children:[i.showVelocityLegend&&t.jsx(u,{sx:{color:(c=(a=(o=r.componentsExt)==null?void 0:o.JoggingPanel)==null?void 0:a.VelocitySlider)==null?void 0:c.sliderLegendColor,fontSize:"14px"},children:n("Jogging.Velocity.bt")}),t.jsx(b,{value:e.velocity,color:"secondary",onChange:y,min:e.min,max:e.max,"aria-labelledby":"input-slider",disabled:e.disabled,sx:{"& .MuiSlider-valueLabelOpen":{zIndex:100,backgroundColor:"transparent",top:"0px"}}}),i.showVelocitySliderLabel&&(e.renderValue?e.renderValue(e.velocity):t.jsx(g,{value:e.velocity.toString()}))]})});function g({value:e,sx:r}){var n;const i=s.useTheme();return t.jsx(d,{direction:"row",justifyContent:"center",alignItems:"center",gap:"5px",sx:{padding:"6px 12px",background:(n=i.palette.backgroundPaperElevation)==null?void 0:n[8],borderRadius:"10px",minWidth:"111px",...r},children:t.jsx(u,{component:"span",sx:{textAlign:"right",fontSize:"14px",opacity:.8,color:i.palette.text.primary,whiteSpace:"nowrap"},children:e})})}exports.VelocitySlider=x;exports.VelocitySliderLabel=g;exports.default=x;
|
|
2
|
+
//# sourceMappingURL=VelocitySlider.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VelocitySlider.cjs","sources":["../../src/components/VelocitySlider.tsx"],"sourcesContent":["import { useTheme, type SxProps } from \"@mui/material/styles\"\nimport Stack from \"@mui/material/Stack\"\nimport Typography from \"@mui/material/Typography\"\nimport Slider from \"@mui/material/Slider\"\nimport isNumber from \"lodash-es/isNumber\"\nimport { observer } from \"mobx-react-lite\"\nimport type { ReactNode } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport type { JoggingStore } from \"./jogging/JoggingStore\"\n\ntype VelocitySliderProps = {\n min: number\n max: number\n velocity: number\n onVelocityChange: (newVelocity: number, useDegree: boolean) => void\n disabled?: boolean\n renderValue?: (value: number) => ReactNode\n useDegree: boolean\n store: JoggingStore\n}\n\n/** A slider for controlling the movement velocity of a robot */\nexport const VelocitySlider = observer((props: VelocitySliderProps) => {\n const theme = useTheme()\n const { store } = props\n const { t } = useTranslation()\n\n function onSliderChange(_event: Event, newVelocity: number | number[]) {\n if (newVelocity === props.velocity || !isNumber(newVelocity)) return\n\n props.onVelocityChange(newVelocity, props.useDegree)\n }\n\n return (\n <Stack\n direction=\"row\"\n gap={2}\n alignItems=\"center\"\n data-testid=\"velocity-slider\"\n aria-label=\"velocity-slider\"\n >\n {store.showVelocityLegend && (\n <Typography\n sx={{\n color:\n theme.componentsExt?.JoggingPanel?.VelocitySlider\n ?.sliderLegendColor,\n fontSize: \"14px\",\n }}\n >\n {t(\"Jogging.Velocity.bt\")}\n </Typography>\n )}\n <Slider\n value={props.velocity}\n color=\"secondary\"\n onChange={onSliderChange}\n min={props.min}\n max={props.max}\n aria-labelledby=\"input-slider\"\n disabled={props.disabled}\n sx={{\n \"& .MuiSlider-valueLabelOpen\": {\n zIndex: 100,\n backgroundColor: \"transparent\",\n top: \"0px\",\n },\n }}\n />\n {store.showVelocitySliderLabel &&\n (props.renderValue ? (\n props.renderValue(props.velocity)\n ) : (\n <VelocitySliderLabel value={props.velocity.toString()} />\n ))}\n </Stack>\n )\n})\n\ntype VelocitySliderLabelProps = {\n value: string\n sx?: SxProps\n}\n\nexport function VelocitySliderLabel({ value, sx }: VelocitySliderLabelProps) {\n const theme = useTheme()\n return (\n <Stack\n direction={\"row\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n gap={\"5px\"}\n sx={{\n padding: \"6px 12px\",\n background: theme.palette.backgroundPaperElevation?.[8],\n borderRadius: \"10px\",\n minWidth: \"111px\",\n ...sx,\n }}\n >\n <Typography\n component=\"span\"\n sx={{\n textAlign: \"right\",\n fontSize: \"14px\",\n opacity: 0.8,\n color: theme.palette.text.primary,\n whiteSpace: \"nowrap\",\n }}\n >\n {value}\n </Typography>\n </Stack>\n )\n}\n\nexport default VelocitySlider\n"],"names":["VelocitySlider","observer","props","theme","useTheme","store","t","useTranslation","onSliderChange","_event","newVelocity","isNumber","jsxs","Stack","jsx","Typography","_c","_b","_a","Slider","VelocitySliderLabel","value","sx"],"mappings":"oXAsBaA,EAAiBC,EAAAA,SAAUC,GAA+B,WACrE,MAAMC,EAAQC,EAAAA,SAAA,EACR,CAAE,MAAAC,GAAUH,EACZ,CAAE,EAAAI,CAAA,EAAMC,iBAAA,EAEd,SAASC,EAAeC,EAAeC,EAAgC,CACjEA,IAAgBR,EAAM,UAAY,CAACS,EAASD,CAAW,GAE3DR,EAAM,iBAAiBQ,EAAaR,EAAM,SAAS,CACrD,CAEA,OACEU,EAAAA,KAACC,EAAA,CACC,UAAU,MACV,IAAK,EACL,WAAW,SACX,cAAY,kBACZ,aAAW,kBAEV,SAAA,CAAAR,EAAM,oBACLS,EAAAA,IAACC,EAAA,CACC,GAAI,CACF,OACEC,GAAAC,GAAAC,EAAAf,EAAM,gBAAN,YAAAe,EAAqB,eAArB,YAAAD,EAAmC,iBAAnC,YAAAD,EACI,kBACN,SAAU,MAAA,EAGX,WAAE,qBAAqB,CAAA,CAAA,EAG5BF,EAAAA,IAACK,EAAA,CACC,MAAOjB,EAAM,SACb,MAAM,YACN,SAAUM,EACV,IAAKN,EAAM,IACX,IAAKA,EAAM,IACX,kBAAgB,eAChB,SAAUA,EAAM,SAChB,GAAI,CACF,8BAA+B,CAC7B,OAAQ,IACR,gBAAiB,cACjB,IAAK,KAAA,CACP,CACF,CAAA,EAEDG,EAAM,0BACJH,EAAM,YACLA,EAAM,YAAYA,EAAM,QAAQ,QAE/BkB,EAAA,CAAoB,MAAOlB,EAAM,SAAS,WAAY,EAAA,CAAA,CAAA,CAIjE,CAAC,EAOM,SAASkB,EAAoB,CAAE,MAAAC,EAAO,GAAAC,GAAgC,OAC3E,MAAMnB,EAAQC,EAAAA,SAAA,EACd,OACEU,EAAAA,IAACD,EAAA,CACC,UAAW,MACX,eAAgB,SAChB,WAAY,SACZ,IAAK,MACL,GAAI,CACF,QAAS,WACT,YAAYK,EAAAf,EAAM,QAAQ,2BAAd,YAAAe,EAAyC,GACrD,aAAc,OACd,SAAU,QACV,GAAGI,CAAA,EAGL,SAAAR,EAAAA,IAACC,EAAA,CACC,UAAU,OACV,GAAI,CACF,UAAW,QACX,SAAU,OACV,QAAS,GACT,MAAOZ,EAAM,QAAQ,KAAK,QAC1B,WAAY,QAAA,EAGb,SAAAkB,CAAA,CAAA,CACH,CAAA,CAGN"}
|
|
@@ -20,5 +20,5 @@ type VelocitySliderLabelProps = {
|
|
|
20
20
|
sx?: SxProps;
|
|
21
21
|
};
|
|
22
22
|
export declare function VelocitySliderLabel({ value, sx }: VelocitySliderLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
export
|
|
23
|
+
export default VelocitySlider;
|
|
24
24
|
//# sourceMappingURL=VelocitySlider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VelocitySlider.d.ts","sourceRoot":"","sources":["../../src/components/VelocitySlider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAM7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAA;IAC1C,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,cAAc,WAAoB,mBAAmB;;CAuDhE,CAAA;AAEF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,wBAAwB,2CA8B1E"}
|
|
1
|
+
{"version":3,"file":"VelocitySlider.d.ts","sourceRoot":"","sources":["../../src/components/VelocitySlider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAM7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAA;IAC1C,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,cAAc,WAAoB,mBAAmB;;CAuDhE,CAAA;AAEF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,wBAAwB,2CA8B1E;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { jsxs as u, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { useTheme as d } from "@mui/material/styles";
|
|
3
|
+
import m from "@mui/material/Stack";
|
|
4
|
+
import s from "@mui/material/Typography";
|
|
5
|
+
import x from "@mui/material/Slider";
|
|
6
|
+
import y from "lodash-es/isNumber";
|
|
7
|
+
import { observer as h } from "mobx-react-lite";
|
|
8
|
+
import { useTranslation as b } from "react-i18next";
|
|
9
|
+
const z = h((e) => {
|
|
10
|
+
var l, a, c;
|
|
11
|
+
const r = d(), { store: t } = e, { t: o } = b();
|
|
12
|
+
function g(p, n) {
|
|
13
|
+
n === e.velocity || !y(n) || e.onVelocityChange(n, e.useDegree);
|
|
14
|
+
}
|
|
15
|
+
return /* @__PURE__ */ u(
|
|
16
|
+
m,
|
|
17
|
+
{
|
|
18
|
+
direction: "row",
|
|
19
|
+
gap: 2,
|
|
20
|
+
alignItems: "center",
|
|
21
|
+
"data-testid": "velocity-slider",
|
|
22
|
+
"aria-label": "velocity-slider",
|
|
23
|
+
children: [
|
|
24
|
+
t.showVelocityLegend && /* @__PURE__ */ i(
|
|
25
|
+
s,
|
|
26
|
+
{
|
|
27
|
+
sx: {
|
|
28
|
+
color: (c = (a = (l = r.componentsExt) == null ? void 0 : l.JoggingPanel) == null ? void 0 : a.VelocitySlider) == null ? void 0 : c.sliderLegendColor,
|
|
29
|
+
fontSize: "14px"
|
|
30
|
+
},
|
|
31
|
+
children: o("Jogging.Velocity.bt")
|
|
32
|
+
}
|
|
33
|
+
),
|
|
34
|
+
/* @__PURE__ */ i(
|
|
35
|
+
x,
|
|
36
|
+
{
|
|
37
|
+
value: e.velocity,
|
|
38
|
+
color: "secondary",
|
|
39
|
+
onChange: g,
|
|
40
|
+
min: e.min,
|
|
41
|
+
max: e.max,
|
|
42
|
+
"aria-labelledby": "input-slider",
|
|
43
|
+
disabled: e.disabled,
|
|
44
|
+
sx: {
|
|
45
|
+
"& .MuiSlider-valueLabelOpen": {
|
|
46
|
+
zIndex: 100,
|
|
47
|
+
backgroundColor: "transparent",
|
|
48
|
+
top: "0px"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
),
|
|
53
|
+
t.showVelocitySliderLabel && (e.renderValue ? e.renderValue(e.velocity) : /* @__PURE__ */ i(f, { value: e.velocity.toString() }))
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
});
|
|
58
|
+
function f({ value: e, sx: r }) {
|
|
59
|
+
var o;
|
|
60
|
+
const t = d();
|
|
61
|
+
return /* @__PURE__ */ i(
|
|
62
|
+
m,
|
|
63
|
+
{
|
|
64
|
+
direction: "row",
|
|
65
|
+
justifyContent: "center",
|
|
66
|
+
alignItems: "center",
|
|
67
|
+
gap: "5px",
|
|
68
|
+
sx: {
|
|
69
|
+
padding: "6px 12px",
|
|
70
|
+
background: (o = t.palette.backgroundPaperElevation) == null ? void 0 : o[8],
|
|
71
|
+
borderRadius: "10px",
|
|
72
|
+
minWidth: "111px",
|
|
73
|
+
...r
|
|
74
|
+
},
|
|
75
|
+
children: /* @__PURE__ */ i(
|
|
76
|
+
s,
|
|
77
|
+
{
|
|
78
|
+
component: "span",
|
|
79
|
+
sx: {
|
|
80
|
+
textAlign: "right",
|
|
81
|
+
fontSize: "14px",
|
|
82
|
+
opacity: 0.8,
|
|
83
|
+
color: t.palette.text.primary,
|
|
84
|
+
whiteSpace: "nowrap"
|
|
85
|
+
},
|
|
86
|
+
children: e
|
|
87
|
+
}
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
export {
|
|
93
|
+
z as VelocitySlider,
|
|
94
|
+
f as VelocitySliderLabel,
|
|
95
|
+
z as default
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=VelocitySlider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VelocitySlider.js","sources":["../../src/components/VelocitySlider.tsx"],"sourcesContent":["import { useTheme, type SxProps } from \"@mui/material/styles\"\nimport Stack from \"@mui/material/Stack\"\nimport Typography from \"@mui/material/Typography\"\nimport Slider from \"@mui/material/Slider\"\nimport isNumber from \"lodash-es/isNumber\"\nimport { observer } from \"mobx-react-lite\"\nimport type { ReactNode } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport type { JoggingStore } from \"./jogging/JoggingStore\"\n\ntype VelocitySliderProps = {\n min: number\n max: number\n velocity: number\n onVelocityChange: (newVelocity: number, useDegree: boolean) => void\n disabled?: boolean\n renderValue?: (value: number) => ReactNode\n useDegree: boolean\n store: JoggingStore\n}\n\n/** A slider for controlling the movement velocity of a robot */\nexport const VelocitySlider = observer((props: VelocitySliderProps) => {\n const theme = useTheme()\n const { store } = props\n const { t } = useTranslation()\n\n function onSliderChange(_event: Event, newVelocity: number | number[]) {\n if (newVelocity === props.velocity || !isNumber(newVelocity)) return\n\n props.onVelocityChange(newVelocity, props.useDegree)\n }\n\n return (\n <Stack\n direction=\"row\"\n gap={2}\n alignItems=\"center\"\n data-testid=\"velocity-slider\"\n aria-label=\"velocity-slider\"\n >\n {store.showVelocityLegend && (\n <Typography\n sx={{\n color:\n theme.componentsExt?.JoggingPanel?.VelocitySlider\n ?.sliderLegendColor,\n fontSize: \"14px\",\n }}\n >\n {t(\"Jogging.Velocity.bt\")}\n </Typography>\n )}\n <Slider\n value={props.velocity}\n color=\"secondary\"\n onChange={onSliderChange}\n min={props.min}\n max={props.max}\n aria-labelledby=\"input-slider\"\n disabled={props.disabled}\n sx={{\n \"& .MuiSlider-valueLabelOpen\": {\n zIndex: 100,\n backgroundColor: \"transparent\",\n top: \"0px\",\n },\n }}\n />\n {store.showVelocitySliderLabel &&\n (props.renderValue ? (\n props.renderValue(props.velocity)\n ) : (\n <VelocitySliderLabel value={props.velocity.toString()} />\n ))}\n </Stack>\n )\n})\n\ntype VelocitySliderLabelProps = {\n value: string\n sx?: SxProps\n}\n\nexport function VelocitySliderLabel({ value, sx }: VelocitySliderLabelProps) {\n const theme = useTheme()\n return (\n <Stack\n direction={\"row\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n gap={\"5px\"}\n sx={{\n padding: \"6px 12px\",\n background: theme.palette.backgroundPaperElevation?.[8],\n borderRadius: \"10px\",\n minWidth: \"111px\",\n ...sx,\n }}\n >\n <Typography\n component=\"span\"\n sx={{\n textAlign: \"right\",\n fontSize: \"14px\",\n opacity: 0.8,\n color: theme.palette.text.primary,\n whiteSpace: \"nowrap\",\n }}\n >\n {value}\n </Typography>\n </Stack>\n )\n}\n\nexport default VelocitySlider\n"],"names":["VelocitySlider","observer","props","theme","useTheme","store","t","useTranslation","onSliderChange","_event","newVelocity","isNumber","jsxs","Stack","jsx","Typography","_c","_b","_a","Slider","VelocitySliderLabel","value","sx"],"mappings":";;;;;;;;AAsBO,MAAMA,IAAiBC,EAAS,CAACC,MAA+B;;AACrE,QAAMC,IAAQC,EAAA,GACR,EAAE,OAAAC,MAAUH,GACZ,EAAE,GAAAI,EAAA,IAAMC,EAAA;AAEd,WAASC,EAAeC,GAAeC,GAAgC;AACrE,IAAIA,MAAgBR,EAAM,YAAY,CAACS,EAASD,CAAW,KAE3DR,EAAM,iBAAiBQ,GAAaR,EAAM,SAAS;AAAA,EACrD;AAEA,SACE,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,KAAK;AAAA,MACL,YAAW;AAAA,MACX,eAAY;AAAA,MACZ,cAAW;AAAA,MAEV,UAAA;AAAA,QAAAR,EAAM,sBACL,gBAAAS;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,QACEC,KAAAC,KAAAC,IAAAf,EAAM,kBAAN,gBAAAe,EAAqB,iBAArB,gBAAAD,EAAmC,mBAAnC,gBAAAD,EACI;AAAA,cACN,UAAU;AAAA,YAAA;AAAA,YAGX,YAAE,qBAAqB;AAAA,UAAA;AAAA,QAAA;AAAA,QAG5B,gBAAAF;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,OAAOjB,EAAM;AAAA,YACb,OAAM;AAAA,YACN,UAAUM;AAAA,YACV,KAAKN,EAAM;AAAA,YACX,KAAKA,EAAM;AAAA,YACX,mBAAgB;AAAA,YAChB,UAAUA,EAAM;AAAA,YAChB,IAAI;AAAA,cACF,+BAA+B;AAAA,gBAC7B,QAAQ;AAAA,gBACR,iBAAiB;AAAA,gBACjB,KAAK;AAAA,cAAA;AAAA,YACP;AAAA,UACF;AAAA,QAAA;AAAA,QAEDG,EAAM,4BACJH,EAAM,cACLA,EAAM,YAAYA,EAAM,QAAQ,sBAE/BkB,GAAA,EAAoB,OAAOlB,EAAM,SAAS,YAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIjE,CAAC;AAOM,SAASkB,EAAoB,EAAE,OAAAC,GAAO,IAAAC,KAAgC;;AAC3E,QAAMnB,IAAQC,EAAA;AACd,SACE,gBAAAU;AAAA,IAACD;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,KAAK;AAAA,MACL,IAAI;AAAA,QACF,SAAS;AAAA,QACT,aAAYK,IAAAf,EAAM,QAAQ,6BAAd,gBAAAe,EAAyC;AAAA,QACrD,cAAc;AAAA,QACd,UAAU;AAAA,QACV,GAAGI;AAAA,MAAA;AAAA,MAGL,UAAA,gBAAAR;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAI;AAAA,YACF,WAAW;AAAA,YACX,UAAU;AAAA,YACV,SAAS;AAAA,YACT,OAAOZ,EAAM,QAAQ,KAAK;AAAA,YAC1B,YAAY;AAAA,UAAA;AAAA,UAGb,UAAAkB;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),o=require("@mui/material/FormControl"),l=require("@mui/material/InputLabel"),n=require("@mui/material/Select"),i=require("@mui/material/styles"),u=i.styled(o)(({theme:e})=>({"&.MuiFormControl-root":{".MuiSelect-select":{paddingTop:"20px",paddingLeft:"12px"},label:{pointerEvents:"none",fontSize:"16px"},".MuiInputLabel-root":{"&.Mui-focused":{color:e.palette.text.primary}}}}));function d({labelValue:e,...r}){return t.jsxs(u,{fullWidth:!0,variant:"filled",children:[t.jsx(l,{id:r.labelId,children:e}),t.jsx(n,{...r})]})}exports.default=d;
|
|
2
|
+
//# sourceMappingURL=AdornedSelect.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdornedSelect.cjs","sources":["../../../../src/components/experimental/utils/AdornedSelect.tsx"],"sourcesContent":["import FormControl from \"@mui/material/FormControl\"\nimport InputLabel from \"@mui/material/InputLabel\"\nimport Select, { type SelectProps } from \"@mui/material/Select\"\nimport { styled } from \"@mui/material/styles\"\nconst AdornedFormControl = styled(FormControl)(({ theme }) => ({\n \"&.MuiFormControl-root\": {\n \".MuiSelect-select\": {\n paddingTop: \"20px\",\n paddingLeft: \"12px\",\n },\n label: {\n pointerEvents: \"none\",\n fontSize: \"16px\",\n },\n \".MuiInputLabel-root\": {\n \"&.Mui-focused\": {\n color: theme.palette.text.primary,\n },\n },\n },\n}))\n\ntype AdornedSelectProps = {\n labelValue: string\n labelId: string\n} & SelectProps\n\nexport default function AdornedSelect({\n labelValue,\n ...props\n}: AdornedSelectProps) {\n return (\n <AdornedFormControl fullWidth variant=\"filled\">\n <InputLabel id={props.labelId}>{labelValue}</InputLabel>\n <Select {...props} />\n </AdornedFormControl>\n )\n}\n"],"names":["AdornedFormControl","styled","FormControl","theme","AdornedSelect","labelValue","props","jsxs","jsx","InputLabel","Select"],"mappings":"kSAIMA,EAAqBC,EAAAA,OAAOC,CAAW,EAAE,CAAC,CAAE,MAAAC,MAAa,CAC7D,wBAAyB,CACvB,oBAAqB,CACnB,WAAY,OACZ,YAAa,MAAA,EAEf,MAAO,CACL,cAAe,OACf,SAAU,MAAA,EAEZ,sBAAuB,CACrB,gBAAiB,CACf,MAAOA,EAAM,QAAQ,KAAK,OAAA,CAC5B,CACF,CAEJ,EAAE,EAOF,SAAwBC,EAAc,CACpC,WAAAC,EACA,GAAGC,CACL,EAAuB,CACrB,OACEC,EAAAA,KAACP,EAAA,CAAmB,UAAS,GAAC,QAAQ,SACpC,SAAA,CAAAQ,EAAAA,IAACC,EAAA,CAAW,GAAIH,EAAM,QAAU,SAAAD,EAAW,EAC3CG,MAACE,EAAA,CAAQ,GAAGJ,CAAA,CAAO,CAAA,EACrB,CAEJ"}
|