Skip to content

Commit 809b533

Browse files
author
Mischa Spelt
committed
Added missing documentation file
1 parent 352ebc9 commit 809b533

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
<LineChart Height="200" @ref="lineChart" Width="500" />
2+
3+
@* You need to enable a date adapter for ChartJS, e.g. Luxon: *@
4+
<script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/3.5.0/luxon.min.js" integrity="sha512-SN7iwxiJt9nFKiLayg3NjLItXPwRfBr4SQSIugMeBFrD4lIFJe1Z/exkTZYAg3Ul+AfZEGws2PQ+xSoaWfxRQQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
5+
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-adapter-luxon/1.3.1/chartjs-adapter-luxon.umd.js" integrity="sha512-shMguvn9vyPHoXeEEPgqLX+f7zEHpuYbhK4xcBMS+IATkIj/1P+PhnWC4wMhFUekmSZqKTvL43cHnRkAlrMJ3Q==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
6+
7+
<div class="mt-5">
8+
<Button Color="ButtonColor.Primary" Class="my-1 mr-1" @onclick="@(async () => await TextLabels())" Size="ButtonSize.Small" Type="ButtonType.Button"> Text labels</Button>
9+
<Button Color="ButtonColor.Primary" Class="my-1 mr-1" @onclick="@(async () => await DateLabels("dd-MM-yyyy"))" Size="ButtonSize.Small" Type="ButtonType.Button"> Date labels [European format]</Button>
10+
<Button Color="ButtonColor.Primary" Class="my-1 mr-1" @onclick="@(async () => await DateLabels("MM/dd/yy"))" Size="ButtonSize.Small" Type="ButtonType.Button"> Date labels [US format]</Button>
11+
</div>
12+
13+
@code {
14+
private LineChart lineChart = default!;
15+
private LineChartOptions lineChartOptions = default!;
16+
private ChartData chartData = default!;
17+
private DateTime startOfYear = new DateTime( DateTime.Today.Year, 1, 1 );
18+
19+
protected override void OnInitialized()
20+
{
21+
var colors = ColorUtility.CategoricalTwelveColors;
22+
23+
var rng = new Random();
24+
var labels = new List<string>();
25+
var data = new List<double?>();
26+
for( int i = 0; i < 20; i++ )
27+
{
28+
labels.Add( startOfYear.AddDays( rng.Next( 0, 365 ) ).ToString( "yyyy-MM-dd" ) );
29+
data.Add( rng.Next( 0, 200 ) );
30+
}
31+
32+
var datasets = new List<IChartDataset>();
33+
labels.Sort();
34+
var dataset = new LineChartDataset
35+
{
36+
Label = "Value",
37+
Data = data,
38+
BackgroundColor = colors[ 0 ],
39+
BorderColor = colors[ 0 ],
40+
BorderWidth = 2,
41+
HoverBorderWidth = 4
42+
};
43+
datasets.Add( dataset );
44+
45+
chartData = new ChartData { Labels = labels, Datasets = datasets };
46+
47+
lineChartOptions = new();
48+
lineChartOptions.Responsive = true;
49+
lineChartOptions.Interaction = new Interaction { Mode = InteractionMode.Index };
50+
51+
lineChartOptions.Scales.X!.Title = new ChartAxesTitle { Text = "Day", Display = true };
52+
lineChartOptions.Scales.Y!.Title = new ChartAxesTitle { Text = "Value", Display = true };
53+
}
54+
55+
protected async Task TextLabels()
56+
{
57+
// Set the defaults
58+
lineChartOptions.Scales.X!.Type = null;
59+
lineChartOptions.Scales.X!.Time = null;
60+
61+
lineChartOptions.Scales.X!.Min = null;
62+
lineChartOptions.Scales.X!.Max = null;
63+
64+
await lineChart.UpdateAsync( chartData, lineChartOptions );
65+
}
66+
67+
protected async Task DateLabels( string format )
68+
{
69+
lineChartOptions.Scales.X!.Type = ChartAxesType.Time;
70+
lineChartOptions.Scales.X!.Time = new ChartTimeAxisOptions()
71+
{
72+
TooltipFormat = format,
73+
DisplayFormats = new
74+
{
75+
month = format
76+
},
77+
Unit = ChartTimeUnit.Month
78+
};
79+
80+
lineChartOptions.Scales.X!.Min = startOfYear.ToString( "yyyy-MM-dd" );
81+
lineChartOptions.Scales.X!.Max = startOfYear.AddYears( 1 ).ToString( "yyyy-MM-dd" );
82+
83+
await lineChart.UpdateAsync( chartData, lineChartOptions );
84+
}
85+
86+
protected override async Task OnAfterRenderAsync( bool firstRender )
87+
{
88+
if( firstRender )
89+
{
90+
await lineChart.InitializeAsync( chartData, lineChartOptions );
91+
}
92+
await base.OnAfterRenderAsync( firstRender );
93+
}
94+
95+
}

0 commit comments

Comments
 (0)