using System.Text.Json.Serialization;
namespace RobotNet.WebApp.Charts.Models.RadarChart.Axis;
public class GridLines
{
///
/// If false, do not display grid lines for this axis.
///
public bool Display { get; set; } = true;
///
/// If true, gridlines are circular (on radar chart only).
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public bool? Circular { get; set; }
///
/// The color of the grid lines. If specified as an array, the first color applies to the first grid line, the second to the second grid line and so on.
/// See for working with colors.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? Color { get; set; }
///
/// Length and spacing of dashes on grid lines
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public double[]? BorderDash { get; set; }
///
/// Stroke width of grid lines.
///
public double LineWidth { get; set; } = 1;
///
/// If true, draw border at the edge between the axis and the chart area.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public bool? DrawBorder { get; set; }
///
/// If true, draw lines on the chart area inside the axis lines. This is useful when there are multiple axes and you need to control which grid lines are drawn.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public bool? DrawOnChartArea { get; set; }
///
/// If true, draw lines beside the ticks in the axis area beside the chart.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public bool? DrawTicks { get; set; }
///
/// Length in pixels that the grid lines will draw into the axis area.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public int? TickMarkLength { get; set; }
///
/// Stroke width of the grid line for the first index (index 0).
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public int? ZeroLineWidth { get; set; }
///
/// Stroke color of the grid line for the first index (index 0).
/// See for working with colors.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? ZeroLineColor { get; set; }
///
/// Length and spacing of dashes of the grid line for the first index (index 0).
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public double[]? ZeroLineBorderDash { get; set; }
///
/// Offset for line dashes of the grid line for the first index (index 0).
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public double? ZeroLineBorderDashOffset { get; set; }
///
/// If true, grid lines will be shifted to be between labels. This is set to true for a category scale in a bar chart by default.
///
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public bool? OffsetGridLines { get; set; }
}