//! Hypergeometric Distribution Calculator use leptos::html::ElementChild; use leptos::prelude::{signal, Get, GlobalAttributes, OnTargetAttribute, PropAttribute, Set}; use leptos::{component, view, IntoView}; use crate::calc::hyper_geometric; /// A parameterized incrementing button #[component] pub fn Calculator() -> impl IntoView { let (population, set_population) = signal(0u8); let (successes, set_successes) = signal(0u8); let (sample, set_sample) = signal(0u8); let (sample_successes, set_sample_successes) = signal(0u8); let result = move || { hyper_geometric( population.get(), successes.get(), sample.get(), sample_successes.get(), ) .unwrap_or_default() }; view! {

"P(X = " {sample_successes} "): " {move|| result().exactly}

"P(X < " {sample_successes} "): " {move|| result().less_than}

"P(X ≤ " {sample_successes} "): " {move|| result().less_or_equal}

"P(X > " {sample_successes} "): " {move|| result().greater_than}

"P(X ≥ " {sample_successes} "): " {move|| result().greater_or_equal}

} }