Implemented apex charts for visualisation
The fill animations is buggy
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Blazor-ApexCharts" Version="3.5.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.6"/>
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.6"/>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.6" PrivateAssets="all"/>
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.6" PrivateAssets="all"/>
|
||||||
<PackageReference Include="MoonCore" Version="1.6.8" />
|
<PackageReference Include="MoonCore" Version="1.6.8" />
|
||||||
|
|||||||
@@ -1,3 +1,184 @@
|
|||||||
@page "/admin"
|
@page "/admin"
|
||||||
|
|
||||||
<h1>Elo testy</h1>
|
@using ApexCharts
|
||||||
|
|
||||||
|
<div class="card max-w-md">
|
||||||
|
<ApexChart @ref="ApexChart" TItem="MyData"
|
||||||
|
Options="Options">
|
||||||
|
|
||||||
|
<ApexPointSeries TItem="MyData"
|
||||||
|
Items="Data"
|
||||||
|
Name="Net Profit"
|
||||||
|
SeriesType="SeriesType.Area"
|
||||||
|
Color="#3b82f6"
|
||||||
|
ShowDataLabels="false"
|
||||||
|
XValue="e => e.Index"
|
||||||
|
YValue="e => e.Value"/>
|
||||||
|
</ApexChart>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@code {
|
||||||
|
private List<MyData> Data { get; set; } = new();
|
||||||
|
|
||||||
|
private ApexChartOptions<MyData> Options;
|
||||||
|
private ApexChart<MyData> ApexChart;
|
||||||
|
|
||||||
|
private int Counter = 0;
|
||||||
|
private int IndexCounter = 0;
|
||||||
|
|
||||||
|
protected override void OnInitialized()
|
||||||
|
{
|
||||||
|
Options = new()
|
||||||
|
{
|
||||||
|
Stroke = new()
|
||||||
|
{
|
||||||
|
Curve = new CurveSelections()
|
||||||
|
{
|
||||||
|
Curve.Smooth
|
||||||
|
},
|
||||||
|
Width = 4
|
||||||
|
},
|
||||||
|
Title = new()
|
||||||
|
{
|
||||||
|
Text = ""
|
||||||
|
},
|
||||||
|
Chart = new()
|
||||||
|
{
|
||||||
|
Toolbar = new()
|
||||||
|
{
|
||||||
|
Show = false
|
||||||
|
},
|
||||||
|
Animations = new()
|
||||||
|
{
|
||||||
|
Easing = Easing.Linear,
|
||||||
|
DynamicAnimation = new()
|
||||||
|
{
|
||||||
|
Speed = 950
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Zoom = new Zoom
|
||||||
|
{
|
||||||
|
Enabled = false
|
||||||
|
},
|
||||||
|
Height = "100%",
|
||||||
|
Sparkline = new()
|
||||||
|
{
|
||||||
|
Enabled = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Tooltip = new()
|
||||||
|
{
|
||||||
|
Enabled = false
|
||||||
|
},
|
||||||
|
Xaxis = new()
|
||||||
|
{
|
||||||
|
Range = 20,
|
||||||
|
Tooltip = new()
|
||||||
|
{
|
||||||
|
Enabled = false
|
||||||
|
},
|
||||||
|
Labels = new()
|
||||||
|
{
|
||||||
|
Show = false
|
||||||
|
},
|
||||||
|
AxisTicks = new()
|
||||||
|
{
|
||||||
|
Show = false
|
||||||
|
},
|
||||||
|
AxisBorder = new()
|
||||||
|
{
|
||||||
|
Show = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Yaxis = new(),
|
||||||
|
Series = new(),
|
||||||
|
Grid = new()
|
||||||
|
{
|
||||||
|
Show = false,
|
||||||
|
Padding = new Padding()
|
||||||
|
{
|
||||||
|
Bottom = 0,
|
||||||
|
Left = 0,
|
||||||
|
Right = 0,
|
||||||
|
Top = 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
Options.Yaxis.Add(new()
|
||||||
|
{
|
||||||
|
Labels = new()
|
||||||
|
{
|
||||||
|
Show = false,
|
||||||
|
Style = new()
|
||||||
|
{
|
||||||
|
CssClass = "fs-6",
|
||||||
|
Colors = new("#FFFFFF")
|
||||||
|
},
|
||||||
|
Formatter = $"function (value) {{ return Math.round(value) + ' Users' }}",
|
||||||
|
},
|
||||||
|
Show = false
|
||||||
|
});
|
||||||
|
|
||||||
|
for (int i = 0; i < 20; i++)
|
||||||
|
{
|
||||||
|
IndexCounter++;
|
||||||
|
Data.Add(new MyData { Index = IndexCounter, Value = 0 });
|
||||||
|
}
|
||||||
|
|
||||||
|
Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await Task.Delay(1000);
|
||||||
|
|
||||||
|
var random = new Random();
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
var x = random.Next(0, 100);
|
||||||
|
await HandleData(x);
|
||||||
|
|
||||||
|
await Task.Delay(1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task HandleData(int newValue)
|
||||||
|
{
|
||||||
|
if (Counter > 30)
|
||||||
|
{
|
||||||
|
await ApexChart.UpdateSeriesAsync();
|
||||||
|
Counter = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
IndexCounter++;
|
||||||
|
var item = new MyData()
|
||||||
|
{
|
||||||
|
Index = IndexCounter,
|
||||||
|
Value = newValue
|
||||||
|
};
|
||||||
|
|
||||||
|
Data.Add(item);
|
||||||
|
|
||||||
|
if (Data.Count > 30)
|
||||||
|
Data.RemoveAt(0);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await ApexChart.AppendDataAsync(new[] { item });
|
||||||
|
}
|
||||||
|
catch (TaskCanceledException)
|
||||||
|
{
|
||||||
|
/* ignore task canceled exception */
|
||||||
|
}
|
||||||
|
|
||||||
|
Counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MyData
|
||||||
|
{
|
||||||
|
public int Index { get; set; }
|
||||||
|
public int Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user