Skip to content

Commit 7cc889c

Browse files
committed
Update scales options in chartjs plugin to support multi-axis setup
-Bump version: 0.4.7 -> 0.4.8
1 parent 31c44cb commit 7cc889c

3 files changed

Lines changed: 19 additions & 2 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "pyaether"
3-
version = "0.4.7"
3+
version = "0.4.8"
44
description = "DSL for writing HTML user interfaces in Python."
55
authors = [{ name = "Saurabh Ghanekar", email = "ghanekarsaurabh8@gmail.com" }]
66
license = "BSD-2-Clause"

src/aether/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def render(*elements: BaseWebElement, stringify: bool = True) -> str:
99
return mark_safe("").join(rendered_elements)
1010

1111

12-
__version__ = "0.4.7"
12+
__version__ = "0.4.8"
1313
__all__ = [
1414
"render",
1515
"BaseAttribute",

src/aether/plugins/chartjs/__init__.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ class ChartJSAxisGrid(BaseModel):
8383
display: bool = True
8484
color: str = "var(--border) / 0.2"
8585
drawBorder: bool = False
86+
drawOnChartArea: bool | None = None
8687

8788

8889
class ChartJSAxisTick(BaseModel):
@@ -103,6 +104,8 @@ class ChartJSAxis(BaseModel):
103104
class ChartJSScales(BaseModel):
104105
x: Annotated[ChartJSAxis, Field(default_factory=ChartJSAxis)]
105106
y: Annotated[ChartJSAxis, Field(default_factory=ChartJSAxis)]
107+
x1: Annotated[ChartJSAxis | None, Field(default=None)]
108+
y2: Annotated[ChartJSAxis | None, Field(default=None)]
106109

107110

108111
class ChartJSOptions(BaseModel):
@@ -165,6 +168,20 @@ def build_chart_config_from_attributes(
165168

166169
if chart_config.type in ["bar", "line", "scatter", "bubble"]:
167170
scales = ChartJSScales()
171+
172+
if "chart_scales_x" in chart_attributes:
173+
scales.x = ChartJSScales(**chart_attributes["chart_scales_x"])
174+
175+
if "chart_scales_y" in chart_attributes:
176+
scales.y = ChartJSScales(**chart_attributes["chart_scales_y"])
177+
178+
if chart_config.type in ["line", "scatter"]:
179+
if "chart_scales_x1" in chart_attributes:
180+
scales.x1 = ChartJSScales(**chart_attributes["chart_scales_x1"])
181+
182+
if "chart_scales_y1" in chart_attributes:
183+
scales.y1 = ChartJSScales(**chart_attributes["chart_scales_y1"])
184+
168185
if chart_attributes.get("chart_stacked"):
169186
scales.x.stacked = True
170187
scales.y.stacked = True

0 commit comments

Comments
 (0)