use crate::animation::Easing;
pub struct SpinnerDefaults;
impl SpinnerDefaults {
pub const DURATION_MS: u64 = 2000;
pub const EASING: Easing = Easing::Linear;
}
pub struct PulseDotsDefaults;
impl PulseDotsDefaults {
pub const DURATION_MS: u64 = 1200;
pub const COUNT: usize = 3;
pub const STAGGER_DELAY_MS: u64 = 160;
pub const SCALE_FROM: f64 = 0.0;
pub const SCALE_TO: f64 = 1.0;
pub const EASING: Easing = Easing::EaseInOutQuad;
}
pub struct BarWaveDefaults;
impl BarWaveDefaults {
pub const DURATION_MS: u64 = 1200;
pub const COUNT: usize = 5;
pub const STAGGER_DELAY_MS: u64 = 100;
pub const SCALE_FROM: f64 = 0.4;
pub const SCALE_TO: f64 = 1.0;
pub const EASING: Easing = Easing::EaseInOutQuad;
}
pub struct ProgressRingDefaults;
impl ProgressRingDefaults {
pub const DURATION_MS: u64 = 350;
pub const RADIUS: f64 = 52.0;
pub const STROKE_WIDTH: f64 = 8.0;
pub const EASING: Easing = Easing::EaseInOutQuad;
}
pub struct ProgressBarDefaults;
impl ProgressBarDefaults {
pub const DURATION_MS: u64 = 400;
pub const EASING: Easing = Easing::EaseOutQuad;
}
pub struct IndeterminateBarDefaults;
impl IndeterminateBarDefaults {
pub const DURATION_MS: u64 = 2000;
pub const SCALE_X_FROM: f64 = 0.3;
pub const SCALE_X_MID: f64 = 1.0;
pub const SCALE_X_END: f64 = 0.3;
pub const EASING: Easing = Easing::CubicBezier(0.65, 0.815, 0.735, 0.395);
}
pub struct ShimmerDefaults;
impl ShimmerDefaults {
pub const DURATION_MS: u64 = 1500;
pub const POSITION_FROM: f64 = 200.0;
pub const POSITION_TO: f64 = -200.0;
pub const EASING: Easing = Easing::Linear;
}
pub struct FadingDotsDefaults;
impl FadingDotsDefaults {
pub const DURATION_MS: u64 = 1200;
pub const COUNT: usize = 8;
pub const STAGGER_DELAY_MS: u64 = 100;
pub const OPACITY_PEAK_PERCENT: f64 = 40.0;
pub const EASING: Easing = Easing::EaseInOutQuad;
}
pub struct SpinningArcDefaults;
impl SpinningArcDefaults {
pub const ROTATION_DURATION_MS: u64 = 2000;
pub const ARC_DURATION_MS: u64 = 1500;
pub const DASH_ARRAY_MIN: f64 = 1.0;
pub const DASH_ARRAY_MAX: f64 = 90.0;
pub const PATH_LENGTH: f64 = 150.0;
pub const EASING: Easing = Easing::EaseInOutCubic;
}
pub struct BouncingBallDefaults;
impl BouncingBallDefaults {
pub const DURATION_MS: u64 = 600;
pub const BOUNCE_DISTANCE: f64 = 16.0;
pub const EASING: Easing = Easing::EaseInQuad;
}
pub struct RippleRingsDefaults;
impl RippleRingsDefaults {
pub const DURATION_MS: u64 = 4000;
pub const COUNT: usize = 4;
pub const STAGGER_DELAY_MS: u64 = 1000;
pub const SCALE_FROM: f64 = 0.33;
pub const SCALE_TO: f64 = 1.0;
pub const OPACITY_FROM: f64 = 1.0;
pub const OPACITY_TO: f64 = 0.0;
pub const EASING: Easing = Easing::CubicBezier(0.455, 0.03, 0.515, 0.955);
}
pub struct WaveDotsDefaults;
impl WaveDotsDefaults {
pub const DURATION_MS: u64 = 1400;
pub const COUNT: usize = 4;
pub const STAGGER_DELAY_MS: u64 = 200;
pub const TRANSLATE_Y: f64 = -16.0;
pub const OPACITY_FROM: f64 = 0.9;
pub const OPACITY_TO: f64 = 0.1;
pub const EASING: Easing = Easing::EaseInOutQuad;
}
pub struct PathDrawDefaults;
impl PathDrawDefaults {
pub const DURATION_MS: u64 = 3000;
pub const HOLD_DURATION_MS: u64 = 1000;
pub const EASING: Easing = Easing::EaseInOutQuad;
}
pub struct SegmentSpinnerDefaults;
impl SegmentSpinnerDefaults {
pub const DURATION_MS: u64 = 1200;
pub const SEGMENT_COUNT: usize = 12;
pub const EASING: Easing = Easing::EaseInOutQuad;
}
pub struct PulseRingDefaults;
impl PulseRingDefaults {
pub const DURATION_MS: u64 = 1500;
pub const SCALE_FROM: f64 = 0.0;
pub const SCALE_TO: f64 = 1.0;
pub const OPACITY_FROM: f64 = 1.0;
pub const OPACITY_TO: f64 = 0.0;
pub const EASING: Easing = Easing::EaseInOutQuad;
}
pub struct ProgressWithShimmerDefaults;
impl ProgressWithShimmerDefaults {
pub const PROGRESS_DURATION_MS: u64 = 400;
pub const SHIMMER_DURATION_MS: u64 = 1500;
pub const PROGRESS_EASING: Easing = Easing::EaseOutQuad;
pub const SHIMMER_EASING: Easing = Easing::Linear;
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_defaults_exist() {
assert_eq!(SpinnerDefaults::DURATION_MS, 2000);
assert_eq!(PulseDotsDefaults::COUNT, 3);
assert_eq!(BarWaveDefaults::COUNT, 5);
assert_eq!(ProgressRingDefaults::RADIUS, 52.0);
assert_eq!(ShimmerDefaults::DURATION_MS, 1500);
assert_eq!(FadingDotsDefaults::COUNT, 8);
assert_eq!(SegmentSpinnerDefaults::SEGMENT_COUNT, 12);
}
}