CssTextDecorationLineProperty
sealed class CssTextDecorationLineProperty : CssProperty, ICssTextDecorationLineProperty, ICssProperty
Information:
https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-line
using AngleSharp.Css;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssTextDecorationLineProperty : CssProperty, ICssTextDecorationLineProperty, ICssProperty
{
internal static readonly TextDecorationLine[] Default = new TextDecorationLine[0];
internal static readonly IValueConverter<TextDecorationLine[]> SingleConverter = Map.TextDecorationLines.ToConverter().Many(1, 2147483647);
internal static readonly IValueConverter<TextDecorationLine[]> Converter = SingleConverter.Or(Keywords.None, Default);
private readonly List<TextDecorationLine> _lines;
public IEnumerable<TextDecorationLine> Lines => _lines;
internal CssTextDecorationLineProperty(CssStyleDeclaration rule)
: base(PropertyNames.TextDecorationLine, rule, PropertyFlags.None)
{
_lines = new List<TextDecorationLine>();
}
public void SetLines(IEnumerable<TextDecorationLine> lines)
{
_lines.Clear();
_lines.AddRange(lines);
}
internal override void Reset()
{
_lines.Clear();
_lines.AddRange(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetLines);
}
}
}