RobotNet/RobotNet.WebApp/Charts/Models/RadarChart/RadarChartDataset.cs
2025-10-15 15:15:53 +07:00

157 lines
4.9 KiB
C#

using RobotNet.WebApp.Charts.Models.Common.Dataset;
using System.Text.Json.Serialization;
namespace RobotNet.WebApp.Charts.Models.RadarChart;
public class RadarChartDataset : ChartDataset<double>
{
/// <summary>
/// Cap style of the line.
/// Supported values are 'butt', 'round', and 'square'.
/// </summary>
/// <remarks>
/// Default value is 'butt'.
/// </remarks>
public string BorderCapStyle { get; set; } = "butt";
/// <summary>
/// How to fill the area under the line.
/// </summary>
/// <remarks>
/// Default value is <see langword="false" />.
/// </remarks>
public bool Fill { get; set; }
/// <summary>
/// Cap style of the line when hovered.
/// </summary>
/// <remarks>
/// Default value is <see langword="null" />.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? HoverBorderCapStyle { get; set; }
/// <summary>
/// The fill color for points.
/// </summary>
/// <remarks>
/// Default value is 'rgba(0, 0, 0, 0.1)'.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<string>? PointBackgroundColor { get; set; }
/// <summary>
/// The border color for points.
/// </summary>
/// <remarks>
/// Default value is 'rgba(0, 0, 0, 0.1)'.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<string>? PointBorderColor { get; set; }
/// <summary>
/// The width of the point border in pixels.
/// </summary>
/// <remarks>
/// Default value is 1.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<double>? PointBorderWidth { get; set; }
/// <summary>
/// The pixel size of the non-displayed point that reacts to mouse events.
/// </summary>
/// <remarks>
/// Default value is 1.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<double>? PointHitRadius { get; set; }
/// <summary>
/// Point background color when hovered.
/// </summary>
/// <remarks>
/// Default value is <see langword="null" />.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<string>? PointHoverBackgroundColor { get; set; }
/// <summary>
/// Point border color when hovered.
/// </summary>
/// <remarks>
/// Default value is <see langword="null" />.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<string>? PointHoverBorderColor { get; set; }
/// <summary>
/// Border width of point when hovered.
/// </summary>
/// <remarks>
/// Default value is 1.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<double>? PointHoverBorderWidth { get; set; }
/// <summary>
/// The radius of the point when hovered.
/// </summary>
/// <remarks>
/// Default value is 4.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<double>? PointHoverRadius { get; set; }
/// <summary>
/// The radius of the point shape. If set to 0, the point is not rendered.
/// </summary>
/// <remarks>
/// Default value is 3.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<double>? PointRadius { get; set; }
/// <summary>
/// The rotation of the point in degrees.
/// </summary>
/// <remarks>
/// Default value is 0.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<double>? PointRotation { get; set; }
/// <summary>
/// Style of the point.
/// Supported values are 'circle', 'cross', 'crossRot', 'dash', 'line', 'rect', 'rectRounded', 'rectRot', 'star', and
/// 'triangle' to style.
/// the point.
/// </summary>
/// <remarks>
/// Default value is 'circle'.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<string>? PointStyle { get; set; }
/// <summary>
/// If <see langword="true" />, lines will be drawn between points with no or null data.
/// If <see langword="false" />, points with null data will create a break in the line.
/// Can also be a number specifying the maximum gap length to span.
/// The unit of the value depends on the scale used.
/// </summary>
/// <remarks>
/// Default value is <see langword="null" />.
/// </remarks>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public bool? SpanGaps { get; set; }
/// <summary>
/// Bezier curve tension of the line. Set to 0 to draw straight lines.
/// This option is ignored if monotone cubic interpolation is used.
/// </summary>
/// <remarks>
/// Default value is 0.
/// </remarks>
public double Tension { get; set; }
}