80 lines
2.2 KiB
C#
80 lines
2.2 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using RobotNet.WebApp.Charts.Enums;
|
|
using System.Globalization;
|
|
|
|
namespace RobotNet.WebApp.Charts.Core;
|
|
|
|
public class RobotNetChart : BlazorComponentBase, IDisposable, IAsyncDisposable
|
|
{
|
|
internal ChartType chartType;
|
|
|
|
/// <inheritdoc />
|
|
public new virtual void Dispose()
|
|
{
|
|
Dispose(true);
|
|
GC.SuppressFinalize(this);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public new virtual async ValueTask DisposeAsync()
|
|
{
|
|
await DisposeAsyncCore(true);
|
|
Dispose(false);
|
|
GC.SuppressFinalize(this);
|
|
}
|
|
|
|
private string GetChartContainerSizeAsStyle()
|
|
{
|
|
var style = "";
|
|
|
|
if (Width > 0)
|
|
style += $"width:{Width.Value.ToString(CultureInfo.InvariantCulture)}{WidthUnit.ToCssString()};";
|
|
|
|
if (Height > 0)
|
|
style += $"height:{Height.Value.ToString(CultureInfo.InvariantCulture)}{HeightUnit.ToCssString()};";
|
|
|
|
return style;
|
|
}
|
|
|
|
internal string ContainerStyle => GetChartContainerSizeAsStyle();
|
|
|
|
/// <summary>
|
|
/// Gets or sets chart container height.
|
|
/// The default unit of measure is <see cref="Unit.Px" />.
|
|
/// To change the unit of measure see <see cref="HeightUnit" />.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Default value is null.
|
|
/// </remarks>
|
|
[Parameter]
|
|
public int? Height { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets chart container height unit of measure.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Default value is <see cref="Unit.Px" />.
|
|
/// </remarks>
|
|
[Parameter]
|
|
public Unit HeightUnit { get; set; } = Unit.Px;
|
|
|
|
/// <summary>
|
|
/// Get or sets chart container width.
|
|
/// The default unit of measure is <see cref="Unit.Px" />.
|
|
/// To change the unit of measure see <see cref="WidthUnit" />.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Default value is null.
|
|
/// </remarks>
|
|
[Parameter]
|
|
public int? Width { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets chart container width unit of measure.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Default value is <see cref="Unit.Px" />.
|
|
/// </remarks>
|
|
[Parameter]
|
|
public Unit WidthUnit { get; set; } = Unit.Px;
|
|
} |