Skip to content

Commit

Permalink
Refactor tooltip
Browse files Browse the repository at this point in the history
  • Loading branch information
yuankunzhang committed Jul 13, 2023
1 parent 8fbe28a commit 1dd9202
Show file tree
Hide file tree
Showing 48 changed files with 137 additions and 150 deletions.
6 changes: 3 additions & 3 deletions charming/src/component/grid.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use serde::Serialize;

use crate::{
datatype::CompositeValue,
element::{Color, Padding, TextStyle, TooltipTrigger},
element::{Color, Padding, TextStyle, Trigger},
};

#[derive(Serialize)]
Expand All @@ -14,7 +14,7 @@ pub struct GridTooltip {

/// Type of triggering.
#[serde(skip_serializing_if = "Option::is_none")]
trigger: Option<TooltipTrigger>,
trigger: Option<Trigger>,

/// The position of the tooltip's floating layer, which would follow the
/// position of mouse by default.
Expand Down Expand Up @@ -76,7 +76,7 @@ impl GridTooltip {
self
}

pub fn trigger<T: Into<TooltipTrigger>>(mut self, trigger: T) -> Self {
pub fn trigger<T: Into<Trigger>>(mut self, trigger: T) -> Self {
self.trigger = Some(trigger.into());
self
}
Expand Down
2 changes: 0 additions & 2 deletions charming/src/component/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ pub mod single_axis;
pub mod timeline;
pub mod title;
pub mod toolbox;
pub mod tooltip;
pub mod visual_map;

pub use angle_axis::*;
Expand All @@ -43,5 +42,4 @@ pub use single_axis::*;
pub use timeline::*;
pub use title::*;
pub use toolbox::*;
pub use tooltip::*;
pub use visual_map::*;
4 changes: 2 additions & 2 deletions charming/src/element/coordinate_tooltip.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use serde::Serialize;

use crate::datatype::CompositeValue;

use super::{Color, Formatter, Padding, TextStyle, TooltipTrigger};
use super::{Color, Formatter, Padding, TextStyle, Trigger};

#[derive(Serialize)]
#[serde(rename_all = "camelCase")]
Expand All @@ -11,7 +11,7 @@ pub struct CoordinateTooltip {
show: Option<bool>,

#[serde(skip_serializing_if = "Option::is_none")]
trigger: Option<TooltipTrigger>,
trigger: Option<Trigger>,

#[serde(skip_serializing_if = "Option::is_none")]
position: Option<CompositeValue>,
Expand Down
4 changes: 2 additions & 2 deletions charming/src/element/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ pub mod symbol;
pub mod symbol_size;
pub mod text_align;
pub mod text_style;
pub mod tooltip_trigger;
pub mod tooltip;

pub(crate) use raw_string::*;

Expand Down Expand Up @@ -90,4 +90,4 @@ pub use symbol::*;
pub use symbol_size::*;
pub use text_align::*;
pub use text_style::*;
pub use tooltip_trigger::*;
pub use tooltip::*;
Original file line number Diff line number Diff line change
@@ -1,25 +1,34 @@
use serde::Serialize;

use crate::element::{AxisPointer, Color, Formatter, Padding, TooltipTrigger};
use crate::element::{AxisPointer, Color, Formatter, Padding};

#[derive(Serialize)]
#[serde(rename_all = "snake_case")]
pub enum TooltipTriggerOn {
pub enum TriggerOn {
Mousemove,
Click,
#[serde(rename = "mousemove|click")]
MousemoveAndClick,
None,
}

/// Types of triggering.
#[derive(Serialize)]
#[serde(rename_all = "snake_case")]
pub enum Trigger {
Item,
Axis,
None,
}

#[derive(Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Tooltip {
#[serde(skip_serializing_if = "Option::is_none")]
trigger: Option<TooltipTrigger>,
trigger: Option<Trigger>,

#[serde(skip_serializing_if = "Option::is_none")]
trigger_on: Option<TooltipTriggerOn>,
trigger_on: Option<TriggerOn>,

#[serde(skip_serializing_if = "Option::is_none")]
axis_pointer: Option<AxisPointer>,
Expand Down Expand Up @@ -58,12 +67,12 @@ impl Tooltip {
}
}

pub fn trigger<T: Into<TooltipTrigger>>(mut self, trigger: T) -> Self {
pub fn trigger<T: Into<Trigger>>(mut self, trigger: T) -> Self {
self.trigger = Some(trigger.into());
self
}

pub fn trigger_on<T: Into<TooltipTriggerOn>>(mut self, trigger_on: T) -> Self {
pub fn trigger_on<T: Into<TriggerOn>>(mut self, trigger_on: T) -> Self {
self.trigger_on = Some(trigger_on.into());
self
}
Expand Down
10 changes: 0 additions & 10 deletions charming/src/element/tooltip_trigger.rs

This file was deleted.

5 changes: 2 additions & 3 deletions charming/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@ pub use renderer::*;

use component::{
AngleAxis, Axis, Axis3D, DataZoom, GeoMap, Grid, Grid3D, Legend, ParallelAxis,
ParallelCoordinate, Polar, RadarCoordinate, RadiusAxis, SingleAxis, Title, Toolbox, Tooltip,
VisualMap,
ParallelCoordinate, Polar, RadarCoordinate, RadiusAxis, SingleAxis, Title, Toolbox, VisualMap,
};
use datatype::Dataset;
use element::{process_raw_strings, AxisPointer, Color, MarkLine};
use element::{process_raw_strings, AxisPointer, Color, MarkLine, Tooltip};
use serde::Serialize;
use series::Series;

Expand Down
3 changes: 1 addition & 2 deletions charming/src/series/radar.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
use serde::Serialize;

use crate::{
component::tooltip::Tooltip,
datatype::{DataFrame, DataPoint},
element::{AreaStyle, ColorBy, Emphasis, LineStyle, Symbol},
element::{AreaStyle, ColorBy, Emphasis, LineStyle, Symbol, Tooltip},
};

#[derive(Serialize)]
Expand Down
6 changes: 3 additions & 3 deletions gallery/src/bar/stacked_column.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use charming::{
component::{Axis, Grid, Legend, Tooltip},
component::{Axis, Grid, Legend},
element::{
AxisPointer, AxisPointerType, AxisType, Emphasis, EmphasisFocus, LineStyle, LineStyleType,
MarkLine, MarkLineData, MarkLineVariant, TooltipTrigger,
MarkLine, MarkLineData, MarkLineVariant, Tooltip, Trigger,
},
series::{bar, Bar, Series},
Chart,
Expand All @@ -12,7 +12,7 @@ pub fn chart() -> Chart {
Chart::new()
.tooltip(
Tooltip::new()
.trigger(TooltipTrigger::Axis)
.trigger(Trigger::Axis)
.axis_pointer(AxisPointer::new().type_(AxisPointerType::Shadow)),
)
.legend(Legend::new())
Expand Down
4 changes: 2 additions & 2 deletions gallery/src/bar/tangential_polar_bar.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use charming::{
component::{AngleAxis, Polar, RadiusAxis, Title, Tooltip},
element::{AxisType, CoordinateSystem, Label, LabelPosition},
component::{AngleAxis, Polar, RadiusAxis, Title},
element::{AxisType, CoordinateSystem, Label, LabelPosition, Tooltip},
series::Bar,
Chart,
};
Expand Down
6 changes: 3 additions & 3 deletions gallery/src/bar/waterfall.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use charming::{
component::{Axis, Grid, Title, Tooltip},
component::{Axis, Grid, Title},
element::{
AxisPointer, AxisPointerType, AxisType, Emphasis, ItemStyle, Label, LabelPosition,
SplitLine, TooltipTrigger,
SplitLine, Tooltip, Trigger,
},
series::{bar, Bar, Series},
Chart,
Expand All @@ -17,7 +17,7 @@ pub fn chart() -> Chart {
)
.tooltip(
Tooltip::new()
.trigger(TooltipTrigger::Axis)
.trigger(Trigger::Axis)
.formatter(r#"{b0}<br />{a1}: {c1}"#)
.axis_pointer(AxisPointer::new().type_(AxisPointerType::Shadow)),
)
Expand Down
6 changes: 3 additions & 3 deletions gallery/src/bar/world_population.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use charming::{
component::{Axis, Grid, Legend, Title, Tooltip},
element::{AxisPointer, AxisPointerType, AxisType, TooltipTrigger},
component::{Axis, Grid, Legend, Title},
element::{AxisPointer, AxisPointerType, AxisType, Tooltip, Trigger},
series::Bar,
Chart,
};
Expand All @@ -10,7 +10,7 @@ pub fn chart() -> Chart {
.title(Title::new().text("World Population"))
.tooltip(
Tooltip::new()
.trigger(TooltipTrigger::Axis)
.trigger(Trigger::Axis)
.axis_pointer(AxisPointer::new().type_(AxisPointerType::Shadow)),
)
.legend(Legend::new())
Expand Down
4 changes: 2 additions & 2 deletions gallery/src/bar3d/bar3d_with_dataset.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use charming::{
component::{Axis3D, Grid3D, Tooltip, VisualMap},
element::AxisType,
component::{Axis3D, Grid3D, VisualMap},
element::{AxisType, Tooltip},
Chart,
};

Expand Down
6 changes: 3 additions & 3 deletions gallery/src/boxplot/boxplot_light_velocity.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use charming::{
component::{Axis, Grid, Title, Tooltip},
component::{Axis, Grid, Title},
datatype::{Dataset, Transform},
element::{
AxisPointer, AxisPointerType, AxisType, SplitArea, SplitLine, TextStyle, TooltipTrigger,
AxisPointer, AxisPointerType, AxisType, SplitArea, SplitLine, TextStyle, Tooltip, Trigger,
},
series::{Boxplot, Scatter},
Chart,
Expand Down Expand Up @@ -64,7 +64,7 @@ pub fn chart() -> Chart {
.dataset(ds)
.tooltip(
Tooltip::new()
.trigger(TooltipTrigger::Item)
.trigger(Trigger::Item)
.axis_pointer(AxisPointer::new().type_(AxisPointerType::Shadow)),
)
.grid(Grid::new().left("10%").right("10%").bottom("15%"))
Expand Down
6 changes: 3 additions & 3 deletions gallery/src/boxplot/multiple_categories.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use charming::{
component::{Axis, DataZoom, DataZoomType, Grid, Legend, Title, Tooltip},
component::{Axis, DataZoom, DataZoomType, Grid, Legend, Title},
datatype::{Dataset, Transform},
element::{AxisPointer, AxisPointerType, AxisType, SplitArea, SplitLine, TooltipTrigger},
element::{AxisPointer, AxisPointerType, AxisType, SplitArea, SplitLine, Tooltip, Trigger},
series::Boxplot,
Chart,
};
Expand Down Expand Up @@ -37,7 +37,7 @@ pub fn chart() -> Chart {
.legend(Legend::new().top("10%"))
.tooltip(
Tooltip::new()
.trigger(TooltipTrigger::Axis)
.trigger(Trigger::Axis)
.axis_pointer(AxisPointer::new().type_(AxisPointerType::Shadow)),
)
.grid(
Expand Down
6 changes: 3 additions & 3 deletions gallery/src/candlestick/ohlc.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use charming::{
component::{
Axis, DataZoom, DataZoomType, Grid, Legend, Toolbox, ToolboxFeature, ToolboxFeatureBrush,
ToolboxFeatureBrushType, ToolboxFeatureDataZoom, Tooltip,
ToolboxFeatureBrushType, ToolboxFeatureDataZoom,
},
element::{
AxisLine, AxisPointer, AxisPointerLink, AxisPointerType, AxisType, DimensionEncode,
SplitArea, SplitLine, TooltipTrigger,
SplitArea, SplitLine, Tooltip, Trigger,
},
series::Custom,
Chart,
Expand Down Expand Up @@ -33,7 +33,7 @@ pub fn chart() -> Chart {
)
.tooltip(
Tooltip::new()
.trigger(TooltipTrigger::Axis)
.trigger(Trigger::Axis)
.axis_pointer(AxisPointer::new().type_(AxisPointerType::Cross)),
)
.axis_pointer(AxisPointer::new().link(vec![AxisPointerLink::new().x_axis_index("all")]))
Expand Down
6 changes: 3 additions & 3 deletions gallery/src/candlestick/shanghai_index.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
use charming::{
component::{Axis, DataZoom, Grid, Legend, Tooltip},
component::{Axis, DataZoom, Grid, Legend},
datatype::CompositeValue,
element::{
AreaStyle, AxisPointer, AxisPointerType, AxisType, DataBackground, LineStyle, SplitLine,
TextStyle, TooltipTrigger,
TextStyle, Tooltip, Trigger,
},
series::{Candlestick, Line},
Chart,
Expand Down Expand Up @@ -33,7 +33,7 @@ pub fn chart() -> Chart {
.data(vec!["日K", "MA5", "MA10", "MA20", "MA30"]),
)
.tooltip(
Tooltip::new().trigger(TooltipTrigger::Axis).axis_pointer(
Tooltip::new().trigger(Trigger::Axis).axis_pointer(
AxisPointer::new()
.animation(false)
.type_(AxisPointerType::Cross)
Expand Down
4 changes: 2 additions & 2 deletions gallery/src/dataset/encode_and_matrix.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use charming::{
component::{Axis, Grid, Legend, Toolbox, ToolboxFeature, ToolboxFeatureDataZoom, Tooltip},
component::{Axis, Grid, Legend, Toolbox, ToolboxFeature, ToolboxFeatureDataZoom},
datatype::{CompositeValue, Dataset},
dim,
element::{AxisLabel, AxisType, DimensionEncode},
element::{AxisLabel, AxisType, DimensionEncode, Tooltip},
series::Scatter,
Chart,
};
Expand Down
6 changes: 3 additions & 3 deletions gallery/src/funnel/multiple_funnels.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
use charming::{
component::{
Legend, Title, Toolbox, ToolboxFeature, ToolboxFeatureDataView, ToolboxFeatureRestore,
ToolboxFeatureSaveAsImage, Tooltip,
ToolboxFeatureSaveAsImage,
},
df,
element::{Label, LabelPosition, Orient, Sort, TooltipTrigger},
element::{Label, LabelPosition, Orient, Sort, Tooltip, Trigger},
series::Funnel,
Chart,
};
Expand All @@ -14,7 +14,7 @@ pub fn chart() -> Chart {
.title(Title::new().text("Funnel").left("left").top("bottom"))
.tooltip(
Tooltip::new()
.trigger(TooltipTrigger::Item)
.trigger(Trigger::Item)
.formatter("{a} <br/>{b} : {c}%"),
)
.toolbox(
Expand Down
2 changes: 1 addition & 1 deletion gallery/src/gauge/gauge_basic.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use charming::{
component::Tooltip,
element::Tooltip,
series::{Gauge, GaugeDetail},
Chart,
};
Expand Down
2 changes: 1 addition & 1 deletion gallery/src/gauge/gauge_simple.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use charming::{
component::Tooltip,
element::Tooltip,
series::{Gauge, GaugeDetail, GaugeProgress},
Chart,
};
Expand Down
2 changes: 1 addition & 1 deletion gallery/src/geo/organ_data.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use charming::{component::Tooltip, Chart};
use charming::{element::Tooltip, Chart};

pub fn chart() -> Chart {
let svg = include_str!("../../asset/veins-medical-diagram.svg");
Expand Down
4 changes: 2 additions & 2 deletions gallery/src/graph/hide_overlapped_label.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use charming::{
component::{Legend, Tooltip},
element::{Label, LabelLayout, LabelPosition, LineStyle, ScaleLimit},
component::Legend,
element::{Label, LabelLayout, LabelPosition, LineStyle, ScaleLimit, Tooltip},
series::{Graph, GraphData, GraphLayout},
Chart,
};
Expand Down
4 changes: 2 additions & 2 deletions gallery/src/graph/les_miserables.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use charming::{
component::{Legend, Title, Tooltip},
element::{Label, LabelPosition, LineStyle},
component::{Legend, Title},
element::{Label, LabelPosition, LineStyle, Tooltip},
series::{Graph, GraphData, GraphLayout, GraphLayoutCircular, GraphNodeLabel},
Chart,
};
Expand Down
Loading

0 comments on commit 1dd9202

Please sign in to comment.