177 lines
5.7 KiB
C#
177 lines
5.7 KiB
C#
using RobotNet.WebApp.Charts.Enums;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace RobotNet.WebApp.Charts.Models.Common.Plugins;
|
|
|
|
public class ChartPluginsTooltip
|
|
{
|
|
/// <summary>
|
|
/// Background color of the tooltip.
|
|
/// </summary>
|
|
public string BackgroundColor { get; set; } = "rgba(0, 0, 0, 0.8)";
|
|
|
|
/// <summary>
|
|
/// Gets or sets which elements appear in the tooltip.
|
|
/// </summary>
|
|
public InteractionMode Mode { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value indicating if the hover mode only applies when the mouse position intersects an item on the chart.
|
|
/// </summary>
|
|
public bool? Intersect { get; set; }
|
|
|
|
/// <summary>
|
|
/// The mode for positioning the tooltip.
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public TooltipPosition? Position { get; set; } = TooltipPosition.Average;
|
|
|
|
/// <summary>
|
|
/// Horizontal alignment of the body text lines. left/right/center.
|
|
/// </summary>
|
|
public TooltipXAlignment BodyAlign { get; set; } = TooltipXAlignment.Left;
|
|
|
|
/// <summary>
|
|
/// Color of body text.
|
|
/// </summary>
|
|
public string BodyColor { get; set; } = "#fff";
|
|
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public ChartFont? BodyFont { get; set; }
|
|
|
|
/// <summary>
|
|
/// Spacing to add to top and bottom of each tooltip item.
|
|
/// </summary>
|
|
public int BodySpacing { get; set; } = 2;
|
|
|
|
/// <summary>
|
|
/// Padding for Tooltips
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public ChartPadding? Padding { get; set; }
|
|
|
|
/// <summary>
|
|
/// Extra distance to move the end of the tooltip arrow away from the tooltip point.
|
|
/// </summary>
|
|
public int CaretPadding { get; set; } = 2;
|
|
|
|
/// <summary>
|
|
/// Size, in px, of the tooltip arrow.
|
|
/// </summary>
|
|
public int CaretSize { get; set; } = 5;
|
|
|
|
/// <summary>
|
|
/// If <see langword="true" />, color boxes are shown in the tooltip.
|
|
/// </summary>
|
|
public bool DisplayColors { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Are on-canvas tooltips enabled?
|
|
/// </summary>
|
|
public bool Enabled { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Horizontal alignment of the footer text lines. left/right/center.
|
|
/// </summary>
|
|
public TooltipXAlignment FooterAlign { get; set; } = TooltipXAlignment.Left;
|
|
|
|
/// <summary>
|
|
/// Color of footer text.
|
|
/// </summary>
|
|
public string FooterColor { get; set; } = "#fff";
|
|
|
|
public ChartFont FooterFont { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Margin to add before drawing the footer.
|
|
/// </summary>
|
|
public int FooterMarginTop { get; set; } = 6;
|
|
|
|
/// <summary>
|
|
/// Spacing to add to top and bottom of each footer line.
|
|
/// </summary>
|
|
public int FooterSpacing { get; set; } = 2;
|
|
|
|
/// <summary>
|
|
/// Horizontal alignment of the title text lines. left/right/center.
|
|
/// </summary>
|
|
public TooltipXAlignment TitleAlign { get; set; } = TooltipXAlignment.Left;
|
|
|
|
/// <summary>
|
|
/// Color of title text.
|
|
/// </summary>
|
|
public string TitleColor { get; set; } = "#fff";
|
|
|
|
public ChartFont TitleFont { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Margin to add on bottom of title section.
|
|
/// </summary>
|
|
public int TitleMarginBottom { get; set; } = 6;
|
|
|
|
/// <summary>
|
|
/// Spacing to add to top and bottom of each title line.
|
|
/// </summary>
|
|
public int TitleSpacing { get; set; } = 2;
|
|
|
|
/// <summary>
|
|
/// Position of the tooltip caret in the X direction. left/center/right.
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public TooltipXAlignment? XAlign { get; set; }
|
|
|
|
/// <summary>
|
|
/// Position of the tooltip caret in the Y direction. top/center/bottom.
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public TooltipYAlignment? YAlign { get; set; }
|
|
|
|
/// <summary>
|
|
/// Width of the color box if displayColors is true.
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public int? BoxWidth { get; set; }
|
|
|
|
/// <summary>
|
|
/// Height of the color box if displayColors is true.
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public int? BoxHeight { get; set; }
|
|
|
|
/// <summary>
|
|
/// Padding between the color box and the text.
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public int? BoxPadding { get; set; }
|
|
|
|
/// <summary>
|
|
/// Size of the border.
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public int? BorderWidth { get; set; }
|
|
|
|
/// <summary>
|
|
/// Color of the border.
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public string? BorderColor { get; set; }
|
|
|
|
/// <summary>
|
|
/// Use the corresponding point style (from dataset options) instead of color boxes, ex: star, triangle etc. (size is based on the minimum value between boxWidth and boxHeight).
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public bool? UsePointStyle { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// true for rendering the tooltip from right to left.
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public bool? Rtl { get; set; }
|
|
|
|
/// <summary>
|
|
/// This will force the text direction 'rtl' or 'ltr' on the canvas for rendering the tooltips, regardless of the css specified on the canvas
|
|
/// </summary>
|
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
|
public string? TextDirection { get; set; }
|
|
}
|