use super::*;
#[derive(Data)]
pub struct Chart {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) canvas: HtmlCanvasElement,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(skip)]
pub(crate) option: ChartOption,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) backend: Box<dyn ChartBackend>,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) shaper: TextShaper,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) layout: ChartLayout,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) display_list: DisplayList,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) renderer: ChartRenderer,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) width: f64,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) height: f64,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) dpr: f64,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) layout_dirty: bool,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) display_dirty: bool,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) handlers: Vec<EventRegistration>,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) animator: Animator,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) tooltip: Option<TooltipState>,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) maps: MapRegistry,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) commands: Signal<Vec<ChartCommand>>,
}
#[derive(Clone, Copy, Data, Debug)]
pub struct ChartHandle {
pub commands: Signal<Vec<ChartCommand>>,
}
#[derive(Clone, Data, Debug, Default, PartialEq)]
pub struct TooltipState {
#[get(type(copy))]
pub series_index: usize,
#[get(type(copy))]
pub data_index: usize,
#[get(type(copy))]
pub x: f64,
#[get(type(copy))]
pub y: f64,
pub lines: Vec<(String, String)>,
}
#[derive(Clone, Data, Debug)]
pub struct ChartRenderer {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) series: SeriesRenderer,
}