Skip to content

Commit f4129fe

Browse files
0.0.47
1 parent c9417cf commit f4129fe

File tree

4 files changed

+28
-11
lines changed

4 files changed

+28
-11
lines changed

Cargo.lock

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "chart-js-rs"
3-
version = "0.0.46"
3+
version = "0.0.47"
44
edition = "2021"
55
authors = ["Billy Sheppard", "Luis Moreno"]
66
license = "Apache-2.0"
@@ -21,7 +21,7 @@ serde_json = "1"
2121
serde-wasm-bindgen = "0.6"
2222
thiserror = "2.0.11"
2323
wasm-bindgen = { version = "0.2.100", features = ["serde-serialize"] }
24-
uuid = { version = "1.12.0", features = ["v4"] }
24+
uuid = { version = "1.12.1", features = ["v4"] }
2525

2626
[workspace]
2727
members = ["examples"]

src/objects/chart_objects.rs

+13-1
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,8 @@ pub struct ScaleTicks {
496496
skip_deserializing // FnWithArgs can't deser right now, might be solved in the future with a fancy serde deserializer
497497
)]
498498
pub(crate) callback: FnWithArgs<3>,
499+
#[serde(skip_serializing_if = "String::is_empty", default)]
500+
pub(crate) color: String,
499501
#[serde(skip_serializing_if = "NumberString::is_empty", default)]
500502
pub(crate) count: NumberString,
501503
#[serde(skip_serializing_if = "Option::is_none")]
@@ -515,6 +517,8 @@ pub struct ScaleTicks {
515517

516518
#[derive(Debug, Clone, Deserialize, Serialize, Default, PartialEq, Eq, PartialOrd, Ord)]
517519
pub struct Title {
520+
#[serde(skip_serializing_if = "String::is_empty", default)]
521+
pub(crate) color: String,
518522
#[serde(skip_serializing_if = "Option::is_none")]
519523
pub(crate) display: Option<bool>,
520524
#[serde(skip_serializing_if = "Option::is_none")]
@@ -549,6 +553,8 @@ pub struct LegendLabel {
549553
pub(crate) boxHeight: Option<u32>,
550554
#[serde(skip_serializing_if = "Option::is_none")]
551555
pub(crate) boxWidth: Option<u32>,
556+
#[serde(skip_serializing_if = "String::is_empty", default)]
557+
pub(crate) color: String,
552558
#[serde(skip_serializing_if = "FnWithArgs::is_empty", skip_deserializing)]
553559
// FnWithArgs can't deser right now, might be solved in the future with a fancy serde deserializer
554560
pub(crate) filter: FnWithArgs<2>,
@@ -718,17 +724,23 @@ impl DatasetTrait for Vec<XYDataset> {
718724
.into_iter()
719725
.filter_map(|xyd| {
720726
let data = xyd.data.0.as_array()?;
727+
// gloo_console::console_dbg!(&data);
721728
let keys = data
722729
.iter()
723730
.filter_map(|xy| xy.as_object())
724731
.filter_map(|obj| obj.get("x"))
725-
.filter_map(|x| x.as_str())
732+
.filter_map(|x| {
733+
x.as_str()
734+
.map(|s| s.to_string())
735+
.or(x.as_number().map(|num| num.to_string()))
736+
})
726737
.map(|x| x.into())
727738
.collect::<Vec<NumberOrDateString>>();
728739
Some(keys)
729740
})
730741
.flatten()
731742
.collect::<Vec<_>>();
743+
// gloo_console::console_dbg!(&vec);
732744

733745
vec.sort_by(crate::get_order_fn);
734746
vec.dedup();

src/utils.rs

+8-3
Original file line numberDiff line numberDiff line change
@@ -304,9 +304,14 @@ impl<const N: usize> FnWithArgs<N> {
304304
self.to_owned()
305305
}
306306

307-
pub fn js_return_value(mut self, return_value: &str) -> Self {
308-
self.return_value = return_value.to_string();
309-
self.to_owned()
307+
pub fn js_return_value(self, return_value: &str) -> Self {
308+
let mut s = if self.body.is_empty() {
309+
self.js_body("")
310+
} else {
311+
self
312+
};
313+
s.return_value = return_value.to_string();
314+
s.to_owned()
310315
}
311316

312317
pub fn build(self) -> Function {

0 commit comments

Comments
 (0)